diff mbox

[v2,3/3] ARM: dts: gose: add composite video input

Message ID 1476802943-5189-4-git-send-email-ulrich.hecht+renesas@gmail.com (mailing list archive)
State Superseded
Commit 8dfbde49e2a44c803a09e412e6c82d55f561c40d
Delegated to: Simon Horman
Headers show

Commit Message

Ulrich Hecht Oct. 18, 2016, 3:02 p.m. UTC
Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
---
 arch/arm/boot/dts/r8a7793-gose.dts | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

Comments

Laurent Pinchart Oct. 18, 2016, 3:49 p.m. UTC | #1
Hi Ulrich,

(CC'ing the device tree mailing list)

Thank you for the patch.

On Tuesday 18 Oct 2016 17:02:23 Ulrich Hecht wrote:
> Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
> ---
>  arch/arm/boot/dts/r8a7793-gose.dts | 36 ++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/r8a7793-gose.dts
> b/arch/arm/boot/dts/r8a7793-gose.dts index a47ea4b..2606021 100644
> --- a/arch/arm/boot/dts/r8a7793-gose.dts
> +++ b/arch/arm/boot/dts/r8a7793-gose.dts
> @@ -390,6 +390,11 @@
>  		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", 
"vin0_clk";
>  		function = "vin0";
>  	};
> +
> +	vin1_pins: vin1 {
> +		groups = "vin1_data8", "vin1_clk";
> +		function = "vin1";
> +	};
>  };
> 
>  &ether {
> @@ -515,6 +520,19 @@
>  		reg = <0x12>;
>  	};
> 
> +	composite-in@20 {
> +		compatible = "adi,adv7180";
> +		reg = <0x20>;
> +		remote = <&vin1>;
> +
> +		port {
> +			adv7180: endpoint {
> +				bus-width = <8>;
> +				remote-endpoint = <&vin1ep>;
> +			};
> +		};

As explained before, you need to update the ADV7180 DT bindings first to 
document ports. I've discussed this with Hans last week, and we agreed that DT 
should model physical ports. Unfortunately the ADV7180 comes in four different 
packages with different feature sets that affect ports.

ADV7180  K CP32 Z               32-Lead Lead Frame Chip Scale Package
ADV7180  B CP32 Z               32-Lead Lead Frame Chip Scale Package
ADV7180 WB CP32 Z               32-Lead Lead Frame Chip Scale Package

ADV7180  B CP   Z               40-Lead Lead Frame Chip Scale Package
ADV7180 WB CP   Z               40-Lead Lead Frame Chip Scale Package

ADV7180  K ST48 Z               48-Lead Low Profile Quad Flat Package
ADV7180  B ST48 Z               48-Lead Low Profile Quad Flat Package
ADV7180 WB ST48 Z               48-Lead Low Profile Quad Flat Package

ADV7180  B ST   Z               64-Lead Low Profile Quad Flat Package
ADV7180 WB ST   Z               64-Lead Low Profile Quad Flat Package

W tells whether the part is qualified for automotive applications. It has no 
impact from a software point of view. K and B indicate the temperature range, 
and also have no software impact. The Z suffix indicates that the part is RoHS 
compliant (they all are) and also has no impact.

Unfortunately the W and K/B qualifiers come before the package qualifier. I'm 
not sure whether we could simply drop W, K/B and W and specify the following 
compatible strings

- adv7180cp32
- adv7180cp
- adv7180st48
- adv7180st

or if we need more compatible strings that would match the full chip name. 
Feedback on that from the device tree maintainers would be appreciated.

Regardless of what compatible strings end up being used, the bindings should 
document 3 or 6 input ports depending on the model, and one output port. You 
can number the input ports from 0 to 2 or 0 to 5 depending on the model and 
the output port 3 or 6. Another option would be to number the output port 0 
and the input ports 1 to 3 or 1 to 6 depending on the model. That would give a 
fixed number for the output port across all models, but might be a bit 
consuming as most bindings number input ports before output ports.

For the Gose board you should then add one composite connector to the device 
tree ("composite-video-connector") and connect it to port 0 of the 
ADV7180WBCP32.

> +	};
> +
>  	hdmi@39 {
>  		compatible = "adi,adv7511w";
>  		reg = <0x39>;
> @@ -622,3 +640,21 @@
>  		};
>  	};
>  };
> +
> +/* composite video input */
> +&vin1 {
> +	pinctrl-0 = <&vin1_pins>;
> +	pinctrl-names = "default";
> +
> +	status = "okay";
> +
> +	port {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		vin1ep: endpoint {
> +			remote-endpoint = <&adv7180>;
> +			bus-width = <8>;
> +		};
> +	};
> +};
Laurent Pinchart Oct. 18, 2016, 3:50 p.m. UTC | #2
Hi Ulrich,

(CC'ing the device tree mailing list - for real this time)

Thank you for the patch.

On Tuesday 18 Oct 2016 17:02:23 Ulrich Hecht wrote:
> Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
> ---
>  arch/arm/boot/dts/r8a7793-gose.dts | 36 ++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/r8a7793-gose.dts
> b/arch/arm/boot/dts/r8a7793-gose.dts index a47ea4b..2606021 100644
> --- a/arch/arm/boot/dts/r8a7793-gose.dts
> +++ b/arch/arm/boot/dts/r8a7793-gose.dts
> @@ -390,6 +390,11 @@
>  		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", 
"vin0_clk";
>  		function = "vin0";
>  	};
> +
> +	vin1_pins: vin1 {
> +		groups = "vin1_data8", "vin1_clk";
> +		function = "vin1";
> +	};
>  };
> 
>  &ether {
> @@ -515,6 +520,19 @@
>  		reg = <0x12>;
>  	};
> 
> +	composite-in@20 {
> +		compatible = "adi,adv7180";
> +		reg = <0x20>;
> +		remote = <&vin1>;
> +
> +		port {
> +			adv7180: endpoint {
> +				bus-width = <8>;
> +				remote-endpoint = <&vin1ep>;
> +			};
> +		};

As explained before, you need to update the ADV7180 DT bindings first to 
document ports. I've discussed this with Hans last week, and we agreed that DT 
should model physical ports. Unfortunately the ADV7180 comes in four different 
packages with different feature sets that affect ports.

ADV7180  K CP32 Z               32-Lead Lead Frame Chip Scale Package
ADV7180  B CP32 Z               32-Lead Lead Frame Chip Scale Package
ADV7180 WB CP32 Z               32-Lead Lead Frame Chip Scale Package

ADV7180  B CP   Z               40-Lead Lead Frame Chip Scale Package
ADV7180 WB CP   Z               40-Lead Lead Frame Chip Scale Package

ADV7180  K ST48 Z               48-Lead Low Profile Quad Flat Package
ADV7180  B ST48 Z               48-Lead Low Profile Quad Flat Package
ADV7180 WB ST48 Z               48-Lead Low Profile Quad Flat Package

ADV7180  B ST   Z               64-Lead Low Profile Quad Flat Package
ADV7180 WB ST   Z               64-Lead Low Profile Quad Flat Package

W tells whether the part is qualified for automotive applications. It has no 
impact from a software point of view. K and B indicate the temperature range, 
and also have no software impact. The Z suffix indicates that the part is RoHS 
compliant (they all are) and also has no impact.

Unfortunately the W and K/B qualifiers come before the package qualifier. I'm 
not sure whether we could simply drop W, K/B and W and specify the following 
compatible strings

- adv7180cp32
- adv7180cp
- adv7180st48
- adv7180st

or if we need more compatible strings that would match the full chip name. 
Feedback on that from the device tree maintainers would be appreciated.

Regardless of what compatible strings end up being used, the bindings should 
document 3 or 6 input ports depending on the model, and one output port. You 
can number the input ports from 0 to 2 or 0 to 5 depending on the model and 
the output port 3 or 6. Another option would be to number the output port 0 
and the input ports 1 to 3 or 1 to 6 depending on the model. That would give a 
fixed number for the output port across all models, but might be a bit 
consuming as most bindings number input ports before output ports.

For the Gose board you should then add one composite connector to the device 
tree ("composite-video-connector") and connect it to port 0 of the 
ADV7180WBCP32.

> +	};
> +
>  	hdmi@39 {
>  		compatible = "adi,adv7511w";
>  		reg = <0x39>;
> @@ -622,3 +640,21 @@
>  		};
>  	};
>  };
> +
> +/* composite video input */
> +&vin1 {
> +	pinctrl-0 = <&vin1_pins>;
> +	pinctrl-names = "default";
> +
> +	status = "okay";
> +
> +	port {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		vin1ep: endpoint {
> +			remote-endpoint = <&adv7180>;
> +			bus-width = <8>;
> +		};
> +	};
> +};
Laurent Pinchart Nov. 23, 2016, 8:56 a.m. UTC | #3
Hello device tree maintainers,

On Tuesday 18 Oct 2016 18:50:39 Laurent Pinchart wrote:
> On Tuesday 18 Oct 2016 17:02:23 Ulrich Hecht wrote:
> > Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
> > ---
> > 
> >  arch/arm/boot/dts/r8a7793-gose.dts | 36 +++++++++++++++++++++++++++++++
> >  1 file changed, 36 insertions(+)
> > 
> > diff --git a/arch/arm/boot/dts/r8a7793-gose.dts
> > b/arch/arm/boot/dts/r8a7793-gose.dts index a47ea4b..2606021 100644
> > --- a/arch/arm/boot/dts/r8a7793-gose.dts
> > +++ b/arch/arm/boot/dts/r8a7793-gose.dts

[snip]

> > +	composite-in@20 {
> > +		compatible = "adi,adv7180";
> > +		reg = <0x20>;
> > +		remote = <&vin1>;
> > +
> > +		port {
> > +			adv7180: endpoint {
> > +				bus-width = <8>;
> > +				remote-endpoint = <&vin1ep>;
> > +			};
> > +		};
> 
> As explained before, you need to update the ADV7180 DT bindings first to
> document ports. I've discussed this with Hans last week, and we agreed that
> DT should model physical ports. Unfortunately the ADV7180 comes in four
> different packages with different feature sets that affect ports.
> 
> ADV7180  K CP32 Z               32-Lead Lead Frame Chip Scale Package
> ADV7180  B CP32 Z               32-Lead Lead Frame Chip Scale Package
> ADV7180 WB CP32 Z               32-Lead Lead Frame Chip Scale Package
> 
> ADV7180  B CP   Z               40-Lead Lead Frame Chip Scale Package
> ADV7180 WB CP   Z               40-Lead Lead Frame Chip Scale Package
> 
> ADV7180  K ST48 Z               48-Lead Low Profile Quad Flat Package
> ADV7180  B ST48 Z               48-Lead Low Profile Quad Flat Package
> ADV7180 WB ST48 Z               48-Lead Low Profile Quad Flat Package
> 
> ADV7180  B ST   Z               64-Lead Low Profile Quad Flat Package
> ADV7180 WB ST   Z               64-Lead Low Profile Quad Flat Package
> 
> W tells whether the part is qualified for automotive applications. It has no
> impact from a software point of view. K and B indicate the temperature
> range, and also have no software impact. The Z suffix indicates that the
> part is RoHS compliant (they all are) and also has no impact.
> 
> Unfortunately the W and K/B qualifiers come before the package qualifier.
> I'm not sure whether we could simply drop W, K/B and W and specify the
> following compatible strings
> 
> - adv7180cp32
> - adv7180cp
> - adv7180st48
> - adv7180st
> 
> or if we need more compatible strings that would match the full chip name.
> Feedback on that from the device tree maintainers would be appreciated.

Your input would be appreciated on this.

> Regardless of what compatible strings end up being used, the bindings should
> document 3 or 6 input ports depending on the model, and one output port.
> You can number the input ports from 0 to 2 or 0 to 5 depending on the model
> and the output port 3 or 6. Another option would be to number the output
> port 0 and the input ports 1 to 3 or 1 to 6 depending on the model. That
> would give a fixed number for the output port across all models, but might
> be a bit consuming as most bindings number input ports before output ports.
> 
> For the Gose board you should then add one composite connector to the device
> tree ("composite-video-connector") and connect it to port 0 of the
> ADV7180WBCP32.
> 
> > +	};
> > +
diff mbox

Patch

diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index a47ea4b..2606021 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -390,6 +390,11 @@ 
 		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
 		function = "vin0";
 	};
+
+	vin1_pins: vin1 {
+		groups = "vin1_data8", "vin1_clk";
+		function = "vin1";
+	};
 };
 
 &ether {
@@ -515,6 +520,19 @@ 
 		reg = <0x12>;
 	};
 
+	composite-in@20 {
+		compatible = "adi,adv7180";
+		reg = <0x20>;
+		remote = <&vin1>;
+
+		port {
+			adv7180: endpoint {
+				bus-width = <8>;
+				remote-endpoint = <&vin1ep>;
+			};
+		};
+	};
+
 	hdmi@39 {
 		compatible = "adi,adv7511w";
 		reg = <0x39>;
@@ -622,3 +640,21 @@ 
 		};
 	};
 };
+
+/* composite video input */
+&vin1 {
+	pinctrl-0 = <&vin1_pins>;
+	pinctrl-names = "default";
+
+	status = "okay";
+
+	port {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		vin1ep: endpoint {
+			remote-endpoint = <&adv7180>;
+			bus-width = <8>;
+		};
+	};
+};