Skip to content

Commit b9bcda5

Browse files
mstasiaknordickartben
authored andcommitted
dts: nordic: nrf54: add nRF54L20 FLPR core
Added support for nRF54L20 FLPR core in devicetree. Signed-off-by: Michał Stasiak <[email protected]>
1 parent 065dca7 commit b9bcda5

File tree

3 files changed

+141
-3
lines changed

3 files changed

+141
-3
lines changed

dts/arm/nordic/nrf54l20_enga_cpuapp.dtsi

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ cpu: &cpuapp {};
1010
systick: &cpuapp_systick {};
1111
nvic: &cpuapp_nvic {};
1212

13+
/delete-node/ &cpuflpr;
14+
/delete-node/ &cpuflpr_rram;
15+
/delete-node/ &cpuflpr_sram;
16+
/delete-node/ &cpuflpr_clic;
17+
1318
/ {
1419
soc {
1520
compatible = "simple-bus";
@@ -23,6 +28,27 @@ nvic: &cpuapp_nvic {};
2328
};
2429
};
2530

31+
&cpuflpr_vpr {
32+
cpuapp_vevif_rx: mailbox@1 {
33+
compatible = "nordic,nrf-vevif-event-rx";
34+
reg = <0x0 0x1000>;
35+
status = "disabled";
36+
interrupts = <76 NRF_DEFAULT_IRQ_PRIORITY>;
37+
#mbox-cells = <1>;
38+
nordic,events = <1>;
39+
nordic,events-mask = <0x00100000>;
40+
};
41+
42+
cpuapp_vevif_tx: mailbox@0 {
43+
compatible = "nordic,nrf-vevif-task-tx";
44+
reg = <0x0 0x1000>;
45+
#mbox-cells = <1>;
46+
nordic,tasks = <7>;
47+
nordic,tasks-mask = <0x007f0000>;
48+
status = "disabled";
49+
};
50+
};
51+
2652
&cpuapp_ppb {
2753
compatible = "simple-bus";
2854
ranges;

dts/common/nordic/nrf54l20.dtsi

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111

1212
/delete-node/ &sw_pwm;
1313

14+
/* Domain IDs. Can be used to specify channel links in IPCT nodes. */
15+
#define NRF_DOMAIN_ID_APPLICATION 0
16+
#define NRF_DOMAIN_ID_FLPR 1
17+
1418
/ {
1519
#address-cells = <1>;
1620
#size-cells = <1>;
@@ -33,6 +37,14 @@
3337
swo-ref-frequency = <DT_FREQ_M(128)>;
3438
};
3539
};
40+
41+
cpuflpr: cpu@1 {
42+
compatible = "nordic,vpr";
43+
reg = <1>;
44+
device_type = "cpu";
45+
riscv,isa = "rv32emc";
46+
nordic,bus-width = <64>;
47+
};
3648
};
3749

3850
clocks {
@@ -78,10 +90,18 @@
7890

7991
cpuapp_sram: memory@20000000 {
8092
compatible = "mmio-sram";
81-
reg = <0x20000000 DT_SIZE_K(511)>;
93+
reg = <0x20000000 DT_SIZE_K(447)>;
94+
#address-cells = <1>;
95+
#size-cells = <1>;
96+
ranges = <0x0 0x20000000 0x6fc00>;
97+
};
98+
99+
cpuflpr_sram: memory@2006fc00 {
100+
compatible = "mmio-sram";
101+
reg = <0x2006fc00 DT_SIZE_K(64)>;
82102
#address-cells = <1>;
83103
#size-cells = <1>;
84-
ranges = <0x0 0x20000000 0x7fc00>;
104+
ranges = <0x0 0x2006fc00 0x10000>;
85105
};
86106

87107
global_peripherals: peripheral@50000000 {
@@ -107,6 +127,24 @@
107127
status = "disabled";
108128
};
109129

130+
cpuflpr_vpr: vpr@4c000 {
131+
compatible = "nordic,nrf-vpr-coprocessor";
132+
reg = <0x4c000 0x1000>;
133+
ranges = <0x0 0x4c000 0x1000>;
134+
#address-cells = <1>;
135+
#size-cells = <1>;
136+
status = "disabled";
137+
138+
cpuflpr_clic: interrupt-controller@f0000000 {
139+
compatible = "nordic,nrf-clic";
140+
reg = <0xf0000000 0x143c>;
141+
interrupt-controller;
142+
#interrupt-cells = <2>;
143+
#address-cells = <1>;
144+
status = "disabled";
145+
};
146+
};
147+
110148
spi00: spi@4d000 {
111149
/*
112150
* This spi node can be either SPIM or SPIS,
@@ -737,7 +775,14 @@
737775

738776
cpuapp_rram: rram@0 {
739777
compatible = "soc-nv-flash";
740-
reg = <0x0 DT_SIZE_K(2028)>;
778+
reg = <0x0 DT_SIZE_K(1972)>;
779+
erase-block-size = <4096>;
780+
write-block-size = <16>;
781+
};
782+
783+
cpuflpr_rram: rram@1ed000 {
784+
compatible = "soc-nv-flash";
785+
reg = <0x1ed000 DT_SIZE_K(64)>;
741786
erase-block-size = <4096>;
742787
write-block-size = <16>;
743788
};
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <nordic/nrf54l20.dtsi>
8+
9+
cpu: &cpuflpr {};
10+
clic: &cpuflpr_clic {};
11+
12+
/delete-node/ &cpuapp;
13+
/delete-node/ &cpuapp_rram;
14+
/delete-node/ &cpuapp_ppb;
15+
/delete-node/ &cpuapp_sram;
16+
17+
/ {
18+
soc {
19+
compatible = "simple-bus";
20+
interrupt-parent = <&cpuflpr_clic>;
21+
ranges;
22+
};
23+
};
24+
25+
&cpuflpr {
26+
cpuflpr_vevif_rx: mailbox {
27+
compatible = "nordic,nrf-vevif-task-rx";
28+
status = "disabled";
29+
interrupt-parent = <&cpuflpr_clic>;
30+
interrupts = <16 NRF_DEFAULT_IRQ_PRIORITY>,
31+
<17 NRF_DEFAULT_IRQ_PRIORITY>,
32+
<18 NRF_DEFAULT_IRQ_PRIORITY>,
33+
<19 NRF_DEFAULT_IRQ_PRIORITY>,
34+
<20 NRF_DEFAULT_IRQ_PRIORITY>,
35+
<21 NRF_DEFAULT_IRQ_PRIORITY>,
36+
<22 NRF_DEFAULT_IRQ_PRIORITY>;
37+
#mbox-cells = <1>;
38+
nordic,tasks = <7>;
39+
nordic,tasks-mask = <0x007f0000>;
40+
};
41+
};
42+
43+
&cpuflpr_vpr {
44+
cpuflpr_vevif_tx: mailbox {
45+
compatible = "nordic,nrf-vevif-event-tx";
46+
#mbox-cells = <1>;
47+
nordic,events = <1>;
48+
nordic,events-mask = <0x00100000>;
49+
status = "disabled";
50+
};
51+
};
52+
53+
&cpuflpr_clic {
54+
status = "okay";
55+
};
56+
57+
&grtc {
58+
interrupts = <226 NRF_DEFAULT_IRQ_PRIORITY>;
59+
};
60+
61+
&gpiote20 {
62+
interrupts = <218 NRF_DEFAULT_IRQ_PRIORITY>;
63+
};
64+
65+
&gpiote30 {
66+
interrupts = <268 NRF_DEFAULT_IRQ_PRIORITY>;
67+
};

0 commit comments

Comments
 (0)