arm64: dts: freescale: imx8mp-verdin: add HDMI support
authorFrancesco Dolcini <francesco.dolcini@toradex.com>
Mon, 10 Jun 2024 14:10:01 +0000 (16:10 +0200)
committerShawn Guo <shawnguo@kernel.org>
Mon, 17 Jun 2024 02:13:12 +0000 (10:13 +0800)
Enable HDMI output on Verdin iMX8MP on all the supported carrier boards
(dev, dahlia, mallow and yavia).

HDMI DDC I2C is used in regular I2C mode, see link on the related
dt-bindings patch.

Fix CEC and HPD pinctrl, having a pull-down on HPD and a pull-up on CEC.

Link: https://lore.kernel.org/all/20240515062753.111746-1-marex@denx.de/
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-mallow.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-yavia.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi

index 6e6b9c2c46406fc3691193e6874eb85fd8d28065..fbcd93e33aeaa0864be6ac66b8a33baed39795fc 100644 (file)
@@ -4,6 +4,18 @@
  */
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X21";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,bitclock-master = <&codec_dai>;
        pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        vpcie-supply = <&reg_pcie>;
index 42ed44a1171101964e952441df49e4f70a314da3..09733fea036dd30b481e1fa286dc723c40705cef 100644 (file)
@@ -4,6 +4,18 @@
  */
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X37";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        reg_eth2phy: regulator-eth2phy {
                compatible = "regulator-fixed";
                enable-active-high;
        vcc-supply = <&reg_1p8v>;
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 1d15f7449c58004624ec9429c997a62a20c2e3ec..3a40338cf2d88f853a2dd8dc6977bf704a97aaae 100644 (file)
 #include <dt-bindings/leds/common.h>
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X14";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        status = "okay";
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 /* Temperature sensor on Mallow */
 &hwmon_temp {
        compatible = "ti,tmp1075";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 91d597391b7cbbfc7daf5159eb094a659291a742..2ee91f31e7f0221b7ecd497b9b15672e0ddf2667 100644 (file)
@@ -41,8 +41,7 @@
        pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
                    <&pinctrl_gpio3>, <&pinctrl_gpio4>,
                    <&pinctrl_gpio7>, <&pinctrl_gpio8>,
-                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>,
-                   <&pinctrl_hdmi_hog>;
+                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>;
 };
 
 /*
index ef94f9a57e2071a9e330d7b924b0df07d20a149d..efcab00c0142138e05e39fc28dc41482c882770d 100644 (file)
@@ -55,8 +55,7 @@
        pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
                    <&pinctrl_gpio3>, <&pinctrl_gpio4>,
                    <&pinctrl_gpio7>, <&pinctrl_gpio8>,
-                   <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>,
-                   <&pinctrl_hdmi_hog>;
+                   <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>;
 };
 
 /* On-module Bluetooth */
index a7b261ff3e4cd8f03a7e6c2c4d41da4284c081d6..533b7fe218ce6662e092db1d023a919d1092a97c 100644 (file)
@@ -6,6 +6,18 @@
 #include <dt-bindings/leds/common.h>
 
 / {
+       native-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "J15";
+               type = "a";
+
+               port {
+                       native_hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        /* Carrier Board Supply +V1.8 */
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
        pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
 };
 
+/* Verdin HDMI_1 */
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&native_hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &hwmon_temp {
        status = "okay";
 };
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 3c6b47edd4c1ad49d06d5db173f383aedfad97da..c96e74684e03e85ac8ac27976d902e1290f29b7a 100644 (file)
                          "SODIMM_44";
 };
 
+/* Verdin HDMI_1 */
+&hdmi_tx {
+       ddc-i2c-bus = <&i2c5>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+};
+
 /* On-module I2C */
 &i2c1 {
        clock-frequency = <400000>;
                        <MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00             0x1c4>; /* SODIMM 252 */
        };
 
-       pinctrl_hdmi_hog: hdmihoggrp {
+       pinctrl_hdmi: hdmigrp {
                fsl,pins =
-                       <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC        0x40000019>,    /* SODIMM 63 */
-                       <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD        0x40000019>;    /* SODIMM 61 */
+                       <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC        0x140>, /* SODIMM 63 */
+                       <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD        0x180>; /* SODIMM 61 */
        };
 
        /* On-module I2C */