diff mbox

ARM: dts: blanche: add DU support

Message ID 1783132.r9t2y3QUUq@wasted.cogentembedded.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sergei Shtylyov Aug. 19, 2016, 8:42 p.m. UTC
Define  the  Blanche board dependent part of the DU device node.
Add the device nodes for the  Analog Devices ADV7511W  HDMI transmitter
(connected to DU0) and ADV7123 video DAC (connected to DU1).  Add the
necessary subnodes to interconnect DU, HDMI/VDAC devices, and HDMI/VGA
connectors.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
This patch is against the 'renesas-devel-20160817-v4.8-rc2' of Simon Horman's
'renesas.git' repo plus the general purpose switches patch and the SDHI0 patch
posted earlier.

 arch/arm/boot/dts/r8a7792-blanche.dts |  125 ++++++++++++++++++++++++++++++++++
 1 file changed, 125 insertions(+)

Comments

Simon Horman Aug. 22, 2016, 7:41 a.m. UTC | #1
Hi Sergei,

On Fri, Aug 19, 2016 at 11:42:54PM +0300, Sergei Shtylyov wrote:
> Define  the  Blanche board dependent part of the DU device node.
> Add the device nodes for the  Analog Devices ADV7511W  HDMI transmitter
> (connected to DU0) and ADV7123 video DAC (connected to DU1).  Add the
> necessary subnodes to interconnect DU, HDMI/VDAC devices, and HDMI/VGA
> connectors.
> 
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> 
> ---
> This patch is against the 'renesas-devel-20160817-v4.8-rc2' of Simon Horman's
> 'renesas.git' repo plus the general purpose switches patch and the SDHI0 patch
> posted earlier.
> 
>  arch/arm/boot/dts/r8a7792-blanche.dts |  125 ++++++++++++++++++++++++++++++++++
>  1 file changed, 125 insertions(+)
> 
> Index: renesas/arch/arm/boot/dts/r8a7792-blanche.dts
> ===================================================================
> --- renesas.orig/arch/arm/boot/dts/r8a7792-blanche.dts
> +++ renesas/arch/arm/boot/dts/r8a7792-blanche.dts

...

> @@ -186,3 +251,63 @@
>  	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
>  	status = "okay";
>  };
> +
> +&i2c1 {
> +	status = "okay";
> +	clock-frequency = <400000>;

Is it intentional that there are no pinctrl properties here?

...
Geert Uytterhoeven Aug. 22, 2016, 8:10 a.m. UTC | #2
Hi Simon,

On Mon, Aug 22, 2016 at 9:41 AM, Simon Horman <horms@verge.net.au> wrote:
> On Fri, Aug 19, 2016 at 11:42:54PM +0300, Sergei Shtylyov wrote:
>> Index: renesas/arch/arm/boot/dts/r8a7792-blanche.dts
>> ===================================================================
>> --- renesas.orig/arch/arm/boot/dts/r8a7792-blanche.dts
>> +++ renesas/arch/arm/boot/dts/r8a7792-blanche.dts
>
> ...
>
>> @@ -186,3 +251,63 @@
>>       cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
>>       status = "okay";
>>  };
>> +
>> +&i2c1 {
>> +     status = "okay";
>> +     clock-frequency = <400000>;
>
> Is it intentional that there are no pinctrl properties here?

$ git grep -w I2C arch/arm/boot/dts/r8a7792.dtsi
arch/arm/boot/dts/r8a7792.dtsi:         /* I2C doesn't need pinmux */
$

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Sergei Shtylyov Aug. 22, 2016, 10:34 a.m. UTC | #3
Hello.

On 8/22/2016 10:41 AM, Simon Horman wrote:

>> Define  the  Blanche board dependent part of the DU device node.
>> Add the device nodes for the  Analog Devices ADV7511W  HDMI transmitter
>> (connected to DU0) and ADV7123 video DAC (connected to DU1).  Add the
>> necessary subnodes to interconnect DU, HDMI/VDAC devices, and HDMI/VGA
>> connectors.
>>
>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>>
>> ---
>> This patch is against the 'renesas-devel-20160817-v4.8-rc2' of Simon Horman's
>> 'renesas.git' repo plus the general purpose switches patch and the SDHI0 patch
>> posted earlier.
>>
>>  arch/arm/boot/dts/r8a7792-blanche.dts |  125 ++++++++++++++++++++++++++++++++++
>>  1 file changed, 125 insertions(+)
>>
>> Index: renesas/arch/arm/boot/dts/r8a7792-blanche.dts
>> ===================================================================
>> --- renesas.orig/arch/arm/boot/dts/r8a7792-blanche.dts
>> +++ renesas/arch/arm/boot/dts/r8a7792-blanche.dts
>
> ...
>
>> @@ -186,3 +251,63 @@
>>  	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
>>  	status = "okay";
>>  };
>> +
>> +&i2c1 {
>> +	status = "okay";
>> +	clock-frequency = <400000>;
>
> Is it intentional that there are no pinctrl properties here?

    Yes, as I commented in r8a7792.dtsi, all I2C pins are not multiplexed.

MBR, Sergei
Simon Horman Aug. 23, 2016, 7:24 a.m. UTC | #4
On Mon, Aug 22, 2016 at 01:34:12PM +0300, Sergei Shtylyov wrote:
> Hello.
> 
> On 8/22/2016 10:41 AM, Simon Horman wrote:
> 
> >>Define  the  Blanche board dependent part of the DU device node.
> >>Add the device nodes for the  Analog Devices ADV7511W  HDMI transmitter
> >>(connected to DU0) and ADV7123 video DAC (connected to DU1).  Add the
> >>necessary subnodes to interconnect DU, HDMI/VDAC devices, and HDMI/VGA
> >>connectors.
> >>
> >>Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
> >>
> >>---
> >>This patch is against the 'renesas-devel-20160817-v4.8-rc2' of Simon Horman's
> >>'renesas.git' repo plus the general purpose switches patch and the SDHI0 patch
> >>posted earlier.
> >>
> >> arch/arm/boot/dts/r8a7792-blanche.dts |  125 ++++++++++++++++++++++++++++++++++
> >> 1 file changed, 125 insertions(+)
> >>
> >>Index: renesas/arch/arm/boot/dts/r8a7792-blanche.dts
> >>===================================================================
> >>--- renesas.orig/arch/arm/boot/dts/r8a7792-blanche.dts
> >>+++ renesas/arch/arm/boot/dts/r8a7792-blanche.dts
> >
> >...
> >
> >>@@ -186,3 +251,63 @@
> >> 	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
> >> 	status = "okay";
> >> };
> >>+
> >>+&i2c1 {
> >>+	status = "okay";
> >>+	clock-frequency = <400000>;
> >
> >Is it intentional that there are no pinctrl properties here?
> 
>    Yes, as I commented in r8a7792.dtsi, all I2C pins are not multiplexed.

Thanks for satisfying my curiosity.
I have queued this up.
diff mbox

Patch

Index: renesas/arch/arm/boot/dts/r8a7792-blanche.dts
===================================================================
--- renesas.orig/arch/arm/boot/dts/r8a7792-blanche.dts
+++ renesas/arch/arm/boot/dts/r8a7792-blanche.dts
@@ -57,6 +57,61 @@ 
 		pinctrl-names = "default";
 	};
 
+	vga-encoder {
+		compatible = "adi,adv7123";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				adv7123_in: endpoint {
+					remote-endpoint = <&du_out_rgb1>;
+				};
+			};
+			port@1 {
+				reg = <1>;
+				adv7123_out: endpoint {
+					remote-endpoint = <&vga_in>;
+				};
+			};
+		};
+	};
+
+	hdmi-out {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con: endpoint {
+				remote-endpoint = <&adv7511_out>;
+			};
+		};
+	};
+
+	vga {
+		compatible = "vga-connector";
+
+		port {
+			vga_in: endpoint {
+				remote-endpoint = <&adv7123_out>;
+			};
+		};
+	};
+
+	x1_clk: x1 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <74250000>;
+	};
+
+	x2_clk: x2 {
+		compatible = "fixed-clock";
+		#clock-cells = <0>;
+		clock-frequency = <65000000>;
+	};
+
 	keyboard {
 		compatible = "gpio-keys";
 
@@ -155,6 +210,16 @@ 
 		groups = "sdhi0_data4", "sdhi0_ctrl";
 		function = "sdhi0";
 	};
+
+	du0_pins: du0 {
+		groups = "du0_rgb888", "du0_sync", "du0_disp";
+		function = "du0";
+	};
+
+	du1_pins: du1 {
+		groups = "du1_rgb666", "du1_sync", "du1_disp";
+		function = "du1";
+	};
 };
 
 &scif0 {
@@ -186,3 +251,63 @@ 
 	cd-gpios = <&gpio11 11 GPIO_ACTIVE_LOW>;
 	status = "okay";
 };
+
+&i2c1 {
+	status = "okay";
+	clock-frequency = <400000>;
+
+	hdmi@39 {
+		compatible = "adi,adv7511w";
+		reg = <0x39>;
+		interrupt-parent = <&irqc>;
+		interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+
+		adi,input-depth = <8>;
+		adi,input-colorspace = "rgb";
+		adi,input-clock = "1x";
+		adi,input-style = <1>;
+		adi,input-justification = "evenly";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+				adv7511_in: endpoint {
+					remote-endpoint = <&du_out_rgb0>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+				adv7511_out: endpoint {
+					remote-endpoint = <&hdmi_con>;
+				};
+			};
+		};
+	};
+};
+
+&du {
+	pinctrl-0 = <&du0_pins &du1_pins>;
+	pinctrl-names = "default";
+
+	clocks = <&mstp7_clks R8A7792_CLK_DU0>, <&mstp7_clks R8A7792_CLK_DU1>,
+		 <&x1_clk>, <&x2_clk>;
+	clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
+	status = "okay";
+
+	ports {
+		port@0 {
+			endpoint {
+				remote-endpoint = <&adv7511_in>;
+			};
+		};
+		port@1 {
+			endpoint {
+				remote-endpoint = <&adv7123_in>;
+			};
+		};
+	};
+};