From 0335256a6b78e33e88e3b297edcbf14402957d06 Mon Sep 17 00:00:00 2001 From: Lukasz Majewski Date: Thu, 7 Nov 2024 09:57:05 +0100 Subject: [PATCH 01/32] ARM: dts: mxs: Add descriptions for imx287 based btt3-[012] devices The btt3 device' HW revisions from 0 to 2 use imx287 SoC and are to some extend similar to already upstreamed XEA devices, hence are using common imx28-lwe.dtsi file. New, imx28-btt3.dtsi has been added to embrace common DTS properties for different HW revisions for this device. As a result - changes introduced in imx28-btt3-[012].dts are minimal. Signed-off-by: Lukasz Majewski Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/mxs/Makefile | 3 + arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts | 12 + arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts | 8 + arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts | 39 +++ arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi | 313 +++++++++++++++++++++ 5 files changed, 375 insertions(+) create mode 100644 arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts create mode 100644 arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts create mode 100644 arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts create mode 100644 arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi diff --git a/arch/arm/boot/dts/nxp/mxs/Makefile b/arch/arm/boot/dts/nxp/mxs/Makefile index a430d04f9c69..96dd31ea19ba 100644 --- a/arch/arm/boot/dts/nxp/mxs/Makefile +++ b/arch/arm/boot/dts/nxp/mxs/Makefile @@ -8,6 +8,9 @@ dtb-$(CONFIG_ARCH_MXS) += \ imx28-apf28.dtb \ imx28-apf28dev.dtb \ imx28-apx4devkit.dtb \ + imx28-btt3-0.dtb \ + imx28-btt3-1.dtb \ + imx28-btt3-2.dtb \ imx28-cfa10036.dtb \ imx28-cfa10037.dtb \ imx28-cfa10049.dtb \ diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts new file mode 100644 index 000000000000..6ac46e4b21bb --- /dev/null +++ b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 + * Lukasz Majewski, DENX Software Engineering, lukma@denx.de + */ + +/dts-v1/; +#include "imx28-btt3.dtsi" + +&hog_pins_rev { + fsl,pull-up = ; +}; diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts new file mode 100644 index 000000000000..213fe931c58b --- /dev/null +++ b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 + * Lukasz Majewski, DENX Software Engineering, lukma@denx.de + */ + +/dts-v1/; +#include "imx28-btt3.dtsi" diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts new file mode 100644 index 000000000000..4bccd784d065 --- /dev/null +++ b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 + * Lukasz Majewski, DENX Software Engineering, lukma@denx.de + */ + +/dts-v1/; +#include "imx28-btt3.dtsi" + +/ { + panel { + compatible = "powertip,st7272", "panel-dpi"; + power-supply = <®_3v3>; + width-mm = <70>; + height-mm = <52>; + + panel-timing { + clock-frequency = <6500000>; + hactive = <320>; + vactive = <240>; + hfront-porch = <20>; + hback-porch = <68>; + hsync-len = <30>; + vfront-porch = <4>; + vback-porch = <14>; + vsync-len = <4>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + + port { + panel_in: endpoint { + remote-endpoint = <&display_out>; + }; + }; + }; +}; diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi b/arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi new file mode 100644 index 000000000000..2c52e67e5c14 --- /dev/null +++ b/arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi @@ -0,0 +1,313 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright 2024 + * Lukasz Majewski, DENX Software Engineering, lukma@denx.de + */ +/dts-v1/; +#include "imx28-lwe.dtsi" + +/ { + model = "BTT3"; + + compatible = "lwn,imx28-btt3", "fsl,imx28"; + + chosen { + bootargs = "root=/dev/mmcblk0p2 rootfstype=ext4 ro rootwait console=ttyAMA0,115200 panic=1 quiet"; + }; + + memory@40000000 { + reg = <0x40000000 0x10000000>; + device_type = "memory"; + }; + + panel { + compatible = "powertip,hx8238a", "panel-dpi"; + power-supply = <®_3v3>; + width-mm = <70>; + height-mm = <52>; + + panel-timing { + clock-frequency = <6500000>; + hactive = <320>; + vactive = <240>; + hfront-porch = <20>; + hback-porch = <38>; + hsync-len = <30>; + vfront-porch = <4>; + vback-porch = <14>; + vsync-len = <4>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <0>; + pixelclk-active = <1>; + }; + + port { + panel_in: endpoint { + remote-endpoint = <&display_out>; + }; + }; + }; + + poweroff { + compatible = "gpio-poweroff"; + gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; + }; + + sound { + compatible = "simple-audio-card"; + simple-audio-card,name = "BTTC Audio"; + simple-audio-card,widgets = "Speaker", "BTTC Speaker"; + simple-audio-card,routing = "BTTC Speaker", "SPKOUTN", "BTTC Speaker", "SPKOUTP"; + + simple-audio-card,dai-link@0 { + format = "left_j"; + bitclock-master = <&dai0_master>; + frame-master = <&dai0_master>; + mclk-fs = <256>; + + dai0_master: cpu { + sound-dai = <&saif0>; + }; + + codec { + sound-dai = <&wm89xx>; + clocks = <&saif0>; + }; + }; + }; + + wifi_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_en_pin_bttc>; + reset-gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; + /* W1-163 needs 60us for WL_EN to be low and */ + /* 150ms after high before downloading FW is possible */ + post-power-on-delay-ms = <200>; + power-off-delay-us = <100>; + }; +}; + +&auart0 { + pinctrl-names = "default"; + pinctrl-0 = <&auart0_2pins_a>; + status = "okay"; +}; + +&auart3 { + pinctrl-names = "default"; + pinctrl-0 = <&auart3_pins_a>; + uart-has-rtscts; + status = "okay"; +}; + +&i2c0 { + wm89xx: audio-codec@1a { + compatible = "wlf,wm8940"; + reg = <0x1a>; + #sound-dai-cells = <0>; + }; +}; + +&lcdif { + pinctrl-names = "default"; + pinctrl-0 = <&lcdif_24bit_pins_a>, <&lcdif_sync_pins_bttc>, + <&lcdif_reset_pins_bttc>; + status = "okay"; + + port { + display_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; +}; + +&mac0 { + clocks = <&clks 57>, <&clks 57>, <&clks 64>; + clock-names = "ipg", "ahb", "enet_out"; + phy-handle = <&mac0_phy>; + phy-mode = "rmii"; + phy-supply = <®_3v3>; + /* + * This MAC address is adjusted during production. + * Value specified below is used as a fallback during recovery. + */ + local-mac-address = [ 00 11 B8 00 BF 8A ]; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + mac0_phy: ethernet-phy@0 { + /* LAN8720Ai - PHY ID */ + compatible = "ethernet-phy-id0007.c0f0","ethernet-phy-ieee802.3-c22"; + reg = <0>; + smsc,disable-energy-detect; + max-speed = <100>; + reset-gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; + reset-assert-us = <1000>; + reset-deassert-us = <1000>; + }; + }; +}; + +&pinctrl { + pinctrl-names = "default"; + pinctrl-0 = <&hog_pins_a>, <&hog_pins_rev>; + + hog_pins_a: hog@0 { + reg = <0>; + fsl,pinmux-ids = < + MX28_PAD_GPMI_RDY2__GPIO_0_22 + MX28_PAD_GPMI_RDY3__GPIO_0_23 + MX28_PAD_GPMI_RDN__GPIO_0_24 + MX28_PAD_LCD_VSYNC__GPIO_1_28 + MX28_PAD_SSP2_SS1__GPIO_2_20 + MX28_PAD_SSP2_SS2__GPIO_2_21 + MX28_PAD_AUART2_CTS__GPIO_3_10 + MX28_PAD_AUART2_RTS__GPIO_3_11 + MX28_PAD_GPMI_WRN__GPIO_0_25 + MX28_PAD_ENET0_RXD2__GPIO_4_9 + MX28_PAD_ENET0_TXD2__GPIO_4_11 + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; + + hog_pins_rev: hog@1 { + reg = <1>; + fsl,pinmux-ids = < + MX28_PAD_ENET0_RXD3__GPIO_4_10 + MX28_PAD_ENET0_TX_CLK__GPIO_4_5 + MX28_PAD_ENET0_COL__GPIO_4_14 + MX28_PAD_ENET0_CRS__GPIO_4_15 + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; + + keypad_pins_bttc: keypad-bttc@0 { + reg = <0>; + fsl,pinmux-ids = < + MX28_PAD_GPMI_D00__GPIO_0_0 + MX28_PAD_AUART0_CTS__GPIO_3_2 + MX28_PAD_AUART0_RTS__GPIO_3_3 + MX28_PAD_GPMI_D03__GPIO_0_3 + MX28_PAD_GPMI_D04__GPIO_0_4 + MX28_PAD_GPMI_D05__GPIO_0_5 + MX28_PAD_GPMI_D06__GPIO_0_6 + MX28_PAD_GPMI_D07__GPIO_0_7 + MX28_PAD_GPMI_CE1N__GPIO_0_17 + MX28_PAD_GPMI_CE2N__GPIO_0_18 + MX28_PAD_GPMI_CE3N__GPIO_0_19 + MX28_PAD_GPMI_RDY0__GPIO_0_20 + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; + + lcdif_sync_pins_bttc: lcdif-bttc@0 { + reg = <0>; + fsl,pinmux-ids = < + MX28_PAD_LCD_DOTCLK__LCD_DOTCLK + MX28_PAD_LCD_ENABLE__LCD_ENABLE + MX28_PAD_LCD_HSYNC__LCD_HSYNC + MX28_PAD_LCD_RD_E__LCD_VSYNC + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; + + lcdif_reset_pins_bttc: lcdif-bttc@1 { + reg = <1>; + fsl,pinmux-ids = < + MX28_PAD_LCD_RESET__GPIO_3_30 + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; + + ssp1_sdio_pins_a: ssp1-sdio@0 { + reg = <0>; + fsl,pinmux-ids = < + MX28_PAD_SSP1_DATA0__SSP1_D0 + MX28_PAD_GPMI_D01__SSP1_D1 + MX28_PAD_GPMI_D02__SSP1_D2 + MX28_PAD_SSP1_DATA3__SSP1_D3 + MX28_PAD_SSP1_CMD__SSP1_CMD + MX28_PAD_SSP1_SCK__SSP1_SCK + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; + + wifi_en_pin_bttc: wifi-en-pin@0 { + reg = <0>; + fsl,pinmux-ids = < + MX28_PAD_GPMI_CLE__GPIO_0_27 + >; + fsl,drive-strength = ; + fsl,voltage = ; + fsl,pull-up = ; + }; +}; + +&pwm { + pinctrl-names = "default"; + pinctrl-0 = <&pwm3_pins_a>; + status = "okay"; +}; + +®_usb_5v { + gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; +}; + +&saif0 { + pinctrl-names = "default"; + pinctrl-0 = <&saif0_pins_a>; + #sound-dai-cells = <0>; + assigned-clocks = <&clks 53>; + assigned-clock-rates = <12000000>; + status = "okay"; +}; + +&saif1 { + pinctrl-names = "default"; + pinctrl-0 = <&saif1_pins_a>; + #sound-dai-cells = <0>; + fsl,saif-master = <&saif0>; + status = "okay"; +}; + +&ssp1 { + compatible = "fsl,imx28-mmc"; + pinctrl-names = "default"; + pinctrl-0 = <&ssp1_sdio_pins_a>; + bus-width = <4>; + no-1-8-v; /* force 3.3V VIO */ + non-removable; + vmmc-supply = <®_3v3>; + mmc-pwrseq = <&wifi_pwrseq>; + keep-power-in-suspend; + status = "okay"; + + wlan@1 { + reg = <1>; + compatible = "brcm,bcm4329-fmac"; + }; +}; + +&ssp2 { + compatible = "fsl,imx28-spi"; + pinctrl-names = "default"; + pinctrl-0 = <&spi2_pins_a>; + status = "okay"; +}; From e0daff38f48ce33e5691d4bc1df93daca3213c45 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Tue, 7 Jan 2025 10:49:41 +0100 Subject: [PATCH 02/32] ARM: dts: imx7s: Move csi-mux to below root fsl,imx-iomuxc-gpr.yaml only contains the mux-controller but the actual video-mux is not part of it. So move it below root node. Fixes the dtbs_check warning: arch/arm/boot/dts/nxp/imx/imx7s-mba7.dtb: iomuxc-gpr@30340000: 'csi-mux' does not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/soc/imx/fsl,imx-iomuxc-gpr.yaml# Signed-off-by: Alexander Stein Reviewed-by: Laurent Pinchart Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx7s.dtsi | 56 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx7s.dtsi b/arch/arm/boot/dts/nxp/imx/imx7s.dtsi index 22dd72499ef2..2629968001a7 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7s.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx7s.dtsi @@ -176,6 +176,34 @@ timer { ; }; + video_mux: csi-mux { + compatible = "video-mux"; + mux-controls = <&mux 0>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + + port@0 { + reg = <0>; + }; + + port@1 { + reg = <1>; + + csi_mux_from_mipi_vc0: endpoint { + remote-endpoint = <&mipi_vc0_to_csi_mux>; + }; + }; + + port@2 { + reg = <2>; + + csi_mux_to_csi: endpoint { + remote-endpoint = <&csi_from_csi_mux>; + }; + }; + }; + soc: soc { #address-cells = <1>; #size-cells = <1>; @@ -529,34 +557,6 @@ mux: mux-controller { #mux-control-cells = <1>; mux-reg-masks = <0x14 0x00000010>; }; - - video_mux: csi-mux { - compatible = "video-mux"; - mux-controls = <&mux 0>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - - port@0 { - reg = <0>; - }; - - port@1 { - reg = <1>; - - csi_mux_from_mipi_vc0: endpoint { - remote-endpoint = <&mipi_vc0_to_csi_mux>; - }; - }; - - port@2 { - reg = <2>; - - csi_mux_to_csi: endpoint { - remote-endpoint = <&csi_from_csi_mux>; - }; - }; - }; }; ocotp: efuse@30350000 { From 8ce68566fa2ce8855860112d6c6188d460ea1cdb Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Wed, 8 Jan 2025 21:07:10 -0300 Subject: [PATCH 03/32] ARM: dts: imx53-ppd: Fix touchscreen reset-gpios According to atmel,maxtouch.yaml, the correct property that describes the GPIO connected to the touchscreen reset line is 'reset-gpios'. Change it accordingly to fix the following dt-schema warning: 'reset-gpio' does not match any of the regexes: 'pinctrl-[0-9]+' Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx53-ppd.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx53-ppd.dts b/arch/arm/boot/dts/nxp/imx/imx53-ppd.dts index e939acc1c88b..2892e457fea7 100644 --- a/arch/arm/boot/dts/nxp/imx/imx53-ppd.dts +++ b/arch/arm/boot/dts/nxp/imx/imx53-ppd.dts @@ -593,7 +593,7 @@ &i2c2 { touchscreen@4b { compatible = "atmel,maxtouch"; - reset-gpio = <&gpio5 19 GPIO_ACTIVE_LOW>; + reset-gpios = <&gpio5 19 GPIO_ACTIVE_LOW>; reg = <0x4b>; interrupt-parent = <&gpio5>; interrupts = <4 IRQ_TYPE_LEVEL_LOW>; From bb93ead69410a8096b3e33d197eb26e003abb0dc Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Sun, 12 Jan 2025 09:41:27 -0300 Subject: [PATCH 04/32] ARM: dts: vfxxx: Fix the CAAM job ring node names According to fsl,sec-v4.0.yaml, the job ring node names should be 'jr'. Change them to fix the following dt-schema warnings: crypto@400f0000: 'jr0@1000', 'jr1@2000' do not match any of the regexes: '^jr@[0-9a-f]+$', '^rtic@[0-9a-f]+$', 'pinctrl-[0-9]+' Signed-off-by: Fabio Estevam Reviewed-by: Krzysztof Kozlowski Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/vf/vfxxx.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi b/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi index acccf9a3c898..6334ad4aec4b 100644 --- a/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi +++ b/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi @@ -725,13 +725,13 @@ crypto: crypto@400f0000 { clocks = <&clks VF610_CLK_CAAM>; clock-names = "ipg"; - sec_jr0: jr0@1000 { + sec_jr0: jr@1000 { compatible = "fsl,sec-v4.0-job-ring"; reg = <0x1000 0x1000>; interrupts = <102 IRQ_TYPE_LEVEL_HIGH>; }; - sec_jr1: jr1@2000 { + sec_jr1: jr@2000 { compatible = "fsl,sec-v4.0-job-ring"; reg = <0x2000 0x1000>; interrupts = <102 IRQ_TYPE_LEVEL_HIGH>; From 9c9b2d86a642a83ade5ea4df2bceb4d568e3e9e3 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Sun, 12 Jan 2025 12:27:44 -0300 Subject: [PATCH 05/32] ARM: dts: imx5: Fix the CCM interrupts description On the i.MX5 chips the peripheral interrupts are represented directly only by their interrupt numbers. The CCM nodes are not following this format and cause the following dt-schema warnings: ccm@73fd4000: interrupts: [[0], [71], [4], [0], [72], [4]] is too long Fix it by passing only the two interrupt numbers. Run-time tested in on an imx53-qsb board. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx50.dtsi | 2 +- arch/arm/boot/dts/nxp/imx/imx51.dtsi | 2 +- arch/arm/boot/dts/nxp/imx/imx53.dtsi | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx50.dtsi b/arch/arm/boot/dts/nxp/imx/imx50.dtsi index 1b6f444443dd..d76c496b3f71 100644 --- a/arch/arm/boot/dts/nxp/imx/imx50.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx50.dtsi @@ -338,7 +338,7 @@ src: reset-controller@53fd0000 { clks: ccm@53fd4000 { compatible = "fsl,imx50-ccm"; reg = <0x53fd4000 0x4000>; - interrupts = <0 71 0x04 0 72 0x04>; + interrupts = <71>, <72>; #clock-cells = <1>; }; diff --git a/arch/arm/boot/dts/nxp/imx/imx51.dtsi b/arch/arm/boot/dts/nxp/imx/imx51.dtsi index cc88da4d7785..8323e3a56a1f 100644 --- a/arch/arm/boot/dts/nxp/imx/imx51.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx51.dtsi @@ -458,7 +458,7 @@ src: reset-controller@73fd0000 { clks: ccm@73fd4000 { compatible = "fsl,imx51-ccm"; reg = <0x73fd4000 0x4000>; - interrupts = <0 71 0x04 0 72 0x04>; + interrupts = <71>, <72>; #clock-cells = <1>; }; }; diff --git a/arch/arm/boot/dts/nxp/imx/imx53.dtsi b/arch/arm/boot/dts/nxp/imx/imx53.dtsi index 845e2bf8460a..faac7cc249d0 100644 --- a/arch/arm/boot/dts/nxp/imx/imx53.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx53.dtsi @@ -598,7 +598,7 @@ src: reset-controller@53fd0000 { clks: ccm@53fd4000 { compatible = "fsl,imx53-ccm"; reg = <0x53fd4000 0x4000>; - interrupts = <0 71 0x04 0 72 0x04>; + interrupts = <71>, <72>; #clock-cells = <1>; }; From 6b00c9b992a13e8efd198cb37a7ab38462cb5fca Mon Sep 17 00:00:00 2001 From: Krzysztof Kozlowski Date: Wed, 15 Jan 2025 22:16:58 +0100 Subject: [PATCH 06/32] ARM: dts: nxp: vf: Align GPIO hog name with bindings Bindings expect GPIO hog names to end with 'hog' suffix, so correct it to fix dtbs_check warning: vf610-zii-dev-rev-c.dtb: eth0_intrp: $nodename:0: 'eth0_intrp' does not match '^.+-hog(-[0-9]+)?$' Signed-off-by: Krzysztof Kozlowski Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-c.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-c.dts index 6f9878f124c4..4f99044837f8 100644 --- a/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-c.dts +++ b/arch/arm/boot/dts/nxp/vf/vf610-zii-dev-rev-c.dts @@ -392,7 +392,7 @@ &uart3 { }; &gpio0 { - eth0_intrp { + eth0-intrp-hog { gpio-hog; gpios = <23 GPIO_ACTIVE_HIGH>; input; @@ -401,7 +401,7 @@ eth0_intrp { }; &gpio3 { - eth0_intrp { + eth0-intrp-hog { gpio-hog; gpios = <2 GPIO_ACTIVE_HIGH>; input; From 2658deedd676f48dd47fe35dcee9a7e5466883ea Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Mon, 20 Jan 2025 14:24:58 +0100 Subject: [PATCH 07/32] ARM: dts: imx6qdl-mba6: change sound card model name The card name for ALSA is generated from the model name string and is limited to 16 characters. Use a shorter name to prevent cutting the name. Since nearly all starter kit mainboards for i.MX based SoM by TQ-Systems use the same codec with the same routing on board it is a good idea to use the same mode name for the sound card. This allows sharing a default asound.conf in BSP over all the kits. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi index 8cefda70db63..ee2c6bec92e8 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi @@ -124,7 +124,7 @@ sound { compatible = "fsl,imx-audio-tlv320aic32x4"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_audmux>; - model = "imx-audio-tlv320aic32x4"; + model = "tqm-tlv320aic32"; ssi-controller = <&ssi1>; audio-codec = <&tlv320aic32x4>; audio-asrc = <&asrc>; From eaf6e7c6f527560541ad4f05dcd40a9c7a70e1c7 Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Mon, 20 Jan 2025 14:24:59 +0100 Subject: [PATCH 08/32] ARM: dts: imx7-mba7: change sound card model name The card name for ALSA is generated from the model name string and is limited to 16 characters. Use a shorter name to prevent cutting the name. Since nearly all starter kit mainboards for i.MX based SoM by TQ-Systems use the same codec with the same routing on board it is a good idea to use the same mode name for the sound card. This allows sharing a default asound.conf in BSP over all the kits. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx7-mba7.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx7-mba7.dtsi b/arch/arm/boot/dts/nxp/imx/imx7-mba7.dtsi index 576a7df505d3..4d948a9757f9 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7-mba7.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx7-mba7.dtsi @@ -170,7 +170,7 @@ reg_audio_3v3: regulator-audio-3v3 { sound { compatible = "fsl,imx-audio-tlv320aic32x4"; - model = "imx-audio-tlv320aic32x4"; + model = "tqm-tlv320aic32"; ssi-controller = <&sai1>; audio-codec = <&tlv320aic32x4>; audio-routing = From a84784aaf30e2685b791c85a7876986da6987942 Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Mon, 20 Jan 2025 14:25:00 +0100 Subject: [PATCH 09/32] ARM: dts: mba6ul: change sound card model name The card name for ALSA is generated from the model name string and is limited to 16 characters. Use a shorter name to prevent cutting the name. Since nearly all starter kit mainboards for i.MX based SoM by TQ-Systems use the same codec with the same routing on board it is a good idea to use the same mode name for the sound card. This allows sharing a default asound.conf in BSP over all the kits. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi b/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi index 941d9860218e..67a3d484bc9f 100644 --- a/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi +++ b/arch/arm/boot/dts/nxp/imx/mba6ulx.dtsi @@ -142,7 +142,7 @@ linux,cma { sound { compatible = "fsl,imx-audio-tlv320aic32x4"; - model = "imx-audio-tlv320aic32x4"; + model = "tqm-tlv320aic32"; ssi-controller = <&sai1>; audio-codec = <&tlv320aic32x4>; audio-asrc = <&asrc>; From e9906cbe2a8d790a1c15884c71cd0a56c4dbe910 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Mon, 3 Feb 2025 09:05:11 -0300 Subject: [PATCH 10/32] ARM: dts: vf610-bk4: Use the more specific "lwn,bk4-spi" Currently, the compatible string used for the spidev device is "lwn,bk4", which is the same as the board compatible string documented at fsl.yaml. This causes several dt-schema warnings: make dtbs_check DT_SCHEMA_FILES=fsl.yaml ... ['lwn,bk4'] is too short 'lwn,bk4' is not one of ['tq,imx8dxp-tqma8xdp-mba8xx'] 'lwn,bk4' is not one of ['tq,imx8qxp-tqma8xqp-mba8xx'] 'lwn,bk4' is not one of ['armadeus,imx1-apf9328', 'fsl,imx1ads'] Use a more specific "lwn,bk4-spi" compatible string to fix the problem. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/vf/vf610-bk4.dts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/vf/vf610-bk4.dts b/arch/arm/boot/dts/nxp/vf/vf610-bk4.dts index 722182f5fd17..2492fb99956c 100644 --- a/arch/arm/boot/dts/nxp/vf/vf610-bk4.dts +++ b/arch/arm/boot/dts/nxp/vf/vf610-bk4.dts @@ -119,7 +119,7 @@ &dspi0 { status = "okay"; spidev0@0 { - compatible = "lwn,bk4"; + compatible = "lwn,bk4-spi"; spi-max-frequency = <30000000>; reg = <0>; fsl,spi-cs-sck-delay = <200>; @@ -136,7 +136,7 @@ &dspi3 { #address-cells = <0>; slave { - compatible = "lwn,bk4"; + compatible = "lwn,bk4-spi"; spi-max-frequency = <30000000>; }; }; From b55b73bec2481afaaab15a0f61b30442dfbe1194 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Mon, 3 Feb 2025 14:30:20 -0300 Subject: [PATCH 11/32] ARM: dts: imx28-sps1: Fix GPIO LEDs description According to leds-gpio.yaml, the LED nodes should not contain unit addresses. Remove them. Also, 'default-trigger' is not a valid property. Change it to 'linux,default-trigger'. These changes fix the following dt-schema warnings: led@1: Unevaluated properties are not allowed ('reg' was unexpected) led@2: Unevaluated properties are not allowed ('reg' was unexpected) led@3: Unevaluated properties are not allowed ('default-trigger', 'reg' were unexpected) leds: '#address-cells', '#size-cells' do not match any of the regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+' Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/mxs/imx28-sps1.dts | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-sps1.dts b/arch/arm/boot/dts/nxp/mxs/imx28-sps1.dts index 0f01dded4e3d..ca62e7933116 100644 --- a/arch/arm/boot/dts/nxp/mxs/imx28-sps1.dts +++ b/arch/arm/boot/dts/nxp/mxs/imx28-sps1.dts @@ -24,30 +24,25 @@ reg_usb0_vbus: regulator-0 { }; leds { - #address-cells = <1>; - #size-cells = <0>; compatible = "gpio-leds"; status = "okay"; - led@1 { + led-1 { label = "sps1-1:yellow:user"; gpios = <&gpio0 6 0>; linux,default-trigger = "heartbeat"; - reg = <0>; }; - led@2 { + led-2 { label = "sps1-2:red:user"; gpios = <&gpio0 3 0>; linux,default-trigger = "heartbeat"; - reg = <1>; }; - led@3 { + led-3 { label = "sps1-3:red:user"; gpios = <&gpio0 0 0>; - default-trigger = "heartbeat"; - reg = <2>; + linux,default-trigger = "heartbeat"; }; }; From e34ba2a343137defb7bf197f7f31a4882c94cc2d Mon Sep 17 00:00:00 2001 From: Chancel Liu Date: Thu, 9 Jan 2025 10:27:17 +0900 Subject: [PATCH 12/32] ARM: dts: imx6ul-14x14-evk: Complete WM8960 power supplies WM8960 has the following power supplies: - AVDD - DBVDD - DCVDD - SPKVDD1 - SPKVDD2 Add new audio regulators to reflect the schematic and complete missed power supplies. Signed-off-by: Chancel Liu Signed-off-by: Shawn Guo --- .../boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi index 0e839bbfea08..911ccbd132cf 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi @@ -62,6 +62,33 @@ reg_can_3v3: regulator-can-3v3 { gpios = <&gpio_spi 3 GPIO_ACTIVE_LOW>; }; + reg_audio_5v: regulator-audio-pwr { + compatible = "regulator-fixed"; + regulator-name = "audio-5v"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + }; + + reg_audio_3v3: regulator-audio-3v3 { + compatible = "regulator-fixed"; + regulator-name = "audio-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + reg_audio_1v8: regulator-audio-1v8 { + compatible = "regulator-fixed"; + regulator-name = "audio-1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + sound-wm8960 { compatible = "fsl,imx-audio-wm8960"; model = "wm8960-audio"; @@ -139,6 +166,11 @@ codec: wm8960@1a { wlf,gpio-cfg = <1 3>; clocks = <&clks IMX6UL_CLK_SAI2>; clock-names = "mclk"; + AVDD-supply = <®_audio_3v3>; + DBVDD-supply = <®_audio_1v8>; + DCVDD-supply = <®_audio_1v8>; + SPKVDD1-supply = <®_audio_5v>; + SPKVDD2-supply = <®_audio_5v>; }; camera@3c { From 6a69b494c6dbafa53c49c4da3e7cef4687e256cb Mon Sep 17 00:00:00 2001 From: Chancel Liu Date: Thu, 9 Jan 2025 10:27:18 +0900 Subject: [PATCH 13/32] ARM: dts: imx7d-sdb: Complete WM8960 power supplies WM8960 has the following power supplies: - AVDD - DBVDD - DCVDD - SPKVDD1 - SPKVDD2 Add new audio regulators to reflect the schematic and complete missed power supplies. Signed-off-by: Chancel Liu Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts | 32 +++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts b/arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts index 6cde84636900..17236f90ab33 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts +++ b/arch/arm/boot/dts/nxp/imx/imx7d-sdb.dts @@ -143,6 +143,33 @@ reg_fec2_3v3: regulator-fec2-3v3 { gpio = <&gpio1 4 GPIO_ACTIVE_LOW>; }; + reg_audio_5v: regulator-audio-pwr { + compatible = "regulator-fixed"; + regulator-name = "audio-5v"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + regulator-always-on; + regulator-boot-on; + }; + + reg_audio_3v3: regulator-audio-3v3 { + compatible = "regulator-fixed"; + regulator-name = "audio-3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + regulator-boot-on; + }; + + reg_audio_1v8: regulator-audio-1v8 { + compatible = "regulator-fixed"; + regulator-name = "audio-1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-always-on; + regulator-boot-on; + }; + backlight: backlight { compatible = "pwm-backlight"; pwms = <&pwm1 0 5000000 0>; @@ -406,6 +433,11 @@ codec: wm8960@1a { <&clks IMX7D_AUDIO_MCLK_ROOT_DIV>; assigned-clock-parents = <&clks IMX7D_PLL_AUDIO_POST_DIV>; assigned-clock-rates = <0>, <884736000>, <12288000>; + AVDD-supply = <®_audio_3v3>; + DBVDD-supply = <®_audio_1v8>; + DCVDD-supply = <®_audio_1v8>; + SPKVDD1-supply = <®_audio_5v>; + SPKVDD2-supply = <®_audio_5v>; }; }; From f6aa65a6b0cba4686939a68f3b28249ad5bf4380 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Wed, 19 Feb 2025 09:17:36 +0100 Subject: [PATCH 14/32] ARM: dts: imx6qdl-tqma6: Order DT properties 'compatible' and 'reg' are put first. Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi index 6152a9ed4768..303def00cdfa 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi @@ -25,8 +25,8 @@ &ecspi1 { m25p80: flash@0 { compatible = "jedec,spi-nor"; - spi-max-frequency = <50000000>; reg = <0>; + spi-max-frequency = <50000000>; #address-cells = <1>; #size-cells = <1>; m25p,fast-read; From e099d2fdad8a1468501b48696111963c062da400 Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Wed, 19 Feb 2025 09:17:37 +0100 Subject: [PATCH 15/32] ARM: dts: imx6qdl-tqma6: limit PMIC SW4 to 3.3V This is a fixed 3.3V rail supplying several hardware on SOM. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi index 303def00cdfa..68986fb3b8df 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi @@ -119,7 +119,7 @@ reg_ddr_1v5b: sw3b { }; sw4_reg: sw4 { - regulator-min-microvolt = <800000>; + regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; From a5e264a3d09199cb7b117c77637f78adf82a6199 Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Wed, 19 Feb 2025 09:17:38 +0100 Subject: [PATCH 16/32] ARM: dts: imx6qdl-tqma6: use sw4_reg as 3.3V supply This matches the real hardware and allows to remove the virtual 3.3V regulator. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi | 13 ++----------- arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6a.dtsi | 4 ++-- arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6b.dtsi | 4 ++-- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi index 68986fb3b8df..6eee1a4b0b19 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi @@ -7,16 +7,6 @@ #include #include -/ { - reg_3p3v: regulator-3p3v { - compatible = "regulator-fixed"; - regulator-name = "supply-3p3v"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - }; -}; - &ecspi1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_ecspi1>; @@ -29,6 +19,7 @@ m25p80: flash@0 { spi-max-frequency = <50000000>; #address-cells = <1>; #size-cells = <1>; + vcc-supply = <&sw4_reg>; m25p,fast-read; }; }; @@ -183,7 +174,7 @@ reg_vgen6_3v3: vgen6 { &usdhc3 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usdhc3>; - vmmc-supply = <®_3p3v>; + vmmc-supply = <&sw4_reg>; non-removable; disable-wp; no-sd; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6a.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6a.dtsi index 828996382f24..e8fd37dd8835 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6a.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6a.dtsi @@ -30,14 +30,14 @@ pmic: pmic@8 { temperature-sensor@48 { compatible = "national,lm75a"; reg = <0x48>; - vs-supply = <®_3p3v>; + vs-supply = <&sw4_reg>; }; eeprom@50 { compatible = "st,24c64", "atmel,24c64"; reg = <0x50>; pagesize = <32>; - vcc-supply = <®_3p3v>; + vcc-supply = <&sw4_reg>; }; }; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6b.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6b.dtsi index 1d0966b8d99e..0e404c1f62f2 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6b.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6b.dtsi @@ -23,14 +23,14 @@ pmic: pmic@8 { temperature-sensor@48 { compatible = "national,lm75a"; reg = <0x48>; - vs-supply = <®_3p3v>; + vs-supply = <&sw4_reg>; }; eeprom@50 { compatible = "st,24c64", "atmel,24c64"; reg = <0x50>; pagesize = <32>; - vcc-supply = <®_3p3v>; + vcc-supply = <&sw4_reg>; }; }; From 4c08c7771b90632a53063e71af38ce78bbc97e8a Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Wed, 19 Feb 2025 09:17:39 +0100 Subject: [PATCH 17/32] ARM: dts: imx6qdl-tqma6: Add partitions subnode to spi-nor The bootloader may add MTD partitions in this subnode if present. Add an empty partitions node which the bootloader will fill with configured MTD partitions. Remove #size-cells from MTD node because this is deprecated. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi index 6eee1a4b0b19..07492f63a1f8 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-tqma6.dtsi @@ -17,10 +17,14 @@ m25p80: flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <50000000>; - #address-cells = <1>; - #size-cells = <1>; vcc-supply = <&sw4_reg>; m25p,fast-read; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + }; }; }; From ddc58feff53734fa2d2374750bbc3ba9a376519d Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Wed, 19 Feb 2025 09:17:40 +0100 Subject: [PATCH 18/32] ARM: dts: imx6ul-tqma6ul: Order DT properties 'compatible' and 'reg' are put first. Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi index c9c0794f01a2..d63229d8b465 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi @@ -162,13 +162,13 @@ &qspi { status = "okay"; flash0: flash@0 { + compatible = "jedec,spi-nor"; + reg = <0>; #address-cells = <1>; #size-cells = <1>; - compatible = "jedec,spi-nor"; spi-max-frequency = <33000000>; spi-rx-bus-width = <4>; spi-tx-bus-width = <1>; - reg = <0>; }; }; From 85c095a8940f0f8a5f1c531870c3086b4c809ce4 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Wed, 19 Feb 2025 09:17:41 +0100 Subject: [PATCH 19/32] ARM: dts: imx6ul-tqma6ul: Add vcc-supply for spi-nor (Q)SPI NOR flash is supplied by 1.8V. Add the corresponding supply. Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi index d63229d8b465..1e4022cba3cc 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi @@ -169,6 +169,7 @@ flash0: flash@0 { spi-max-frequency = <33000000>; spi-rx-bus-width = <4>; spi-tx-bus-width = <1>; + vcc-supply = <®_vldo4>; }; }; From 63c0933fae4866d6e1319250d085bfa9ff2604a2 Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Wed, 19 Feb 2025 09:17:42 +0100 Subject: [PATCH 20/32] ARM: dts: tqma6ul: Add partitions subnode to spi-nor The bootloader adds MTD partitions in this subnode if present, or in the spi-nor node itself otherwise. Setting #size-cells in MTD nodes itself is deprecated by mtd.yaml. Fix all this by adding an empty partitions node which the bootloader will fill with configured MTD partitions. Remove the deprecated properties as well. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi index 1e4022cba3cc..2dd635a615cb 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul-common.dtsi @@ -164,12 +164,16 @@ &qspi { flash0: flash@0 { compatible = "jedec,spi-nor"; reg = <0>; - #address-cells = <1>; - #size-cells = <1>; spi-max-frequency = <33000000>; spi-rx-bus-width = <4>; spi-tx-bus-width = <1>; vcc-supply = <®_vldo4>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + }; }; }; From 52b52615047d7c476a136858dfbc85756658fb90 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Wed, 19 Feb 2025 09:17:43 +0100 Subject: [PATCH 21/32] ARM: dts: imx7-tqma7: Add vcc-supply for spi-nor (Q)SPI NOR flash is supplied by 3.3V. Add the corresponding supply. Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi b/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi index aa8f65cd4adf..618c3f68fbe2 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi @@ -265,6 +265,7 @@ flash0: flash@0 { spi-max-frequency = <29000000>; spi-rx-bus-width = <4>; spi-tx-bus-width = <4>; + vcc-supply = <&vgen4_reg>; }; }; From 3525d9579f66497a2a330d58b1d54b1042c04e49 Mon Sep 17 00:00:00 2001 From: Markus Niebel Date: Wed, 19 Feb 2025 09:17:44 +0100 Subject: [PATCH 22/32] ARM: dts: tqma7: Add partitions subnode to spi-nor The bootloader adds MTD partitions in this subnode if present. Add an empty partitions node which the bootloader will fill with configured MTD partitions. Signed-off-by: Markus Niebel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi b/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi index 618c3f68fbe2..2966a33bc528 100644 --- a/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx7-tqma7.dtsi @@ -266,6 +266,12 @@ flash0: flash@0 { spi-rx-bus-width = <4>; spi-tx-bus-width = <4>; vcc-supply = <&vgen4_reg>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + }; }; }; From 41e478801c76c65419fec8be70dfce9eb10d34b1 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Thu, 20 Feb 2025 09:48:09 -0300 Subject: [PATCH 23/32] ARM: dts: vfxxx: Fix the order of the DMA entries According to fsl,dspi.yaml the expected order for describing the dmas and dma-names properties is "tx" first, followed by "rx". Adjust it acordingly to fix the following dt-schema warnings: spi@4002c000: dma-names:0: 'tx' was expected spi@4002c000: dma-names:1: 'rx' was expected Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/vf/vfxxx.dtsi | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi b/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi index 6334ad4aec4b..597f20be82f1 100644 --- a/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi +++ b/arch/arm/boot/dts/nxp/vf/vfxxx.dtsi @@ -158,8 +158,8 @@ dspi0: spi@4002c000 { clocks = <&clks VF610_CLK_DSPI0>; clock-names = "dspi"; spi-num-chipselects = <6>; - dmas = <&edma1 1 12>, <&edma1 1 13>; - dma-names = "rx", "tx"; + dmas = <&edma1 1 13>, <&edma1 1 12>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -172,8 +172,8 @@ dspi1: spi@4002d000 { clocks = <&clks VF610_CLK_DSPI1>; clock-names = "dspi"; spi-num-chipselects = <4>; - dmas = <&edma1 1 14>, <&edma1 1 15>; - dma-names = "rx", "tx"; + dmas = <&edma1 1 15>, <&edma1 1 14>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -529,9 +529,8 @@ dspi2: spi@400ac000 { clocks = <&clks VF610_CLK_DSPI2>; clock-names = "dspi"; spi-num-chipselects = <2>; - dmas = <&edma1 0 10>, - <&edma1 0 11>; - dma-names = "rx", "tx"; + dmas = <&edma1 0 11>, <&edma1 0 10>; + dma-names = "tx", "rx"; status = "disabled"; }; @@ -544,8 +543,8 @@ dspi3: spi@400ad000 { clocks = <&clks VF610_CLK_DSPI3>; clock-names = "dspi"; spi-num-chipselects = <2>; - dmas = <&edma1 0 12>, <&edma1 0 13>; - dma-names = "rx", "tx"; + dmas = <&edma1 0 13>, <&edma1 0 12>; + dma-names = "tx", "rx"; status = "disabled"; }; From a1ea2f97e7ddf982bf5c81cf25a7525f8e6f31f6 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Thu, 20 Feb 2025 10:03:45 -0300 Subject: [PATCH 24/32] ARM: dts: imx31: Use nand-controller as node name According to mxc-nand.yaml, the correct node name must be 'nand-controller'. Change it accordingly to fix the following dt-schema warning: $nodename:0: 'nand@b8000000' does not match '^nand-controller(@.*)?' Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx31.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx31.dtsi b/arch/arm/boot/dts/nxp/imx/imx31.dtsi index 00006c90d9a7..813a81558c40 100644 --- a/arch/arm/boot/dts/nxp/imx/imx31.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx31.dtsi @@ -340,7 +340,7 @@ emi@b8000000 { /* External Memory Interface */ #address-cells = <1>; #size-cells = <1>; - nfc: nand@b8000000 { + nfc: nand-controller@b8000000 { compatible = "fsl,imx31-nand", "fsl,imx27-nand"; reg = <0xb8000000 0x1000>; interrupts = <33>; From 1ff701b3e07f05ae90886a7d1ab0529536714ab2 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Thu, 20 Feb 2025 10:31:53 -0300 Subject: [PATCH 25/32] ARM: dts: imx53-mba53: Fix the PCA9554 compatible gpio-pca95xx.yaml documents 'nxp,pca9554', so use this compatible to fix the following dt-schema warning: failed to match any schema with compatible: ['pca9554'] Signed-off-by: Fabio Estevam Reviewed-by: Krzysztof Kozlowski Reviewed-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx53-mba53.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts index c14eb7280f09..3cdb87ac1d7c 100644 --- a/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts +++ b/arch/arm/boot/dts/nxp/imx/imx53-mba53.dts @@ -162,7 +162,7 @@ codec: sgtl5000@a { }; expander: pca9554@20 { - compatible = "pca9554"; + compatible = "nxp,pca9554"; reg = <0x20>; interrupts = <109>; #gpio-cells = <2>; From 22d8f69c8ddcd036d6e81589e95a058b86272bd1 Mon Sep 17 00:00:00 2001 From: Max Merchel Date: Tue, 25 Feb 2025 15:44:35 +0100 Subject: [PATCH 26/32] ARM: dts: imx6ul-tqma6ul1: Change include order to disable fec2 node TQMa6UL1 has only one FEC which needs to be disabled as one of the last steps. imx6ul-tqma6ul2.dtsi can't be included in imx6ul-tqma6ul1.dtsi as the defaults from imx6ul.dtsi will be applied again. Fixes: 7b8861d8e627 ("ARM: dts: imx6ul: add TQ-Systems MBa6ULx device trees") Signed-off-by: Max Merchel Signed-off-by: Alexander Stein Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1-mba6ulx.dts | 3 ++- arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1.dtsi | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1-mba6ulx.dts b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1-mba6ulx.dts index f2a5f17f312e..2e7b96e7b791 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1-mba6ulx.dts +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1-mba6ulx.dts @@ -6,8 +6,9 @@ /dts-v1/; -#include "imx6ul-tqma6ul1.dtsi" +#include "imx6ul-tqma6ul2.dtsi" #include "mba6ulx.dtsi" +#include "imx6ul-tqma6ul1.dtsi" / { model = "TQ-Systems TQMa6UL1 SoM on MBa6ULx board"; diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1.dtsi index 24192d012ef7..79c8c5529135 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-tqma6ul1.dtsi @@ -4,8 +4,6 @@ * Author: Markus Niebel */ -#include "imx6ul-tqma6ul2.dtsi" - / { model = "TQ-Systems TQMa6UL1 SoM"; compatible = "tq,imx6ul-tqma6ul1", "fsl,imx6ul"; From 4a058a0696eed70f8ab542e020e1f5799dcafabb Mon Sep 17 00:00:00 2001 From: Francesco Dolcini Date: Fri, 28 Feb 2025 16:13:50 +0100 Subject: [PATCH 27/32] ARM: dts: imx6qdl-apalis/colibri: Remove compatible from SoM dtsi The SoM cannot be used standalone, this compatible is invalid and it is always overwritten when this .dtsi file is included, remove it therefore. Signed-off-by: Francesco Dolcini Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi | 1 - arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi | 1 - 2 files changed, 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi index dffab5aa8b9c..e42a553bdd3b 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi @@ -10,7 +10,6 @@ / { model = "Toradex Apalis iMX6Q/D Module"; - compatible = "toradex,apalis_imx6q", "fsl,imx6q"; aliases { mmc0 = &usdhc3; /* eMMC */ diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi index 9f33419c260b..fc61d5866b09 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi @@ -10,7 +10,6 @@ / { model = "Toradex Colibri iMX6DL/S Module"; - compatible = "toradex,colibri_imx6dl", "fsl,imx6dl"; aliases { mmc0 = &usdhc3; /* eMMC */ From e3b7a05e5cc9006bf140a92bf52aa6659d4178a1 Mon Sep 17 00:00:00 2001 From: Francesco Dolcini Date: Fri, 28 Feb 2025 16:13:52 +0100 Subject: [PATCH 28/32] ARM: dts: vf610-colibri: Remove compatible from SoM dtsi The SoM cannot be used standalone, this compatible is invalid and it is always overwritten when this .dtsi file is included, remove it therefore. Signed-off-by: Francesco Dolcini Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/vf/vf610-colibri.dtsi | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm/boot/dts/nxp/vf/vf610-colibri.dtsi b/arch/arm/boot/dts/nxp/vf/vf610-colibri.dtsi index 607cec2df861..20aed3946214 100644 --- a/arch/arm/boot/dts/nxp/vf/vf610-colibri.dtsi +++ b/arch/arm/boot/dts/nxp/vf/vf610-colibri.dtsi @@ -8,7 +8,6 @@ / { model = "Toradex Colibri VF61 COM"; - compatible = "toradex,vf610-colibri_vf61", "fsl,vf610"; memory@80000000 { device_type = "memory"; From 9d6a67d9c7a9636e7cff30708ddc263717282299 Mon Sep 17 00:00:00 2001 From: Antonin Godard Date: Mon, 10 Mar 2025 17:39:49 +0100 Subject: [PATCH 29/32] ARM: dts: imx6ul: Add Variscite VAR-SOM-MX6UL SoM support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support for the Variscite VAR_SOM-MX6UL SoM with: - NXP i.MX6 UltraLite SoC - 128–1024 MB DDR3L - 8–128 GB eMMC - 128–512 MB SLC NAND - Camera Interface - LVDS / Parallel RGB interfaces (not configured) - Touch controller (not configured) - Ethernet RMII interface (not configured) - On-SoM Wi-Fi/Bluetooth with CYW43353 on SDIO Module (not configured) - SD/MMC/SDIO interface - USB Host + USB OTG interface - I2C interfaces - SPI interfaces - PCI-Express 2.0 interface - on-SoM Audio Codec (not configured) - S/PDIF interface (not configured) Product website: https://www.variscite.com/product/system-on-module-som/cortex-a7/var-som-6ul-nxp-imx6ul-6ull-6ulz Support is handled with a SoM-centric dtsi exporting the default interfaces along the default pinmuxing to be enabled by the board dts file. I tested this on a VAR-SOM-6UL_G2_700C_512R_8N_IT_REV1.3A, which is why some of the features above are mentioned as "not configured" (I couldn't test them). This file is based on the one provided by Variscite on their own kernel, but adapted for mainline. Signed-off-by: Antonin Godard Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6ul-var-som.dtsi | 233 ++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 arch/arm/boot/dts/nxp/imx/imx6ul-var-som.dtsi diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-var-som.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ul-var-som.dtsi new file mode 100644 index 000000000000..4e536e0252de --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-var-som.dtsi @@ -0,0 +1,233 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Support for Variscite VAR-SOM-MX6UL Module + * + * Copyright 2019 Variscite Ltd. + * Copyright 2025 Bootlin + */ + +/dts-v1/; + +#include "imx6ul.dtsi" +#include +#include + +/ { + model = "Variscite VAR-SOM-MX6UL module"; + compatible = "variscite,var-som-imx6ul", "fsl,imx6ul"; + + memory@80000000 { + device_type = "memory"; + reg = <0x80000000 0x20000000>; + }; + + reg_gpio_dvfs: reg-gpio-dvfs { + compatible = "regulator-gpio"; + regulator-min-microvolt = <1300000>; + regulator-max-microvolt = <1400000>; + regulator-name = "gpio_dvfs"; + regulator-type = "voltage"; + gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>; + states = <1300000 0x1 + 1400000 0x0>; + }; + + rmii_ref_clk: rmii-ref-clk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <25000000>; + clock-output-names = "rmii-ref"; + }; +}; + +&clks { + assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; + assigned-clock-rates = <786432000>; +}; + +&cpu0 { + dc-supply = <®_gpio_dvfs>; +}; + +&fec1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet1>, <&pinctrl_enet1_gpio>, <&pinctrl_enet1_mdio>; + phy-mode = "rmii"; + phy-handle = <ðphy0>; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + ethphy0: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + clocks = <&rmii_ref_clk>; + clock-names = "rmii-ref"; + reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; + reset-assert-us = <100000>; + micrel,led-mode = <1>; + micrel,rmii-reference-clock-select-25-mhz = <1>; + }; + }; +}; + +&iomuxc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_hog>; + + pinctrl_enet1: enet1grp { + fsl,pins = < + MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 + MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 + MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 + MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 + MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 + MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 + MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 + MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 + >; + }; + + pinctrl_enet1_gpio: enet1-gpiogrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x1b0b0 /* fec1 reset */ + >; + }; + + pinctrl_enet1_mdio: enet1-mdiogrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 + MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0 + >; + }; + + pinctrl_hog: hoggrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x1b0b0 /* BT Enable */ + MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x03029 /* WLAN Enable */ + >; + }; + + pinctrl_sai2: sai2grp { + fsl,pins = < + MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088 + MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088 + MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088 + MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088 + MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088 + >; + }; + + pinctrl_tsc: tscgrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 + MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0xb0 + MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0 + MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0xb0 + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1 + MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1 + MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x1b0b1 + MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x1b0b1 + >; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x10069 + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059 + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059 + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059 + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059 + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 + MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17059 + MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17059 + MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17059 + MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17059 + >; + }; + + pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp { + fsl,pins = < + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100b9 + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170b9 + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170b9 + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170b9 + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170b9 + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170b9 + MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170b9 + MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170b9 + MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170b9 + MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170b9 + >; + }; + + pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp { + fsl,pins = < + MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x100f9 + MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x170f9 + MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x170f9 + MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9 + MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9 + MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9 + MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x170f9 + MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x170f9 + MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x170f9 + MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x170f9 + >; + }; +}; + +&pxp { + status = "okay"; +}; + +&sai2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_sai2>; + assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>, + <&clks IMX6UL_CLK_SAI2>; + assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; + assigned-clock-rates = <0>, <12288000>; + fsl,sai-mclk-direction-output; + status = "okay"; +}; + +&snvs_poweroff { + status = "okay"; +}; + +&tsc { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_tsc>; + xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>; + measure-delay-time = <0xffff>; + pre-charge-time = <0xfff>; + status = "okay"; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + uart-has-rtscts; + status = "okay"; +}; + +&usdhc2 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc2>; + pinctrl-1 = <&pinctrl_usdhc2_100mhz>; + pinctrl-2 = <&pinctrl_usdhc2_200mhz>; + bus-width = <8>; + no-1-8-v; + non-removable; + keep-power-in-suspend; + wakeup-source; + status = "okay"; +}; From 44b96e7a389c1410ffc750db0dc56e7eb96fce97 Mon Sep 17 00:00:00 2001 From: Antonin Godard Date: Mon, 10 Mar 2025 17:39:50 +0100 Subject: [PATCH 30/32] ARM: dts: imx6ul: Add Variscite Concerto board support Add support for the Variscite Concerto Carrier Board with: - LVDS interface for the VLCD-CAP-GLD-LVDS 7" LCD 800 x 480 touch display (not configured) - USB Host + USB OTG Connector - 10/100 Mbps Ethernet - miniPCI-Express slot - SD Card connector - Audio Headphone/Line In jack connectors - S-ATA - On-board DMIC Product Page: https://www.variscite.com/product/single-board-computers/concerto-board This file is based on the one provided by Variscite on their own kernel, but adapted for mainline. Signed-off-by: Antonin Godard Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/Makefile | 1 + .../dts/nxp/imx/imx6ul-var-som-concerto.dts | 320 ++++++++++++++++++ 2 files changed, 321 insertions(+) create mode 100644 arch/arm/boot/dts/nxp/imx/imx6ul-var-som-concerto.dts diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile index 39a153536d2a..94c9bc94cc8e 100644 --- a/arch/arm/boot/dts/nxp/imx/Makefile +++ b/arch/arm/boot/dts/nxp/imx/Makefile @@ -329,6 +329,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \ imx6ul-tx6ul-0010.dtb \ imx6ul-tx6ul-0011.dtb \ imx6ul-tx6ul-mainboard.dtb \ + imx6ul-var-som-concerto.dtb \ imx6ull-14x14-evk.dtb \ imx6ull-colibri-aster.dtb \ imx6ull-colibri-emmc-aster.dtb \ diff --git a/arch/arm/boot/dts/nxp/imx/imx6ul-var-som-concerto.dts b/arch/arm/boot/dts/nxp/imx/imx6ul-var-som-concerto.dts new file mode 100644 index 000000000000..9ff3b374a2b3 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6ul-var-som-concerto.dts @@ -0,0 +1,320 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Support for Variscite MX6 Concerto Carrier board with the VAR-SOM-MX6UL + * Variscite SoM mounted on it + * + * Copyright 2019 Variscite Ltd. + * Copyright 2025 Bootlin + */ + +#include "imx6ul-var-som.dtsi" +#include + +/ { + model = "Variscite VAR-SOM-MX6UL Concerto Board"; + compatible = "variscite,mx6ulconcerto", "variscite,var-som-imx6ul", "fsl,imx6ul"; + + chosen { + stdout-path = &uart1; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_key_back>, <&pinctrl_gpio_key_wakeup>; + + key-back { + gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + key-wakeup { + gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; + linux,code = ; + wakeup-source; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpio_leds>; + + led-0 { + function = LED_FUNCTION_STATUS; + color = ; + label = "gpled2"; + gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; +}; + +&can1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexcan1>; + status = "okay"; +}; + +&fec1 { + status = "disabled"; +}; + +&fec2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_enet2>, <&pinctrl_enet2_gpio>, <&pinctrl_enet2_mdio>; + phy-mode = "rmii"; + phy-handle = <ðphy1>; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + ethphy1: ethernet-phy@3 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <3>; + clocks = <&rmii_ref_clk>; + clock-names = "rmii-ref"; + reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; + reset-assert-us = <100000>; + micrel,led-mode = <0>; + micrel,rmii-reference-clock-select-25-mhz = <1>; + }; + }; +}; + +&i2c1 { + clock-frequency = <100000>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_i2c1>; + status = "okay"; + + rtc@68 { + /* + * To actually use this interrupt + * connect pins J14.8 & J14.10 on the Concerto-Board. + */ + compatible = "dallas,ds1337"; + reg = <0x68>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_rtc>; + interrupt-parent = <&gpio1>; + interrupts = <10 IRQ_TYPE_EDGE_FALLING>; + }; +}; + +&iomuxc { + pinctrl_enet2: enet2grp { + fsl,pins = < + MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0 + MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0 + MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0 + MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0 + MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0 + MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0 + MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0 + MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031 + >; + }; + + pinctrl_enet2_gpio: enet2-gpiogrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x1b0b0 /* fec2 reset */ + >; + }; + + pinctrl_enet2_mdio: enet2-mdiogrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0 + MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0 + >; + }; + + pinctrl_flexcan1: flexcan1grp { + fsl,pins = < + MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020 + MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020 + >; + }; + + pinctrl_gpio_key_back: gpio-key-backgrp { + fsl,pins = < + MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x17059 + >; + }; + + pinctrl_gpio_leds: gpio-ledsgrp { + fsl,pins = < + MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x1b0b0 /* GPLED2 */ + >; + }; + + pinctrl_gpio_key_wakeup: gpio-keys-wakeupgrp { + fsl,pins = < + MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x17059 + >; + }; + + pinctrl_i2c1: i2c1grp { + fsl,pins = < + MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0 + MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0 + >; + }; + + pinctrl_pwm4: pwm4grp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0 + >; + }; + + pinctrl_rtc: rtcgrp { + fsl,pins = < + MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x1b0b0 /* RTC alarm IRQ */ + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 + MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1 + >; + }; + + pinctrl_uart5: uart5grp { + fsl,pins = < + MX6UL_PAD_CSI_DATA00__UART5_DCE_TX 0x1b0b1 + MX6UL_PAD_CSI_DATA01__UART5_DCE_RX 0x1b0b1 + MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x1b0b1 + MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS 0x1b0b1 + >; + }; + + pinctrl_usb_otg1_id: usbotg1idgrp { + fsl,pins = < + MX6UL_PAD_UART3_TX_DATA__ANATOP_OTG1_ID 0x17059 + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059 + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x17059 + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059 + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059 + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059 + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059 + >; + }; + + pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp { + fsl,pins = < + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9 + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9 + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9 + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9 + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9 + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9 + >; + }; + + pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp { + fsl,pins = < + MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9 + MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9 + MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9 + MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9 + MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9 + MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 + >; + }; + + pinctrl_usdhc1_gpio: usdhc1-gpiogrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 0x1b0b1 /* CD */ + >; + }; + + pinctrl_wdog: wdoggrp { + fsl,pins = < + MX6UL_PAD_GPIO1_IO01__WDOG1_WDOG_B 0x78b0 + >; + }; +}; + +&pwm4 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pwm4>; + status = "okay"; +}; + +&snvs_pwrkey { + status = "disabled"; +}; + +&snvs_rtc { + status = "disabled"; +}; + +&tsc { + /* + * Conflics with wdog1 ext-reset-output & SD CD pins, + * so we keep it disabled by default. + */ + status = "disabled"; +}; + +/* Console UART */ +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + status = "okay"; +}; + +/* ttymxc4 UART */ +&uart5 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart5>; + uart-has-rtscts; + status = "okay"; +}; + +&usbotg1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usb_otg1_id>; + dr_mode = "otg"; + disable-over-current; + srp-disable; + hnp-disable; + adp-disable; + status = "okay"; +}; + +&usbotg2 { + dr_mode = "host"; + disable-over-current; + status = "okay"; +}; + +&usdhc1 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>; + pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_usdhc1_gpio>; + pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_usdhc1_gpio>; + cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; + no-1-8-v; + keep-power-in-suspend; + wakeup-source; + status = "okay"; +}; + +&wdog1 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wdog>; + /* + * To actually use ext-reset-output + * connect pins J17.3 & J17.8 on the Concerto-Board + */ + fsl,ext-reset-output; +}; From 5ff0f1fb2856e9f6081664519616ddb295634b3c Mon Sep 17 00:00:00 2001 From: Ernest Van Hoecke Date: Fri, 7 Mar 2025 11:17:48 +0100 Subject: [PATCH 31/32] ARM: dts: apalis/colibri-imx6: Enable STMPE811 TS Enable the STMPE811 touchscreen in the SOM dtsi files. The STMPE811 is part of the SOM. It's self contained within it, therefore, disabling it is not the correct default behavior. Signed-off-by: Ernest Van Hoecke Reviewed-by: Francesco Dolcini Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi | 1 - arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi | 1 - 2 files changed, 2 deletions(-) diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi index e42a553bdd3b..052d92fd4d12 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis.dtsi @@ -663,7 +663,6 @@ stmpe_ts: stmpe_touchscreen { st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; - status = "disabled"; }; stmpe_adc: stmpe_adc { diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi index fc61d5866b09..3525cbcda57f 100644 --- a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri.dtsi @@ -587,7 +587,6 @@ stmpe_ts: stmpe_touchscreen { st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; - status = "disabled"; }; stmpe_adc: stmpe_adc { From 082f59a62474fbffe7e952082f6d265f11bc37a0 Mon Sep 17 00:00:00 2001 From: Ernest Van Hoecke Date: Fri, 7 Mar 2025 11:17:49 +0100 Subject: [PATCH 32/32] ARM: dts: apalis/colibri-imx6: Add support for v1.2 Apalis/Colibri iMX6 V1.2 replaced the STMPE811 ADC/touch controller, which is EOL, with the TLA2024 ADC and AD7879 touch controller. Accurately describe the new hardware. v1.1 of these SoMs is still described by the following DTSI files: imx6qdl-apalis.dtsi imx6qdl-colibri.dtsi v1.2 is now supported by a DTSI that modifies v1.1: imx6qdl-apalis-v1.2.dtsi imx6qdl-colibri-v1.2.dtsi For each carrier board using these modules, a new DTS file was added that includes the v1.1 DTS and modifies it with this v1.2 DTSI. The original DTS can be used for modules up to and including v1.1. Signed-off-by: Ernest Van Hoecke Reviewed-by: Francesco Dolcini Signed-off-by: Shawn Guo --- arch/arm/boot/dts/nxp/imx/Makefile | 9 +++ .../dts/nxp/imx/imx6dl-colibri-v1.2-aster.dts | 11 ++++ .../nxp/imx/imx6dl-colibri-v1.2-eval-v3.dts | 11 ++++ .../nxp/imx/imx6dl-colibri-v1.2-iris-v2.dts | 11 ++++ .../dts/nxp/imx/imx6dl-colibri-v1.2-iris.dts | 11 ++++ .../nxp/imx/imx6q-apalis-v1.2-eval-v1.2.dts | 11 ++++ .../dts/nxp/imx/imx6q-apalis-v1.2-eval.dts | 11 ++++ .../nxp/imx/imx6q-apalis-v1.2-ixora-v1.1.dts | 11 ++++ .../nxp/imx/imx6q-apalis-v1.2-ixora-v1.2.dts | 11 ++++ .../dts/nxp/imx/imx6q-apalis-v1.2-ixora.dts | 11 ++++ .../boot/dts/nxp/imx/imx6qdl-apalis-v1.2.dtsi | 57 +++++++++++++++++++ .../dts/nxp/imx/imx6qdl-colibri-v1.2.dtsi | 57 +++++++++++++++++++ 12 files changed, 222 insertions(+) create mode 100644 arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-aster.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-eval-v3.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris-v2.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval-v1.2.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.1.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.2.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora.dts create mode 100644 arch/arm/boot/dts/nxp/imx/imx6qdl-apalis-v1.2.dtsi create mode 100644 arch/arm/boot/dts/nxp/imx/imx6qdl-colibri-v1.2.dtsi diff --git a/arch/arm/boot/dts/nxp/imx/Makefile b/arch/arm/boot/dts/nxp/imx/Makefile index 94c9bc94cc8e..8b3abe817e12 100644 --- a/arch/arm/boot/dts/nxp/imx/Makefile +++ b/arch/arm/boot/dts/nxp/imx/Makefile @@ -69,6 +69,10 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6dl-colibri-eval-v3.dtb \ imx6dl-colibri-iris.dtb \ imx6dl-colibri-iris-v2.dtb \ + imx6dl-colibri-v1.2-aster.dtb \ + imx6dl-colibri-v1.2-eval-v3.dtb \ + imx6dl-colibri-v1.2-iris.dtb \ + imx6dl-colibri-v1.2-iris-v2.dtb \ imx6dl-cubox-i.dtb \ imx6dl-cubox-i-emmc-som-v15.dtb \ imx6dl-cubox-i-som-v15.dtb \ @@ -158,6 +162,11 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ imx6q-apalis-ixora.dtb \ imx6q-apalis-ixora-v1.1.dtb \ imx6q-apalis-ixora-v1.2.dtb \ + imx6q-apalis-v1.2-eval.dtb \ + imx6q-apalis-v1.2-eval-v1.2.dtb \ + imx6q-apalis-v1.2-ixora.dtb \ + imx6q-apalis-v1.2-ixora-v1.1.dtb \ + imx6q-apalis-v1.2-ixora-v1.2.dtb \ imx6q-apf6dev.dtb \ imx6q-arm2.dtb \ imx6q-b450v3.dtb \ diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-aster.dts b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-aster.dts new file mode 100644 index 000000000000..44c78c07f431 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-aster.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6dl-colibri-aster.dts" +#include "imx6qdl-colibri-v1.2.dtsi" + +/ { + model = "Toradex Colibri iMX6DL/S V1.2+ on Colibri Aster Board"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-eval-v3.dts b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-eval-v3.dts new file mode 100644 index 000000000000..93fd0af53a3c --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-eval-v3.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6dl-colibri-eval-v3.dts" +#include "imx6qdl-colibri-v1.2.dtsi" + +/ { + model = "Toradex Colibri iMX6DL/S V1.2+ on Colibri Evaluation Board V3"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris-v2.dts b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris-v2.dts new file mode 100644 index 000000000000..92d41fc9a13f --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris-v2.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6dl-colibri-iris-v2.dts" +#include "imx6qdl-colibri-v1.2.dtsi" + +/ { + model = "Toradex Colibri iMX6DL/S V1.2+ on Colibri Iris V2 Board"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris.dts b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris.dts new file mode 100644 index 000000000000..c8957948c887 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6dl-colibri-v1.2-iris.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6dl-colibri-iris.dts" +#include "imx6qdl-colibri-v1.2.dtsi" + +/ { + model = "Toradex Colibri iMX6DL/S V1.2+ on Colibri Iris Board"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval-v1.2.dts b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval-v1.2.dts new file mode 100644 index 000000000000..908dab57fd87 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval-v1.2.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6q-apalis-eval-v1.2.dts" +#include "imx6qdl-apalis-v1.2.dtsi" + +/ { + model = "Toradex Apalis iMX6Q/D Module V1.2+ on Apalis Evaluation Board v1.2"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval.dts b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval.dts new file mode 100644 index 000000000000..5463d4127382 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-eval.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6q-apalis-eval.dts" +#include "imx6qdl-apalis-v1.2.dtsi" + +/ { + model = "Toradex Apalis iMX6Q/D Module V1.2+ on Apalis Evaluation Board"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.1.dts b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.1.dts new file mode 100644 index 000000000000..84eabf81ba84 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.1.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6q-apalis-ixora-v1.1.dts" +#include "imx6qdl-apalis-v1.2.dtsi" + +/ { + model = "Toradex Apalis iMX6Q/D Module V1.2+ on Ixora Carrier Board V1.1"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.2.dts b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.2.dts new file mode 100644 index 000000000000..d7cfab4de457 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora-v1.2.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6q-apalis-ixora-v1.2.dts" +#include "imx6qdl-apalis-v1.2.dtsi" + +/ { + model = "Toradex Apalis iMX6Q/D Module V1.2+ on Ixora Carrier Board V1.2"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora.dts b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora.dts new file mode 100644 index 000000000000..189b074e31ce --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6q-apalis-v1.2-ixora.dts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +/dts-v1/; + +#include "imx6q-apalis-ixora.dts" +#include "imx6qdl-apalis-v1.2.dtsi" + +/ { + model = "Toradex Apalis iMX6Q/D Module V1.2+ on Ixora Carrier Board"; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis-v1.2.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis-v1.2.dtsi new file mode 100644 index 000000000000..83fa04fc9f18 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-apalis-v1.2.dtsi @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +&i2c2 { + /delete-node/ stmpe811@41; + + ad7879_ts: touchscreen@2c { + compatible = "adi,ad7879-1"; + reg = <0x2c>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_touch_int>; + interrupts = <10 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&gpio4>; + touchscreen-max-pressure = <4096>; + adi,resistance-plate-x = <120>; + adi,first-conversion-delay = /bits/ 8 <3>; + adi,acquisition-time = /bits/ 8 <1>; + adi,median-filter-size = /bits/ 8 <2>; + adi,averaging = /bits/ 8 <1>; + adi,conversion-interval = /bits/ 8 <255>; + }; + + tla2024_adc: adc@49 { + compatible = "ti,tla2024"; + reg = <0x49>; + #address-cells = <1>; + #size-cells = <0>; + + /* Apalis AN1_ADC0 */ + channel@4 { + reg = <4>; + ti,datarate = <4>; + ti,gain = <1>; + }; + + /* Apalis AN1_ADC1 */ + channel@5 { + reg = <5>; + ti,datarate = <4>; + ti,gain = <1>; + }; + + /* Apalis AN1_ADC2 */ + channel@6 { + reg = <6>; + ti,datarate = <4>; + ti,gain = <1>; + }; + + /* Apalis AN1_TSWIP_ADC3 */ + channel@7 { + reg = <7>; + ti,datarate = <4>; + ti,gain = <1>; + }; + }; +}; diff --git a/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri-v1.2.dtsi b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri-v1.2.dtsi new file mode 100644 index 000000000000..d11bf911b728 --- /dev/null +++ b/arch/arm/boot/dts/nxp/imx/imx6qdl-colibri-v1.2.dtsi @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* Copyright (c) 2025 Toradex */ + +&i2c2 { + /delete-node/ stmpe811@41; + + ad7879_ts: touchscreen@2c { + compatible = "adi,ad7879-1"; + reg = <0x2c>; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_touch_int>; + interrupts = <20 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&gpio6>; + touchscreen-max-pressure = <4096>; + adi,resistance-plate-x = <120>; + adi,first-conversion-delay = /bits/ 8 <3>; + adi,acquisition-time = /bits/ 8 <1>; + adi,median-filter-size = /bits/ 8 <2>; + adi,averaging = /bits/ 8 <1>; + adi,conversion-interval = /bits/ 8 <255>; + }; + + tla2024_adc: adc@49 { + compatible = "ti,tla2024"; + reg = <0x49>; + #address-cells = <1>; + #size-cells = <0>; + + /* Colibri AIN0 */ + channel@4 { + reg = <4>; + ti,datarate = <4>; + ti,gain = <1>; + }; + + /* Colibri AIN1 */ + channel@5 { + reg = <5>; + ti,datarate = <4>; + ti,gain = <1>; + }; + + /* Colibri AIN2 */ + channel@6 { + reg = <6>; + ti,datarate = <4>; + ti,gain = <1>; + }; + + /* Colibri AIN3 */ + channel@7 { + reg = <7>; + ti,datarate = <4>; + ti,gain = <1>; + }; + }; +};