ARM: dts: nxp/imx6: Fix imx6qdl pico dwarf and nymph includes
Subsystems (3)
Rob Herring (Arm)
maintainerPATCH 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.
--- 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -22,6 +22,8 @@ &i2c1 { mpl3115@60 { compatible = "fsl,mpl3115"; reg = <0x60>; + vdd-supply = <®_3p3v>; + vddio-supply = <®_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
@@ -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
[email protected]
AI reviewThank 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@@ -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
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
Rob Herring
maintainerQuoted 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@@ -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
-0arch/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 includingimx6qdl-pico-dwarf.dtsiandimx6qdl-pico-nymph.dtsicause pinctrl and GPIO conflicts withimx6qdl-pico.dtsifor /leds, &pcie, and touchscreen@38?In
arch/arm/boot/dts/nxp/imx/imx6qdl-pico.dtsi, &iomuxc hogs bothMX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21andMX6QDL_PAD_CSI0_DAT13__GPIO5_IO31via 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.dtsiandimx6qdl-pico-nymph.dtsidefine a /leds node with pinctrl-0 = <&pinctrl_gpio_leds> claimingMX6QDL_PAD_CSI0_DAT13__GPIO5_IO31, andimx6qdl-pico-nymph.dtsienables &pcie whose pinctrl-0 = <&pinctrl_pcie_reset> claimsMX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21. Becauseimx_pmx_opsdoes not set .function_is_gpio,pin_request()rejects a second device claiming a pin already owned by iomuxc, causingpinctrl_bind_pins()to fail with-EINVALwhen 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 inimx6qdl-pico.dtsiuses that sameGPIO5_IO31line as its interrupt input (interrupt-parent = <&gpio5>; interrupts = <31IRQ_TYPE_EDGE_FALLING>;).
I give up...
Rob