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