diff mbox

ARM: dts: duovero-parlor: Add HDMI output

Message ID 1400595946-1294-1-git-send-email-florian.vaussard@epfl.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Florian Vaussard May 20, 2014, 2:25 p.m. UTC
Add the necessary DTS nodes to enable the micro-HDMI output on Parlor
board.

Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
---
 arch/arm/boot/dts/omap4-duovero-parlor.dts | 42 ++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

Comments

Tony Lindgren May 20, 2014, 2:39 p.m. UTC | #1
* Florian Vaussard <florian.vaussard@epfl.ch> [140520 07:26]:
> @@ -77,6 +94,15 @@
>  			0x30 (PIN_INPUT_PULLUP | MUX_MODE3)	/* gpmc_a24.gpio_48: amdix enabled */
>  		>;
>  	};
> +
> +	dss_hdmi_pins: pinmux_dss_hdmi_pins {
> +		pinctrl-single,pins = <
> +			0x58 (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_hpd.hdmi_hpd */
> +			0x5a (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_cec.hdmi_cec */
> +			0x5c (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_scl.hdmi_ddc_scl */
> +			0x5e (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_sda.hdmi_ddc_sda */
> +		>;
> +	};
>  };
>  
>  &i2c2 {

This seems to apply with fuzz against omap-for-v3.16/dt-v2, but
should be updated against omap-for-v3.16/dt-v2 to use OMAP4_IOPAD
as omap4-duovero-parlor.dts is now using it. That makes checking
the muxing easier against the TRM. See commit 5efa994b0d49 for
the script Joachim used.

Regards,

Tony
Joachim Eastwood May 20, 2014, 6:09 p.m. UTC | #2
On 20 May 2014 16:25, Florian Vaussard <florian.vaussard@epfl.ch> wrote:
> Add the necessary DTS nodes to enable the micro-HDMI output on Parlor
> board.
>
> Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
> ---
>  arch/arm/boot/dts/omap4-duovero-parlor.dts | 42 ++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>
> diff --git a/arch/arm/boot/dts/omap4-duovero-parlor.dts b/arch/arm/boot/dts/omap4-duovero-parlor.dts
> index 96f51d8..3b234b8 100644
> --- a/arch/arm/boot/dts/omap4-duovero-parlor.dts
> +++ b/arch/arm/boot/dts/omap4-duovero-parlor.dts
> @@ -15,6 +15,10 @@
>         model = "OMAP4430 Gumstix Duovero on Parlor";
>         compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
>
> +       aliases {
> +               display0 = &hdmi0;
> +       };
> +
>         leds {
>                 compatible = "gpio-leds";
>                 led0 {
> @@ -35,6 +39,19 @@
>                         gpio-key,wakeup;
>                 };
>         };
> +
> +       hdmi0: connector@0 {
> +               compatible = "hdmi-connector";
> +               label = "hdmi";
> +
> +               type = "d";
> +
> +               port {
> +                       hdmi_connector_in: endpoint {
> +                               remote-endpoint = <&hdmi_out>;
> +                       };
> +               };
> +       };
>  };

No, HPD (hotplug) pin?

I think Parlor has one and the "hdmi-connector" binding now supports
it. See Tomi's 3.16/fbdev-omap branch.

regards
Joachim Eastwood
Florian Vaussard May 21, 2014, 6:41 a.m. UTC | #3
On 05/20/2014 04:39 PM, Tony Lindgren wrote:
> * Florian Vaussard <florian.vaussard@epfl.ch> [140520 07:26]:
>> @@ -77,6 +94,15 @@
>>  			0x30 (PIN_INPUT_PULLUP | MUX_MODE3)	/* gpmc_a24.gpio_48: amdix enabled */
>>  		>;
>>  	};
>> +
>> +	dss_hdmi_pins: pinmux_dss_hdmi_pins {
>> +		pinctrl-single,pins = <
>> +			0x58 (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_hpd.hdmi_hpd */
>> +			0x5a (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_cec.hdmi_cec */
>> +			0x5c (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_scl.hdmi_ddc_scl */
>> +			0x5e (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_sda.hdmi_ddc_sda */
>> +		>;
>> +	};
>>  };
>>  
>>  &i2c2 {
> 
> This seems to apply with fuzz against omap-for-v3.16/dt-v2, but
> should be updated against omap-for-v3.16/dt-v2 to use OMAP4_IOPAD
> as omap4-duovero-parlor.dts is now using it. That makes checking
> the muxing easier against the TRM. See commit 5efa994b0d49 for
> the script Joachim used.
> 

It is based on Tomi's for-next, which is based on 3.15-rc4, so the fuzz
is not surprising. I will update against omap-for-v3.16/dt-v2.

Regards,
Florian
Florian Vaussard May 21, 2014, 6:43 a.m. UTC | #4
Hi Joachim,

On 05/20/2014 08:09 PM, Joachim Eastwood wrote:
> On 20 May 2014 16:25, Florian Vaussard <florian.vaussard@epfl.ch> wrote:
>> Add the necessary DTS nodes to enable the micro-HDMI output on Parlor
>> board.
>>
>> Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
>> ---
>>  arch/arm/boot/dts/omap4-duovero-parlor.dts | 42 ++++++++++++++++++++++++++++++
>>  1 file changed, 42 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/omap4-duovero-parlor.dts b/arch/arm/boot/dts/omap4-duovero-parlor.dts
>> index 96f51d8..3b234b8 100644
>> --- a/arch/arm/boot/dts/omap4-duovero-parlor.dts
>> +++ b/arch/arm/boot/dts/omap4-duovero-parlor.dts
>> @@ -15,6 +15,10 @@
>>         model = "OMAP4430 Gumstix Duovero on Parlor";
>>         compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
>>
>> +       aliases {
>> +               display0 = &hdmi0;
>> +       };
>> +
>>         leds {
>>                 compatible = "gpio-leds";
>>                 led0 {
>> @@ -35,6 +39,19 @@
>>                         gpio-key,wakeup;
>>                 };
>>         };
>> +
>> +       hdmi0: connector@0 {
>> +               compatible = "hdmi-connector";
>> +               label = "hdmi";
>> +
>> +               type = "d";
>> +
>> +               port {
>> +                       hdmi_connector_in: endpoint {
>> +                               remote-endpoint = <&hdmi_out>;
>> +                       };
>> +               };
>> +       };
>>  };
> 
> No, HPD (hotplug) pin?
> 
> I think Parlor has one and the "hdmi-connector" binding now supports
> it. See Tomi's 3.16/fbdev-omap branch.
> 

I will check. Thank you for the heads up.

Regards,
Florian
Florian Vaussard May 21, 2014, 8:14 a.m. UTC | #5
On 05/20/2014 08:09 PM, Joachim Eastwood wrote:
> On 20 May 2014 16:25, Florian Vaussard <florian.vaussard@epfl.ch> wrote:
>> Add the necessary DTS nodes to enable the micro-HDMI output on Parlor
>> board.
>>
>> Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
>> ---
>>  arch/arm/boot/dts/omap4-duovero-parlor.dts | 42 ++++++++++++++++++++++++++++++
>>  1 file changed, 42 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/omap4-duovero-parlor.dts b/arch/arm/boot/dts/omap4-duovero-parlor.dts
>> index 96f51d8..3b234b8 100644
>> --- a/arch/arm/boot/dts/omap4-duovero-parlor.dts
>> +++ b/arch/arm/boot/dts/omap4-duovero-parlor.dts
>> @@ -15,6 +15,10 @@
>>         model = "OMAP4430 Gumstix Duovero on Parlor";
>>         compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
>>
>> +       aliases {
>> +               display0 = &hdmi0;
>> +       };
>> +
>>         leds {
>>                 compatible = "gpio-leds";
>>                 led0 {
>> @@ -35,6 +39,19 @@
>>                         gpio-key,wakeup;
>>                 };
>>         };
>> +
>> +       hdmi0: connector@0 {
>> +               compatible = "hdmi-connector";
>> +               label = "hdmi";
>> +
>> +               type = "d";
>> +
>> +               port {
>> +                       hdmi_connector_in: endpoint {
>> +                               remote-endpoint = <&hdmi_out>;
>> +                       };
>> +               };
>> +       };
>>  };
> 
> No, HPD (hotplug) pin?
> 
> I think Parlor has one and the "hdmi-connector" binding now supports
> it. See Tomi's 3.16/fbdev-omap branch.
> 

Looking into the details, the HPD pin of the parlor board is connected
to the OMAP4 HDMI IP. The LINK_CONNECT and LINK_DISCONNECT events are
managed by hdmi_irq_handler() in hdmi4.c to turn on/off the PHY's power.
So there is no need to use the hgp-gpios binding of "hdmi-connector"
IMHO. Correct me if I am wrong, as the public TRM is pretty thin
regarding the OMAP4 HDMI IP.

Regards,
Florian
Tomi Valkeinen May 21, 2014, 8:26 a.m. UTC | #6
On 21/05/14 11:14, Florian Vaussard wrote:

>> I think Parlor has one and the "hdmi-connector" binding now supports
>> it. See Tomi's 3.16/fbdev-omap branch.
>>
> 
> Looking into the details, the HPD pin of the parlor board is connected
> to the OMAP4 HDMI IP. The LINK_CONNECT and LINK_DISCONNECT events are
> managed by hdmi_irq_handler() in hdmi4.c to turn on/off the PHY's power.
> So there is no need to use the hgp-gpios binding of "hdmi-connector"
> IMHO. Correct me if I am wrong, as the public TRM is pretty thin
> regarding the OMAP4 HDMI IP.

The PHY's link-connect and disconnect are a separate thing, not really
related to the HPD.

The hdmi_hpd pin on OMAP should be configured to GPIO mode, and the GPIO
should be handled by the hdmi-connector.

The HDMI driver doesn't have support for the HDMI IP's HPD, and if I
recall right, the HDMI IP's HPD was not without problems. And afaik it
doesn't really bring anything, a normal GPIO does the job just fine.

 Tomi
Florian Vaussard May 21, 2014, 9:04 a.m. UTC | #7
On 05/21/2014 10:26 AM, Tomi Valkeinen wrote:
> On 21/05/14 11:14, Florian Vaussard wrote:
> 
>>> I think Parlor has one and the "hdmi-connector" binding now
>>> supports it. See Tomi's 3.16/fbdev-omap branch.
>>> 
>> 
>> Looking into the details, the HPD pin of the parlor board is
>> connected to the OMAP4 HDMI IP. The LINK_CONNECT and
>> LINK_DISCONNECT events are managed by hdmi_irq_handler() in
>> hdmi4.c to turn on/off the PHY's power. So there is no need to
>> use the hgp-gpios binding of "hdmi-connector" IMHO. Correct me if
>> I am wrong, as the public TRM is pretty thin regarding the OMAP4
>> HDMI IP.
> 
> The PHY's link-connect and disconnect are a separate thing, not
> really related to the HPD.
> 
> The hdmi_hpd pin on OMAP should be configured to GPIO mode, and the
> GPIO should be handled by the hdmi-connector.
> 
> The HDMI driver doesn't have support for the HDMI IP's HPD, and if
> I recall right, the HDMI IP's HPD was not without problems. And
> afaik it doesn't really bring anything, a normal GPIO does the job
> just fine.
> 

I see. I will use the pin as a GPIO, and post a v2.

Regards,
Florian
diff mbox

Patch

diff --git a/arch/arm/boot/dts/omap4-duovero-parlor.dts b/arch/arm/boot/dts/omap4-duovero-parlor.dts
index 96f51d8..3b234b8 100644
--- a/arch/arm/boot/dts/omap4-duovero-parlor.dts
+++ b/arch/arm/boot/dts/omap4-duovero-parlor.dts
@@ -15,6 +15,10 @@ 
 	model = "OMAP4430 Gumstix Duovero on Parlor";
 	compatible = "gumstix,omap4-duovero-parlor", "gumstix,omap4-duovero", "ti,omap4430", "ti,omap4";
 
+	aliases {
+		display0 = &hdmi0;
+	};
+
 	leds {
 		compatible = "gpio-leds";
 		led0 {
@@ -35,6 +39,19 @@ 
 			gpio-key,wakeup;
 		};
 	};
+
+	hdmi0: connector@0 {
+		compatible = "hdmi-connector";
+		label = "hdmi";
+
+		type = "d";
+
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&hdmi_out>;
+			};
+		};
+	};
 };
 
 &omap4_pmx_core {
@@ -77,6 +94,15 @@ 
 			0x30 (PIN_INPUT_PULLUP | MUX_MODE3)	/* gpmc_a24.gpio_48: amdix enabled */
 		>;
 	};
+
+	dss_hdmi_pins: pinmux_dss_hdmi_pins {
+		pinctrl-single,pins = <
+			0x58 (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_hpd.hdmi_hpd */
+			0x5a (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_cec.hdmi_cec */
+			0x5c (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_scl.hdmi_ddc_scl */
+			0x5e (PIN_INPUT_PULLUP | MUX_MODE0)	/* hdmi_ddc_sda.hdmi_ddc_sda */
+		>;
+	};
 };
 
 &i2c2 {
@@ -143,4 +169,20 @@ 
 	};
 };
 
+&dss {
+	status = "ok";
+};
+
+&hdmi {
+	status = "ok";
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&dss_hdmi_pins>;
+
+	port {
+		hdmi_out: endpoint {
+			remote-endpoint = <&hdmi_connector_in>;
+		};
+	};
+};