arm64: dts: imx8mp-evk: Add MX8-DLVDS-LCD1 display module support
authorLiu Ying <victor.liu@nxp.com>
Wed, 8 May 2024 10:00:13 +0000 (18:00 +0800)
committerShawn Guo <shawnguo@kernel.org>
Mon, 3 Jun 2024 03:03:03 +0000 (11:03 +0800)
MX8-DLVDS-LCD1 display module integrates a KOE TX26D202VM0BWA LCD panel
and a touch IC.  Add an overlay to support the LCD panel on i.MX8MP EVK.
Specify 148.5MHz clock frequency in panel-timing node to accommodate
3.5-fold 519.75MHz media_ldb clock which is derived from 1.0395GHz
video_pll1 clock.

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-mx8-dlvds-lcd1.dtso [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-evk.dts

index bd443c2bc5a48c7aad08f5020c96cefa8b5caaed..1b1e4db020716c2354a34da524dff6aacf3ececf 100644 (file)
@@ -191,6 +191,9 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-mallow.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-yavia.dtb
 
+imx8mp-evk-mx8-dlvds-lcd1-dtbs += imx8mp-evk.dtb imx8mp-evk-mx8-dlvds-lcd1.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk-mx8-dlvds-lcd1.dtb
+
 imx8mp-tqma8mpql-mba8mpxl-lvds-dtbs += imx8mp-tqma8mpql-mba8mpxl.dtb imx8mp-tqma8mpql-mba8mpxl-lvds.dtbo
 imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01-dtbs += imx8mp-tqma8mpql-mba8mpxl.dtb imx8mp-tqma8mpql-mba8mpxl-lvds-g133han01.dtbo
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl-lvds.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-mx8-dlvds-lcd1.dtso b/arch/arm64/boot/dts/freescale/imx8mp-evk-mx8-dlvds-lcd1.dtso
new file mode 100644 (file)
index 0000000..1b71890
--- /dev/null
@@ -0,0 +1,77 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2024 NXP
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+       panel-lvds {
+               compatible = "koe,tx26d202vm0bwa";
+               backlight = <&backlight_lvds>;
+               power-supply = <&reg_vext_3v3>;
+
+               panel-timing {
+                       clock-frequency = <148500000>;
+                       hactive = <1920>;
+                       vactive = <1200>;
+                       hfront-porch = <130>;
+                       hback-porch = <70>;
+                       hsync-len = <30>;
+                       vfront-porch = <5>;
+                       vback-porch = <5>;
+                       vsync-len = <5>;
+                       de-active = <1>;
+               };
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               dual-lvds-odd-pixels;
+
+                               panel_in_odd: endpoint {
+                                       remote-endpoint = <&ldb_lvds_ch0>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               dual-lvds-even-pixels;
+
+                               panel_in_even: endpoint {
+                                       remote-endpoint = <&ldb_lvds_ch1>;
+                               };
+                       };
+               };
+       };
+};
+
+&backlight_lvds {
+       status = "okay";
+};
+
+&lcdif2 {
+       status = "okay";
+};
+
+&lvds_bridge {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       ldb_lvds_ch0: endpoint {
+                               remote-endpoint = <&panel_in_odd>;
+                       };
+               };
+
+               port@2 {
+                       ldb_lvds_ch1: endpoint {
+                               remote-endpoint = <&panel_in_even>;
+                       };
+               };
+       };
+};
index 8be5b2a57f27f4c67c14e813f94c9b49d4303b5a..4a23c53730520484cd06caa2a64813177208e252 100644 (file)
                stdout-path = &uart2;
        };
 
+       backlight_lvds: backlight-lvds {
+               compatible = "pwm-backlight";
+               pwms = <&pwm2 0 100000 0>;
+               brightness-levels = <0 100>;
+               num-interpolated-steps = <100>;
+               default-brightness-level = <100>;
+               power-supply = <&reg_per_12v>;
+               status = "disabled";
+       };
+
        hdmi-connector {
                compatible = "hdmi-connector";
                label = "hdmi";
                enable-active-high;
        };
 
+       reg_per_12v: regulator-per-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "PER_12V";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               gpio = <&pca6416 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_usdhc2_vmmc: regulator-usdhc2 {
                compatible = "regulator-fixed";
                pinctrl-names = "default";