blob: e9e913ccf26757ad6a871640d0f36048dae8754f [file] [log] [blame]
/*
* Copyright 2022, NXP
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <mem.h>
#include <arm/armv8-m.dtsi>
#include <zephyr/dt-bindings/clock/mcux_lpc_syscon_clock.h>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
/ {
chosen {
zephyr,entropy = &trng;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu0: cpu@0 {
compatible = "arm,cortex-m33f";
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
mpu: mpu@e000ed90 {
compatible = "arm,armv8m-mpu";
reg = <0xe000ed90 0x40>;
arm,num-mpu-regions = <8>;
};
};
};
};
&sram {
#address-cells = <1>;
#size-cells = <1>;
sram0: memory@20180000 {
compatible = "mmio-sram";
reg = <0x20180000 DT_SIZE_K(3072)>;
};
sram1: memory@40140000 {
compatible = "zephyr,memory-region", "mmio-sram";
reg = <0x40140000 DT_SIZE_K(16)>;
zephyr,memory-region = "SRAM1";
};
};
&systick {
/*
* RT500 relies by default on the OS Timer for system clock
* implementation, so the SysTick node is not to be enabled.
*/
status = "disabled";
};
&peripheral {
#address-cells = <1>;
#size-cells = <1>;
/*
* Note that the offsets here are relative to the base address
* defined in either nxp_rt5xx_ns.dtsi or nxp_rt5xx.dtsi. The base
* addresses differ between non-secure (0x40000000) and secure
* modes (0x50000000).
*/
clkctl0: clkctl@1000 {
compatible = "nxp,lpc-syscon";
reg = <0x1000 0x1000>;
#clock-cells = <1>;
};
iocon: iocon@4000 {
compatible = "nxp,lpc-iocon";
reg = <0x4000 0x1000>;
pinctrl: pinctrl {
compatible = "nxp,rt-iocon-pinctrl";
};
};
clkctl1: clkctl@21000 {
compatible = "nxp,lpc-syscon";
reg = <0x21000 0x1000>;
#clock-cells = <1>;
};
uuid: uuid@2f50 {
compatible = "nxp,lpc-uid";
reg = <0x2f50 0x10>;
};
gpio0: gpio@0 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
interrupts = <4 2>,<5 2>,<6 2>,<7 2>;
gpio-controller;
#gpio-cells = <2>;
port = <0>;
};
gpio1: gpio@1 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
interrupts = <35 2>,<36 2>,<37 2>,<38 2>;
gpio-controller;
#gpio-cells = <2>;
port = <1>;
};
gpio2: gpio@2 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
port = <2>;
};
gpio3: gpio@3 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
port = <3>;
};
gpio4: gpio@4 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
port = <4>;
};
gpio5: gpio@5 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
port = <5>;
};
gpio6: gpio@6 {
compatible = "nxp,lpc-gpio";
reg = <0x100000 0x1000>;
gpio-controller;
#gpio-cells = <2>;
port = <6>;
};
flexcomm0: flexcomm@106000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x106000 0x1000>;
interrupts = <14 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM0_CLK>;
status = "disabled";
};
flexcomm1: flexcomm@107000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x107000 0x1000>;
interrupts = <15 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM1_CLK>;
status = "disabled";
};
flexcomm2: flexcomm@108000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x108000 0x1000>;
interrupts = <16 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM2_CLK>;
status = "disabled";
};
flexcomm3: flexcomm@109000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x109000 0x1000>;
interrupts = <17 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM3_CLK>;
status = "disabled";
};
flexcomm4: flexcomm@122000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x122000 0x1000>;
interrupts = <18 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM4_CLK>;
status = "disabled";
};
flexcomm5: flexcomm@123000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x123000 0x1000>;
interrupts = <19 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM5_CLK>;
status = "disabled";
};
flexcomm6: flexcomm@124000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x124000 0x1000>;
interrupts = <43 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM6_CLK>;
status = "disabled";
};
flexcomm7: flexcomm@125000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x125000 0x1000>;
interrupts = <44 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM7_CLK>;
status = "disabled";
};
pmic_i2c: i2c@127000 {
compatible = "nxp,lpc-i2c";
reg = <0x127000 0x1000>;
interrupts = <21 0>;
clocks = <&clkctl1 MCUX_PMIC_I2C_CLK>;
status = "disabled";
};
flexcomm8: flexcomm@209000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x209000 0x1000>;
interrupts = <60 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM8_CLK>;
status = "disabled";
};
flexcomm9: flexcomm@20a000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x20a000 0x1000>;
interrupts = <61 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM9_CLK>;
status = "disabled";
};
flexcomm10: flexcomm@20b000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x20b000 0x1000>;
interrupts = <62 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM10_CLK>;
status = "disabled";
};
flexcomm11: flexcomm@20c000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x20c000 0x1000>;
interrupts = <63 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM11_CLK>;
status = "disabled";
};
flexcomm12: flexcomm@20d000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x20d000 0x1000>;
interrupts = <64 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM12_CLK>;
status = "disabled";
};
flexcomm13: flexcomm@20e000 {
compatible = "nxp,lpc-flexcomm";
reg = <0x20e000 0x1000>;
interrupts = <65 0>;
clocks = <&clkctl1 MCUX_FLEXCOMM13_CLK>;
status = "disabled";
};
usbhs: usbhs@144000 {
compatible = "nxp,mcux-usbd";
reg = <0x144000 0x1000>;
interrupts = <50 1>;
num-bidir-endpoints = <6>;
usb-controller-index = "LpcIp3511Hs0";
status = "disabled";
};
hs_lspi: spi@126000 {
compatible = "nxp,lpc-spi";
reg = <0x126000 0x1000>;
interrupts = <20 0>;
clocks = <&clkctl1 MCUX_HS_SPI_CLK>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
hs_lspi1: spi@128000 {
compatible = "nxp,lpc-spi";
reg = <0x128000 0x1000>;
interrupts = <66 0>;
clocks = <&clkctl1 MCUX_HS_SPI1_CLK>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
dma0: dma-controller@104000 {
compatible = "nxp,lpc-dma";
reg = <0x104000 0x1000>;
interrupts = <1 0>;
status = "disabled";
#dma-cells = <1>;
};
dma1: dma-controller@105000 {
compatible = "nxp,lpc-dma";
reg = <0x105000 0x1000>;
interrupts = <54 0>;
status = "disabled";
#dma-cells = <1>;
};
os_timer: timers@113000 {
compatible = "nxp,os-timer";
reg = <0x113000 0x1000>;
interrupts = <41 0>;
status = "disabled";
};
rtc: rtc@30000 {
compatible = "nxp,lpc-rtc";
reg = <0x30000 0x1000>;
interrupts = <32 0>;
status = "disabled";
};
trng: random@138000 {
compatible = "nxp,kinetis-trng";
reg = <0x138000 0x1000>;
status = "okay";
interrupts = <31 0>;
};
sc_timer: pwm@146000 {
compatible = "nxp,sctimer-pwm";
reg = <0x146000 0x1000>;
interrupts = <12 0>;
status = "disabled";
prescaler = <8>;
#pwm-cells = <3>;
};
wwdt0: watchdog@e000 {
compatible = "nxp,lpc-wwdt";
reg = <0xe000 0x1000>;
interrupts = <0 0>;
status = "disabled";
clk-divider = <1>;
};
wwdt1: watchdog@2e000 {
compatible = "nxp,lpc-wwdt";
reg = <0x2e000 0x1000>;
interrupts = <52 0>;
status = "disabled";
clk-divider = <1>;
};
usdhc1: usdhc@136000 {
compatible = "nxp,imx-usdhc";
reg = <0x136000 0x1000>;
status = "disabled";
interrupts = <45 0>;
clocks = <&clkctl1 MCUX_USDHC1_CLK>;
max-current-330 = <1020>;
max-current-180 = <1020>;
max-bus-freq = <208000000>;
min-bus-freq = <400000>;
};
usdhc2: usdhc@137000 {
compatible = "nxp,imx-usdhc";
reg = <0x137000 0x1000>;
status = "disabled";
interrupts = <46 0>;
clocks = <&clkctl1 MCUX_USDHC2_CLK>;
max-current-330 = <1020>;
max-current-180 = <1020>;
max-bus-freq = <208000000>;
min-bus-freq = <400000>;
};
lpadc0: lpadc@13A0000 {
compatible = "nxp,lpc-lpadc";
reg = <0x13A000 0x304>;
interrupts = <22 0>;
status = "disabled";
clk-divider = <1>;
clk-source = <0>;
voltage-ref= <2>;
calibration-average = <128>;
power-level = <1>;
offset-value-a = <10>;
offset-value-b = <10>;
#io-channel-cells = <1>;
};
ctimer0: ctimer@28000 {
compatible = "nxp,lpc-ctimer";
reg = <0x28000 0x1000>;
interrupts = <10 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER0_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
ctimer1: ctimer@29000 {
compatible = "nxp,lpc-ctimer";
reg = <0x29000 0x1000>;
interrupts = <11 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER1_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
ctimer2: ctimer@2a000 {
compatible = "nxp,lpc-ctimer";
reg = <0x2a000 0x1000>;
interrupts = <39 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER2_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
ctimer3: ctimer@2b000 {
compatible = "nxp,lpc-ctimer";
reg = <0x2b000 0x1000>;
interrupts = <13 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER3_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
ctimer4: ctimer@2c000 {
compatible = "nxp,lpc-ctimer";
reg = <0x2c000 0x1000>;
interrupts = <40 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER4_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
};
&flexspi {
compatible = "nxp,imx-flexspi";
status = "disabled";
interrupts = <42 0>;
#address-cells = <1>;
#size-cells = <0>;
};
&nvic {
arm,num-irq-priority-bits = <3>;
};