1/*
2 * Copyright (c) 2019 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7dcnf: dcnf@0 {
8	compatible = "nordic,nrf-dcnf";
9	reg = <0x0 0x1000>;
10	status = "okay";
11};
12
13oscillators: oscillator@4000 {
14	compatible = "nordic,nrf-oscillators";
15	reg = <0x4000 0x1000>;
16	status = "okay";
17};
18
19regulators: regulator@4000 {
20	compatible = "nordic,nrf-regulators";
21	reg = <0x4000 0x1000>;
22	status = "okay";
23};
24
25clock: clock@5000 {
26	compatible = "nordic,nrf-clock";
27	reg = <0x5000 0x1000>;
28	interrupts = <5 NRF_DEFAULT_IRQ_PRIORITY>;
29	status = "okay";
30};
31
32power: power@5000 {
33	compatible = "nordic,nrf-power";
34	reg = <0x5000 0x1000>;
35	ranges = <0x0 0x5000 0x1000>;
36	interrupts = <5 NRF_DEFAULT_IRQ_PRIORITY>;
37	status = "okay";
38	#address-cells = <1>;
39	#size-cells = <1>;
40
41	gpregret1: gpregret1@51c {
42		#address-cells = <1>;
43		#size-cells = <1>;
44		compatible = "nordic,nrf-gpregret";
45		reg = <0x51c 0x1>;
46		status = "okay";
47	};
48
49	gpregret2: gpregret2@520 {
50		#address-cells = <1>;
51		#size-cells = <1>;
52		compatible = "nordic,nrf-gpregret";
53		reg = <0x520 0x1>;
54		status = "okay";
55	};
56};
57
58reset: reset-controller@5000 {
59	compatible = "nordic,nrf-reset";
60	reg = <0x5000 0x1000>;
61	status = "okay";
62};
63
64ctrlap: ctrlap@6000 {
65	compatible = "nordic,nrf-ctrlapperi";
66	reg = <0x6000 0x1000>;
67	status = "okay";
68};
69
70i2c0: i2c@8000 {
71	/*
72	 * This i2c node can be either TWIM or TWIS, for the user to pick:
73	 * compatible = "nordic,nrf-twim" or
74	 *              "nordic,nrf-twis".
75	 */
76	compatible = "nordic,nrf-twim";
77	#address-cells = <1>;
78	#size-cells = <0>;
79	reg = <0x8000 0x1000>;
80	clock-frequency = <I2C_BITRATE_STANDARD>;
81	interrupts = <8 NRF_DEFAULT_IRQ_PRIORITY>;
82	easydma-maxcnt-bits = <16>;
83	status = "disabled";
84};
85
86spi0: spi@8000 {
87	/*
88	 * This spi node can be either SPIM or SPIS,
89	 * for the user to pick:
90	 * compatible = "nordic,nrf-spim" or
91	 *              "nordic,nrf-spis".
92	 */
93	compatible = "nordic,nrf-spim";
94	#address-cells = <1>;
95	#size-cells = <0>;
96	reg = <0x8000 0x1000>;
97	interrupts = <8 NRF_DEFAULT_IRQ_PRIORITY>;
98	max-frequency = <DT_FREQ_M(8)>;
99	easydma-maxcnt-bits = <16>;
100	status = "disabled";
101};
102
103uart0: uart@8000 {
104	compatible = "nordic,nrf-uarte";
105	reg = <0x8000 0x1000>;
106	interrupts = <8 NRF_DEFAULT_IRQ_PRIORITY>;
107	status = "disabled";
108};
109
110i2c1: i2c@9000 {
111	/*
112	 * This i2c node can be TWIM or TWIS,
113	 * for the user to pick:
114	 * compatible = "nordic,nrf-twim" or
115	 *              "nordic,nrf-twis".
116	 */
117	compatible = "nordic,nrf-twim";
118	#address-cells = <1>;
119	#size-cells = <0>;
120	reg = <0x9000 0x1000>;
121	clock-frequency = <I2C_BITRATE_STANDARD>;
122	interrupts = <9 NRF_DEFAULT_IRQ_PRIORITY>;
123	easydma-maxcnt-bits = <16>;
124	status = "disabled";
125};
126
127spi1: spi@9000 {
128	/*
129	 * This spi node can be either SPIM or SPIS,
130	 * for the user to pick:
131	 * compatible = "nordic,nrf-spim" or
132	 *              "nordic,nrf-spis".
133	 */
134	compatible = "nordic,nrf-spim";
135	#address-cells = <1>;
136	#size-cells = <0>;
137	reg = <0x9000 0x1000>;
138	interrupts = <9 NRF_DEFAULT_IRQ_PRIORITY>;
139	max-frequency = <DT_FREQ_M(8)>;
140	easydma-maxcnt-bits = <16>;
141	status = "disabled";
142};
143
144uart1: uart@9000 {
145	compatible = "nordic,nrf-uarte";
146	reg = <0x9000 0x1000>;
147	interrupts = <9 NRF_DEFAULT_IRQ_PRIORITY>;
148	status = "disabled";
149};
150
151spi4: spi@a000 {
152	compatible = "nordic,nrf-spim";
153	#address-cells = <1>;
154	#size-cells = <0>;
155	reg = <0xa000 0x1000>;
156	interrupts = <10 NRF_DEFAULT_IRQ_PRIORITY>;
157	max-frequency = <DT_FREQ_M(32)>;
158	easydma-maxcnt-bits = <16>;
159	rx-delay-supported;
160	rx-delay = <2>;
161	status = "disabled";
162};
163
164i2c2: i2c@b000 {
165	/*
166	 * This i2c node can be TWIM or TWIS,
167	 * for the user to pick:
168	 * compatible = "nordic,nrf-twim" or
169	 *              "nordic,nrf-twis".
170	 */
171	compatible = "nordic,nrf-twim";
172	#address-cells = <1>;
173	#size-cells = <0>;
174	reg = <0xb000 0x1000>;
175	clock-frequency = <I2C_BITRATE_STANDARD>;
176	interrupts = <11 NRF_DEFAULT_IRQ_PRIORITY>;
177	easydma-maxcnt-bits = <16>;
178	status = "disabled";
179};
180
181spi2: spi@b000 {
182	/*
183	 * This spi node can be either SPIM or SPIS,
184	 * for the user to pick:
185	 * compatible = "nordic,nrf-spim" or
186	 *              "nordic,nrf-spis".
187	 */
188	compatible = "nordic,nrf-spim";
189	#address-cells = <1>;
190	#size-cells = <0>;
191	reg = <0xb000 0x1000>;
192	interrupts = <11 NRF_DEFAULT_IRQ_PRIORITY>;
193	max-frequency = <DT_FREQ_M(8)>;
194	easydma-maxcnt-bits = <16>;
195	status = "disabled";
196};
197
198uart2: uart@b000 {
199	compatible = "nordic,nrf-uarte";
200	reg = <0xb000 0x1000>;
201	interrupts = <11 NRF_DEFAULT_IRQ_PRIORITY>;
202	status = "disabled";
203};
204
205i2c3: i2c@c000 {
206	/*
207	 * This i2c node can be TWIM or TWIS,
208	 * for the user to pick:
209	 * compatible = "nordic,nrf-twim" or
210	 *              "nordic,nrf-twis".
211	 */
212	compatible = "nordic,nrf-twim";
213	#address-cells = <1>;
214	#size-cells = <0>;
215	reg = <0xc000 0x1000>;
216	clock-frequency = <I2C_BITRATE_STANDARD>;
217	interrupts = <12 NRF_DEFAULT_IRQ_PRIORITY>;
218	easydma-maxcnt-bits = <16>;
219	status = "disabled";
220};
221
222spi3: spi@c000 {
223	/*
224	 * This spi node can be either SPIM or SPIS,
225	 * for the user to pick:
226	 * compatible = "nordic,nrf-spim" or
227	 *              "nordic,nrf-spis".
228	 */
229	compatible = "nordic,nrf-spim";
230	#address-cells = <1>;
231	#size-cells = <0>;
232	reg = <0xc000 0x1000>;
233	interrupts = <12 NRF_DEFAULT_IRQ_PRIORITY>;
234	max-frequency = <DT_FREQ_M(8)>;
235	easydma-maxcnt-bits = <16>;
236	status = "disabled";
237};
238
239uart3: uart@c000 {
240	compatible = "nordic,nrf-uarte";
241	reg = <0xc000 0x1000>;
242	interrupts = <12 NRF_DEFAULT_IRQ_PRIORITY>;
243	status = "disabled";
244};
245
246adc: adc@e000 {
247	compatible = "nordic,nrf-saadc";
248	reg = <0xe000 0x1000>;
249	interrupts = <14 NRF_DEFAULT_IRQ_PRIORITY>;
250	status = "disabled";
251	#io-channel-cells = <1>;
252};
253
254timer0: timer@f000 {
255	compatible = "nordic,nrf-timer";
256	status = "disabled";
257	reg = <0xf000 0x1000>;
258	cc-num = <6>;
259	max-bit-width = <32>;
260	interrupts = <15 NRF_DEFAULT_IRQ_PRIORITY>;
261	prescaler = <0>;
262};
263
264timer1: timer@10000 {
265	compatible = "nordic,nrf-timer";
266	status = "disabled";
267	reg = <0x10000 0x1000>;
268	cc-num = <6>;
269	max-bit-width = <32>;
270	interrupts = <16 NRF_DEFAULT_IRQ_PRIORITY>;
271	prescaler = <0>;
272};
273
274timer2: timer@11000 {
275	compatible = "nordic,nrf-timer";
276	status = "disabled";
277	reg = <0x11000 0x1000>;
278	cc-num = <6>;
279	max-bit-width = <32>;
280	interrupts = <17 NRF_DEFAULT_IRQ_PRIORITY>;
281	prescaler = <0>;
282};
283
284rtc0: rtc@14000 {
285	compatible = "nordic,nrf-rtc";
286	reg = <0x14000 0x1000>;
287	cc-num = <4>;
288	interrupts = <20 NRF_DEFAULT_IRQ_PRIORITY>;
289	status = "disabled";
290	clock-frequency = <32768>;
291	prescaler = <1>;
292};
293
294rtc1: rtc@15000 {
295	compatible = "nordic,nrf-rtc";
296	reg = <0x15000 0x1000>;
297	cc-num = <4>;
298	interrupts = <21 NRF_DEFAULT_IRQ_PRIORITY>;
299	status = "disabled";
300	clock-frequency = <32768>;
301	prescaler = <1>;
302};
303
304dppic: dppic@17000 {
305	compatible = "nordic,nrf-dppic";
306	reg = <0x17000 0x1000>;
307	status = "okay";
308};
309
310wdt: wdt0: watchdog@18000 {
311	compatible = "nordic,nrf-wdt";
312	reg = <0x18000 0x1000>;
313	interrupts = <24 NRF_DEFAULT_IRQ_PRIORITY>;
314	status = "okay";
315};
316
317wdt1: watchdog@19000 {
318	compatible = "nordic,nrf-wdt";
319	reg = <0x19000 0x1000>;
320	interrupts = <25 NRF_DEFAULT_IRQ_PRIORITY>;
321	status = "disabled";
322};
323
324comp: comparator@1a000 {
325	/*
326	 * This comparator node can be COMP or LPCOMP,
327	 * for the user to pick:
328	 * compatible = "nordic,nrf-comp" or
329	 *              "nordic,nrf-lpcomp".
330	 */
331	compatible = "nordic,nrf-comp";
332	reg = <0x1a000 0x1000>;
333	interrupts = <26 NRF_DEFAULT_IRQ_PRIORITY>;
334	status = "disabled";
335	#io-channel-cells = <1>;
336};
337
338egu0: egu@1b000 {
339	compatible = "nordic,nrf-egu";
340	reg = <0x1b000 0x1000>;
341	interrupts = <27 NRF_DEFAULT_IRQ_PRIORITY>;
342	status = "okay";
343};
344
345egu1: egu@1c000 {
346	compatible = "nordic,nrf-egu";
347	reg = <0x1c000 0x1000>;
348	interrupts = <28 NRF_DEFAULT_IRQ_PRIORITY>;
349	status = "okay";
350};
351
352egu2: egu@1d000 {
353	compatible = "nordic,nrf-egu";
354	reg = <0x1d000 0x1000>;
355	interrupts = <29 NRF_DEFAULT_IRQ_PRIORITY>;
356	status = "okay";
357};
358
359egu3: egu@1e000 {
360	compatible = "nordic,nrf-egu";
361	reg = <0x1e000 0x1000>;
362	interrupts = <30 NRF_DEFAULT_IRQ_PRIORITY>;
363	status = "okay";
364};
365
366egu4: egu@1f000 {
367	compatible = "nordic,nrf-egu";
368	reg = <0x1f000 0x1000>;
369	interrupts = <31 NRF_DEFAULT_IRQ_PRIORITY>;
370	status = "okay";
371};
372
373egu5: egu@20000 {
374	compatible = "nordic,nrf-egu";
375	reg = <0x20000 0x1000>;
376	interrupts = <32 NRF_DEFAULT_IRQ_PRIORITY>;
377	status = "okay";
378};
379
380pwm0: pwm@21000 {
381	compatible = "nordic,nrf-pwm";
382	reg = <0x21000 0x1000>;
383	interrupts = <33 NRF_DEFAULT_IRQ_PRIORITY>;
384	status = "disabled";
385	#pwm-cells = <3>;
386};
387
388pwm1: pwm@22000 {
389	compatible = "nordic,nrf-pwm";
390	reg = <0x22000 0x1000>;
391	interrupts = <34 NRF_DEFAULT_IRQ_PRIORITY>;
392	status = "disabled";
393	#pwm-cells = <3>;
394};
395
396pwm2: pwm@23000 {
397	compatible = "nordic,nrf-pwm";
398	reg = <0x23000 0x1000>;
399	interrupts = <35 NRF_DEFAULT_IRQ_PRIORITY>;
400	status = "disabled";
401	#pwm-cells = <3>;
402};
403
404pwm3: pwm@24000 {
405	compatible = "nordic,nrf-pwm";
406	reg = <0x24000 0x1000>;
407	interrupts = <36 NRF_DEFAULT_IRQ_PRIORITY>;
408	status = "disabled";
409	#pwm-cells = <3>;
410};
411
412pdm0: pdm@26000 {
413	compatible = "nordic,nrf-pdm";
414	reg = <0x26000 0x1000>;
415	interrupts = <38 NRF_DEFAULT_IRQ_PRIORITY>;
416	status = "disabled";
417};
418
419i2s0: i2s@28000 {
420	compatible = "nordic,nrf-i2s";
421	#address-cells = <1>;
422	#size-cells = <0>;
423	reg = <0x28000 0x1000>;
424	interrupts = <40 NRF_DEFAULT_IRQ_PRIORITY>;
425	status = "disabled";
426};
427
428mbox: ipc: mbox@2a000 {
429	compatible = "nordic,mbox-nrf-ipc", "nordic,nrf-ipc";
430	reg = <0x2a000 0x1000>;
431	tx-mask = <0x0000ffff>;
432	rx-mask = <0x0000ffff>;
433	interrupts = <42 NRF_DEFAULT_IRQ_PRIORITY>;
434	#mbox-cells = <1>;
435	status = "okay";
436};
437
438qspi: qspi@2b000 {
439	compatible = "nordic,nrf-qspi";
440	#address-cells = <1>;
441	#size-cells = <0>;
442	reg = <0x2b000 0x1000>, <0x10000000 0x10000000>;
443	reg-names = "qspi", "qspi_mm";
444	interrupts = <43 NRF_DEFAULT_IRQ_PRIORITY>;
445	status = "disabled";
446};
447
448nfct: nfct@2d000 {
449	compatible = "nordic,nrf-nfct";
450	reg = <0x2d000 0x1000>;
451	interrupts = <45 NRF_DEFAULT_IRQ_PRIORITY>;
452	status = "disabled";
453};
454
455mutex: mutex@30000 {
456	compatible = "nordic,nrf-mutex";
457	reg = <0x30000 0x1000>;
458	status = "okay";
459};
460
461qdec0: qdec@33000 {
462	compatible = "nordic,nrf-qdec";
463	reg = <0x33000 0x1000>;
464	interrupts = <51 NRF_DEFAULT_IRQ_PRIORITY>;
465	status = "disabled";
466};
467
468qdec1: qdec@34000 {
469	compatible = "nordic,nrf-qdec";
470	reg = <0x34000 0x1000>;
471	interrupts = <52 NRF_DEFAULT_IRQ_PRIORITY>;
472	status = "disabled";
473};
474
475usbd: usbd@36000 {
476	compatible = "nordic,nrf-usbd";
477	reg = <0x36000 0x1000>;
478	interrupts = <54 NRF_DEFAULT_IRQ_PRIORITY>;
479	num-bidir-endpoints = <1>;
480	num-in-endpoints = <7>;
481	num-out-endpoints = <7>;
482	num-isoin-endpoints = <1>;
483	num-isoout-endpoints = <1>;
484	status = "disabled";
485};
486
487usbreg: regulator@37000 {
488	compatible = "nordic,nrf-usbreg";
489	reg = <0x37000 0x1000>;
490	interrupts = <55 NRF_DEFAULT_IRQ_PRIORITY>;
491	status = "okay";
492};
493
494flash_controller: flash-controller@39000 {
495	compatible = "nordic,nrf53-flash-controller";
496	reg = <0x39000 0x1000>;
497	partial-erase;
498
499	#address-cells = <1>;
500	#size-cells = <1>;
501
502
503	flash0: flash@0 {
504		compatible = "soc-nv-flash";
505		erase-block-size = <4096>;
506		write-block-size = <4>;
507	};
508};
509
510kmu: kmu@39000 {
511	compatible = "nordic,nrf-kmu";
512	reg = <0x39000 0x1000>;
513	interrupts = <57 NRF_DEFAULT_IRQ_PRIORITY>;
514	status = "okay";
515};
516
517vmc: vmc@81000 {
518	compatible = "nordic,nrf-vmc";
519	reg = <0x81000 0x1000>;
520	status = "okay";
521};
522
523gpio0: gpio@842500 {
524	compatible = "nordic,nrf-gpio";
525	gpio-controller;
526	reg = <0x842500 0x300>;
527	#gpio-cells = <2>;
528	status = "disabled";
529	port = <0>;
530	gpiote-instance = <&gpiote>;
531};
532
533gpio1: gpio@842800 {
534	compatible = "nordic,nrf-gpio";
535	gpio-controller;
536	reg = <0x842800 0x300>;
537	#gpio-cells = <2>;
538	ngpios = <16>;
539	status = "disabled";
540	port = <1>;
541	gpiote-instance = <&gpiote>;
542};
543
544ieee802154: ieee802154 {
545	compatible = "nordic,nrf-ieee802154";
546	status = "disabled";
547};
548