Browse Source
Add DT for the mimxrt685s/hifi4 SoC (i.MX RT685's HiFi 4 DSP core). Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>pull/89404/head
1 changed files with 217 additions and 0 deletions
@ -0,0 +1,217 @@
@@ -0,0 +1,217 @@
|
||||
/* |
||||
* Copyright 2025 NXP |
||||
* SPDX-License-Identifier: Apache-2.0 |
||||
*/ |
||||
|
||||
#include <xtensa/xtensa.dtsi> |
||||
#include <mem.h> |
||||
#include <zephyr/dt-bindings/clock/mcux_lpc_syscon_clock.h> |
||||
#include <zephyr/dt-bindings/input/input-event-codes.h> |
||||
|
||||
/ { |
||||
chosen { |
||||
zephyr,sram = &adsp_data; |
||||
}; |
||||
|
||||
cpus { |
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
|
||||
cpu0: cpu@0 { |
||||
device_type = "cpu"; |
||||
compatible = "cdns,tensilica-xtensa-lx6"; |
||||
reg = <0>; |
||||
}; |
||||
}; |
||||
|
||||
soc { |
||||
interrupt-parent = <&core_intc>; |
||||
|
||||
/* |
||||
* Dummy interrupt controller node - IRQs are handled directly by platform code. |
||||
* INPUTMUX (IRQ allocation) is set up in mimxrt685s/hifi4 soc.c. |
||||
*/ |
||||
core_intc: core_intc@0 { |
||||
compatible = "cdns,xtensa-core-intc"; |
||||
reg = <0x00 0x400>; |
||||
interrupt-controller; |
||||
#interrupt-cells = <3>; |
||||
}; |
||||
|
||||
itcm: memory@24020000 { |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
device_type = "memory"; |
||||
compatible = "mmio-sram"; |
||||
|
||||
reg = <0x24020000 DT_SIZE_K(64)>; |
||||
|
||||
adsp_reset: memory@24020000 { |
||||
reg = <0x24020000 DT_SIZE_K(1)>; |
||||
}; |
||||
}; |
||||
|
||||
dtcm: memory@24000000 { |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
device_type = "memory"; |
||||
compatible = "mmio-sram"; |
||||
|
||||
reg = <0x24000000 DT_SIZE_K(64)>; |
||||
}; |
||||
|
||||
ram0_cached: memory@200000 { |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
device_type = "memory"; |
||||
compatible = "mmio-sram"; |
||||
|
||||
reg = <0x00200000 DT_SIZE_K(512)>; |
||||
}; |
||||
|
||||
ram0_noncached: memory@20400000 { |
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
device_type = "memory"; |
||||
compatible = "mmio-sram"; |
||||
|
||||
reg = <0x20400000 DT_SIZE_K(512)>; |
||||
|
||||
adsp_text: memory@20400000 { |
||||
reg = <0x20400000 DT_SIZE_K(256)>; |
||||
}; |
||||
|
||||
adsp_data: memory@20440000 { |
||||
reg = <0x20440000 DT_SIZE_K(256)>; |
||||
}; |
||||
}; |
||||
|
||||
peripheral: peripheral@40000000 { |
||||
ranges = <0x0 0x40000000 0x10000000>; |
||||
|
||||
#address-cells = <1>; |
||||
#size-cells = <1>; |
||||
|
||||
clkctl0: clkctl@1000 { |
||||
/* FIXME This chip does NOT have a syscon */ |
||||
compatible = "nxp,lpc-syscon"; |
||||
reg = <0x1000 0x1000>; |
||||
#clock-cells = <1>; |
||||
}; |
||||
|
||||
gpio: gpio@100000 { |
||||
reg = <0x100000 0x1000>; |
||||
|
||||
#address-cells = <1>; |
||||
#size-cells = <0>; |
||||
|
||||
compatible = "nxp,lpc-gpio"; |
||||
|
||||
gpio0: gpio@0 { |
||||
reg = <0>; |
||||
|
||||
gpio-controller; |
||||
#gpio-cells = <2>; |
||||
int-source = "pint"; |
||||
|
||||
compatible = "nxp,lpc-gpio-port"; |
||||
}; |
||||
|
||||
gpio1: gpio@1 { |
||||
reg = <1>; |
||||
|
||||
gpio-controller; |
||||
#gpio-cells = <2>; |
||||
int-source = "pint"; |
||||
|
||||
compatible = "nxp,lpc-gpio-port"; |
||||
}; |
||||
}; |
||||
|
||||
pint: pint@25000 { |
||||
compatible = "nxp,pint"; |
||||
reg = <0x25000 0x1000>; |
||||
interrupt-controller; |
||||
#interrupt-cells = <1>; |
||||
#address-cells = <0>; |
||||
interrupts = <7 0 0>, <8 0 0>, <9 0 0>, <10 0 0>, |
||||
<11 0 0>, <12 0 0>, <13 0 0>, <14 0 0>; |
||||
num-lines = <8>; |
||||
num-inputs = <64>; |
||||
}; |
||||
|
||||
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>; |
||||
}; |
||||
|
||||
dma1: dma-controller@105000 { |
||||
compatible = "nxp,lpc-dma"; |
||||
reg = <0x105000 0x1000>; |
||||
interrupts = <29 0 0>; |
||||
dma-channels = <33>; |
||||
status = "disabled"; |
||||
#dma-cells = <1>; |
||||
}; |
||||
|
||||
i3c0: i3c@36000 { |
||||
compatible = "nxp,mcux-i3c"; |
||||
reg = <0x36000 0x1000>; |
||||
#address-cells = <3>; |
||||
#size-cells = <0>; |
||||
interrupts = <6 0 0>; |
||||
clocks = <&clkctl1 MCUX_I3C_CLK>; |
||||
clk-divider = <2>; |
||||
clk-divider-slow = <1>; |
||||
clk-divider-tc = <1>; |
||||
status = "disabled"; |
||||
}; |
||||
|
||||
flexcomm0: flexcomm@106000 { |
||||
compatible = "nxp,lpc-flexcomm"; |
||||
reg = <0x106000 0x1000>; |
||||
clocks = <&clkctl1 MCUX_FLEXCOMM0_CLK>; |
||||
interrupts = <5 0 0>; |
||||
status = "disabled"; |
||||
}; |
||||
|
||||
flexcomm1: flexcomm@107000 { |
||||
compatible = "nxp,lpc-flexcomm"; |
||||
reg = <0x107000 0x1000>; |
||||
interrupts = <31 0 0>; |
||||
clocks = <&clkctl1 MCUX_FLEXCOMM1_CLK>; |
||||
status = "disabled"; |
||||
}; |
||||
|
||||
flexcomm3: flexcomm@109000 { |
||||
compatible = "nxp,lpc-flexcomm"; |
||||
reg = <0x109000 0x1000>; |
||||
interrupts = <30 0 0>; |
||||
clocks = <&clkctl1 MCUX_FLEXCOMM3_CLK>; |
||||
status = "disabled"; |
||||
}; |
||||
|
||||
mbox: mbox@111000 { |
||||
#mbox-cells = <1>; |
||||
|
||||
compatible = "nxp,mbox-imx-mu"; |
||||
reg = <0x111000 0x1000>; |
||||
|
||||
interrupts = <27 0 0>; |
||||
rx-channels = <4>; |
||||
|
||||
status = "disabled"; |
||||
}; |
||||
}; |
||||
}; |
||||
}; |
Loading…
Reference in new issue