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	zephyr,pm-device-runtime-auto;
291};
292
293timer0: timer@f000 {
294	compatible = "nordic,nrf-timer";
295	status = "disabled";
296	reg = <0xf000 0x1000>;
297	cc-num = <6>;
298	max-bit-width = <32>;
299	interrupts = <15 NRF_DEFAULT_IRQ_PRIORITY>;
300	prescaler = <0>;
301};
302
303timer1: timer@10000 {
304	compatible = "nordic,nrf-timer";
305	status = "disabled";
306	reg = <0x10000 0x1000>;
307	cc-num = <6>;
308	max-bit-width = <32>;
309	interrupts = <16 NRF_DEFAULT_IRQ_PRIORITY>;
310	prescaler = <0>;
311};
312
313timer2: timer@11000 {
314	compatible = "nordic,nrf-timer";
315	status = "disabled";
316	reg = <0x11000 0x1000>;
317	cc-num = <6>;
318	max-bit-width = <32>;
319	interrupts = <17 NRF_DEFAULT_IRQ_PRIORITY>;
320	prescaler = <0>;
321};
322
323rtc0: rtc@14000 {
324	compatible = "nordic,nrf-rtc";
325	reg = <0x14000 0x1000>;
326	cc-num = <4>;
327	interrupts = <20 NRF_DEFAULT_IRQ_PRIORITY>;
328	status = "disabled";
329	clock-frequency = <32768>;
330	prescaler = <1>;
331};
332
333rtc1: rtc@15000 {
334	compatible = "nordic,nrf-rtc";
335	reg = <0x15000 0x1000>;
336	cc-num = <4>;
337	interrupts = <21 NRF_DEFAULT_IRQ_PRIORITY>;
338	status = "disabled";
339	clock-frequency = <32768>;
340	prescaler = <1>;
341};
342
343dppic0: dppic: dppic@17000 {
344	compatible = "nordic,nrf-dppic";
345	reg = <0x17000 0x1000>;
346	status = "okay";
347};
348
349wdt: wdt0: watchdog@18000 {
350	compatible = "nordic,nrf-wdt";
351	reg = <0x18000 0x1000>;
352	interrupts = <24 NRF_DEFAULT_IRQ_PRIORITY>;
353	status = "okay";
354};
355
356wdt1: watchdog@19000 {
357	compatible = "nordic,nrf-wdt";
358	reg = <0x19000 0x1000>;
359	interrupts = <25 NRF_DEFAULT_IRQ_PRIORITY>;
360	status = "disabled";
361};
362
363comp: comparator@1a000 {
364	/*
365	 * Use compatible "nordic,nrf-comp" to configure as COMP
366	 * Use compatible "nordic,nrf-lpcomp" to configure as LPCOMP
367	 */
368	compatible = "nordic,nrf-comp";
369	reg = <0x1a000 0x1000>;
370	interrupts = <26 NRF_DEFAULT_IRQ_PRIORITY>;
371	status = "disabled";
372};
373
374egu0: egu@1b000 {
375	compatible = "nordic,nrf-egu";
376	reg = <0x1b000 0x1000>;
377	interrupts = <27 NRF_DEFAULT_IRQ_PRIORITY>;
378	status = "okay";
379};
380
381egu1: egu@1c000 {
382	compatible = "nordic,nrf-egu";
383	reg = <0x1c000 0x1000>;
384	interrupts = <28 NRF_DEFAULT_IRQ_PRIORITY>;
385	status = "okay";
386};
387
388egu2: egu@1d000 {
389	compatible = "nordic,nrf-egu";
390	reg = <0x1d000 0x1000>;
391	interrupts = <29 NRF_DEFAULT_IRQ_PRIORITY>;
392	status = "okay";
393};
394
395egu3: egu@1e000 {
396	compatible = "nordic,nrf-egu";
397	reg = <0x1e000 0x1000>;
398	interrupts = <30 NRF_DEFAULT_IRQ_PRIORITY>;
399	status = "okay";
400};
401
402egu4: egu@1f000 {
403	compatible = "nordic,nrf-egu";
404	reg = <0x1f000 0x1000>;
405	interrupts = <31 NRF_DEFAULT_IRQ_PRIORITY>;
406	status = "okay";
407};
408
409egu5: egu@20000 {
410	compatible = "nordic,nrf-egu";
411	reg = <0x20000 0x1000>;
412	interrupts = <32 NRF_DEFAULT_IRQ_PRIORITY>;
413	status = "okay";
414};
415
416pwm0: pwm@21000 {
417	compatible = "nordic,nrf-pwm";
418	reg = <0x21000 0x1000>;
419	interrupts = <33 NRF_DEFAULT_IRQ_PRIORITY>;
420	status = "disabled";
421	#pwm-cells = <3>;
422};
423
424pwm1: pwm@22000 {
425	compatible = "nordic,nrf-pwm";
426	reg = <0x22000 0x1000>;
427	interrupts = <34 NRF_DEFAULT_IRQ_PRIORITY>;
428	status = "disabled";
429	#pwm-cells = <3>;
430};
431
432pwm2: pwm@23000 {
433	compatible = "nordic,nrf-pwm";
434	reg = <0x23000 0x1000>;
435	interrupts = <35 NRF_DEFAULT_IRQ_PRIORITY>;
436	status = "disabled";
437	#pwm-cells = <3>;
438};
439
440pwm3: pwm@24000 {
441	compatible = "nordic,nrf-pwm";
442	reg = <0x24000 0x1000>;
443	interrupts = <36 NRF_DEFAULT_IRQ_PRIORITY>;
444	status = "disabled";
445	#pwm-cells = <3>;
446};
447
448pdm0: pdm@26000 {
449	compatible = "nordic,nrf-pdm";
450	reg = <0x26000 0x1000>;
451	interrupts = <38 NRF_DEFAULT_IRQ_PRIORITY>;
452	status = "disabled";
453};
454
455i2s0: i2s@28000 {
456	compatible = "nordic,nrf-i2s";
457	#address-cells = <1>;
458	#size-cells = <0>;
459	reg = <0x28000 0x1000>;
460	interrupts = <40 NRF_DEFAULT_IRQ_PRIORITY>;
461	status = "disabled";
462};
463
464mbox: ipc: mbox@2a000 {
465	compatible = "nordic,mbox-nrf-ipc", "nordic,nrf-ipc";
466	reg = <0x2a000 0x1000>;
467	tx-mask = <0x0000ffff>;
468	rx-mask = <0x0000ffff>;
469	interrupts = <42 NRF_DEFAULT_IRQ_PRIORITY>;
470	#mbox-cells = <1>;
471	status = "okay";
472};
473
474qspi: qspi@2b000 {
475	compatible = "nordic,nrf-qspi";
476	#address-cells = <1>;
477	#size-cells = <0>;
478	reg = <0x2b000 0x1000>, <0x10000000 0x10000000>;
479	reg-names = "qspi", "qspi_mm";
480	interrupts = <43 NRF_DEFAULT_IRQ_PRIORITY>;
481	status = "disabled";
482};
483
484nfct: nfct@2d000 {
485	compatible = "nordic,nrf-nfct";
486	reg = <0x2d000 0x1000>;
487	interrupts = <45 NRF_DEFAULT_IRQ_PRIORITY>;
488	status = "disabled";
489};
490
491mutex: mutex@30000 {
492	compatible = "nordic,nrf-mutex";
493	reg = <0x30000 0x1000>;
494	status = "okay";
495};
496
497qdec0: qdec@33000 {
498	compatible = "nordic,nrf-qdec";
499	reg = <0x33000 0x1000>;
500	interrupts = <51 NRF_DEFAULT_IRQ_PRIORITY>;
501	status = "disabled";
502};
503
504qdec1: qdec@34000 {
505	compatible = "nordic,nrf-qdec";
506	reg = <0x34000 0x1000>;
507	interrupts = <52 NRF_DEFAULT_IRQ_PRIORITY>;
508	status = "disabled";
509};
510
511usbd: usbd@36000 {
512	compatible = "nordic,nrf-usbd";
513	reg = <0x36000 0x1000>;
514	interrupts = <54 NRF_DEFAULT_IRQ_PRIORITY>;
515	num-bidir-endpoints = <1>;
516	num-in-endpoints = <7>;
517	num-out-endpoints = <7>;
518	num-isoin-endpoints = <1>;
519	num-isoout-endpoints = <1>;
520	status = "disabled";
521};
522
523usbreg: regulator@37000 {
524	compatible = "nordic,nrf-usbreg";
525	reg = <0x37000 0x1000>;
526	interrupts = <55 NRF_DEFAULT_IRQ_PRIORITY>;
527	status = "okay";
528};
529
530flash_controller: flash-controller@39000 {
531	compatible = "nordic,nrf53-flash-controller";
532	reg = <0x39000 0x1000>;
533	partial-erase;
534
535	#address-cells = <1>;
536	#size-cells = <1>;
537
538
539	flash0: flash@0 {
540		compatible = "soc-nv-flash";
541		erase-block-size = <4096>;
542		write-block-size = <4>;
543	};
544};
545
546kmu: kmu@39000 {
547	compatible = "nordic,nrf-kmu";
548	reg = <0x39000 0x1000>;
549	interrupts = <57 NRF_DEFAULT_IRQ_PRIORITY>;
550	status = "okay";
551};
552
553vmc: vmc@81000 {
554	compatible = "nordic,nrf-vmc";
555	reg = <0x81000 0x1000>;
556	status = "okay";
557};
558
559gpio0: gpio@842500 {
560	compatible = "nordic,nrf-gpio";
561	gpio-controller;
562	reg = <0x842500 0x300>;
563	#gpio-cells = <2>;
564	status = "disabled";
565	port = <0>;
566	gpiote-instance = <&gpiote>;
567};
568
569gpio1: gpio@842800 {
570	compatible = "nordic,nrf-gpio";
571	gpio-controller;
572	reg = <0x842800 0x300>;
573	#gpio-cells = <2>;
574	ngpios = <16>;
575	status = "disabled";
576	port = <1>;
577	gpiote-instance = <&gpiote>;
578};
579
580ieee802154: ieee802154 {
581	compatible = "nordic,nrf-ieee802154";
582	status = "disabled";
583};
584