summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKrzysztof Kozlowski <krzk@kernel.org>2026-01-22 13:05:15 +0300
committerKrzysztof Kozlowski <krzk@kernel.org>2026-01-22 13:05:15 +0300
commit3bce0076f94eeead971b9641a72c69012c9fd5da (patch)
tree4d2f8c236785196113f4cbc69d35a737824626ee
parent0a976e907a15f9b36eef82bde241c02bd137a21c (diff)
parent2940a49ab7e31e9fc4f43637dc9ef75b5e8951d4 (diff)
downloadlinux-3bce0076f94eeead971b9641a72c69012c9fd5da.tar.xz
Merge tag 'lpc32xx-dt-for-6.20' of https://github.com/vzapolskiy/linux-lpc32xx into soc/dt
ARM: nxp: lpc: device tree updates for v6.20 This pull request contains device tree changes for ARM NXP LPC32xx intended for v6.20, please pull the following: - Frank fixes device tree checker warnings reported for NXP LPC32xx boards, - Piotr addes a DMA mux block under SCB, DMA properties to controllers and I2S support for NXP LPC32xx, - Kuldeep corrects values of PrimeCell PL022 'clocks' and 'clock-names' properties, this is the change from a waiting queue, recently it was repeatedly done by Frank, the hesitation was about a probable ABI break, but here in particular the risk is practically negligible due to the kept backwards compatibale 'clocks' property, - Vladimir adds a few missing properties to a number of LPC32xx controllers. * tag 'lpc32xx-dt-for-6.20' of https://github.com/vzapolskiy/linux-lpc32xx: arm: dts: lpc32xx: add interrupts property to Motor Control PWM arm: dts: lpc32xx: add clocks property to Motor Control PWM device tree node ARM: dts: lpc32xx: Add missing properties to I2S device tree nodes ARM: dts: lpc32xx: Declare the second AHB master support on PL080 DMA controller ARM: dts: lpc32xx: Add missing DMA properties ARM: dts: lpc32xx: Use syscon for system control block ARM: dts: lpc32xx: describe FLASH_INT of SLC NAND controller ARM: dts: lpc32xx: change NAND controllers node names ARM: dts: lpc32xx: Update spi clock properties ARM: dts: lpc3250-phy3250: replace deprecated at25 properties with new ones ARM: dts: lpc3250-phy3250: rename nodename at@0 to eeprom@0 ARM: dts: lpc3250-ea3250: add key- prefix for gpio-keys ARM: dts: lpc32xx: remove usb bus and elevate all children nodes Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
-rw-r--r--arch/arm/boot/dts/nxp/lpc/lpc3250-ea3250.dts18
-rw-r--r--arch/arm/boot/dts/nxp/lpc/lpc3250-phy3250.dts8
-rw-r--r--arch/arm/boot/dts/nxp/lpc/lpc32xx.dtsi133
3 files changed, 94 insertions, 65 deletions
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc3250-ea3250.dts b/arch/arm/boot/dts/nxp/lpc/lpc3250-ea3250.dts
index 63c6f17bb7c9..837a3cfa8e7c 100644
--- a/arch/arm/boot/dts/nxp/lpc/lpc3250-ea3250.dts
+++ b/arch/arm/boot/dts/nxp/lpc/lpc3250-ea3250.dts
@@ -27,55 +27,55 @@
gpios = <&gpio 4 1 0>; /* GPI_P3 1 */
};
- key1 {
+ key-1 {
label = "KEY1";
linux,code = <1>;
gpios = <&pca9532 0 0>;
};
- key2 {
+ key-2 {
label = "KEY2";
linux,code = <2>;
gpios = <&pca9532 1 0>;
};
- key3 {
+ key-3 {
label = "KEY3";
linux,code = <3>;
gpios = <&pca9532 2 0>;
};
- key4 {
+ key-4 {
label = "KEY4";
linux,code = <4>;
gpios = <&pca9532 3 0>;
};
- joy0 {
+ key-joy0 {
label = "Joystick Key 0";
linux,code = <10>;
gpios = <&gpio 2 0 0>; /* P2.0 */
};
- joy1 {
+ key-joy1 {
label = "Joystick Key 1";
linux,code = <11>;
gpios = <&gpio 2 1 0>; /* P2.1 */
};
- joy2 {
+ key-joy2 {
label = "Joystick Key 2";
linux,code = <12>;
gpios = <&gpio 2 2 0>; /* P2.2 */
};
- joy3 {
+ key-joy3 {
label = "Joystick Key 3";
linux,code = <13>;
gpios = <&gpio 2 3 0>; /* P2.3 */
};
- joy4 {
+ key-joy4 {
label = "Joystick Key 4";
linux,code = <14>;
gpios = <&gpio 2 4 0>; /* P2.4 */
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc3250-phy3250.dts b/arch/arm/boot/dts/nxp/lpc/lpc3250-phy3250.dts
index 21a6d0bca1e8..0f96ea0337a1 100644
--- a/arch/arm/boot/dts/nxp/lpc/lpc3250-phy3250.dts
+++ b/arch/arm/boot/dts/nxp/lpc/lpc3250-phy3250.dts
@@ -200,7 +200,7 @@
cs-gpios = <&gpio 3 5 0>;
status = "okay";
- eeprom: at25@0 {
+ eeprom: eeprom@0 {
compatible = "atmel,at25";
reg = <0>;
spi-max-frequency = <5000000>;
@@ -213,9 +213,9 @@
pl022,wait-state = <0>;
pl022,duplex = <0>;
- at25,byte-len = <0x8000>;
- at25,addr-mode = <2>;
- at25,page-size = <64>;
+ size = <0x8000>;
+ address-width = <16>;
+ pagesize = <64>;
};
};
diff --git a/arch/arm/boot/dts/nxp/lpc/lpc32xx.dtsi b/arch/arm/boot/dts/nxp/lpc/lpc32xx.dtsi
index 2236901a0031..e94df78def18 100644
--- a/arch/arm/boot/dts/nxp/lpc/lpc32xx.dtsi
+++ b/arch/arm/boot/dts/nxp/lpc/lpc32xx.dtsi
@@ -62,18 +62,23 @@
/*
* Enable either SLC or MLC
*/
- slc: flash@20020000 {
+ slc: nand-controller@20020000 {
compatible = "nxp,lpc3220-slc";
reg = <0x20020000 0x1000>;
+ interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk LPC32XX_CLK_SLC>;
+ dmas = <&dma 1 1>;
+ dma-names = "rx-tx";
status = "disabled";
};
- mlc: flash@200a8000 {
+ mlc: nand-controller@200a8000 {
compatible = "nxp,lpc3220-mlc";
reg = <0x200a8000 0x11000>;
interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk LPC32XX_CLK_MLC>;
+ dmas = <&dma 12 1>;
+ dma-names = "rx-tx";
status = "disabled";
};
@@ -83,54 +88,55 @@
interrupts = <28 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk LPC32XX_CLK_DMA>;
clock-names = "apb_pclk";
+ dma-channels = <8>;
+ dma-requests = <16>;
+ lli-bus-interface-ahb1;
+ lli-bus-interface-ahb2;
+ mem-bus-interface-ahb1;
+ mem-bus-interface-ahb2;
+ memcpy-burst-size = <256>;
+ memcpy-bus-width = <32>;
#dma-cells = <2>;
};
- usb {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "simple-bus";
- ranges = <0x0 0x31020000 0x00001000>;
-
- /*
- * Enable either ohci or usbd (gadget)!
- */
- ohci: usb@0 {
- compatible = "nxp,ohci-nxp", "usb-ohci";
- reg = <0x0 0x300>;
- interrupt-parent = <&sic1>;
- interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&usbclk LPC32XX_USB_CLK_HOST>;
- status = "disabled";
- };
+ /*
+ * Enable either ohci or usbd (gadget)!
+ */
+ ohci: usb@31020000 {
+ compatible = "nxp,ohci-nxp", "usb-ohci";
+ reg = <0x31020000 0x300>;
+ interrupt-parent = <&sic1>;
+ interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&usbclk LPC32XX_USB_CLK_HOST>;
+ status = "disabled";
+ };
- usbd: usbd@0 {
- compatible = "nxp,lpc3220-udc";
- reg = <0x0 0x300>;
- interrupt-parent = <&sic1>;
- interrupts = <29 IRQ_TYPE_LEVEL_HIGH>,
- <30 IRQ_TYPE_LEVEL_HIGH>,
- <28 IRQ_TYPE_LEVEL_HIGH>,
- <26 IRQ_TYPE_LEVEL_LOW>;
- clocks = <&usbclk LPC32XX_USB_CLK_DEVICE>;
- status = "disabled";
- };
+ usbd: usbd@31020000 {
+ compatible = "nxp,lpc3220-udc";
+ reg = <0x31020000 0x300>;
+ interrupt-parent = <&sic1>;
+ interrupts = <29 IRQ_TYPE_LEVEL_HIGH>,
+ <30 IRQ_TYPE_LEVEL_HIGH>,
+ <28 IRQ_TYPE_LEVEL_HIGH>,
+ <26 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&usbclk LPC32XX_USB_CLK_DEVICE>;
+ status = "disabled";
+ };
- i2cusb: i2c@300 {
- compatible = "nxp,pnx-i2c";
- reg = <0x300 0x100>;
- interrupt-parent = <&sic1>;
- interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&usbclk LPC32XX_USB_CLK_I2C>;
- #address-cells = <1>;
- #size-cells = <0>;
- };
+ i2cusb: i2c@31020300 {
+ compatible = "nxp,pnx-i2c";
+ reg = <0x31020300 0x100>;
+ interrupt-parent = <&sic1>;
+ interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&usbclk LPC32XX_USB_CLK_I2C>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
- usbclk: clock-controller@f00 {
- compatible = "nxp,lpc3220-usb-clk";
- reg = <0xf00 0x100>;
- #clock-cells = <1>;
- };
+ usbclk: clock-controller@31020f00 {
+ compatible = "nxp,lpc3220-usb-clk";
+ reg = <0x31020f00 0x100>;
+ #clock-cells = <1>;
};
clcd: clcd@31040000 {
@@ -179,8 +185,8 @@
compatible = "arm,pl022", "arm,primecell";
reg = <0x20084000 0x1000>;
interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk LPC32XX_CLK_SSP0>;
- clock-names = "apb_pclk";
+ clocks = <&clk LPC32XX_CLK_SSP0>, <&clk LPC32XX_CLK_SSP0>;
+ clock-names = "sspclk", "apb_pclk";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
@@ -190,6 +196,8 @@
compatible = "nxp,lpc3220-spi";
reg = <0x20088000 0x1000>;
clocks = <&clk LPC32XX_CLK_SPI1>;
+ dmas = <&dmamux 11 1 0>;
+ dma-names = "rx-tx";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
@@ -203,8 +211,8 @@
compatible = "arm,pl022", "arm,primecell";
reg = <0x2008c000 0x1000>;
interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clk LPC32XX_CLK_SSP1>;
- clock-names = "apb_pclk";
+ clocks = <&clk LPC32XX_CLK_SSP1>, <&clk LPC32XX_CLK_SSP1>;
+ clock-names = "sspclk", "apb_pclk";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
@@ -214,6 +222,8 @@
compatible = "nxp,lpc3220-spi";
reg = <0x20090000 0x1000>;
clocks = <&clk LPC32XX_CLK_SPI2>;
+ dmas = <&dmamux 3 1 0>;
+ dma-names = "rx-tx";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
@@ -222,6 +232,11 @@
i2s0: i2s@20094000 {
compatible = "nxp,lpc3220-i2s";
reg = <0x20094000 0x1000>;
+ interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk LPC32XX_CLK_I2S0>;
+ dmas = <&dma 0 1>, <&dma 13 1>;
+ dma-names = "rx", "tx";
+ #sound-dai-cells = <0>;
status = "disabled";
};
@@ -238,6 +253,11 @@
i2s1: i2s@2009c000 {
compatible = "nxp,lpc3220-i2s";
reg = <0x2009c000 0x1000>;
+ interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk LPC32XX_CLK_I2S1>;
+ dmas = <&dma 2 1>, <&dmamux 10 1 1>;
+ dma-names = "rx", "tx";
+ #sound-dai-cells = <0>;
status = "disabled";
};
@@ -302,6 +322,8 @@
mpwm: pwm@400e8000 {
compatible = "nxp,lpc3220-motor-pwm";
reg = <0x400e8000 0x78>;
+ interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+ clocks = <&clk LPC32XX_CLK_MCPWM>;
#pwm-cells = <3>;
status = "disabled";
};
@@ -314,20 +336,27 @@
ranges = <0x20000000 0x20000000 0x30000000>;
/* System Control Block */
- scb {
- compatible = "simple-bus";
- ranges = <0x0 0x40004000 0x00001000>;
+ syscon@40004000 {
+ compatible = "nxp,lpc3220-scb", "syscon", "simple-mfd";
+ reg = <0x40004000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
+ ranges = <0 0x40004000 0x1000>;
clk: clock-controller@0 {
compatible = "nxp,lpc3220-clk";
reg = <0x00 0x114>;
#clock-cells = <1>;
-
clocks = <&xtal_32k>, <&xtal>;
clock-names = "xtal_32k", "xtal";
};
+
+ dmamux: dma-router@78 {
+ compatible = "nxp,lpc3220-dmamux";
+ reg = <0x78 0x8>;
+ dma-masters = <&dma>;
+ #dma-cells = <3>;
+ };
};
mic: interrupt-controller@40008000 {