Skip to content

Commit 8c93e31

Browse files
[nrf fromlist] dts: nordic: nrf54: add nRF54L20 FLPR core
Added support for nRF54L20 FLPR core in devicetree. Upstream PR #: 79355 Signed-off-by: Michał Stasiak <[email protected]>
1 parent 50128e3 commit 8c93e31

File tree

3 files changed

+140
-3
lines changed

3 files changed

+140
-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
chosen {
1520
zephyr,entropy = &prng;
@@ -32,6 +37,27 @@ nvic: &cpuapp_nvic {};
3237
};
3338
};
3439

40+
&cpuflpr_vpr {
41+
cpuapp_vevif_rx: mailbox@1 {
42+
compatible = "nordic,nrf-vevif-event-rx";
43+
reg = <0x0 0x1000>;
44+
status = "disabled";
45+
interrupts = <76 NRF_DEFAULT_IRQ_PRIORITY>;
46+
#mbox-cells = <1>;
47+
nordic,events = <1>;
48+
nordic,events-mask = <0x00100000>;
49+
};
50+
51+
cpuapp_vevif_tx: mailbox@0 {
52+
compatible = "nordic,nrf-vevif-task-tx";
53+
reg = <0x0 0x1000>;
54+
#mbox-cells = <1>;
55+
nordic,tasks = <7>;
56+
nordic,tasks-mask = <0x007f0000>;
57+
status = "disabled";
58+
};
59+
};
60+
3561
&cpuapp_ppb {
3662
compatible = "simple-bus";
3763
ranges;

dts/common/nordic/nrf54l20.dtsi

Lines changed: 47 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>;
@@ -32,6 +36,14 @@
3236
swo-ref-frequency = <DT_FREQ_M(128)>;
3337
};
3438
};
39+
40+
cpuflpr: cpu@1 {
41+
compatible = "nordic,vpr";
42+
reg = <1>;
43+
device_type = "cpu";
44+
riscv,isa = "rv32emc";
45+
nordic,bus-width = <64>;
46+
};
3547
};
3648

3749
clocks {
@@ -77,10 +89,18 @@
7789

7890
cpuapp_sram: memory@20000000 {
7991
compatible = "mmio-sram";
80-
reg = <0x20000000 DT_SIZE_K(511)>;
92+
reg = <0x20000000 DT_SIZE_K(447)>;
8193
#address-cells = <1>;
8294
#size-cells = <1>;
83-
ranges = <0x0 0x20000000 0x7fc00>;
95+
ranges = <0x0 0x20000000 0x6fc00>;
96+
};
97+
98+
cpuflpr_sram: memory@2006fc00 {
99+
compatible = "mmio-sram";
100+
reg = <0x2006fc00 DT_SIZE_K(64)>;
101+
#address-cells = <1>;
102+
#size-cells = <1>;
103+
ranges = <0x0 0x2006fc00 0x10000>;
84104
};
85105

86106
global_peripherals: peripheral@50000000 {
@@ -106,6 +126,24 @@
106126
status = "disabled";
107127
};
108128

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

711749
cpuapp_rram: rram@0 {
712750
compatible = "soc-nv-flash";
713-
reg = <0x0 DT_SIZE_K(2028)>;
751+
reg = <0x0 DT_SIZE_K(1972)>;
752+
erase-block-size = <4096>;
753+
write-block-size = <16>;
754+
};
755+
cpuflpr_rram: rram@1ed000 {
756+
compatible = "soc-nv-flash";
757+
reg = <0x1ed000 DT_SIZE_K(64)>;
714758
erase-block-size = <4096>;
715759
write-block-size = <16>;
716760
};
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)