614 lines
13 KiB
Plaintext
614 lines
13 KiB
Plaintext
/*
|
|
* Copyright 2020, 2024 NXP
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <mem.h>
|
|
#include <arm/armv8-m.dtsi>
|
|
#include <zephyr/dt-bindings/adc/adc.h>
|
|
#include <zephyr/dt-bindings/clock/mcux_lpc_syscon_clock.h>
|
|
#include <zephyr/dt-bindings/gpio/gpio.h>
|
|
#include <zephyr/dt-bindings/i2c/i2c.h>
|
|
#include <zephyr/dt-bindings/memory-attr/memory-attr-arm.h>
|
|
#include <zephyr/dt-bindings/reset/nxp_syscon_reset_common.h>
|
|
|
|
/ {
|
|
chosen {
|
|
zephyr,entropy = &trng;
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
cpu0: cpu@0 {
|
|
compatible = "arm,cortex-m33f";
|
|
reg = <0>;
|
|
cpu-power-states = <&idle &suspend>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
mpu: mpu@e000ed90 {
|
|
compatible = "arm,armv8m-mpu";
|
|
reg = <0xe000ed90 0x40>;
|
|
};
|
|
};
|
|
|
|
power-states {
|
|
idle: idle {
|
|
compatible = "zephyr,power-state";
|
|
power-state-name = "runtime-idle";
|
|
min-residency-us = <10>;
|
|
};
|
|
suspend: suspend {
|
|
compatible = "zephyr,power-state";
|
|
power-state-name = "suspend-to-idle";
|
|
min-residency-us = <1000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&sram {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
/* RT6XX SRAM partitions are shared
|
|
* between code and data. Boards can
|
|
* override the reg properties of either sram0 or sram_code nodes to
|
|
* change the balance of SRAM allocation.
|
|
*
|
|
* Note that the sram code region starts at an offset of 0x1B000,
|
|
* as the boot ROM will not load code before 0x1C000. The first
|
|
* 0x1000 of the image will contain the boot header.
|
|
*/
|
|
sram_code: memory@1b000 {
|
|
compatible = "mmio-sram";
|
|
reg = <0x1b000 DT_SIZE_K(1428)>;
|
|
};
|
|
|
|
sram0: memory@180000 {
|
|
compatible = "mmio-sram";
|
|
reg = <0x180000 DT_SIZE_K(3072)>;
|
|
};
|
|
|
|
sram1: memory@40140000 {
|
|
compatible = "zephyr,memory-region", "mmio-sram";
|
|
reg = <0x40140000 DT_SIZE_K(16)>;
|
|
zephyr,memory-region = "SRAM1";
|
|
zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>;
|
|
};
|
|
};
|
|
|
|
&systick {
|
|
/*
|
|
* RT600 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_rt6xx_ns.dtsi or nxp_rt6xx.dtsi. The base
|
|
* addresses differ between non-secure (0x40000000) and secure
|
|
* modes (0x50000000).
|
|
*/
|
|
|
|
flexspi: spi@134000 {
|
|
reg = <0x134000 0x1000>, <0x18000000 DT_SIZE_M(128)>;
|
|
};
|
|
|
|
clkctl0: clkctl@1000 {
|
|
/* FIXME This chip does NOT have a syscon */
|
|
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 {
|
|
/* FIXME This chip does NOT have a syscon */
|
|
compatible = "nxp,lpc-syscon";
|
|
reg = <0x21000 0x1000>;
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
rstctl0: reset@0 {
|
|
compatible = "nxp,rstctl";
|
|
reg = <0x0 0x80>;
|
|
#reset-cells = <1>;
|
|
};
|
|
|
|
rstctl1: reset@20000 {
|
|
compatible = "nxp,rstctl";
|
|
reg = <0x20000 0x80>;
|
|
#reset-cells = <1>;
|
|
};
|
|
|
|
uuid: uuid@2f50 {
|
|
compatible = "nxp,lpc-uid";
|
|
reg = <0x2f50 0x10>;
|
|
};
|
|
|
|
gpio: gpio@100000 {
|
|
compatible = "nxp,lpc-gpio";
|
|
reg = <0x100000 0x2784>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
gpio0: gpio@0 {
|
|
compatible = "nxp,lpc-gpio-port";
|
|
int-source = "pint";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <0>;
|
|
};
|
|
|
|
gpio1: gpio@1 {
|
|
compatible = "nxp,lpc-gpio-port";
|
|
int-source = "pint";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <1>;
|
|
};
|
|
|
|
gpio2: gpio@2 {
|
|
compatible = "nxp,lpc-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <2>;
|
|
};
|
|
|
|
gpio3: gpio@3 {
|
|
compatible = "nxp,lpc-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <3>;
|
|
};
|
|
|
|
gpio4: gpio@4 {
|
|
compatible = "nxp,lpc-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <4>;
|
|
};
|
|
|
|
gpio7: gpio@7 {
|
|
compatible = "nxp,lpc-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <7>;
|
|
};
|
|
};
|
|
|
|
pint: pint@25000 {
|
|
compatible = "nxp,pint";
|
|
reg = <0x25000 0x1000>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
#address-cells = <0>;
|
|
interrupts = <4 2>, <5 2>, <6 2>, <7 2>,
|
|
<35 2>, <36 2>, <37 2>, <38 2>;
|
|
num-lines = <8>;
|
|
num-inputs = <64>;
|
|
};
|
|
|
|
flexcomm0: flexcomm@106000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x106000 0x1000>;
|
|
interrupts = <14 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM0_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 8)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm1: flexcomm@107000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x107000 0x1000>;
|
|
interrupts = <15 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM1_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 9)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm2: flexcomm@108000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x108000 0x1000>;
|
|
interrupts = <16 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM2_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 10)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm3: flexcomm@109000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x109000 0x1000>;
|
|
interrupts = <17 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM3_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 11)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm4: flexcomm@122000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x122000 0x1000>;
|
|
interrupts = <18 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM4_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 12)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm5: flexcomm@123000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x123000 0x1000>;
|
|
interrupts = <19 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM5_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 13)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm6: flexcomm@124000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x124000 0x1000>;
|
|
interrupts = <43 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM6_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 14)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
flexcomm7: flexcomm@125000 {
|
|
compatible = "nxp,lpc-flexcomm";
|
|
reg = <0x125000 0x1000>;
|
|
interrupts = <44 0>;
|
|
clocks = <&clkctl1 MCUX_FLEXCOMM7_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 15)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pmic_i2c: i2c@127000 {
|
|
compatible = "nxp,lpc-i2c";
|
|
reg = <0x127000 0x1000>;
|
|
interrupts = <21 0>;
|
|
clocks = <&clkctl1 MCUX_PMIC_I2C_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 23)>;
|
|
status = "disabled";
|
|
};
|
|
|
|
usbhs: usbhs@144000 {
|
|
compatible = "nxp,lpcip3511";
|
|
reg = <0x144000 0x1000>;
|
|
interrupts = <50 1>;
|
|
num-bidir-endpoints = <6>;
|
|
status = "disabled";
|
|
};
|
|
|
|
usbphy: usbphy@13b000 {
|
|
compatible = "nxp,usbphy";
|
|
reg = <0x13b000 0x1000>;
|
|
status = "disabled";
|
|
};
|
|
|
|
hs_lspi: spi@126000 {
|
|
compatible = "nxp,lpc-spi";
|
|
/* Enabling cs-gpios below will allow using GPIO CS,
|
|
rather than Flexcomm SS */
|
|
/* cs-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>,
|
|
<&gpio1 15 GPIO_ACTIVE_LOW>,
|
|
<&gpio1 16 GPIO_ACTIVE_LOW>,
|
|
<&gpio1 17 GPIO_ACTIVE_LOW>; */
|
|
reg = <0x126000 0x1000>;
|
|
interrupts = <20 0>;
|
|
clocks = <&clkctl1 MCUX_HS_SPI_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(0, 22)>;
|
|
status = "disabled";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
dma0: dma-controller@104000 {
|
|
compatible = "nxp,lpc-dma";
|
|
reg = <0x104000 0x1000>;
|
|
interrupts = <1 0>;
|
|
dma-channels = <33>;
|
|
status = "disabled";
|
|
#dma-cells = <1>;
|
|
};
|
|
|
|
dma1: dma-controller@105000 {
|
|
compatible = "nxp,lpc-dma";
|
|
reg = <0x105000 0x1000>;
|
|
interrupts = <54 0>;
|
|
dma-channels = <33>;
|
|
status = "disabled";
|
|
#dma-cells = <1>;
|
|
};
|
|
|
|
dmic0: dmic@121000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "nxp,dmic";
|
|
reg = <0x121000 0x1000>;
|
|
interrupts = <25 0>;
|
|
status = "disabled";
|
|
clocks = <&clkctl0 MCUX_DMIC_CLK>;
|
|
|
|
pdmc0: dmic-channel@0 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <0>;
|
|
dmas = <&dma0 16>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc1: dmic-channel@1 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <1>;
|
|
dmas = <&dma0 17>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc2: dmic-channel@2 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <2>;
|
|
dmas = <&dma0 18>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc3: dmic-channel@3 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <3>;
|
|
dmas = <&dma0 19>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc4: dmic-channel@4 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <4>;
|
|
dmas = <&dma0 20>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc5: dmic-channel@5 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <5>;
|
|
dmas = <&dma0 21>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc6: dmic-channel@6 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <6>;
|
|
dmas = <&dma0 22>;
|
|
status = "disabled";
|
|
};
|
|
|
|
pdmc7: dmic-channel@7 {
|
|
compatible = "nxp,dmic-channel";
|
|
reg = <7>;
|
|
dmas = <&dma0 23>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
|
|
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";
|
|
rtc_highres: rtc_highres {
|
|
compatible = "nxp,lpc-rtc-highres";
|
|
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";
|
|
clocks = <&clkctl1 MCUX_SCTIMER_CLK>;
|
|
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>;
|
|
};
|
|
|
|
usdhc0: 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>;
|
|
};
|
|
|
|
usdhc1: 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: adc@13a000 {
|
|
compatible = "nxp,lpc-lpadc";
|
|
reg = <0x13a000 0x304>;
|
|
interrupts = <22 0>;
|
|
status = "disabled";
|
|
clk-divider = <1>;
|
|
clk-source = <0>;
|
|
voltage-ref= <1>;
|
|
calibration-average = <128>;
|
|
power-level = <0>;
|
|
offset-value-a = <10>;
|
|
offset-value-b = <10>;
|
|
#io-channel-cells = <1>;
|
|
clocks = <&clkctl1 MCUX_LPADC1_CLK>;
|
|
};
|
|
|
|
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>;
|
|
};
|
|
|
|
i3c0: i3c@36000 {
|
|
compatible = "nxp,mcux-i3c";
|
|
reg = <0x36000 0x1000>;
|
|
interrupts = <49 0>;
|
|
clocks = <&clkctl1 MCUX_I3C_CLK>;
|
|
clk-divider = <2>;
|
|
clk-divider-slow = <1>;
|
|
clk-divider-tc = <1>;
|
|
status = "disabled";
|
|
#address-cells = <3>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
mrt: mrt@2d000 {
|
|
compatible = "nxp,mrt";
|
|
reg = <0x2d000 0x100>;
|
|
interrupts = <9 0>;
|
|
num-channels = <4>;
|
|
num-bits = <24>;
|
|
clocks = <&clkctl1 MCUX_MRT_CLK>;
|
|
resets = <&rstctl1 NXP_SYSCON_RESET(2, 8)>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
mrt_channel0: mrt_channel@0 {
|
|
compatible = "nxp,mrt-channel";
|
|
reg = <0>;
|
|
status = "disabled";
|
|
};
|
|
mrt_channel1: mrt_channel@1 {
|
|
compatible = "nxp,mrt-channel";
|
|
reg = <1>;
|
|
status = "disabled";
|
|
};
|
|
mrt_channel2: mrt_channel@2 {
|
|
compatible = "nxp,mrt-channel";
|
|
reg = <2>;
|
|
status = "disabled";
|
|
};
|
|
mrt_channel3: mrt_channel@3 {
|
|
compatible = "nxp,mrt-channel";
|
|
reg = <3>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
};
|
|
|
|
&flexspi {
|
|
compatible = "nxp,imx-flexspi";
|
|
interrupts = <42 0>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
clocks = <&clkctl1 MCUX_FLEXSPI_CLK>;
|
|
};
|
|
|
|
&nvic {
|
|
arm,num-irq-priority-bits = <3>;
|
|
};
|