Skip to contentSkip to conversation

ARM: dts: nxp/imx6: Fix imx6qdl pico dwarf and nymph includes

PATCH In review Rob Herring (Arm) 2 participants 3 messages Nov 9

Subsystems (3)
lore
Share & tools
lore

Rob Herring (Arm)

author maintainer
#0 lore raw

PATCH 1/1 ARM: dts: nxp/imx6: Fix imx6qdl pico dwarf and nymph includes

The imx6q/dl pico dwarf and nymph boards appear to have a copy-n-paste error including the imx6qdl-pico-pi.dtsi by mistake. The imx6qdl-pico-dwarf.dtsi and imx6qdl-pico-nymph.dtsi were otherwise unused.

Fixing the typos introduces some DT schema warnings, so fix them. The supplies for MPL3115 are a guess based on other dwarf variants.

Reported-by [email protected]
Fixes 98670a0bb0ef ("ARM: dts: imx6qdl: Add imx6qdl-pico support")
---
 arch/arm/boot/dts/nxp/imx/imx6dl-pico-dwarf.dts   | 2 +-
 arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts   | 2 +-
 arch/arm/boot/dts/nxp/imx/imx6q-pico-dwarf.dts    | 2 +-
 arch/arm/boot/dts/nxp/imx/imx6q-pico-nymph.dts    | 2 +-
 arch/arm/boot/dts/nxp/imx/imx6qdl-pico-dwarf.dtsi | 3 +++
 arch/arm/boot/dts/nxp/imx/imx6qdl-pico-nymph.dtsi | 1 +
 6 files changed, 8 insertions(+), 4 deletions(-)
arch/arm/boot/dts/nxp/imx/imx6dl-pico-dwarf.dts +1 -1
index d85b15a8c127..dd8ce2df876c 100644
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-dwarf.dtsi"
 
 / {
 	model = "TechNexion PICO-IMX6 DualLite/Solo Board and Dwarf baseboard";
arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts +1 -1
index 32ccfc5d41ce..4ce0d0d0756c 100644
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-nymph.dtsi"
 
 / {
 	model = "TechNexion PICO-IMX6 DualLite/Solo Board and Nymph baseboard";
arch/arm/boot/dts/nxp/imx/imx6q-pico-dwarf.dts +1 -1
index 479a63ed42af..5e1f8b79593d 100644
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6q.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-dwarf.dtsi"
 
 / {
 	model = "TechNexion PICO-IMX6 Quad Board and Dwarf baseboard";
arch/arm/boot/dts/nxp/imx/imx6q-pico-nymph.dts +1 -1
index e8ad4c12b263..d688b5bb6c6a 100644
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6q.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-nymph.dtsi"
 
 / {
 	model = "TechNexion PICO-IMX6 Quad Board and Nymph baseboard";
arch/arm/boot/dts/nxp/imx/imx6qdl-pico-dwarf.dtsi +3 -0
index 3a968782e854..feaadacfe7ff 100644
@@ -22,6 +22,8 @@ &i2c1 {
 	mpl3115@60 {
 		compatible = "fsl,mpl3115";
 		reg = <0x60>;
+		vdd-supply = <&reg_3p3v>;
+		vddio-supply = <&reg_3p3v>;
 	};
 };
 
@@ -31,6 +33,7 @@ io-expander@25 {
 		reg = <0x25>;
 		gpio-controller;
 		#gpio-cells = <2>;
+		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 
arch/arm/boot/dts/nxp/imx/imx6qdl-pico-nymph.dtsi +1 -0
index 3d56a4216448..a13f4d49c05d 100644
@@ -30,6 +30,7 @@ io-expander@25 {
 		reg = <0x25>;
 		gpio-controller;
 		#gpio-cells = <2>;
+		interrupt-controller;
 		#interrupt-cells = <2>;
 	};
 };
Signature · 1 line
2.53.0
#1 lore raw
Thank you for your contribution! Sashiko AI review found 1 potential issue to consider: - [Medium] ARM: dts: imx6: pinmux hog and GPIO conflicts on pico-dwarf and pico-nymph --

Thank you for your contribution! Sashiko AI review found 1 potential issue to consider:
- [Medium] ARM: dts: imx6: pinmux hog and GPIO conflicts on pico-dwarf and pico-nymph
--

commit 92feeab6397394da98e778808f51f6d2369101e3
Author: Rob Herring (Arm) <[email protected]>

ARM: dts: nxp/imx6: Fix imx6qdl pico dwarf and nymph includes

This commit updates the imx6dl and imx6q pico-dwarf and pico-nymph board device trees to include their respective baseboard .dtsi files instead of imx6qdl-pico-pi.dtsi, and adds missing properties to satisfy DT schema checks.

Quoted 18 lines
arch/arm/boot/dts/nxp/imx/imx6dl-pico-dwarf.dts +1 -1
index d85b15a8c1272..dd8ce2df876c0 100644
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-dwarf.dtsi"
 
 / {
 	model = "TechNexion PICO-IMX6 DualLite/Solo Board and Dwarf baseboard";
arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts +0 -0
index 32ccfc5d41cee..4ce0d0d0756c4 100644

arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts line 15

Quoted 8 lines
arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts +1 -1
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-nymph.dtsi"
 
 / {
 	model = "TechNexion PICO-IMX6 DualLite/Solo Board and Nymph baseboard";

[Severity: Medium]
Does including imx6qdl-pico-dwarf.dtsi and imx6qdl-pico-nymph.dtsi cause pinctrl and GPIO conflicts with imx6qdl-pico.dtsi for /leds, &pcie, and touchscreen@38?

In arch/arm/boot/dts/nxp/imx/imx6qdl-pico.dtsi, &iomuxc hogs both MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 and MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 via pinctrl-0 = <&pinctrl_hog>:

arch/arm/boot/dts/nxp/imx/imx6qdl-pico.dtsi:&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	pinctrl_hog: hoggrp {
		fsl,pins = <
			...
			MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21	0x4001b0b5 /* PICO_P26 */
			...
			MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31	0x4001b0b5 /* PICO_P44 */
		>;
	};
};

However, both imx6qdl-pico-dwarf.dtsi and imx6qdl-pico-nymph.dtsi define a /leds node with pinctrl-0 = <&pinctrl_gpio_leds> claiming MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31, and imx6qdl-pico-nymph.dtsi enables &pcie whose pinctrl-0 = <&pinctrl_pcie_reset> claims MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21. Because imx_pmx_ops does not set .function_is_gpio, pin_request() rejects a second device claiming a pin already owned by iomuxc, causing pinctrl_bind_pins() to fail with -EINVAL when probing /leds on Dwarf and Nymph and &pcie on Nymph.

In addition, /leds in both baseboard files requests <&gpio5 31 GPIO_ACTIVE_HIGH> as an output, while touchscreen@38 in imx6qdl-pico.dtsi uses that same GPIO5_IO31 line as its interrupt input (interrupt-parent = <&gpio5>; interrupts = <31 IRQ_TYPE_EDGE_FALLING>;).

Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
author maintainer
#2 lore raw
Quoted 78 lines · On Mon, Nov 9, 2026 at 10:29 AM <[email protected]> wrote:

Thank you for your contribution! Sashiko AI review found 1 potential issue to consider:
- [Medium] ARM: dts: imx6: pinmux hog and GPIO conflicts on pico-dwarf and pico-nymph
--

commit 92feeab6397394da98e778808f51f6d2369101e3
Author: Rob Herring (Arm) <[email protected]>

ARM: dts: nxp/imx6: Fix imx6qdl pico dwarf and nymph includes

This commit updates the imx6dl and imx6q pico-dwarf and pico-nymph board device trees to include their respective baseboard .dtsi files instead of imx6qdl-pico-pi.dtsi, and adds missing properties to satisfy DT schema checks.

Quoted 18 lines
arch/arm/boot/dts/nxp/imx/imx6dl-pico-dwarf.dts +1 -1
index d85b15a8c1272..dd8ce2df876c0 100644
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-dwarf.dtsi"
 
 / {
      model = "TechNexion PICO-IMX6 DualLite/Solo Board and Dwarf baseboard";
arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts +0 -0
index 32ccfc5d41cee..4ce0d0d0756c4 100644

arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts line 15

Quoted 8 lines
arch/arm/boot/dts/nxp/imx/imx6dl-pico-nymph.dts +1 -1
@@ -9,7 +9,7 @@
 /dts-v1/;
 
 #include "imx6dl.dtsi"
-#include "imx6qdl-pico-pi.dtsi"
+#include "imx6qdl-pico-nymph.dtsi"
 
 / {
      model = "TechNexion PICO-IMX6 DualLite/Solo Board and Nymph baseboard";

[Severity: Medium]
Does including imx6qdl-pico-dwarf.dtsi and imx6qdl-pico-nymph.dtsi cause pinctrl and GPIO conflicts with imx6qdl-pico.dtsi for /leds, &pcie, and touchscreen@38?

In arch/arm/boot/dts/nxp/imx/imx6qdl-pico.dtsi, &iomuxc hogs both MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21 and MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31 via pinctrl-0 = <&pinctrl_hog>:

arch/arm/boot/dts/nxp/imx/imx6qdl-pico.dtsi:&iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog>;

        pinctrl_hog: hoggrp {
                fsl,pins = <
                        ...
                        MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21       0x4001b0b5 /* PICO_P26 */
                        ...
                        MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31       0x4001b0b5 /* PICO_P44 */
                >;
        };
};

However, both imx6qdl-pico-dwarf.dtsi and imx6qdl-pico-nymph.dtsi define a /leds node with pinctrl-0 = <&pinctrl_gpio_leds> claiming MX6QDL_PAD_CSI0_DAT13__GPIO5_IO31, and imx6qdl-pico-nymph.dtsi enables &pcie whose pinctrl-0 = <&pinctrl_pcie_reset> claims MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21. Because imx_pmx_ops does not set .function_is_gpio, pin_request() rejects a second device claiming a pin already owned by iomuxc, causing pinctrl_bind_pins() to fail with -EINVAL when probing /leds on Dwarf and Nymph and &pcie on Nymph.

Quoted 4 lines

In addition, /leds in both baseboard files requests <&gpio5 31 GPIO_ACTIVE_HIGH> as an output, while touchscreen@38 in imx6qdl-pico.dtsi uses that same GPIO5_IO31 line as its interrupt input (interrupt-parent = <&gpio5>; interrupts = <31 IRQ_TYPE_EDGE_FALLING>;).

I give up...

Rob