diff mbox

[2/3] ARM: dts: gose: add HDMI input

Message ID 20160916130935.21292-3-ulrich.hecht+renesas@gmail.com (mailing list archive)
State Changes Requested
Delegated to: Simon Horman
Headers show

Commit Message

Ulrich Hecht Sept. 16, 2016, 1:09 p.m. UTC
Identical to the setup on Lager.

Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
---
 arch/arm/boot/dts/r8a7793-gose.dts | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

Comments

Laurent Pinchart Sept. 30, 2016, 12:40 p.m. UTC | #1
Hi Ulrich,

Thank you for the patch.

On Friday 16 Sep 2016 15:09:34 Ulrich Hecht wrote:
> Identical to the setup on Lager.
> 
> Signed-off-by: Ulrich Hecht <ulrich.hecht+renesas@gmail.com>
> ---
>  arch/arm/boot/dts/r8a7793-gose.dts | 41 +++++++++++++++++++++++++++++++++++
>  1 file changed, 41 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/r8a7793-gose.dts
> b/arch/arm/boot/dts/r8a7793-gose.dts index 90af186..e22d63c 100644
> --- a/arch/arm/boot/dts/r8a7793-gose.dts
> +++ b/arch/arm/boot/dts/r8a7793-gose.dts
> @@ -374,6 +374,11 @@
>  		groups = "audio_clk_a";
>  		function = "audio_clk";
>  	};
> +
> +	vin0_pins: vin0 {
> +		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", 
"vin0_clk";
> +		function = "vin0";
> +	};
>  };
> 
>  &ether {
> @@ -531,6 +536,21 @@
>  		};
>  	};
> 
> +	hdmi-in@4c {
> +		compatible = "adi,adv7612";
> +		reg = <0x4c>;
> +		interrupt-parent = <&gpio1>;
> +		interrupts = <20 IRQ_TYPE_LEVEL_LOW>;

Isn't the interrupt signal connected to GP4_2 ?

> +		remote = <&vin0>;

What is this for ?

> +		default-input = <0>;
> +
> +		port {
> +			adv7612: endpoint {
> +				remote-endpoint = <&vin0ep>;
> +			};
> +		};

The ADV7612 has three ports. Ports 0 and 1 correspond to the HDMI inputs, and 
port 2 to the digital output. You can leave port 1 out as it's not used on the 
board, but you should specify both ports 0 and 2, and add an HDMI connector DT 
node connected to port 0 of the ADV7612.

> +	};
> +
>  	eeprom@50 {
>  		compatible = "renesas,r1ex24002", "atmel,24c02";
>  		reg = <0x50>;
> @@ -558,3 +578,24 @@
>  &ssi1 {
>  	shared-pin;
>  };
> +
> +/* HDMI video input */
> +&vin0 {
> +	status = "okay";
> +	pinctrl-0 = <&vin0_pins>;
> +	pinctrl-names = "default";
> +
> +	port {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		vin0ep: endpoint {
> +			remote-endpoint = <&adv7612>;
> +			bus-width = <24>;
> +			hsync-active = <0>;
> +			vsync-active = <0>;
> +			pclk-sample = <1>;
> +			data-active = <1>;
> +		};
> +	};
> +};
Geert Uytterhoeven Sept. 30, 2016, 1 p.m. UTC | #2
On Fri, Sep 30, 2016 at 2:40 PM, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>> --- a/arch/arm/boot/dts/r8a7793-gose.dts
>> +++ b/arch/arm/boot/dts/r8a7793-gose.dts
>> @@ -374,6 +374,11 @@
>>               groups = "audio_clk_a";
>>               function = "audio_clk";
>>       };
>> +
>> +     vin0_pins: vin0 {
>> +             groups = "vin0_data24", "vin0_sync", "vin0_clkenb",
> "vin0_clk";
>> +             function = "vin0";
>> +     };
>>  };
>>
>>  &ether {
>> @@ -531,6 +536,21 @@
>>               };
>>       };
>>
>> +     hdmi-in@4c {
>> +             compatible = "adi,adv7612";
>> +             reg = <0x4c>;
>> +             interrupt-parent = <&gpio1>;
>> +             interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
>
> Isn't the interrupt signal connected to GP4_2 ?

No idea about Gose, but on Koelsch it is (hence koelsch DTS is wrong??)

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
Laurent Pinchart Sept. 30, 2016, 1:32 p.m. UTC | #3
On Friday 30 Sep 2016 15:00:59 Geert Uytterhoeven wrote:
> On Fri, Sep 30, 2016 at 2:40 PM, Laurent Pinchart wrote:
> >> --- a/arch/arm/boot/dts/r8a7793-gose.dts
> >> +++ b/arch/arm/boot/dts/r8a7793-gose.dts
> >> @@ -374,6 +374,11 @@
> >>               groups = "audio_clk_a";
> >>               function = "audio_clk";
> >>       };
> >> +
> >> +     vin0_pins: vin0 {
> >> +             groups = "vin0_data24", "vin0_sync", "vin0_clkenb",
> >> "vin0_clk";
> >> +             function = "vin0";
> >> +     };
> >>  };
> >>  
> >>  &ether {
> >> @@ -531,6 +536,21 @@
> >>               };
> >>       };
> >> 
> >> +     hdmi-in@4c {
> >> +             compatible = "adi,adv7612";
> >> +             reg = <0x4c>;
> >> +             interrupt-parent = <&gpio1>;
> >> +             interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
> > 
> > Isn't the interrupt signal connected to GP4_2 ?
> 
> No idea about Gose, but on Koelsch it is (hence koelsch DTS is wrong??)

I believe so. I don't have a Koelsch board anymore so I can't test that. 
Niklas, do you have a Koelsch on which you could confirm the IRQ number ?
Niklas Söderlund Oct. 1, 2016, 9:19 a.m. UTC | #4
On 2016-09-30 16:32:52 +0300, Laurent Pinchart wrote:
> On Friday 30 Sep 2016 15:00:59 Geert Uytterhoeven wrote:
> > On Fri, Sep 30, 2016 at 2:40 PM, Laurent Pinchart wrote:
> > >> --- a/arch/arm/boot/dts/r8a7793-gose.dts
> > >> +++ b/arch/arm/boot/dts/r8a7793-gose.dts
> > >> @@ -374,6 +374,11 @@
> > >>               groups = "audio_clk_a";
> > >>               function = "audio_clk";
> > >>       };
> > >> +
> > >> +     vin0_pins: vin0 {
> > >> +             groups = "vin0_data24", "vin0_sync", "vin0_clkenb",
> > >> "vin0_clk";
> > >> +             function = "vin0";
> > >> +     };
> > >>  };
> > >>  
> > >>  &ether {
> > >> @@ -531,6 +536,21 @@
> > >>               };
> > >>       };
> > >> 
> > >> +     hdmi-in@4c {
> > >> +             compatible = "adi,adv7612";
> > >> +             reg = <0x4c>;
> > >> +             interrupt-parent = <&gpio1>;
> > >> +             interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
> > > 
> > > Isn't the interrupt signal connected to GP4_2 ?
> > 
> > No idea about Gose, but on Koelsch it is (hence koelsch DTS is wrong??)
> 
> I believe so. I don't have a Koelsch board anymore so I can't test that. 
> Niklas, do you have a Koelsch on which you could confirm the IRQ number ?

I have done the best I can to prove the IRQ, it proved to be a bit 
tricky or maybe I'm doing it the wrong way.

I hooked up my oscilloscope to EXIO Connector D pin 7, which according 
to the schematics should be GP4_2 and attached to a pull-up at 3.3v. I 
can observe the pull-up and if I control the pin using the 
/sys/class/gpio interface I do indeed control GP4_2, So the schematic is 
correct at least this far.

The trouble I have is that the adv7612 driver do not currently consume 
the interrupt so I can't see multiple field interrupts by observing the 
pin. I do however see what I believe is the first field interrupt, if I 
observe the pin just as I turn on my HDMI video source the pin go from 1 
-> 0 but is never reset and a reset of the entire board is needed if you 
wish to see it again.

If I on the other hand observe pin GP1_20 on EXIO Connector A pin 66 I 
notice nothing on the oscilloscope from that it's set to 3.3V at power 
on, no mater how much HDMI input i run.

In conclusion, yes I do believe the DTS is wrong and that GP4_2 is the 
correct interrupt signal on Koelsch. This adds up with the schematics 
and my rudimentary measurements.
Laurent Pinchart Oct. 3, 2016, 10:16 a.m. UTC | #5
Hi Niklas,

On Saturday 01 Oct 2016 11:19:31 Niklas Söderlund wrote:
> On 2016-09-30 16:32:52 +0300, Laurent Pinchart wrote:
> > On Friday 30 Sep 2016 15:00:59 Geert Uytterhoeven wrote:
> >> On Fri, Sep 30, 2016 at 2:40 PM, Laurent Pinchart wrote:
> >>>> --- a/arch/arm/boot/dts/r8a7793-gose.dts
> >>>> +++ b/arch/arm/boot/dts/r8a7793-gose.dts

[snip]

> >>>> @@ -531,6 +536,21 @@
> >>>>               };
> >>>>       };
> >>>> 
> >>>> +     hdmi-in@4c {
> >>>> +             compatible = "adi,adv7612";
> >>>> +             reg = <0x4c>;
> >>>> +             interrupt-parent = <&gpio1>;
> >>>> +             interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
> >>> 
> >>> Isn't the interrupt signal connected to GP4_2 ?
> >> 
> >> No idea about Gose, but on Koelsch it is (hence koelsch DTS is wrong??)
> > 
> > I believe so. I don't have a Koelsch board anymore so I can't test that.
> > Niklas, do you have a Koelsch on which you could confirm the IRQ number ?
> 
> I have done the best I can to prove the IRQ, it proved to be a bit
> tricky or maybe I'm doing it the wrong way.
> 
> I hooked up my oscilloscope to EXIO Connector D pin 7, which according
> to the schematics should be GP4_2 and attached to a pull-up at 3.3v. I
> can observe the pull-up and if I control the pin using the
> /sys/class/gpio interface I do indeed control GP4_2, So the schematic is
> correct at least this far.
> 
> The trouble I have is that the adv7612 driver do not currently consume
> the interrupt so I can't see multiple field interrupts by observing the
> pin. I do however see what I believe is the first field interrupt, if I
> observe the pin just as I turn on my HDMI video source the pin go from 1
> -> 0 but is never reset and a reset of the entire board is needed if you
> wish to see it again.
> 
> If I on the other hand observe pin GP1_20 on EXIO Connector A pin 66 I
> notice nothing on the oscilloscope from that it's set to 3.3V at power
> on, no mater how much HDMI input i run.
> 
> In conclusion, yes I do believe the DTS is wrong and that GP4_2 is the
> correct interrupt signal on Koelsch. This adds up with the schematics
> and my rudimentary measurements.

Thanks a lot for testing. Ulrich, could you please fix this patch accordingly 
?
diff mbox

Patch

diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 90af186..e22d63c 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -374,6 +374,11 @@ 
 		groups = "audio_clk_a";
 		function = "audio_clk";
 	};
+
+	vin0_pins: vin0 {
+		groups = "vin0_data24", "vin0_sync", "vin0_clkenb", "vin0_clk";
+		function = "vin0";
+	};
 };
 
 &ether {
@@ -531,6 +536,21 @@ 
 		};
 	};
 
+	hdmi-in@4c {
+		compatible = "adi,adv7612";
+		reg = <0x4c>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
+		remote = <&vin0>;
+		default-input = <0>;
+
+		port {
+			adv7612: endpoint {
+				remote-endpoint = <&vin0ep>;
+			};
+		};
+	};
+
 	eeprom@50 {
 		compatible = "renesas,r1ex24002", "atmel,24c02";
 		reg = <0x50>;
@@ -558,3 +578,24 @@ 
 &ssi1 {
 	shared-pin;
 };
+
+/* HDMI video input */
+&vin0 {
+	status = "okay";
+	pinctrl-0 = <&vin0_pins>;
+	pinctrl-names = "default";
+
+	port {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		vin0ep: endpoint {
+			remote-endpoint = <&adv7612>;
+			bus-width = <24>;
+			hsync-active = <0>;
+			vsync-active = <0>;
+			pclk-sample = <1>;
+			data-active = <1>;
+		};
+	};
+};