diff mbox series

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

Message ID 20240514010706.245874-1-marex@denx.de (mailing list archive)
State New
Headers show
Series arm64: dts: imx8mp: Enable HDMI on i.MX8MP DHCOM PDK2 and PDK3 | expand

Commit Message

Marek Vasut May 14, 2024, 1:06 a.m. UTC
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(+)

Comments

Rob Herring (Arm) May 14, 2024, 12:53 p.m. UTC | #1
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#
Marek Vasut May 14, 2024, 10:18 p.m. UTC | #2
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
Francesco Dolcini May 16, 2024, 8 a.m. UTC | #3
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
Marek Vasut May 16, 2024, 11:14 a.m. UTC | #4
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.
Ahmad Fatoum May 16, 2024, 11:36 a.m. UTC | #5
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



> 
>
Marek Vasut May 16, 2024, 11:44 a.m. UTC | #6
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.
Ahmad Fatoum May 16, 2024, 11:46 a.m. UTC | #7
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

>
Francesco Dolcini May 16, 2024, 11:57 a.m. UTC | #8
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
Alexander Stein May 16, 2024, 12:07 p.m. UTC | #9
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
diff mbox series

Patch

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";