Skip to contentSkip to conversation

Add VIN and ADV7180 device tree support for R8A7791/Henninger board

PATCH Superseded Sergei Shtylyov 3 participants 8 messages Aug 2, 2014 – Aug 7, 2014

Subsystems (2)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add VIN and ADV7180 device tree support for R8A7791/Henninger board

Hello.

Here's the set of 2 patches against Simon Horman's 'renesas.git' repo,
'renesas-devel-v3.16-rc7-20140731v2' tag. Here we add the VIN and ADV7180 video decoder device tree support on the R8A7791/Henninger board. The patchset requires Ben Dooks' 'rcar_vin' and 'soc_camera' DT support patches already merged to the 'media_tree.git' in order to work.

[1/2] ARM: shmobile: r8a7791: add VIN DT support [2/2] ARM: shmobile: henninger: add VIN0/ADV7180 DT support

WBR, Sergei

#1 lore raw

PATCH v2 1/2 ARM: shmobile: r8a7791: add VIN DT support

Define the generic R8A7791 parts of the VIN[0-2] device nodes. Add aliases for the VIN[0-2] device nodes.

---
Changes in version 2:
- fixed the "compatible" properties;
- refreshed the patch.

 arch/arm/boot/dts/r8a7791.dtsi |   27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
arch/arm/boot/dts/r8a7791.dtsi +27 -0
Index: renesas/arch/arm/boot/dts/r8a7791.dtsi
===================================================================
@@ -34,6 +34,9 @@
 		spi1 = &msiof0;
 		spi2 = &msiof1;
 		spi3 = &msiof2;
+		vin0 = &vin0;
+		vin1 = &vin1;
+		vin2 = &vin2;
 	};
 
 	cpus {
@@ -550,6 +553,30 @@
 		status = "disabled";
 	};
 
+	vin0: video at e6ef0000 {
+		compatible = "renesas,vin-r8a7791";
+		clocks = <&mstp8_clks R8A7791_CLK_VIN0>;
+		reg = <0 0xe6ef0000 0 0x1000>;
+		interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
+		status = "disabled";
+	};
+
+	vin1: video at e6ef1000 {
+		compatible = "renesas,vin-r8a7791";
+		clocks = <&mstp8_clks R8A7791_CLK_VIN1>;
+		reg = <0 0xe6ef1000 0 0x1000>;
+		interrupts = <0 189 IRQ_TYPE_LEVEL_HIGH>;
+		status = "disabled";
+	};
+
+	vin2: video at e6ef2000 {
+		compatible = "renesas,vin-r8a7791";
+		clocks = <&mstp8_clks R8A7791_CLK_VIN2>;
+		reg = <0 0xe6ef2000 0 0x1000>;
+		interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>;
+		status = "disabled";
+	};
+
 	clocks {
 		#address-cells = <2>;
 		#size-cells = <2>;
#2 lore raw

PATCH v2 2/2 ARM: shmobile: henninger: add VIN0/ADV7180 DT support

In reply to Sergei Shtylyov

Define the Henninger board dependent part of the VIN0 device node. Add the device node for Analog Devices ADV7180 video decoder to I2C2 bus. Add the necessary subnodes to interconnect VIN0 and ADV7180 devices.

---
Changes in version 2:
- refreshed the patch.

 arch/arm/boot/dts/r8a7791-henninger.dts |   35 ++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
arch/arm/boot/dts/r8a7791-henninger.dts +35 -0
Index: renesas/arch/arm/boot/dts/r8a7791-henninger.dts
===================================================================
@@ -135,6 +135,11 @@
 		renesas,groups = "usb1";
 		renesas,function = "usb1";
 	};
+
+	vin0_pins: vin0 {
+		renesas,groups = "vin0_data8", "vin0_clk";
+		renesas,function = "vin0";
+	};
 };
 
 &scif0 {
@@ -191,6 +196,19 @@
 
 	status = "okay";
 	clock-frequency = <400000>;
+
+	composite-in at 20 {
+		compatible = "adi,adv7180";
+		reg = <0x20>;
+		remote = <&vin0>;
+
+		port {
+			adv7180: endpoint {
+				bus-width = <8>;
+				remote-endpoint = <&vin0ep>;
+			};
+		};
+	};
 };
 
 &qspi {
@@ -260,3 +278,20 @@
 &pciec {
 	status = "okay";
 };
+
+/* composite video input */
+&vin0 {
+	status = "ok";
+	pinctrl-0 = <&vin0_pins>;
+	pinctrl-names = "default";
+
+	port {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		vin0ep: endpoint {
+			remote-endpoint = <&adv7180>;
+			bus-width = <8>;
+		};
+	};
+};
#3 lore raw

v2 cover Add VIN and ADV7180 device tree support for R8A7791/Henninger board

In reply to Sergei Shtylyov
Quoted 10 lines · Sergei Shtylyov

Hello.

Here's the set of 2 patches against Simon Horman's 'renesas.git' repo,
'renesas-devel-v3.16-rc7-20140731v2' tag. Here we add the VIN and ADV7180 video decoder device tree support on the R8A7791/Henninger board. The patchset requires Ben Dooks' 'rcar_vin' and 'soc_camera' DT support patches already merged to the 'media_tree.git' in order to work.

[1/2] ARM: shmobile: r8a7791: add VIN DT support [2/2] ARM: shmobile: henninger: add VIN0/ADV7180 DT support

Thanks, I have queued these up for v3.18.

#4 lore raw

PATCH 1/1 ARM: shmobile: koelsch: add VIN1/ADV7180 DT support

In reply to Sergei Shtylyov

Define the Koelsch board dependent part of the VIN1 device node. Add the device node for Analog Devices ADV7180 video decoder to I2C2 bus. Add the necessary subnodes to interconnect VIN1 and ADV7180 devices.

---
This patch is against the 'renesas-devel-v3.16-20140804' tag of Simon Horman's 'renesas.git' repo. It requires the 'soc_camera' and 'rcar_vin' device tree support patches (already merged to the 'media_tree.git' repo) in order to work.

 arch/arm/boot/dts/r8a7791-koelsch.dts |   35 ++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
arch/arm/boot/dts/r8a7791-koelsch.dts +35 -0
Index: renesas/arch/arm/boot/dts/r8a7791-koelsch.dts
===================================================================
@@ -289,6 +289,11 @@
 		renesas,groups = "usb1";
 		renesas,function = "usb1";
 	};
+
+	vin1_pins: vin1 {
+		renesas,groups = "vin1_data8", "vin1_clk";
+		renesas,function = "vin1";
+	};
 };
 
 &ether {
@@ -416,6 +421,19 @@
 	status = "okay";
 	clock-frequency = <400000>;
 
+	composite-in at 20 {
+		compatible = "adi,adv7180";
+		reg = <0x20>;
+		remote = <&vin1>;
+
+		port {
+			adv7180: endpoint {
+				bus-width = <8>;
+				remote-endpoint = <&vin1ep>;
+			};
+		};
+	};
+
 	eeprom at 50 {
 		compatible = "renesas,24c02";
 		reg = <0x50>;
@@ -463,3 +481,20 @@
 &cpu0 {
 	cpu0-supply = <&vdd_dvfs>;
 };
+
+/* composite video input */
+&vin1 {
+	status = "ok";
+	pinctrl-0 = <&vin1_pins>;
+	pinctrl-names = "default";
+
+	port {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		vin1ep: endpoint {
+			remote-endpoint = <&adv7180>;
+			bus-width = <8>;
+		};
+	};
+};
#5 lore raw

PATCH 1/1 ARM: shmobile: koelsch: add VIN1/ADV7180 DT support

Quoted 6 lines · sergei.shtylyov at cogentembedded.com

Define the Koelsch board dependent part of the VIN1 device node. Add the device node for Analog Devices ADV7180 video decoder to I2C2 bus. Add the necessary subnodes to interconnect VIN1 and ADV7180 devices.

Quoted 7 lines

---
This patch is against the 'renesas-devel-v3.16-20140804' tag of Simon Horman's 'renesas.git' repo. It requires the 'soc_camera' and 'rcar_vin' device tree support patches (already merged to the 'media_tree.git' repo) in order to work.

 arch/arm/boot/dts/r8a7791-koelsch.dts |   35 ++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

Thanks, I have queued this up for v3.18.

#6 lore raw

PATCH 1/1 ARM: shmobile: koelsch: add VIN1/ADV7180 DT support

In reply to sergei.shtylyov at cogentembedded.com

Hi Sergei,

Thanks for your patch.

Quoted 19 lines · On Thu, Aug 7, 2014 at 3:38 AM, <[email protected]> wrote:

Define the Koelsch board dependent part of the VIN1 device node. Add the device node for Analog Devices ADV7180 video decoder to I2C2 bus. Add the necessary subnodes to interconnect VIN1 and ADV7180 devices.

---
This patch is against the 'renesas-devel-v3.16-20140804' tag of Simon Horman's 'renesas.git' repo. It requires the 'soc_camera' and 'rcar_vin' device tree support patches (already merged to the 'media_tree.git' repo) in order to work.

 arch/arm/boot/dts/r8a7791-koelsch.dts |   35 ++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

Index: renesas/arch/arm/boot/dts/r8a7791-koelsch.dts
===================================================================

arch/arm/boot/dts/r8a7791-koelsch.dts line 297

Quoted 9 lines
arch/arm/boot/dts/r8a7791-koelsch.dts +5 -0
@@ -289,6 +289,11 @@
                renesas,groups = "usb1";
                renesas,function = "usb1";
        };
+
+       vin1_pins: vin1 {
+               renesas,groups = "vin1_data8", "vin1_clk";
+               renesas,function = "vin1";
+       };
 };

Quick question: Does this pin description match to the board layout? I suspect that clock and data by themselves are not enough.

I'm not sure about Koelsch, but in case of older SoCs using the CEU there were signals used like horizontal and vertical sync and sometimes even something that was used to determine interlace.

Thanks,

/ magnus

#7 lore raw

PATCH 1/1 ARM: shmobile: koelsch: add VIN1/ADV7180 DT support

Hello.

Quoted 14 lines · Magnus Damm
Quoted 13 lines

Define the Koelsch board dependent part of the VIN1 device node. Add the device node for Analog Devices ADV7180 video decoder to I2C2 bus. Add the necessary subnodes to interconnect VIN1 and ADV7180 devices.

---
This patch is against the 'renesas-devel-v3.16-20140804' tag of Simon Horman's 'renesas.git' repo. It requires the 'soc_camera' and 'rcar_vin' device tree support patches (already merged to the 'media_tree.git' repo) in order to work.

  arch/arm/boot/dts/r8a7791-koelsch.dts |   35 ++++++++++++++++++++++++++++++++++
  1 file changed, 35 insertions(+)
Quoted 16 lines
Quoted 5 lines

Index: renesas/arch/arm/boot/dts/r8a7791-koelsch.dts
===================================================================

arch/arm/boot/dts/r8a7791-koelsch.dts line 297

Quoted 9 lines
arch/arm/boot/dts/r8a7791-koelsch.dts +5 -0
@@ -289,6 +289,11 @@
                 renesas,groups = "usb1";
                 renesas,function = "usb1";
         };
+
+       vin1_pins: vin1 {
+               renesas,groups = "vin1_data8", "vin1_clk";
+               renesas,function = "vin1";
+       };
  };

Quick question: Does this pin description match to the board layout? I

Yes, it does.

Quoted 1 line

suspect that clock and data by themselves are not enough.

They are enough as BT.656 interconnect is used between VIN1 and ADV7180.

Quoted 3 lines

I'm not sure about Koelsch, but in case of older SoCs using the CEU there were signals used like horizontal and vertical sync and sometimes even something that was used to determine interlace.

The HS and VS/FIELD pins of ADV7180 are left unconnected. There's also
ADV7612 connected to VIN0 on this board, there the HSYNC and VSYNC/FIELD pins are connected; however, ADV7612 is not supported yet.

Quoted 3 lines

Thanks,

/ magnus

WBR, Sergei