]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: imx: Add DT overlays for DH i.MX6 DHCOM SoM and boards
authorMarek Vasut <marex@nabladev.com>
Tue, 24 Mar 2026 19:03:11 +0000 (20:03 +0100)
committerFrank Li <Frank.Li@nxp.com>
Mon, 6 Apr 2026 01:35:41 +0000 (21:35 -0400)
Add DT overlays to support DH i.MX6 DHCOM SoM carrier board expansion
modules. The following DT overlays are implemented:
- PDK2:
  - DH 497-200 Display board in edge connector X12
  - DH 505-200 Display board in edge connector X12
  - DH 531-100 SPI/I2C board in header X21
  - DH 531-200 SPI/I2C board in header X22
  - DH 560-200 Display board in edge connector X12
- PicoITX:
  - DH 626-100 Display board in edge connector X2

Signed-off-by: Marek Vasut <marex@nabladev.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm/boot/dts/nxp/imx/Makefile
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-overlay-panel-dpi.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtso [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtso [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-531-100-x21.dtso [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-531-100-x22.dtso [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-560-200-x12.dtso [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtso [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-som.dtsi

index de4142e8f3ce8f5e377d58a03b45cfa3fa818a19..856c9f21bd703a1d58283f44934655f203a942e2 100644 (file)
@@ -58,6 +58,31 @@ dtb-$(CONFIG_SOC_IMX53) += \
        imx53-voipac-bsb.dtb
 imx53-qsb-hdmi-dtbs := imx53-qsb.dtb imx53-qsb-hdmi.dtbo
 imx53-qsrb-hdmi-dtbs := imx53-qsrb.dtb imx53-qsb-hdmi.dtbo
+
+imx6qdl-dhcom-pdk2-overlay-497-200-x12-dtbs := \
+       imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtbo
+
+imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh-dtbs := \
+       imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtbo
+
+imx6qdl-dhcom-pdk2-overlay-531-100-x21-dtbs := \
+       imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-pdk2-overlay-531-100-x21.dtbo
+
+imx6qdl-dhcom-pdk2-overlay-531-100-x22-dtbs := \
+       imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-pdk2-overlay-531-100-x22.dtbo
+
+imx6qdl-dhcom-pdk2-overlay-560-200-x12-dtbs := \
+       imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-pdk2-overlay-560-200-x12.dtbo
+
+imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh-dtbs := \
+       imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtbo
+
 dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-alti6p.dtb \
        imx6dl-apf6dev.dtb \
@@ -179,6 +204,18 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-cubox-i-som-v15.dtb \
        imx6q-dfi-fs700-m60.dtb \
        imx6q-dhcom-pdk2.dtb \
+       imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtb \
+       imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtbo \
+       imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtb \
+       imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtbo \
+       imx6qdl-dhcom-pdk2-overlay-531-100-x21.dtb \
+       imx6qdl-dhcom-pdk2-overlay-531-100-x21.dtbo \
+       imx6qdl-dhcom-pdk2-overlay-531-100-x22.dtb \
+       imx6qdl-dhcom-pdk2-overlay-531-100-x22.dtbo \
+       imx6qdl-dhcom-pdk2-overlay-560-200-x12.dtb \
+       imx6qdl-dhcom-pdk2-overlay-560-200-x12.dtbo \
+       imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtb \
+       imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtbo \
        imx6q-display5-tianma-tm070-1280x768.dtb \
        imx6q-dmo-edmqmx6.dtb \
        imx6q-dms-ba16.dtb \
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi
new file mode 100644 (file)
index 0000000..9025978
--- /dev/null
@@ -0,0 +1,75 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "imx6qdl-dhcom-overlay-panel-dpi.dtsi"
+
+&{/} {
+       lvds-encoder {
+               compatible = "onnn,fin3385", "lvds-encoder";
+               pclk-sample = <1>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               lvds_bridge_in: endpoint {
+                                       remote-endpoint = <&ipu1_dpi0_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               lvds_bridge_out: endpoint {
+                                       remote-endpoint = <&panel_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&display_bl {
+       pwms = <&pwm1 0 5000000 0>;
+};
+
+&i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       touchscreen@41 {
+               compatible = "ilitek,ili251x";
+               reg = <0x41>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+               touchscreen-size-x = <16384>;
+               touchscreen-size-y = <9600>;
+               touchscreen-inverted-x;
+               touchscreen-inverted-y;
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c04";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+};
+
+&ipu1_dpi0_out {
+       remote-endpoint = <&lvds_bridge_in>;
+};
+
+&panel {
+       compatible = "chefree,ch101olhlwh-002";
+};
+
+&panel_in {
+       remote-endpoint = <&lvds_bridge_out>;
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-overlay-panel-dpi.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-overlay-panel-dpi.dtsi
new file mode 100644 (file)
index 0000000..48d346b
--- /dev/null
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/pwm/pwm.h>
+
+&{/} {
+       display_bl: display-bl {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
+               default-brightness-level = <8>;
+               enable-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>;
+               status = "okay";
+       };
+
+       lcd_display: disp0 {
+               compatible = "fsl,imx-parallel-display";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interface-pix-fmt = "rgb24";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu1_lcdif>;
+               status = "okay";
+
+               port@0 {
+                       reg = <0>;
+
+                       ipu1_display_in: endpoint {
+                               remote-endpoint = <&ipu1_di0_disp0>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       ipu1_dpi0_out: endpoint {
+                               remote-endpoint = <&panel_in>;
+                       };
+               };
+       };
+
+       panel: panel {
+               backlight = <&display_bl>;
+
+               port {
+                       panel_in: endpoint {
+                       };
+               };
+       };
+};
+
+&ipu1_di0_disp0 {
+       remote-endpoint = <&ipu1_display_in>;
+};
+
+&pwm1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtso b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-497-200-x12.dtso
new file mode 100644 (file)
index 0000000..a5cb77b
--- /dev/null
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "imx6qdl-dhcom-overlay-panel-dpi.dtsi"
+
+&display_bl {
+       pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
+};
+
+&ipu1_dpi0_out {
+       remote-endpoint = <&panel_in>;
+};
+
+&panel {
+       compatible = "dataimage,scf0700c48ggu18";
+};
+
+&panel_in {
+       remote-endpoint = <&ipu1_dpi0_out>;
+};
+
+&touch_som {   /* TSC2004 */
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtso b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-505-200-x12-ch101olhlwh.dtso
new file mode 100644 (file)
index 0000000..3e02031
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "imx6qdl-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi"
+
+&{/} {
+       gpio-keys {
+               /* BUTTON1 GPIO-B conflicts with touchscreen reset */
+               button-1 {
+                       /* Use status as /delete-node/ does not work in DTOs */
+                       status = "disabled";
+               };
+       };
+
+       led {
+               /* LED7 GPIO-H conflicts with touchscreen IRQ */
+               led-7 {
+                       /* Use status as /delete-node/ does not work in DTOs */
+                       status = "disabled";
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-531-100-x21.dtso b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-531-100-x21.dtso
new file mode 100644 (file)
index 0000000..e8cae43
--- /dev/null
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&ecspi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       eeprom@1 {
+               compatible = "microchip,25aa010a", "atmel,at25";
+               reg = <1>;
+               address-width = <8>;
+               pagesize = <16>;
+               size = <128>;
+               spi-max-frequency = <5000000>;
+       };
+};
+
+&i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       eeprom@56 {
+               compatible = "atmel,24c04";
+               reg = <0x56>;
+               pagesize = <16>;
+       };
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-531-100-x22.dtso b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-531-100-x22.dtso
new file mode 100644 (file)
index 0000000..6fde50b
--- /dev/null
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+&ecspi2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       eeprom@0 {
+               compatible = "microchip,25aa010a", "atmel,at25";
+               reg = <0>;
+               address-width = <8>;
+               pagesize = <16>;
+               size = <128>;
+               spi-max-frequency = <5000000>;
+       };
+};
+
+&i2c1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       eeprom@56 {
+               compatible = "atmel,24c04";
+               reg = <0x56>;
+               pagesize = <16>;
+       };
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-560-200-x12.dtso b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-pdk2-overlay-560-200-x12.dtso
new file mode 100644 (file)
index 0000000..9f5814e
--- /dev/null
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2021-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "imx6qdl-dhcom-overlay-panel-dpi.dtsi"
+
+&display_bl {
+       pwms = <&pwm1 0 50000 PWM_POLARITY_INVERTED>;
+};
+
+&i2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       touchscreen@38 {
+               compatible = "edt,edt-ft5406";
+               reg = <0x38>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_dhcom_e>;
+               /* Touchscreen IRQ GPIO-E conflicts with LED5 GPIO */
+               interrupt-parent = <&gpio4>;
+               interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
+       };
+};
+
+&ipu1_dpi0_out {
+       remote-endpoint = <&panel_in>;
+};
+
+&panel {
+       compatible = "edt,etm0700g0edh6";
+};
+
+&panel_in {
+       remote-endpoint = <&ipu1_dpi0_out>;
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtso b/arch/arm/boot/dts/nxp/imx/imx6qdl-dhcom-picoitx-overlay-626-100-x2-ch101olhlwh.dtso
new file mode 100644 (file)
index 0000000..5c38057
--- /dev/null
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) 2023-2026 Marek Vasut
+ */
+/dts-v1/;
+/plugin/;
+
+#include "imx6qdl-dhcom-overlay-panel-dpi-ch101olhlwh.dtsi"
index af0d95396cd51d9f1568a3d2dbdf62580b5bde55..74dfb92f15147ee3a778fb8de6409fe0884d32ec 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
- * Copyright (C) 2015-2021 DH electronics GmbH
- * Copyright (C) 2018 Marek Vasut <marex@denx.de>
+ * Copyright (C) 2015-2026 DH electronics GmbH
+ * Copyright (C) 2018-2026 Marek Vasut
  */
 
 #include <dt-bindings/pwm/pwm.h>
                };
        };
 
-       touchscreen@49 { /* TSC2004 */
+       touch_som: touchscreen@49 { /* TSC2004 */
                compatible = "ti,tsc2004";
                interrupts-extended = <&gpio4 14 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-0 = <&pinctrl_tsc2004>;