zephyr/dts/arm/nxp/nxp_rt7xx_cm33_cpu1.dtsi
Lucien Zhao ba982a0f85 dts: arm: nxp: register ostimer for cm33_cpu0/1
register ostimer for cm33_cpu0/1
disable systick
set ostimer per sec 1000000 times

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2025-02-14 17:24:58 +01:00

440 lines
9.6 KiB
Text

/*
* Copyright 2024-2025 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/memory-attr/memory-attr-arm.h>
#include <zephyr/dt-bindings/reset/nxp_syscon_reset_common.h>
/ {
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu1: cpu@0 {
compatible = "arm,cortex-m33f";
reg = <0>;
#address-cells = <1>;
#size-cells = <1>;
mpu: mpu@e000ed90 {
compatible = "arm,armv8m-mpu";
reg = <0xe000ed90 0x40>;
};
};
};
soc {
sram: sram@10000000 {
ranges = <0x0 0x10000000 0x780000
0x20000000 0x30000000 0x780000>;
};
peripheral: peripheral@50000000 {
ranges = <0x0 0x50000000 0x10000000>;
};
xspi2: spi@50411000 {
reg = <0x50411000 0x1000>, <0x70000000 DT_SIZE_M(128)>;
};
};
pinctrl: pinctrl {
compatible = "nxp,rt-iocon-pinctrl";
};
};
&sram {
#address-cells = <1>;
#size-cells = <1>;
/* RT7XX 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.
*
* The SRAM region [0x580000-0x5BFFFF] is reserved for shared memory or application data.
* The SRAM region [0x5C0000-0x67FFFF] is reserved for CPU1 application.
* The SRAM region [0x680000-0x77FFFF] is reserved for HiFi1 application.
*/
sram_code: memory@600000{
compatible = "mmio-sram";
reg = <0x600000 DT_SIZE_K(512)>;
};
/* This partition is shared with code in RAM */
sram_shared_code: memory@20058000{
compatible = "mmio-sram";
reg = <0x20058000 DT_SIZE_K(256)>;
};
sram0: memory@205C0000 {
compatible = "mmio-sram";
/* Only use 256K, align with SDK */
reg = <0x205C0000 DT_SIZE_K(256)>;
};
};
&peripheral {
#address-cells = <1>;
#size-cells = <1>;
/*
* Note that the offsets here are relative to the base address.
* The base addresses differ between non-secure (0x40000000)
* and secure modes (0x50000000).
*/
lpadc0: adc@20c000 {
compatible = "nxp,lpc-lpadc";
reg = <0x20c000 0x304>;
interrupts = <15 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 = <&clkctl3 MCUX_LPADC1_CLK>;
};
rstctl1: reset@40000 {
compatible = "nxp,rstctl";
reg = <0x40000 0x1000>;
#reset-cells = <1>;
};
rstctl2: reset@67000 {
compatible = "nxp,rstctl";
reg = <0x67000 0x1000>;
#reset-cells = <1>;
};
rstctl3: reset@60000 {
compatible = "nxp,rstctl";
reg = <0x60000 0x1000>;
#reset-cells = <1>;
};
rstctl4: reset@a0000 {
compatible = "nxp,rstctl";
reg = <0xa0000 0x1000>;
#reset-cells = <1>;
};
clkctl1: clkctl@41000 {
compatible = "nxp,lpc-syscon";
reg = <0x41000 0x1000>;
#clock-cells = <1>;
};
clkctl2: clkctl@65000 {
compatible = "nxp,lpc-syscon";
reg = <0x65000 0x1000>;
#clock-cells = <1>;
};
clkctl3: clkctl@61000 {
compatible = "nxp,lpc-syscon";
reg = <0x61000 0x1000>;
#clock-cells = <1>;
};
clkctl4: clkctl@a1000 {
compatible = "nxp,lpc-syscon";
reg = <0xa1000 0x1000>;
#clock-cells = <1>;
};
ctimer5: ctimer@48000 {
compatible = "nxp,lpc-ctimer";
reg = <0x48000 0x1000>;
interrupts = <7 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER5_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
ctimer6: ctimer@49000 {
compatible = "nxp,lpc-ctimer";
reg = <0x49000 0x1000>;
interrupts = <8 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER6_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
ctimer7: ctimer@4a000 {
compatible = "nxp,lpc-ctimer";
reg = <0x4a000 0x1000>;
interrupts = <9 0>;
status = "disabled";
clk-source = <1>;
clocks = <&clkctl1 MCUX_CTIMER7_CLK>;
mode = <0>;
input = <0>;
prescale = <0>;
};
syscon1: syscon@42000 {
compatible = "nxp,lpc-syscon";
reg = <0x42000 0x1000>;
#clock-cells = <1>;
};
syscon2: syscon@66000 {
compatible = "nxp,lpc-syscon";
reg = <0x66000 0x1000>;
#clock-cells = <1>;
};
syscon3: syscon@62000 {
compatible = "nxp,lpc-syscon";
reg = <0x62000 0x1000>;
#clock-cells = <1>;
};
syscon4: syscon@a2000 {
compatible = "nxp,lpc-syscon";
reg = <0xa2000 0x1000>;
#clock-cells = <1>;
};
iocon1: iocon@64000 {
compatible = "nxp,lpc-iocon";
reg = <0x64000 0x1000>;
status = "okay";
};
iocon2: iocon@a5000 {
compatible = "nxp,lpc-iocon";
reg = <0xa5000 0x1000>;
status = "okay";
};
gpio8: gpio@320000 {
compatible = "nxp,kinetis-gpio";
status = "disabled";
reg = <0x320000 0x1000>;
interrupts = <61 0>,<62 0>;
gpio-controller;
#gpio-cells = <2>;
nxp,kinetis-port = <&gpio8>;
gpio-port-offest = <8>;
};
gpio9: gpio@322000 {
compatible = "nxp,kinetis-gpio";
status = "disabled";
reg = <0x322000 0x1000>;
interrupts = <63 0>,<64 0>;
gpio-controller;
#gpio-cells = <2>;
nxp,kinetis-port = <&gpio9>;
gpio-port-offest = <8>;
};
gpio10: gpio@324000 {
compatible = "nxp,kinetis-gpio";
status = "disabled";
reg = <0x324000 0x1000>;
interrupts = <65 0>,<66 0>;
gpio-controller;
#gpio-cells = <2>;
nxp,kinetis-port = <&gpio10>;
gpio-port-offest = <8>;
};
flexcomm17: flexcomm@326000 {
compatible = "nxp,lp-flexcomm";
reg = <0x326000 0x1000>;
interrupts = <11 0>;
status = "disabled";
/* Empty ranges property implies parent and child address space is identical */
ranges = <>;
#address-cells = <1>;
#size-cells = <1>;
flexcomm17_lpuart17: uart@326000 {
compatible = "nxp,lpuart";
reg = <0x326000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM17_CLK>;
status = "disabled";
};
flexcomm17_lpspi17: lpspi@326000 {
compatible = "nxp,lpspi";
reg = <0x326000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM17_CLK>;
#address-cells = <1>;
#size-cells = <0>;
tx-fifo-size = <8>;
rx-fifo-size = <8>;
status = "disabled";
};
flexcomm17_lpi2c17: lpi2c@326800 {
compatible = "nxp,lpi2c";
reg = <0x326800 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM17_CLK>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
flexcomm18: flexcomm@327000 {
compatible = "nxp,lp-flexcomm";
reg = <0x327000 0x1000>;
interrupts = <12 0>;
status = "disabled";
/* Empty ranges property implies parent and child address space is identical */
ranges = <>;
#address-cells = <1>;
#size-cells = <1>;
flexcomm18_lpuart18: uart@327000 {
compatible = "nxp,lpuart";
reg = <0x327000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM18_CLK>;
status = "disabled";
};
flexcomm18_lpspi18: lpspi@327000 {
compatible = "nxp,lpspi";
reg = <0x327000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM18_CLK>;
#address-cells = <1>;
#size-cells = <0>;
tx-fifo-size = <8>;
rx-fifo-size = <8>;
status = "disabled";
};
flexcomm18_lpi2c18: lpi2c@327800 {
compatible = "nxp,lpi2c";
reg = <0x327800 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM18_CLK>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
flexcomm19: flexcomm@328000 {
compatible = "nxp,lp-flexcomm";
reg = <0x328000 0x1000>;
interrupts = <13 0>;
status = "disabled";
/* Empty ranges property implies parent and child address space is identical */
ranges = <>;
#address-cells = <1>;
#size-cells = <1>;
flexcomm19_lpuart19: uart@328000 {
compatible = "nxp,lpuart";
reg = <0x328000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM19_CLK>;
status = "disabled";
};
flexcomm19_lpspi19: lpspi@328000 {
compatible = "nxp,lpspi";
reg = <0x328000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM19_CLK>;
#address-cells = <1>;
#size-cells = <0>;
tx-fifo-size = <8>;
rx-fifo-size = <8>;
status = "disabled";
};
flexcomm19_lpi2c19: lpi2c@328800 {
compatible = "nxp,lpi2c";
reg = <0x328800 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM19_CLK>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
flexcomm20: flexcomm@329000 {
compatible = "nxp,lp-flexcomm";
reg = <0x329000 0x1000>;
interrupts = <14 0>;
status = "disabled";
/* Empty ranges property implies parent and child address space is identical */
ranges = <>;
#address-cells = <1>;
#size-cells = <1>;
flexcomm20_lpuart20: uart@329000 {
compatible = "nxp,lpuart";
reg = <0x329000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM20_CLK>;
status = "disabled";
};
flexcomm20_lpspi20: lpspi@329000 {
compatible = "nxp,lpspi";
reg = <0x329000 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM20_CLK>;
#address-cells = <1>;
#size-cells = <0>;
tx-fifo-size = <8>;
rx-fifo-size = <8>;
status = "disabled";
};
flexcomm20_lpi2c20: lpi2c@329800 {
compatible = "nxp,lpi2c";
reg = <0x329800 0x1000>;
clocks = <&clkctl1 MCUX_FLEXCOMM20_CLK>;
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
};
/* LPFlexcomm15 only support LPI2C function. */
lpi2c15: i2c@213000 {
compatible = "nxp,lpi2c";
reg = <0x213000 0x1000>;
interrupts = <14 0>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&clkctl4 MCUX_LPI2C15_CLK>;
status = "disabled";
};
os_timer_cpu1: timers@209000 {
compatible = "nxp,os-timer";
reg = <0x209000 0x1000>;
interrupts = <30 0>;
status = "disabled";
};
};
&nvic {
arm,num-irq-priority-bits = <3>;
};
&systick {
/*
* RT700 cm33_cpu1 relies by default on the OS Timer for system
* clock implementation, so the SysTick node is not to be enabled.
*/
status = "disabled";
};