Skip to content

Commit 6180f1d

Browse files
mstasiaknordicrlubos
authored andcommitted
boards: nordic: nrf54lm20pdk: introduce renamed nrf54lm20pdk board
Introduced board nrf54lm20pdk, identical to nrf54lm20apdk. Signed-off-by: Michał Stasiak <[email protected]>
1 parent fb959db commit 6180f1d

15 files changed

+689
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
3+
4+
if BOARD_NRF54LM20PDK_NRF54LM20A_CPUAPP
5+
6+
config ROM_START_OFFSET
7+
default 0 if PARTITION_MANAGER_ENABLED
8+
default 0x800 if BOOTLOADER_MCUBOOT
9+
10+
config SOC_NRF54LX_SKIP_GLITCHDETECTOR_DISABLE
11+
default y
12+
13+
endif # BOARD_NRF54LM20PDK_NRF54LM20A_CPUAPP
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
3+
4+
config BOARD_NRF54LM20PDK
5+
select SOC_NRF54LM20A_ENGA_CPUAPP if BOARD_NRF54LM20PDK_NRF54LM20A_CPUAPP
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
3+
4+
board_runner_args(jlink "--device=cortex-m33" "--speed=4000")
5+
6+
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
7+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
board:
2+
name: nrf54lm20pdk
3+
full_name: nRF54LM20 PDK
4+
vendor: nordic
5+
socs:
6+
- name: nrf54lm20a
7+
revision:
8+
format: custom
9+
default: "0.0.0"
10+
revisions:
11+
- name: "0.0.0"
12+
- name: "0.2.0"
13+
- name: "0.2.0.csp"
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/* This file is common to the secure and non-secure domain */
8+
9+
#include <nordic/nrf54lm20a_enga_cpuapp.dtsi>
10+
#include "nrf54lm20pdk_nrf54lm20a-common.dtsi"
11+
12+
/ {
13+
chosen {
14+
zephyr,console = &uart20;
15+
zephyr,shell-uart = &uart20;
16+
zephyr,uart-mcumgr = &uart20;
17+
zephyr,bt-mon-uart = &uart20;
18+
zephyr,bt-c2h-uart = &uart20;
19+
zephyr,flash-controller = &rram_controller;
20+
zephyr,flash = &cpuapp_rram;
21+
zephyr,bt-hci = &bt_hci_controller;
22+
zephyr,ieee802154 = &ieee802154;
23+
};
24+
};
25+
26+
&cpuapp_sram {
27+
status = "okay";
28+
};
29+
30+
&hfpll {
31+
/* For now use 64 MHz clock for CPU and fast peripherals. */
32+
clock-frequency = <DT_FREQ_M(64)>;
33+
};
34+
35+
&lfxo {
36+
load-capacitors = "internal";
37+
load-capacitance-femtofarad = <15500>;
38+
};
39+
40+
&hfxo {
41+
load-capacitors = "internal";
42+
load-capacitance-femtofarad = <15000>;
43+
};
44+
45+
&grtc {
46+
owned-channels = <0 1 2 3 4 5 6 7 8 9 10 11>;
47+
/* Channels 7-11 reserved for Zero Latency IRQs, 3-4 for FLPR */
48+
child-owned-channels = <3 4 7 8 9 10 11>;
49+
status = "okay";
50+
};
51+
52+
&cpuapp_rram {
53+
partitions {
54+
compatible = "fixed-partitions";
55+
#address-cells = <1>;
56+
#size-cells = <1>;
57+
58+
boot_partition: partition@0 {
59+
label = "mcuboot";
60+
reg = <0x0 DT_SIZE_K(64)>;
61+
};
62+
63+
slot0_partition: partition@10000 {
64+
label = "image-0";
65+
reg = <0x10000 DT_SIZE_K(449)>;
66+
};
67+
68+
slot0_ns_partition: partition@80400 {
69+
label = "image-0-nonsecure";
70+
reg = <0x80400 DT_SIZE_K(449)>;
71+
};
72+
73+
slot1_partition: partition@f0800 {
74+
label = "image-1";
75+
reg = <0xf0800 DT_SIZE_K(449)>;
76+
};
77+
78+
slot1_ns_partition: partition@160c00 {
79+
label = "image-1-nonsecure";
80+
reg = <0x160c00 DT_SIZE_K(449)>;
81+
};
82+
83+
storage_partition: partition@1d1000 {
84+
label = "storage";
85+
reg = <0x1d1000 DT_SIZE_K(36)>;
86+
};
87+
};
88+
};
89+
90+
&uart20 {
91+
status = "okay";
92+
};
93+
94+
&gpio0 {
95+
status = "okay";
96+
};
97+
98+
&gpio1 {
99+
status = "okay";
100+
};
101+
102+
&gpio2 {
103+
status = "okay";
104+
};
105+
106+
&gpiote20 {
107+
status = "okay";
108+
};
109+
110+
&gpiote30 {
111+
status = "okay";
112+
};
113+
114+
&radio {
115+
status = "okay";
116+
};
117+
118+
&temp {
119+
status = "okay";
120+
};
121+
122+
&clock {
123+
status = "okay";
124+
};
125+
126+
&bt_hci_controller {
127+
status = "okay";
128+
};
129+
130+
&ieee802154 {
131+
status = "okay";
132+
};
133+
134+
zephyr_udc0: &usbhs {
135+
status = "okay";
136+
};
137+
138+
&spi00 {
139+
status = "okay";
140+
cs-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
141+
pinctrl-0 = <&spi00_default>;
142+
pinctrl-1 = <&spi00_sleep>;
143+
pinctrl-names = "default", "sleep";
144+
145+
mx25r64: mx25r6435f@0 {
146+
compatible = "jedec,spi-nor";
147+
status = "okay";
148+
reg = <0>;
149+
spi-max-frequency = <8000000>;
150+
jedec-id = [c2 28 17];
151+
sfdp-bfp = [
152+
e5 20 f1 ff ff ff ff 03 44 eb 08 6b 08 3b 04 bb
153+
ee ff ff ff ff ff 00 ff ff ff 00 ff 0c 20 0f 52
154+
10 d8 00 ff 23 72 f5 00 82 ed 04 cc 44 83 48 44
155+
30 b0 30 b0 f7 c4 d5 5c 00 be 29 ff f0 d0 ff ff
156+
];
157+
size = <67108864>;
158+
has-dpd;
159+
t-enter-dpd = <10000>;
160+
t-exit-dpd = <35000>;
161+
};
162+
};
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
#include "nrf54lm20pdk_nrf54lm20a-pinctrl.dtsi"
8+
9+
/ {
10+
leds {
11+
compatible = "gpio-leds";
12+
13+
led0: led_0 {
14+
gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
15+
label = "Green LED 0";
16+
};
17+
18+
led1: led_1 {
19+
gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
20+
label = "Green LED 1";
21+
};
22+
23+
led2: led_2 {
24+
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
25+
label = "Green LED 2";
26+
};
27+
28+
led3: led_3 {
29+
gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
30+
label = "Green LED 3";
31+
};
32+
};
33+
34+
pwmleds {
35+
compatible = "pwm-leds";
36+
37+
/*
38+
* PWM signal can be exposed on GPIO pin only within same domain.
39+
* There is only one domain which contains both PWM and GPIO:
40+
* PWM20/21/22 and GPIO Port P1/P3.
41+
* Only LEDs connected to P1/P3 can work with PWM, for example LED1.
42+
*/
43+
pwm_led1: pwm_led_1 {
44+
pwms = <&pwm20 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
45+
};
46+
};
47+
48+
buttons {
49+
compatible = "gpio-keys";
50+
51+
button0: button_0 {
52+
gpios = <&gpio1 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
53+
label = "Push button 0";
54+
zephyr,code = <INPUT_KEY_0>;
55+
};
56+
57+
button1: button_1 {
58+
gpios = <&gpio1 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
59+
label = "Push button 1";
60+
zephyr,code = <INPUT_KEY_1>;
61+
};
62+
63+
button2: button_2 {
64+
gpios = <&gpio1 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
65+
label = "Push button 2";
66+
zephyr,code = <INPUT_KEY_2>;
67+
};
68+
69+
button3: button_3 {
70+
gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
71+
label = "Push button 3";
72+
zephyr,code = <INPUT_KEY_3>;
73+
};
74+
};
75+
76+
aliases {
77+
led0 = &led0;
78+
led1 = &led1;
79+
led2 = &led2;
80+
led3 = &led3;
81+
pwm-led0 = &pwm_led1;
82+
sw0 = &button0;
83+
sw1 = &button1;
84+
sw2 = &button2;
85+
sw3 = &button3;
86+
watchdog0 = &wdt31;
87+
};
88+
};
89+
90+
&uart20 {
91+
current-speed = <115200>;
92+
pinctrl-0 = <&uart20_default>;
93+
pinctrl-1 = <&uart20_sleep>;
94+
pinctrl-names = "default", "sleep";
95+
};
96+
97+
&uart30 {
98+
current-speed = <115200>;
99+
pinctrl-0 = <&uart30_default>;
100+
pinctrl-1 = <&uart30_sleep>;
101+
pinctrl-names = "default", "sleep";
102+
};
103+
104+
&pwm20 {
105+
status = "okay";
106+
pinctrl-0 = <&pwm20_default>;
107+
pinctrl-1 = <&pwm20_sleep>;
108+
pinctrl-names = "default", "sleep";
109+
};
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor
3+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
*/
5+
6+
&pinctrl {
7+
/omit-if-no-ref/ uart20_default: uart20_default {
8+
group1 {
9+
psels = <NRF_PSEL(UART_TX, 1, 4)>;
10+
};
11+
12+
group2 {
13+
psels = <NRF_PSEL(UART_RX, 1, 5)>;
14+
bias-pull-up;
15+
};
16+
};
17+
18+
/omit-if-no-ref/ uart20_sleep: uart20_sleep {
19+
group1 {
20+
psels = <NRF_PSEL(UART_TX, 1, 4)>,
21+
<NRF_PSEL(UART_RX, 1, 5)>;
22+
low-power-enable;
23+
};
24+
};
25+
26+
/omit-if-no-ref/ pwm20_default: pwm20_default {
27+
group1 {
28+
psels = <NRF_PSEL(PWM_OUT0, 1, 7)>;
29+
};
30+
};
31+
32+
/omit-if-no-ref/ pwm20_sleep: pwm20_sleep {
33+
group1 {
34+
psels = <NRF_PSEL(PWM_OUT0, 1, 7)>;
35+
low-power-enable;
36+
};
37+
};
38+
39+
/omit-if-no-ref/ uart30_default: uart30_default {
40+
group1 {
41+
psels = <NRF_PSEL(UART_TX, 0, 0)>,
42+
<NRF_PSEL(UART_RTS, 0, 2)>;
43+
};
44+
45+
group2 {
46+
psels = <NRF_PSEL(UART_RX, 0, 1)>,
47+
<NRF_PSEL(UART_CTS, 0, 3)>;
48+
bias-pull-up;
49+
};
50+
};
51+
52+
/omit-if-no-ref/ uart30_sleep: uart30_sleep {
53+
group1 {
54+
psels = <NRF_PSEL(UART_TX, 0, 0)>,
55+
<NRF_PSEL(UART_RX, 0, 1)>,
56+
<NRF_PSEL(UART_RTS, 0, 2)>,
57+
<NRF_PSEL(UART_CTS, 0, 3)>;
58+
low-power-enable;
59+
};
60+
};
61+
62+
/omit-if-no-ref/ spi00_default: spi00_default {
63+
group1 {
64+
psels = <NRF_PSEL(SPIM_SCK, 2, 1)>,
65+
<NRF_PSEL(SPIM_MOSI, 2, 2)>,
66+
<NRF_PSEL(SPIM_MISO, 2, 4)>;
67+
};
68+
};
69+
70+
/omit-if-no-ref/ spi00_sleep: spi00_sleep {
71+
group1 {
72+
psels = <NRF_PSEL(SPIM_SCK, 2, 1)>,
73+
<NRF_PSEL(SPIM_MOSI, 2, 2)>,
74+
<NRF_PSEL(SPIM_MISO, 2, 4)>;
75+
low-power-enable;
76+
};
77+
};
78+
};

0 commit comments

Comments
 (0)