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