]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: imx8mp-evk: Add NXP LVDS to HDMI adapter cards
authorLiu Ying <victor.liu@nxp.com>
Tue, 12 Nov 2024 10:05:46 +0000 (18:05 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 9 Dec 2024 09:56:18 +0000 (17:56 +0800)
One ITE IT6263 LVDS to HDMI converter is populated on NXP IMX-LVDS-HDMI
and IMX-DLVDS-HDMI adapter cards.

Card IMX-LVDS-HDMI supports single LVDS link(IT6263 link1).
Card IMX-DLVDS-HDMI supports dual LVDS links(IT6263 link1 and link2).

Only one card can be enabled with one i.MX8MP EVK.

Add dedicated overlays to support the below four connections:
1) imx8mp-evk-lvds0-imx-lvds-hdmi.dtso:
   i.MX8MP EVK LVDS0 connector <=> LVDS adapter card J6(IT6263 link1)

2) imx8mp-evk-lvds1-imx-lvds-hdmi.dtso:
   i.MX8MP EVK LVDS1 connector <=> LVDS adapter card J6(IT6263 link1)

3) imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtso:
   i.MX8MP EVK LVDS0 connector <=> DLVDS adapter card channel0(IT6263 link1)
   i.MX8MP EVK LVDS1 connector <=> DLVDS adapter card channel1(IT6263 link2)

4) imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtso:
   i.MX8MP EVK LVDS1 connector <=> DLVDS adapter card channel0(IT6263 link1)
   i.MX8MP EVK LVDS0 connector <=> DLVDS adapter card channel1(IT6263 link2)

Part links:
https://www.nxp.com/part/IMX-LVDS-HDMI
https://www.nxp.com/part/IMX-DLVDS-HDMI

Signed-off-by: Liu Ying <victor.liu@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/imx8mp-evk-imx-lvds-hdmi-common.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtso [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-lvds-hdmi-common.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-lvds-hdmi.dtso [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtso [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-lvds-hdmi-common.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-lvds-hdmi.dtso [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk.dts

index 49f85933878d313e406146e830bd9adb4896011e..839432153cc7ae15d3c1e668c0cb192d5563b996 100644 (file)
@@ -216,8 +216,16 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-ivy.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb
 
+imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtbo
+imx8mp-evk-lvds0-imx-lvds-hdmi-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds0-imx-lvds-hdmi.dtbo
+imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtbo
+imx8mp-evk-lvds1-imx-lvds-hdmi-dtbs += imx8mp-evk.dtb imx8mp-evk-lvds1-imx-lvds-hdmi.dtbo
 imx8mp-evk-mx8-dlvds-lcd1-dtbs += imx8mp-evk.dtb imx8mp-evk-mx8-dlvds-lcd1.dtbo
 imx8mp-evk-pcie-ep-dtbs += imx8mp-evk.dtb imx8mp-evk-pcie-ep.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-lvds0-imx-lvds-hdmi.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-lvds1-imx-lvds-hdmi.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-mx8-dlvds-lcd1.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-pcie-ep.dtb
 
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-imx-lvds-hdmi-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-evk-imx-lvds-hdmi-common.dtsi
new file mode 100644 (file)
index 0000000..44b30e9
--- /dev/null
@@ -0,0 +1,29 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       lvds-hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "J2";
+               type = "a";
+
+               port {
+                       lvds2hdmi_connector_in: endpoint {
+                               remote-endpoint = <&it6263_out>;
+                       };
+               };
+       };
+};
+
+&lcdif2 {
+       status = "okay";
+};
+
+&lvds_bridge {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtso b/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-dlvds-hdmi-channel0.dtso
new file mode 100644 (file)
index 0000000..4008d2f
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include "imx8mp-evk-lvds0-imx-lvds-hdmi-common.dtsi"
+
+&it6263 {
+       ports {
+               port@0 {
+                       reg = <0>;
+                       dual-lvds-odd-pixels;
+
+                       it6263_lvds_link1: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch0>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dual-lvds-even-pixels;
+
+                       it6263_lvds_link2: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch1>;
+                       };
+               };
+       };
+};
+
+&lvds_bridge {
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&it6263_lvds_link1>;
+                       };
+               };
+
+               port@2 {
+                       ldb_lvds_ch1: endpoint {
+                               remote-endpoint = <&it6263_lvds_link2>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-lvds-hdmi-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-lvds-hdmi-common.dtsi
new file mode 100644 (file)
index 0000000..6eae747
--- /dev/null
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx8mp-evk-imx-lvds-hdmi-common.dtsi"
+
+&i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       it6263: hdmi@4c {
+               compatible = "ite,it6263";
+               reg = <0x4c>;
+               data-mapping = "jeida-24";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lvds_en>;
+               reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+               ivdd-supply = <&reg_buck5>;
+               ovdd-supply = <&reg_vext_3v3>;
+               txavcc18-supply = <&reg_buck5>;
+               txavcc33-supply = <&reg_vext_3v3>;
+               pvcc1-supply = <&reg_buck5>;
+               pvcc2-supply = <&reg_buck5>;
+               avcc-supply = <&reg_vext_3v3>;
+               anvdd-supply = <&reg_buck5>;
+               apvdd-supply = <&reg_buck5>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@2 {
+                               reg = <2>;
+
+                               it6263_out: endpoint {
+                                       remote-endpoint = <&lvds2hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-lvds-hdmi.dtso b/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds0-imx-lvds-hdmi.dtso
new file mode 100644 (file)
index 0000000..9e11f26
--- /dev/null
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include "imx8mp-evk-lvds0-imx-lvds-hdmi-common.dtsi"
+
+&it6263 {
+       ports {
+               port@0 {
+                       reg = <0>;
+
+                       it6263_lvds_link1: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch0>;
+                       };
+               };
+       };
+};
+
+&lvds_bridge {
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&it6263_lvds_link1>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtso b/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-dlvds-hdmi-channel0.dtso
new file mode 100644 (file)
index 0000000..af2e73e
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include "imx8mp-evk-lvds1-imx-lvds-hdmi-common.dtsi"
+
+&it6263 {
+       ports {
+               port@0 {
+                       reg = <0>;
+                       dual-lvds-even-pixels;
+
+                       it6263_lvds_link1: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch1>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+                       dual-lvds-odd-pixels;
+
+                       it6263_lvds_link2: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch0>;
+                       };
+               };
+       };
+};
+
+&lvds_bridge {
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&it6263_lvds_link2>;
+                       };
+               };
+
+               port@2 {
+                       ldb_lvds_ch1: endpoint {
+                               remote-endpoint = <&it6263_lvds_link1>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-lvds-hdmi-common.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-lvds-hdmi-common.dtsi
new file mode 100644 (file)
index 0000000..8cc9d36
--- /dev/null
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include "imx8mp-evk-imx-lvds-hdmi-common.dtsi"
+
+&i2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       it6263: hdmi@4c {
+               compatible = "ite,it6263";
+               reg = <0x4c>;
+               data-mapping = "jeida-24";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lvds_en>;
+               reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+               ivdd-supply = <&reg_buck5>;
+               ovdd-supply = <&reg_vext_3v3>;
+               txavcc18-supply = <&reg_buck5>;
+               txavcc33-supply = <&reg_vext_3v3>;
+               pvcc1-supply = <&reg_buck5>;
+               pvcc2-supply = <&reg_buck5>;
+               avcc-supply = <&reg_vext_3v3>;
+               anvdd-supply = <&reg_buck5>;
+               apvdd-supply = <&reg_buck5>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@2 {
+                               reg = <2>;
+
+                               it6263_out: endpoint {
+                                       remote-endpoint = <&lvds2hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-lvds-hdmi.dtso b/arch/arm64/boot/dts/freescale/imx8mp-evk-lvds1-imx-lvds-hdmi.dtso
new file mode 100644 (file)
index 0000000..527a893
--- /dev/null
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+#include "imx8mp-evk-lvds1-imx-lvds-hdmi-common.dtsi"
+
+&it6263 {
+       ports {
+               port@0 {
+                       reg = <0>;
+
+                       it6263_lvds_link1: endpoint {
+                               remote-endpoint = <&ldb_lvds_ch1>;
+                       };
+               };
+       };
+};
+
+&lvds_bridge {
+       ports {
+               port@2 {
+                       ldb_lvds_ch1: endpoint {
+                               remote-endpoint = <&it6263_lvds_link1>;
+                       };
+               };
+       };
+};
index d26930f1a9e9d026050a827e6f94c4559727f444..68e12a752edde5864b191f25e3d5cbd5e73091dc 100644 (file)
                >;
        };
 
+       pinctrl_lvds_en: lvdsengrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10     0x1c0
+               >;
+       };
+
        pinctrl_pcie0: pcie0grp {
                fsl,pins = <
                        MX8MP_IOMUXC_I2C4_SCL__PCIE_CLKREQ_B    0x60 /* open drain, pull up */