xref: /linux/arch/arm64/boot/dts/xilinx/versal-net.dtsi (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * dts file for Xilinx Versal NET
4 *
5 * (C) Copyright 2022, Xilinx, Inc.
6 * (C) Copyright 2022 - 2025, Advanced Micro Devices, Inc.
7 *
8 * Michal Simek <michal.simek@amd.com>
9 */
10
11/dts-v1/;
12
13/ {
14	compatible = "xlnx,versal-net";
15	model = "Xilinx Versal NET";
16	#address-cells = <2>;
17	#size-cells = <2>;
18	interrupt-parent = <&gic>;
19
20	options {
21		u-boot {
22			compatible = "u-boot,config";
23			bootscr-address = /bits/ 64 <0x20000000>;
24		};
25	};
26
27	cpus {
28		#address-cells = <1>;
29		#size-cells = <0>;
30		cpu-map {
31			cluster0 {
32				core0 {
33					cpu = <&cpu0>;
34				};
35				core1 {
36					cpu = <&cpu100>;
37				};
38				core2 {
39					cpu = <&cpu200>;
40				};
41				core3 {
42					cpu = <&cpu300>;
43				};
44			};
45
46			cluster1 {
47				core0 {
48					cpu = <&cpu10000>;
49				};
50
51				core1 {
52					cpu = <&cpu10100>;
53				};
54
55				core2 {
56					cpu = <&cpu10200>;
57				};
58
59				core3 {
60					cpu = <&cpu10300>;
61				};
62			};
63			cluster2 {
64				core0 {
65					cpu = <&cpu20000>;
66				};
67
68				core1 {
69					cpu = <&cpu20100>;
70				};
71
72				core2 {
73					cpu = <&cpu20200>;
74				};
75
76				core3 {
77					cpu = <&cpu20300>;
78				};
79			};
80			cluster3 {
81				core0 {
82					cpu = <&cpu30000>;
83				};
84
85				core1 {
86					cpu = <&cpu30100>;
87				};
88
89				core2 {
90					cpu = <&cpu30200>;
91				};
92
93				core3 {
94					cpu = <&cpu30300>;
95				};
96			};
97
98		};
99
100		cpu0: cpu@0 {
101			compatible = "arm,cortex-a78";
102			device_type = "cpu";
103			enable-method = "psci";
104			reg = <0>;
105			operating-points-v2 = <&cpu_opp_table>;
106			cpu-idle-states = <&CPU_SLEEP_0>;
107			d-cache-size = <0x10000>; /* 64kB */
108			d-cache-line-size = <64>;
109			/* 4 ways set associativity */
110			/* cache_size / (line_size / associativity) */
111			d-cache-sets = <256>;
112			i-cache-size = <0x10000>; /* 64kB */
113			i-cache-line-size = <64>;
114			/* 4 ways set associativity */
115			/* cache_size / (line_size / associativity) */
116			i-cache-sets = <256>;
117			next-level-cache = <&l2_00>;
118			l2_00: l2-cache {
119				compatible = "cache";
120				cache-level = <2>;
121				cache-size = <0x80000>; /* 512kB */
122				cache-line-size = <64>;
123				/* 8 ways set associativity */
124				/* cache_size / (line_size/associativity) */
125				cache-sets = <1024>;
126				cache-unified;
127				next-level-cache = <&l3_0>;
128			};
129		};
130		cpu100: cpu@100 {
131			compatible = "arm,cortex-a78";
132			device_type = "cpu";
133			enable-method = "psci";
134			reg = <0x100>;
135			operating-points-v2 = <&cpu_opp_table>;
136			cpu-idle-states = <&CPU_SLEEP_0>;
137			d-cache-size = <0x10000>; /* 64kB */
138			d-cache-line-size = <64>;
139			/* 4 ways set associativity */
140			/* cache_size / (line_size / associativity) */
141			d-cache-sets = <256>;
142			i-cache-size = <0x10000>; /* 64kB */
143			i-cache-line-size = <64>;
144			/* 4 ways set associativity */
145			/* cache_size / (line_size / associativity) */
146			i-cache-sets = <256>;
147			next-level-cache = <&l2_01>;
148			l2_01: l2-cache {
149				compatible = "cache";
150				cache-level = <2>;
151				cache-size = <0x80000>; /* 512kB */
152				cache-line-size = <64>;
153				/* 8 ways set associativity */
154				/* cache_size / (line_size/associativity) */
155				cache-sets = <1024>;
156				cache-unified;
157				next-level-cache = <&l3_0>;
158			};
159		};
160		cpu200: cpu@200 {
161			compatible = "arm,cortex-a78";
162			device_type = "cpu";
163			enable-method = "psci";
164			reg = <0x200>;
165			operating-points-v2 = <&cpu_opp_table>;
166			cpu-idle-states = <&CPU_SLEEP_0>;
167			d-cache-size = <0x10000>; /* 64kB */
168			d-cache-line-size = <64>;
169			/* 4 ways set associativity */
170			/* cache_size / (line_size / associativity) */
171			d-cache-sets = <256>;
172			i-cache-size = <0x10000>; /* 64kB */
173			i-cache-line-size = <64>;
174			/* 4 ways set associativity */
175			/* cache_size / (line_size / associativity) */
176			i-cache-sets = <256>;
177			next-level-cache = <&l2_02>;
178			l2_02: l2-cache {
179				compatible = "cache";
180				cache-level = <2>;
181				cache-size = <0x80000>; /* 512kB */
182				cache-line-size = <64>;
183				/* 8 ways set associativity */
184				/* cache_size / (line_size/associativity) */
185				cache-sets = <1024>;
186				cache-unified;
187				next-level-cache = <&l3_0>;
188			};
189		};
190		cpu300: cpu@300 {
191			compatible = "arm,cortex-a78";
192			device_type = "cpu";
193			enable-method = "psci";
194			reg = <0x300>;
195			operating-points-v2 = <&cpu_opp_table>;
196			cpu-idle-states = <&CPU_SLEEP_0>;
197			d-cache-size = <0x10000>; /* 64kB */
198			d-cache-line-size = <64>;
199			/* 4 ways set associativity */
200			/* cache_size / (line_size / associativity) */
201			d-cache-sets = <256>;
202			i-cache-size = <0x10000>; /* 64kB */
203			i-cache-line-size = <64>;
204			/* 4 ways set associativity */
205			/* cache_size / (line_size / associativity) */
206			i-cache-sets = <256>;
207			next-level-cache = <&l2_03>;
208			l2_03: l2-cache {
209				compatible = "cache";
210				cache-level = <2>;
211				cache-size = <0x80000>; /* 512kB */
212				cache-line-size = <64>;
213				/* 8 ways set associativity */
214				/* cache_size / (line_size/associativity) */
215				cache-sets = <1024>;
216				cache-unified;
217				next-level-cache = <&l3_0>;
218			};
219		};
220		cpu10000: cpu@10000 {
221			compatible = "arm,cortex-a78";
222			device_type = "cpu";
223			enable-method = "psci";
224			reg = <0x10000>;
225			operating-points-v2 = <&cpu_opp_table>;
226			cpu-idle-states = <&CPU_SLEEP_0>;
227			d-cache-size = <0x10000>; /* 64kB */
228			d-cache-line-size = <64>;
229			/* 4 ways set associativity */
230			/* cache_size / (line_size / associativity) */
231			d-cache-sets = <256>;
232			i-cache-size = <0x10000>; /* 64kB */
233			i-cache-line-size = <64>;
234			/* 4 ways set associativity */
235			/* cache_size / (line_size / associativity) */
236			i-cache-sets = <256>;
237			next-level-cache = <&l2_10>;
238			l2_10: l2-cache {
239				compatible = "cache";
240				cache-level = <2>;
241				cache-size = <0x80000>; /* 512kB */
242				cache-line-size = <64>;
243				/* 8 ways set associativity */
244				/* cache_size / (line_size/associativity) */
245				cache-sets = <1024>;
246				cache-unified;
247				next-level-cache = <&l3_1>;
248			};
249		};
250		cpu10100: cpu@10100 {
251			compatible = "arm,cortex-a78";
252			device_type = "cpu";
253			enable-method = "psci";
254			reg = <0x10100>;
255			operating-points-v2 = <&cpu_opp_table>;
256			cpu-idle-states = <&CPU_SLEEP_0>;
257			d-cache-size = <0x10000>; /* 64kB */
258			d-cache-line-size = <64>;
259			/* 4 ways set associativity */
260			/* cache_size / (line_size / associativity) */
261			d-cache-sets = <256>;
262			i-cache-size = <0x10000>; /* 64kB */
263			i-cache-line-size = <64>;
264			/* 4 ways set associativity */
265			/* cache_size / (line_size / associativity) */
266			i-cache-sets = <256>;
267			next-level-cache = <&l2_11>;
268			l2_11: l2-cache {
269				compatible = "cache";
270				cache-level = <2>;
271				cache-size = <0x80000>; /* 512kB */
272				cache-line-size = <64>;
273				/* 8 ways set associativity */
274				/* cache_size / (line_size/associativity) */
275				cache-sets = <1024>;
276				cache-unified;
277				next-level-cache = <&l3_1>;
278			};
279		};
280		cpu10200: cpu@10200 {
281			compatible = "arm,cortex-a78";
282			device_type = "cpu";
283			enable-method = "psci";
284			reg = <0x10200>;
285			operating-points-v2 = <&cpu_opp_table>;
286			cpu-idle-states = <&CPU_SLEEP_0>;
287			d-cache-size = <0x10000>; /* 64kB */
288			d-cache-line-size = <64>;
289			/* 4 ways set associativity */
290			/* cache_size / (line_size / associativity) */
291			d-cache-sets = <256>;
292			i-cache-size = <0x10000>; /* 64kB */
293			i-cache-line-size = <64>;
294			/* 4 ways set associativity */
295			/* cache_size / (line_size / associativity) */
296			i-cache-sets = <256>;
297			next-level-cache = <&l2_12>;
298			l2_12: l2-cache {
299				compatible = "cache";
300				cache-level = <2>;
301				cache-size = <0x80000>; /* 512kB */
302				cache-line-size = <64>;
303				/* 8 ways set associativity */
304				/* cache_size / (line_size/associativity) */
305				cache-sets = <1024>;
306				cache-unified;
307				next-level-cache = <&l3_1>;
308			};
309		};
310		cpu10300: cpu@10300 {
311			compatible = "arm,cortex-a78";
312			device_type = "cpu";
313			enable-method = "psci";
314			reg = <0x10300>;
315			operating-points-v2 = <&cpu_opp_table>;
316			cpu-idle-states = <&CPU_SLEEP_0>;
317			d-cache-size = <0x10000>; /* 64kB */
318			d-cache-line-size = <64>;
319			/* 4 ways set associativity */
320			/* cache_size / (line_size / associativity) */
321			d-cache-sets = <256>;
322			i-cache-size = <0x10000>; /* 64kB */
323			i-cache-line-size = <64>;
324			/* 4 ways set associativity */
325			/* cache_size / (line_size / associativity) */
326			i-cache-sets = <256>;
327			next-level-cache = <&l2_13>;
328			l2_13: l2-cache {
329				compatible = "cache";
330				cache-level = <2>;
331				cache-size = <0x80000>; /* 512kB */
332				cache-line-size = <64>;
333				/* 8 ways set associativity */
334				/* cache_size / (line_size/associativity) */
335				cache-sets = <1024>;
336				cache-unified;
337				next-level-cache = <&l3_1>;
338			};
339		};
340		cpu20000: cpu@20000 {
341			compatible = "arm,cortex-a78";
342			device_type = "cpu";
343			enable-method = "psci";
344			reg = <0x20000>;
345			operating-points-v2 = <&cpu_opp_table>;
346			cpu-idle-states = <&CPU_SLEEP_0>;
347			d-cache-size = <0x10000>; /* 64kB */
348			d-cache-line-size = <64>;
349			/* 4 ways set associativity */
350			/* cache_size / (line_size / associativity) */
351			d-cache-sets = <256>;
352			i-cache-size = <0x10000>; /* 64kB */
353			i-cache-line-size = <64>;
354			/* 4 ways set associativity */
355			/* cache_size / (line_size / associativity) */
356			i-cache-sets = <256>;
357			next-level-cache = <&l2_20>;
358			l2_20: l2-cache {
359				compatible = "cache";
360				cache-level = <2>;
361				cache-size = <0x80000>; /* 512kB */
362				cache-line-size = <64>;
363				/* 8 ways set associativity */
364				/* cache_size / (line_size/associativity) */
365				cache-sets = <1024>;
366				cache-unified;
367				next-level-cache = <&l3_2>;
368			};
369		};
370		cpu20100: cpu@20100 {
371			compatible = "arm,cortex-a78";
372			device_type = "cpu";
373			enable-method = "psci";
374			reg = <0x20100>;
375			operating-points-v2 = <&cpu_opp_table>;
376			cpu-idle-states = <&CPU_SLEEP_0>;
377			d-cache-size = <0x10000>; /* 64kB */
378			d-cache-line-size = <64>;
379			/* 4 ways set associativity */
380			/* cache_size / (line_size / associativity) */
381			d-cache-sets = <256>;
382			i-cache-size = <0x10000>; /* 64kB */
383			i-cache-line-size = <64>;
384			/* 4 ways set associativity */
385			/* cache_size / (line_size / associativity) */
386			i-cache-sets = <256>;
387			next-level-cache = <&l2_21>;
388			l2_21: l2-cache {
389				compatible = "cache";
390				cache-level = <2>;
391				cache-size = <0x80000>; /* 512kB */
392				cache-line-size = <64>;
393				/* 8 ways set associativity */
394				/* cache_size / (line_size/associativity) */
395				cache-sets = <1024>;
396				cache-unified;
397				next-level-cache = <&l3_2>;
398			};
399		};
400		cpu20200: cpu@20200 {
401			compatible = "arm,cortex-a78";
402			device_type = "cpu";
403			enable-method = "psci";
404			reg = <0x20200>;
405			operating-points-v2 = <&cpu_opp_table>;
406			cpu-idle-states = <&CPU_SLEEP_0>;
407			d-cache-size = <0x10000>; /* 64kB */
408			d-cache-line-size = <64>;
409			/* 4 ways set associativity */
410			/* cache_size / (line_size / associativity) */
411			d-cache-sets = <256>;
412			i-cache-size = <0x10000>; /* 64kB */
413			i-cache-line-size = <64>;
414			/* 4 ways set associativity */
415			/* cache_size / (line_size / associativity) */
416			i-cache-sets = <256>;
417			next-level-cache = <&l2_22>;
418			l2_22: l2-cache {
419				compatible = "cache";
420				cache-level = <2>;
421				cache-size = <0x80000>; /* 512kB */
422				cache-line-size = <64>;
423				/* 8 ways set associativity */
424				/* cache_size / (line_size/associativity) */
425				cache-sets = <1024>;
426				cache-unified;
427				next-level-cache = <&l3_2>;
428			};
429		};
430		cpu20300: cpu@20300 {
431			compatible = "arm,cortex-a78";
432			device_type = "cpu";
433			enable-method = "psci";
434			reg = <0x20300>;
435			operating-points-v2 = <&cpu_opp_table>;
436			cpu-idle-states = <&CPU_SLEEP_0>;
437			d-cache-size = <0x10000>; /* 64kB */
438			d-cache-line-size = <64>;
439			/* 4 ways set associativity */
440			/* cache_size / (line_size / associativity) */
441			d-cache-sets = <256>;
442			i-cache-size = <0x10000>; /* 64kB */
443			i-cache-line-size = <64>;
444			/* 4 ways set associativity */
445			/* cache_size / (line_size / associativity) */
446			i-cache-sets = <256>;
447			next-level-cache = <&l2_23>;
448			l2_23: l2-cache {
449				compatible = "cache";
450				cache-level = <2>;
451				cache-size = <0x80000>; /* 512kB */
452				cache-line-size = <64>;
453				/* 8 ways set associativity */
454				/* cache_size / (line_size/associativity) */
455				cache-sets = <1024>;
456				cache-unified;
457				next-level-cache = <&l3_2>;
458			};
459		};
460		cpu30000: cpu@30000 {
461			compatible = "arm,cortex-a78";
462			device_type = "cpu";
463			enable-method = "psci";
464			reg = <0x30000>;
465			operating-points-v2 = <&cpu_opp_table>;
466			cpu-idle-states = <&CPU_SLEEP_0>;
467			d-cache-size = <0x10000>; /* 64kB */
468			d-cache-line-size = <64>;
469			/* 4 ways set associativity */
470			/* cache_size / (line_size / associativity) */
471			d-cache-sets = <256>;
472			i-cache-size = <0x10000>; /* 64kB */
473			i-cache-line-size = <64>;
474			/* 4 ways set associativity */
475			/* cache_size / (line_size / associativity) */
476			i-cache-sets = <256>;
477			next-level-cache = <&l2_30>;
478			l2_30: l2-cache {
479				compatible = "cache";
480				cache-level = <2>;
481				cache-size = <0x80000>; /* 512kB */
482				cache-line-size = <64>;
483				/* 8 ways set associativity */
484				/* cache_size / (line_size/associativity) */
485				cache-sets = <1024>;
486				cache-unified;
487				next-level-cache = <&l3_3>;
488			};
489		};
490		cpu30100: cpu@30100 {
491			compatible = "arm,cortex-a78";
492			device_type = "cpu";
493			enable-method = "psci";
494			reg = <0x30100>;
495			operating-points-v2 = <&cpu_opp_table>;
496			cpu-idle-states = <&CPU_SLEEP_0>;
497			d-cache-size = <0x10000>; /* 64kB */
498			d-cache-line-size = <64>;
499			/* 4 ways set associativity */
500			/* cache_size / (line_size / associativity) */
501			d-cache-sets = <256>;
502			i-cache-size = <0x10000>; /* 64kB */
503			i-cache-line-size = <64>;
504			/* 4 ways set associativity */
505			/* cache_size / (line_size / associativity) */
506			i-cache-sets = <256>;
507			next-level-cache = <&l2_31>;
508			l2_31: l2-cache {
509				compatible = "cache";
510				cache-level = <2>;
511				cache-size = <0x80000>; /* 512kB */
512				cache-line-size = <64>;
513				/* 8 ways set associativity */
514				/* cache_size / (line_size/associativity) */
515				cache-sets = <1024>;
516				cache-unified;
517				next-level-cache = <&l3_3>;
518			};
519		};
520		cpu30200: cpu@30200 {
521			compatible = "arm,cortex-a78";
522			device_type = "cpu";
523			enable-method = "psci";
524			reg = <0x30200>;
525			operating-points-v2 = <&cpu_opp_table>;
526			cpu-idle-states = <&CPU_SLEEP_0>;
527			d-cache-size = <0x10000>; /* 64kB */
528			d-cache-line-size = <64>;
529			/* 4 ways set associativity */
530			/* cache_size / (line_size / associativity) */
531			d-cache-sets = <256>;
532			i-cache-size = <0x10000>; /* 64kB */
533			i-cache-line-size = <64>;
534			/* 4 ways set associativity */
535			/* cache_size / (line_size / associativity) */
536			i-cache-sets = <256>;
537			next-level-cache = <&l2_32>;
538			l2_32: l2-cache {
539				compatible = "cache";
540				cache-level = <2>;
541				cache-size = <0x80000>; /* 512kB */
542				cache-line-size = <64>;
543				/* 8 ways set associativity */
544				/* cache_size / (line_size/associativity) */
545				cache-sets = <1024>;
546				cache-unified;
547				next-level-cache = <&l3_3>;
548			};
549		};
550		cpu30300: cpu@30300 {
551			compatible = "arm,cortex-a78";
552			device_type = "cpu";
553			enable-method = "psci";
554			reg = <0x30300>;
555			operating-points-v2 = <&cpu_opp_table>;
556			cpu-idle-states = <&CPU_SLEEP_0>;
557			d-cache-size = <0x10000>; /* 64kB */
558			d-cache-line-size = <64>;
559			/* 4 ways set associativity */
560			/* cache_size / (line_size / associativity) */
561			d-cache-sets = <256>;
562			i-cache-size = <0x10000>; /* 64kB */
563			i-cache-line-size = <64>;
564			/* 4 ways set associativity */
565			/* cache_size / (line_size / associativity) */
566			i-cache-sets = <256>;
567			next-level-cache = <&l2_33>;
568			l2_33: l2-cache {
569				compatible = "cache";
570				cache-level = <2>;
571				cache-size = <0x80000>; /* 512kB */
572				cache-line-size = <64>;
573				/* 8 ways set associativity */
574				/* cache_size / (line_size/associativity) */
575				cache-sets = <1024>;
576				cache-unified;
577				next-level-cache = <&l3_3>;
578			};
579		};
580
581		l3_0: l3-0-cache { /* cluster private */
582			compatible = "cache";
583			cache-level = <3>;
584			cache-size = <0x200000>; /* 2MB */
585			cache-line-size = <64>;
586			/* 16 ways set associativity */
587			/* cache_size / (line_size/associativity) */
588			cache-sets = <2048>;
589			cache-unified;
590			next-level-cache = <&llc>;
591		};
592
593		l3_1: l3-1-cache { /* cluster private */
594			compatible = "cache";
595			cache-level = <3>;
596			cache-size = <0x200000>; /* 2MB */
597			cache-line-size = <64>;
598			/* 16 ways set associativity */
599			/* cache_size / (line_size/associativity) */
600			cache-sets = <2048>;
601			cache-unified;
602			next-level-cache = <&llc>;
603		};
604
605		l3_2: l3-2-cache { /* cluster private */
606			compatible = "cache";
607			cache-level = <3>;
608			cache-size = <0x200000>; /* 2MB */
609			cache-line-size = <64>;
610			/* 16 ways set associativity */
611			/* cache_size / (line_size/associativity) */
612			cache-sets = <2048>;
613			cache-unified;
614			next-level-cache = <&llc>;
615		};
616
617		l3_3: l3-3-cache { /* cluster private */
618			compatible = "cache";
619			cache-level = <3>;
620			cache-size = <0x200000>; /* 2MB */
621			cache-line-size = <64>;
622			/* 16 ways set associativity */
623			/* cache_size / (line_size/associativity) */
624			cache-sets = <2048>;
625			cache-unified;
626			next-level-cache = <&llc>;
627		};
628
629		llc: l4-cache { /* LLC inside CMN */
630			compatible = "cache";
631			cache-level = <4>;
632			cache-size = <0x1000000>; /* 16MB */
633			cache-unified;
634		};
635
636		idle-states {
637			entry-method = "psci";
638
639			CPU_SLEEP_0: cpu-sleep-0 {
640				compatible = "arm,idle-state";
641				arm,psci-suspend-param = <0x40000000>;
642				local-timer-stop;
643				entry-latency-us = <300>;
644				exit-latency-us = <600>;
645				min-residency-us = <10000>;
646			};
647		};
648	};
649
650	cpu_opp_table: opp-table {
651		compatible = "operating-points-v2";
652		opp-1066000000 {
653			opp-hz = /bits/ 64 <1066000000>;
654			opp-microvolt = <1000000>;
655			clock-latency-ns = <500000>;
656		};
657		opp-1866000000 {
658			opp-hz = /bits/ 64 <1866000000>;
659			opp-microvolt = <1000000>;
660			clock-latency-ns = <500000>;
661		};
662		opp-1900000000 {
663			opp-hz = /bits/ 64 <1900000000>;
664			opp-microvolt = <1000000>;
665			clock-latency-ns = <500000>;
666		};
667		opp-1999000000 {
668			opp-hz = /bits/ 64 <1999000000>;
669			opp-microvolt = <1000000>;
670			clock-latency-ns = <500000>;
671		};
672		opp-2050000000 {
673			opp-hz = /bits/ 64 <2050000000>;
674			opp-microvolt = <1000000>;
675			clock-latency-ns = <500000>;
676		};
677		opp-2100000000 {
678			opp-hz = /bits/ 64 <2100000000>;
679			opp-microvolt = <1000000>;
680			clock-latency-ns = <500000>;
681		};
682		opp-2200000000 {
683			opp-hz = /bits/ 64 <2200000000>;
684			opp-microvolt = <1000000>;
685			clock-latency-ns = <500000>;
686		};
687		opp-2400000000 {
688			opp-hz = /bits/ 64 <2400000000>;
689			opp-microvolt = <1000000>;
690			clock-latency-ns = <500000>;
691		};
692	};
693
694	aliases {
695		serial0 = &serial0;
696		serial1 = &serial1;
697		serial2 = &dcc;
698		mmc0 = &sdhci0;
699		mmc1 = &sdhci1;
700		i2c0 = &i2c0;
701		i2c1 = &i2c1;
702		rtc = &rtc;
703		usb0 = &usb0;
704		usb1 = &usb1;
705		spi0 = &ospi;
706		spi1 = &qspi;
707	};
708
709	dcc: dcc {
710		compatible = "arm,dcc";
711		status = "disabled";
712		bootph-all;
713	};
714
715	firmware {
716		psci {
717			compatible = "arm,psci-1.0";
718			method = "smc";
719		};
720	};
721
722	fpga: fpga-region {
723		compatible = "fpga-region";
724		fpga-mgr = <&versal_fpga>;
725		#address-cells = <2>;
726		#size-cells = <2>;
727	};
728
729	timer: timer {
730		compatible = "arm,armv8-timer";
731		interrupts = <1 13 4>, <1 14 4>, <1 11 4>, <1 10 4>;
732	};
733
734	versal_fpga: versal-fpga {
735		compatible = "xlnx,versal-fpga";
736	};
737
738	amba: axi {
739		compatible = "simple-bus";
740		bootph-all;
741		#address-cells = <2>;
742		#size-cells = <2>;
743		ranges;
744
745		adma0: dma-controller@ebd00000 {
746			compatible = "xlnx,zynqmp-dma-1.0";
747			status = "disabled";
748			reg = <0 0xebd00000 0 0x1000>;
749			interrupts = <0 72 4>;
750			clock-names = "clk_main", "clk_apb";
751			#dma-cells = <1>;
752			xlnx,bus-width = <64>;
753		};
754
755		adma1: dma-controller@ebd10000 {
756			compatible = "xlnx,zynqmp-dma-1.0";
757			status = "disabled";
758			reg = <0 0xebd10000 0 0x1000>;
759			interrupts = <0 73 4>;
760			clock-names = "clk_main", "clk_apb";
761			#dma-cells = <1>;
762			xlnx,bus-width = <64>;
763		};
764
765		adma2: dma-controller@ebd20000 {
766			compatible = "xlnx,zynqmp-dma-1.0";
767			status = "disabled";
768			reg = <0 0xebd20000 0 0x1000>;
769			interrupts = <0 74 4>;
770			clock-names = "clk_main", "clk_apb";
771			#dma-cells = <1>;
772			xlnx,bus-width = <64>;
773		};
774
775		adma3: dma-controller@ebd30000 {
776			compatible = "xlnx,zynqmp-dma-1.0";
777			status = "disabled";
778			reg = <0 0xebd30000 0 0x1000>;
779			interrupts = <0 75 4>;
780			clock-names = "clk_main", "clk_apb";
781			#dma-cells = <1>;
782			xlnx,bus-width = <64>;
783		};
784
785		adma4: dma-controller@ebd40000 {
786			compatible = "xlnx,zynqmp-dma-1.0";
787			status = "disabled";
788			reg = <0 0xebd40000 0 0x1000>;
789			interrupts = <0 76 4>;
790			clock-names = "clk_main", "clk_apb";
791			#dma-cells = <1>;
792			xlnx,bus-width = <64>;
793		};
794
795		adma5: dma-controller@ebd50000 {
796			compatible = "xlnx,zynqmp-dma-1.0";
797			status = "disabled";
798			reg = <0 0xebd50000 0 0x1000>;
799			interrupts = <0 77 4>;
800			clock-names = "clk_main", "clk_apb";
801			#dma-cells = <1>;
802			xlnx,bus-width = <64>;
803		};
804
805		adma6: dma-controller@ebd60000 {
806			compatible = "xlnx,zynqmp-dma-1.0";
807			status = "disabled";
808			reg = <0 0xebd60000 0 0x1000>;
809			interrupts = <0 78 4>;
810			clock-names = "clk_main", "clk_apb";
811			#dma-cells = <1>;
812			xlnx,bus-width = <64>;
813		};
814
815		adma7: dma-controller@ebd70000 {
816			compatible = "xlnx,zynqmp-dma-1.0";
817			status = "disabled";
818			reg = <0 0xebd70000 0 0x1000>;
819			interrupts = <0 79 4>;
820			clock-names = "clk_main", "clk_apb";
821			#dma-cells = <1>;
822			xlnx,bus-width = <64>;
823		};
824
825		can0: can@f1980000 {
826			compatible = "xlnx,canfd-2.0";
827			status = "disabled";
828			reg = <0 0xf1980000 0 0x6000>;
829			interrupts = <0 27 4>;
830			clock-names = "can_clk", "s_axi_aclk";
831			rx-fifo-depth = <64>;
832			tx-mailbox-count = <32>;
833		};
834
835		can1: can@f1990000 {
836			compatible = "xlnx,canfd-2.0";
837			status = "disabled";
838			reg = <0 0xf1990000 0 0x6000>;
839			interrupts = <0 28 4>;
840			clock-names = "can_clk", "s_axi_aclk";
841			rx-fifo-depth = <64>;
842			tx-mailbox-count = <32>;
843		};
844
845		gem0: ethernet@f19e0000 {
846			compatible = "xlnx,versal-gem", "cdns,gem";
847			status = "disabled";
848			reg = <0 0xf19e0000 0 0x1000>;
849			interrupts = <0 39 4>, <0 39 4>;
850			clock-names = "pclk", "hclk", "tx_clk", "rx_clk",
851				      "tsu_clk";
852		};
853
854		gem1: ethernet@f19f0000 {
855			compatible = "xlnx,versal-gem", "cdns,gem";
856			status = "disabled";
857			reg = <0 0xf19f0000 0 0x1000>;
858			interrupts = <0 41 4>, <0 41 4>;
859			clock-names = "pclk", "hclk", "tx_clk", "rx_clk",
860				      "tsu_clk";
861		};
862
863		gic: interrupt-controller@e2000000 {
864			compatible = "arm,gic-v3";
865			#interrupt-cells = <3>;
866			reg = <0 0xe2000000 0 0x10000>,
867			      <0 0xe2060000 0 0x200000>;
868			interrupt-controller;
869			interrupts = <1 9 4>;
870			#address-cells = <2>;
871			#size-cells = <2>;
872			ranges;
873			its: msi-controller@e2040000 {
874				compatible = "arm,gic-v3-its";
875				msi-controller;
876				#msi-cells = <1>;
877				reg = <0 0xe2040000 0 0x20000>;
878			};
879		};
880
881		gpio0: gpio@f19d0000 {
882			compatible = "xlnx,versal-gpio-1.0";
883			status = "disabled";
884			reg = <0 0xf19d0000 0 0x1000>;
885			interrupts = <0 20 4>;
886			#gpio-cells = <2>;
887			gpio-controller;
888			#interrupt-cells = <2>;
889			interrupt-controller;
890		};
891
892		gpio1: gpio@f1020000 {
893			compatible = "xlnx,pmc-gpio-1.0";
894			status = "disabled";
895			reg = <0 0xf1020000 0 0x1000>;
896			interrupts = <0 180 4>;
897			#gpio-cells = <2>;
898			gpio-controller;
899			#interrupt-cells = <2>;
900			interrupt-controller;
901		};
902
903		i2c0: i2c@f1940000 {
904			compatible = "cdns,i2c-r1p14";
905			status = "disabled";
906			reg = <0 0xf1940000 0 0x1000>;
907			interrupts = <0 21 4>;
908			clock-frequency = <400000>;
909			#address-cells = <1>;
910			#size-cells = <0>;
911		};
912
913		i2c1: i2c@f1950000 {
914			compatible = "cdns,i2c-r1p14";
915			status = "disabled";
916			reg = <0 0xf1950000 0 0x1000>;
917			interrupts = <0 22 4>;
918			clock-frequency = <400000>;
919			#address-cells = <1>;
920			#size-cells = <0>;
921		};
922
923		i3c0: i3c@f1948000 {
924			compatible = "snps,dw-i3c-master-1.00a";
925			status = "disabled";
926			reg = <0 0xf1948000 0 0x1000>;
927			#address-cells = <3>;
928			#size-cells = <0>;
929			interrupts = <0 21 4>;
930		};
931
932		i3c1: i3c@f1958000 {
933			compatible = "snps,dw-i3c-master-1.00a";
934			status = "disabled";
935			reg = <0 0xf1958000 0 0x1000>;
936			#address-cells = <3>;
937			#size-cells = <0>;
938			interrupts = <0 22 4>;
939		};
940
941		ospi: spi@f1010000 {
942			compatible = "xlnx,versal-ospi-1.0", "cdns,qspi-nor";
943			status = "disabled";
944			reg = <0 0xf1010000 0 0x10000>,
945			      <0 0xc0000000 0 0x20000000>;
946			interrupts = <0 182 4>;
947			cdns,fifo-depth = <256>;
948			cdns,fifo-width = <4>;
949			cdns,is-dma = <1>; /* u-boot specific */
950			cdns,trigger-address = <0xc0000000>;
951		};
952
953		qspi: spi@f1030000 {
954			compatible = "xlnx,versal-qspi-1.0";
955			status = "disabled";
956			reg = <0 0xf1030000 0 0x1000>;
957			interrupts = <0 183 4>;
958			clock-names = "ref_clk", "pclk";
959		};
960
961		rtc: rtc@f12a0000 {
962			compatible = "xlnx,zynqmp-rtc";
963			status = "disabled";
964			reg = <0 0xf12a0000 0 0x100>;
965			interrupts = <0 200 4>, <0 201 4>;
966			interrupt-names = "alarm", "sec";
967			calibration = <0x7FFF>;
968		};
969
970		sdhci0: mmc@f1040000 {
971			compatible = "xlnx,versal-8.9a", "arasan,sdhci-8.9a";
972			status = "disabled";
973			reg = <0 0xf1040000 0 0x10000>;
974			interrupts = <0 184 4>;
975			clock-names = "clk_xin", "clk_ahb", "gate";
976			#clock-cells = <1>;
977			clock-output-names = "clk_out_sd0", "clk_in_sd0";
978		};
979
980		sdhci1: mmc@f1050000 {
981			compatible = "xlnx,versal-net-emmc";
982			status = "disabled";
983			reg = <0 0xf1050000 0 0x10000>;
984			interrupts = <0 186 4>;
985			clock-names = "clk_xin", "clk_ahb", "gate";
986			#clock-cells = <1>;
987			clock-output-names = "clk_out_sd1", "clk_in_sd1";
988		};
989
990		serial0: serial@f1920000 {
991			bootph-all;
992			compatible = "arm,pl011", "arm,primecell";
993			status = "disabled";
994			reg = <0 0xf1920000 0 0x1000>;
995			interrupts = <0 25 4>;
996			reg-io-width = <4>;
997			clock-names = "uartclk", "apb_pclk";
998		};
999
1000		serial1: serial@f1930000 {
1001			bootph-all;
1002			compatible = "arm,pl011", "arm,primecell";
1003			status = "disabled";
1004			reg = <0 0xf1930000 0 0x1000>;
1005			interrupts = <0 26 4>;
1006			reg-io-width = <4>;
1007			clock-names = "uartclk", "apb_pclk";
1008		};
1009
1010		smmu: iommu@ec000000 {
1011			compatible = "arm,smmu-v3";
1012			status = "disabled";
1013			reg = <0 0xec000000 0 0x40000>;
1014			#iommu-cells = <1>;
1015			interrupt-names = "combined";
1016			interrupts = <0 169 4>;
1017			dma-coherent;
1018		};
1019
1020		spi0: spi@f1960000 {
1021			compatible = "cdns,spi-r1p6";
1022			status = "disabled";
1023			interrupts = <0 23 4>;
1024			reg = <0 0xf1960000 0 0x1000>;
1025			clock-names = "ref_clk", "pclk";
1026		};
1027
1028		spi1: spi@f1970000 {
1029			compatible = "cdns,spi-r1p6";
1030			status = "disabled";
1031			interrupts = <0 24 4>;
1032			reg = <0 0xf1970000 0 0x1000>;
1033			clock-names = "ref_clk", "pclk";
1034		};
1035
1036		ttc0: timer@f1dc0000 {
1037			compatible = "cdns,ttc";
1038			status = "disabled";
1039			interrupts = <0 43 4>, <0 44 4>, <0 45 4>;
1040			timer-width = <32>;
1041			reg = <0x0 0xf1dc0000 0x0 0x1000>;
1042		};
1043
1044		ttc1: timer@f1dd0000 {
1045			compatible = "cdns,ttc";
1046			status = "disabled";
1047			interrupts = <0 46 4>, <0 47 4>, <0 48 4>;
1048			timer-width = <32>;
1049			reg = <0x0 0xf1dd0000 0x0 0x1000>;
1050		};
1051
1052		ttc2: timer@f1de0000 {
1053			compatible = "cdns,ttc";
1054			status = "disabled";
1055			interrupts = <0 49 4>, <0 50 4>, <0 51 4>;
1056			timer-width = <32>;
1057			reg = <0x0 0xf1de0000 0x0 0x1000>;
1058		};
1059
1060		ttc3: timer@f1df0000 {
1061			compatible = "cdns,ttc";
1062			status = "disabled";
1063			interrupts = <0 52 4>, <0 53 4>, <0 54 4>;
1064			timer-width = <32>;
1065			reg = <0x0 0xf1df0000 0x0 0x1000>;
1066		};
1067
1068		usb0: usb@f1e00000 {
1069			compatible = "xlnx,versal-dwc3";
1070			status = "disabled";
1071			reg = <0 0xf1e00000 0 0x100>;
1072			clock-names = "bus_clk", "ref_clk";
1073			ranges;
1074			#address-cells = <2>;
1075			#size-cells = <2>;
1076
1077			dwc3_0: usb@f1b00000  {
1078				compatible = "snps,dwc3";
1079				status = "disabled";
1080				reg = <0 0xf1b00000 0 0x10000>;
1081				interrupt-names = "host", "peripheral", "otg", "wakeup";
1082				interrupts = <0 29 4>, <0 29 4>, <0 33 4>, <0 98 4>;
1083				snps,dis_u2_susphy_quirk;
1084				snps,dis_u3_susphy_quirk;
1085				snps,quirk-frame-length-adjustment = <0x20>;
1086				dr_mode = "peripheral";
1087				maximum-speed = "high-speed";
1088				snps,usb3_lpm_capable;
1089				clock-names = "ref";
1090			};
1091		};
1092
1093		usb1: usb@f1e10000 {
1094			compatible = "xlnx,versal-dwc3";
1095			status = "disabled";
1096			reg = <0x0 0xf1e10000 0x0 0x100>;
1097			clock-names = "bus_clk", "ref_clk";
1098			ranges;
1099			#address-cells = <2>;
1100			#size-cells = <2>;
1101
1102			dwc3_1: usb@f1c00000  {
1103				compatible = "snps,dwc3";
1104				status = "disabled";
1105				reg = <0x0 0xf1c00000 0x0 0x10000>;
1106				interrupt-names = "host", "peripheral", "otg", "wakeup";
1107				interrupts = <0 34 4>, <0 34 4>, <0 38 4>, <0 99 4>;
1108				snps,dis_u2_susphy_quirk;
1109				snps,dis_u3_susphy_quirk;
1110				snps,quirk-frame-length-adjustment = <0x20>;
1111				dr_mode = "host";
1112				maximum-speed = "high-speed";
1113				snps,usb3_lpm_capable;
1114				clock-names = "ref";
1115			};
1116		};
1117
1118		wwdt0: watchdog@ecc10000 {
1119			compatible = "xlnx,versal-wwdt";
1120			status = "disabled";
1121			reg = <0 0xecc10000 0 0x10000>;
1122			timeout-sec = <30>;
1123		};
1124
1125		wwdt1: watchdog@ecd10000 {
1126			compatible = "xlnx,versal-wwdt";
1127			status = "disabled";
1128			reg = <0 0xecd10000 0 0x10000>;
1129			timeout-sec = <30>;
1130		};
1131
1132		wwdt2: watchdog@ece10000 {
1133			compatible = "xlnx,versal-wwdt";
1134			status = "disabled";
1135			reg = <0 0xece10000 0 0x10000>;
1136			timeout-sec = <30>;
1137		};
1138
1139		wwdt3: watchdog@ecf10000 {
1140			compatible = "xlnx,versal-wwdt";
1141			status = "disabled";
1142			reg = <0 0xecf10000 0 0x10000>;
1143			timeout-sec = <30>;
1144		};
1145
1146		lpd_wwdt0: watchdog@ea420000 {
1147			compatible = "xlnx,versal-wwdt";
1148			status = "disabled";
1149			reg = <0 0xea420000 0 0x10000>;
1150			timeout-sec = <30>;
1151		};
1152
1153		lpd_wwdt1: watchdog@ea430000 {
1154			compatible = "xlnx,versal-wwdt";
1155			status = "disabled";
1156			reg = <0 0xea430000 0 0x10000>;
1157			timeout-sec = <30>;
1158		};
1159	};
1160};
1161