[PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3

Marek Vasut posted 1 patch 1 year, 7 months ago
.../boot/dts/freescale/imx8mp-dhcom-pdk2.dts  | 39 +++++++++++++++++++
.../boot/dts/freescale/imx8mp-dhcom-pdk3.dts  | 39 +++++++++++++++++++
2 files changed, 78 insertions(+)
[PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Marek Vasut 1 year, 7 months ago
Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
of HDMI DDC mode to permit connection of other I2C devices on those buses.
The pinctrl_hdmi node is part of the SoM DTSI already.

Signed-off-by: Marek Vasut <marex@denx.de>
---
Cc: Conor Dooley <conor+dt@kernel.org>
Cc: Fabio Estevam <festevam@gmail.com>
Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
Cc: Rob Herring <robh@kernel.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: devicetree@vger.kernel.org
Cc: imx@lists.linux.dev
Cc: kernel@dh-electronics.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
 .../boot/dts/freescale/imx8mp-dhcom-pdk2.dts  | 39 +++++++++++++++++++
 .../boot/dts/freescale/imx8mp-dhcom-pdk3.dts  | 39 +++++++++++++++++++
 2 files changed, 78 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts
index 3b1c940860e02..ebdf13e97b4e2 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dts
@@ -69,6 +69,18 @@ button-3 {
 		};
 	};
 
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		label = "X38";
+		type = "a";
+
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&hdmi_tx_out>;
+			};
+		};
+	};
+
 	led {
 		compatible = "gpio-leds";
 
@@ -184,6 +196,33 @@ &flexcan1 {
 	status = "okay";
 };
 
+&hdmi_pvi {
+	status = "okay";
+};
+
+&hdmi_tx {
+	ddc-i2c-bus = <&i2c5>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hdmi>;
+	status = "okay";
+
+	ports {
+		port@1 {
+			hdmi_tx_out: endpoint {
+				remote-endpoint = <&hdmi_connector_in>;
+			};
+		};
+	};
+};
+
+&hdmi_tx_phy {
+	status = "okay";
+};
+
+&lcdif3 {
+	status = "okay";
+};
+
 &pcie_phy {
 	clock-names = "ref";
 	clocks = <&hsio_blk_ctrl>;
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dts b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dts
index ac7ec7533a3c8..ef012e8365b1f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dts
@@ -75,6 +75,18 @@ button-3 {
 		};
 	};
 
+	hdmi-connector {
+		compatible = "hdmi-connector";
+		label = "X28";
+		type = "a";
+
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&hdmi_tx_out>;
+			};
+		};
+	};
+
 	led {
 		compatible = "gpio-leds";
 
@@ -248,6 +260,33 @@ &flexcan1 {
 	status = "okay";
 };
 
+&hdmi_pvi {
+	status = "okay";
+};
+
+&hdmi_tx {
+	ddc-i2c-bus = <&i2cmuxed1>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_hdmi>;
+	status = "okay";
+
+	ports {
+		port@1 {
+			hdmi_tx_out: endpoint {
+				remote-endpoint = <&hdmi_connector_in>;
+			};
+		};
+	};
+};
+
+&hdmi_tx_phy {
+	status = "okay";
+};
+
+&lcdif3 {
+	status = "okay";
+};
+
 &pcie_phy {
 	clocks = <&pcieclk 1>;
 	clock-names = "ref";
-- 
2.43.0
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Shawn Guo 1 year, 6 months ago
On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
> of HDMI DDC mode to permit connection of other I2C devices on those buses.
> The pinctrl_hdmi node is part of the SoM DTSI already.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>

Applied, thanks!
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Francesco Dolcini 1 year, 7 months ago
Hello Marek,

On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
> of HDMI DDC mode to permit connection of other I2C devices on those buses.

Are you able to read the HDMI EDID with such configuration? I have the
patch ready for verdin imx8mp, I just did not have time to figure out
this last details.

Francesco
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Marek Vasut 1 year, 7 months ago
On 5/16/24 10:00 AM, Francesco Dolcini wrote:
> Hello Marek,

Hi,

> On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
>> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
>> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
>> of HDMI DDC mode to permit connection of other I2C devices on those buses.
> 
> Are you able to read the HDMI EDID with such configuration? I have the
> patch ready for verdin imx8mp, I just did not have time to figure out
> this last details.

Yes with ddc-i2c-bus in hdmi_tx{} node, no with ddc-i2c-bus in connector 
node. Maybe that's what you're running into ? The DW HDMI core needs the 
ddc-i2c-bus property in hdmi_tx{} node if you use non-native I2C bus for 
the DDC channel.
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Francesco Dolcini 1 year, 7 months ago
Hello,

On Thu, May 16, 2024 at 01:14:04PM +0200, Marek Vasut wrote:
> On 5/16/24 10:00 AM, Francesco Dolcini wrote:
> > On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
> > > Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
> > > I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
> > > of HDMI DDC mode to permit connection of other I2C devices on those buses.
> > 
> > Are you able to read the HDMI EDID with such configuration? I have the
> > patch ready for verdin imx8mp, I just did not have time to figure out
> > this last details.
> 
> Yes with ddc-i2c-bus in hdmi_tx{} node, no with ddc-i2c-bus in connector
> node. Maybe that's what you're running into ? The DW HDMI core needs the
> ddc-i2c-bus property in hdmi_tx{} node if you use non-native I2C bus for the
> DDC channel.

Yes, that's it. Thanks!

Francesco
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Ahmad Fatoum 1 year, 7 months ago
Hello Marek,

On 16.05.24 13:14, Marek Vasut wrote:
> On 5/16/24 10:00 AM, Francesco Dolcini wrote:
>> Hello Marek,
> 
> Hi,
> 
>> On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
>>> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
>>> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
>>> of HDMI DDC mode to permit connection of other I2C devices on those buses.
>>
>> Are you able to read the HDMI EDID with such configuration? I have the
>> patch ready for verdin imx8mp, I just did not have time to figure out
>> this last details.
> 
> Yes with ddc-i2c-bus in hdmi_tx{} node, no with ddc-i2c-bus in connector node. Maybe that's what you're running into ? The DW HDMI core needs the ddc-i2c-bus property in hdmi_tx{} node if you use non-native I2C bus for the DDC channel.

What benefit does the hdmi-connector provide over just omitting it?
Just for documentation purposes?

Thanks,
Ahmad



> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Marek Vasut 1 year, 7 months ago
On 5/16/24 1:36 PM, Ahmad Fatoum wrote:
> Hello Marek,

Hi,

> On 16.05.24 13:14, Marek Vasut wrote:
>> On 5/16/24 10:00 AM, Francesco Dolcini wrote:
>>> Hello Marek,
>>
>> Hi,
>>
>>> On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
>>>> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
>>>> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
>>>> of HDMI DDC mode to permit connection of other I2C devices on those buses.
>>>
>>> Are you able to read the HDMI EDID with such configuration? I have the
>>> patch ready for verdin imx8mp, I just did not have time to figure out
>>> this last details.
>>
>> Yes with ddc-i2c-bus in hdmi_tx{} node, no with ddc-i2c-bus in connector node. Maybe that's what you're running into ? The DW HDMI core needs the ddc-i2c-bus property in hdmi_tx{} node if you use non-native I2C bus for the DDC channel.
> 
> What benefit does the hdmi-connector provide over just omitting it?
> Just for documentation purposes?

I was under the impression describing the hardware in DT in full was the 
best practice (TM), hence it is in full here.
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Ahmad Fatoum 1 year, 7 months ago
On 16.05.24 13:44, Marek Vasut wrote:
> On 5/16/24 1:36 PM, Ahmad Fatoum wrote:
>> Hello Marek,
> 
> Hi,
> 
>> On 16.05.24 13:14, Marek Vasut wrote:
>>> On 5/16/24 10:00 AM, Francesco Dolcini wrote:
>>>> Hello Marek,
>>>
>>> Hi,
>>>
>>>> On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
>>>>> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
>>>>> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
>>>>> of HDMI DDC mode to permit connection of other I2C devices on those buses.
>>>>
>>>> Are you able to read the HDMI EDID with such configuration? I have the
>>>> patch ready for verdin imx8mp, I just did not have time to figure out
>>>> this last details.
>>>
>>> Yes with ddc-i2c-bus in hdmi_tx{} node, no with ddc-i2c-bus in connector node. Maybe that's what you're running into ? The DW HDMI core needs the ddc-i2c-bus property in hdmi_tx{} node if you use non-native I2C bus for the DDC channel.
>>
>> What benefit does the hdmi-connector provide over just omitting it?
>> Just for documentation purposes?
> 
> I was under the impression describing the hardware in DT in full was the best practice (TM), hence it is in full here.

Sure, I am just wondering what effect, if any, it has in how Linux interprets
the device tree. I have an i.MX8MP board with HDMI as well, but without
connector (yet).

Cheers,
Ahmad

> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Alexander Stein 1 year, 7 months ago
Hi everyone,

Am Donnerstag, 16. Mai 2024, 13:46:33 CEST schrieb Ahmad Fatoum:
> On 16.05.24 13:44, Marek Vasut wrote:
> > On 5/16/24 1:36 PM, Ahmad Fatoum wrote:
> >> Hello Marek,
> > 
> > Hi,
> > 
> >> On 16.05.24 13:14, Marek Vasut wrote:
> >>> On 5/16/24 10:00 AM, Francesco Dolcini wrote:
> >>>> Hello Marek,
> >>>
> >>> Hi,
> >>>
> >>>> On Tue, May 14, 2024 at 03:06:42AM +0200, Marek Vasut wrote:
> >>>>> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
> >>>>> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
> >>>>> of HDMI DDC mode to permit connection of other I2C devices on those buses.
> >>>>
> >>>> Are you able to read the HDMI EDID with such configuration? I have the
> >>>> patch ready for verdin imx8mp, I just did not have time to figure out
> >>>> this last details.
> >>>
> >>> Yes with ddc-i2c-bus in hdmi_tx{} node, no with ddc-i2c-bus in connector node. Maybe that's what you're running into ? The DW HDMI core needs the ddc-i2c-bus property in hdmi_tx{} node if you use non-native I2C bus for the DDC channel.
> >>
> >> What benefit does the hdmi-connector provide over just omitting it?
> >> Just for documentation purposes?
> > 
> > I was under the impression describing the hardware in DT in full was the best practice (TM), hence it is in full here.
> 
> Sure, I am just wondering what effect, if any, it has in how Linux interprets
> the device tree. I have an i.MX8MP board with HDMI as well, but without
> connector (yet).

AFAICT having a hdmi-connector has no effect at all. Linux drivers are
not using it.

Best regards,
Alexander
-- 
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Rob Herring (Arm) 1 year, 7 months ago
On Tue, 14 May 2024 03:06:42 +0200, Marek Vasut wrote:
> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
> of HDMI DDC mode to permit connection of other I2C devices on those buses.
> The pinctrl_hdmi node is part of the SoM DTSI already.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: Fabio Estevam <festevam@gmail.com>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
> Cc: Rob Herring <robh@kernel.org>
> Cc: Sascha Hauer <s.hauer@pengutronix.de>
> Cc: Shawn Guo <shawnguo@kernel.org>
> Cc: devicetree@vger.kernel.org
> Cc: imx@lists.linux.dev
> Cc: kernel@dh-electronics.com
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: linux-kernel@vger.kernel.org
> ---
>  .../boot/dts/freescale/imx8mp-dhcom-pdk2.dts  | 39 +++++++++++++++++++
>  .../boot/dts/freescale/imx8mp-dhcom-pdk3.dts  | 39 +++++++++++++++++++
>  2 files changed, 78 insertions(+)
> 


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

  pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y freescale/imx8mp-dhcom-pdk2.dtb freescale/imx8mp-dhcom-pdk3.dtb' for 20240514010706.245874-1-marex@denx.de:

arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dtb: hdmi@32fd8000: Unevaluated properties are not allowed ('ddc-i2c-bus' was unexpected)
	from schema $id: http://devicetree.org/schemas/display/bridge/fsl,imx8mp-hdmi-tx.yaml#
arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dtb: hdmi@32fd8000: Unevaluated properties are not allowed ('ddc-i2c-bus' was unexpected)
	from schema $id: http://devicetree.org/schemas/display/bridge/fsl,imx8mp-hdmi-tx.yaml#
Re: [PATCH] arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3
Posted by Marek Vasut 1 year, 7 months ago
On 5/14/24 2:53 PM, Rob Herring (Arm) wrote:
> 
> On Tue, 14 May 2024 03:06:42 +0200, Marek Vasut wrote:
>> Enable HDMI output on i.MX8MP DHCOM PDK2 and PDK3. The I2C5 on PDK2 and
>> I2C mux port 1 on PDK3 respectively are used in regular I2C mode instead
>> of HDMI DDC mode to permit connection of other I2C devices on those buses.
>> The pinctrl_hdmi node is part of the SoM DTSI already.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> ---
>> Cc: Conor Dooley <conor+dt@kernel.org>
>> Cc: Fabio Estevam <festevam@gmail.com>
>> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
>> Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
>> Cc: Rob Herring <robh@kernel.org>
>> Cc: Sascha Hauer <s.hauer@pengutronix.de>
>> Cc: Shawn Guo <shawnguo@kernel.org>
>> Cc: devicetree@vger.kernel.org
>> Cc: imx@lists.linux.dev
>> Cc: kernel@dh-electronics.com
>> Cc: linux-arm-kernel@lists.infradead.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>>   .../boot/dts/freescale/imx8mp-dhcom-pdk2.dts  | 39 +++++++++++++++++++
>>   .../boot/dts/freescale/imx8mp-dhcom-pdk3.dts  | 39 +++++++++++++++++++
>>   2 files changed, 78 insertions(+)
>>
> 
> 
> My bot found new DTB warnings on the .dts files added or changed in this
> series.
> 
> Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
> are fixed by another series. Ultimately, it is up to the platform
> maintainer whether these warnings are acceptable or not. No need to reply
> unless the platform maintainer has comments.
> 
> If you already ran DT checks and didn't see these error(s), then
> make sure dt-schema is up to date:
> 
>    pip3 install dtschema --upgrade
> 
> 
> New warnings running 'make CHECK_DTBS=y freescale/imx8mp-dhcom-pdk2.dtb freescale/imx8mp-dhcom-pdk3.dtb' for 20240514010706.245874-1-marex@denx.de:
> 
> arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk2.dtb: hdmi@32fd8000: Unevaluated properties are not allowed ('ddc-i2c-bus' was unexpected)
> 	from schema $id: http://devicetree.org/schemas/display/bridge/fsl,imx8mp-hdmi-tx.yaml#
> arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dtb: hdmi@32fd8000: Unevaluated properties are not allowed ('ddc-i2c-bus' was unexpected)
> 	from schema $id: http://devicetree.org/schemas/display/bridge/fsl,imx8mp-hdmi-tx.yaml#

Should be fixed in:
[PATCH] dt-bindings: display: synopsys,dw-hdmi: Document ddc-i2c-bus in core