]> git.ipfire.org Git - people/ms/u-boot.git/blame - arch/arm/dts/zynqmp.dtsi
ARM64: zynqmp: Add clocks for LPDDMA
[people/ms/u-boot.git] / arch / arm / dts / zynqmp.dtsi
CommitLineData
44303dfa
MS
1/*
2 * dts file for Xilinx ZynqMP
3 *
4 * (C) Copyright 2014 - 2015, Xilinx, Inc.
5 *
6 * Michal Simek <michal.simek@xilinx.com>
7 *
8 * SPDX-License-Identifier: GPL-2.0+
9 */
10/ {
11 compatible = "xlnx,zynqmp";
12 #address-cells = <2>;
85d1142e 13 #size-cells = <2>;
44303dfa
MS
14
15 cpus {
16 #address-cells = <1>;
17 #size-cells = <0>;
18
19 cpu@0 {
20 compatible = "arm,cortex-a53", "arm,armv8";
21 device_type = "cpu";
22 enable-method = "psci";
23 reg = <0x0>;
24 };
25
26 cpu@1 {
27 compatible = "arm,cortex-a53", "arm,armv8";
28 device_type = "cpu";
29 enable-method = "psci";
30 reg = <0x1>;
31 };
32
33 cpu@2 {
34 compatible = "arm,cortex-a53", "arm,armv8";
35 device_type = "cpu";
36 enable-method = "psci";
37 reg = <0x2>;
38 };
39
40 cpu@3 {
41 compatible = "arm,cortex-a53", "arm,armv8";
42 device_type = "cpu";
43 enable-method = "psci";
44 reg = <0x3>;
45 };
46 };
47
69d09dd7
MS
48 dcc: dcc {
49 compatible = "arm,dcc";
50 status = "disabled";
51 u-boot,dm-pre-reloc;
52 };
53
8f4e3972
SB
54 power-domains {
55 compatible = "xlnx,zynqmp-genpd";
56
57 pd_usb0: pd-usb0 {
58 #power-domain-cells = <0x0>;
59 pd-id = <0x16>;
60 };
61
62 pd_usb1: pd-usb1 {
63 #power-domain-cells = <0x0>;
64 pd-id = <0x17>;
65 };
66
67 pd_sata: pd-sata {
68 #power-domain-cells = <0x0>;
69 pd-id = <0x1c>;
70 };
71
72 pd_spi0: pd-spi0 {
73 #power-domain-cells = <0x0>;
74 pd-id = <0x23>;
75 };
76
77 pd_spi1: pd-spi1 {
78 #power-domain-cells = <0x0>;
79 pd-id = <0x24>;
80 };
81
82 pd_uart0: pd-uart0 {
83 #power-domain-cells = <0x0>;
84 pd-id = <0x21>;
85 };
86
87 pd_uart1: pd-uart1 {
88 #power-domain-cells = <0x0>;
89 pd-id = <0x22>;
90 };
91
92 pd_eth0: pd-eth0 {
93 #power-domain-cells = <0x0>;
94 pd-id = <0x1d>;
95 };
96
97 pd_eth1: pd-eth1 {
98 #power-domain-cells = <0x0>;
99 pd-id = <0x1e>;
100 };
101
102 pd_eth2: pd-eth2 {
103 #power-domain-cells = <0x0>;
104 pd-id = <0x1f>;
105 };
106
107 pd_eth3: pd-eth3 {
108 #power-domain-cells = <0x0>;
109 pd-id = <0x20>;
110 };
111
112 pd_i2c0: pd-i2c0 {
113 #power-domain-cells = <0x0>;
114 pd-id = <0x25>;
115 };
116
117 pd_i2c1: pd-i2c1 {
118 #power-domain-cells = <0x0>;
119 pd-id = <0x26>;
120 };
121
122 pd_dp: pd-dp {
123 /* fixme: what to attach to */
124 #power-domain-cells = <0x0>;
125 pd-id = <0x29>;
126 };
127
128 pd_gdma: pd-gdma {
129 #power-domain-cells = <0x0>;
130 pd-id = <0x2a>;
131 };
132
133 pd_adma: pd-adma {
134 #power-domain-cells = <0x0>;
135 pd-id = <0x2b>;
136 };
137
138 pd_ttc0: pd-ttc0 {
139 #power-domain-cells = <0x0>;
140 pd-id = <0x18>;
141 };
142
143 pd_ttc1: pd-ttc1 {
144 #power-domain-cells = <0x0>;
145 pd-id = <0x19>;
146 };
147
148 pd_ttc2: pd-ttc2 {
149 #power-domain-cells = <0x0>;
150 pd-id = <0x1a>;
151 };
152
153 pd_ttc3: pd-ttc3 {
154 #power-domain-cells = <0x0>;
155 pd-id = <0x1b>;
156 };
157
158 pd_sd0: pd-sd0 {
159 #power-domain-cells = <0x0>;
160 pd-id = <0x27>;
161 };
162
163 pd_sd1: pd-sd1 {
164 #power-domain-cells = <0x0>;
165 pd-id = <0x28>;
166 };
167
168 pd_nand: pd-nand {
169 #power-domain-cells = <0x0>;
170 pd-id = <0x2c>;
171 };
172
173 pd_qspi: pd-qspi {
174 #power-domain-cells = <0x0>;
175 pd-id = <0x2d>;
176 };
177
178 pd_gpio: pd-gpio {
179 #power-domain-cells = <0x0>;
180 pd-id = <0x2e>;
181 };
182
183 pd_can0: pd-can0 {
184 #power-domain-cells = <0x0>;
185 pd-id = <0x2f>;
186 };
187
188 pd_can1: pd-can1 {
189 #power-domain-cells = <0x0>;
190 pd-id = <0x30>;
191 };
2af3932f
FD
192
193 pd_pcie: pd-pcie {
194 #power-domain-cells = <0x0>;
195 pd-id = <0x3b>;
196 };
197
198 pd_gpu: pd-gpu {
199 #power-domain-cells = <0x0>;
a4d7d560 200 pd-id = <0x3a 0x14 0x15>;
2af3932f 201 };
8f4e3972
SB
202 };
203
44303dfa
MS
204 pmu {
205 compatible = "arm,armv8-pmuv3";
14cd9eab 206 interrupt-parent = <&gic>;
44303dfa
MS
207 interrupts = <0 143 4>,
208 <0 144 4>,
209 <0 145 4>,
210 <0 146 4>;
211 };
212
213 psci {
214 compatible = "arm,psci-0.2";
215 method = "smc";
216 };
217
218 firmware {
219 compatible = "xlnx,zynqmp-pm";
220 method = "smc";
221 };
222
223 timer {
224 compatible = "arm,armv8-timer";
225 interrupt-parent = <&gic>;
226 interrupts = <1 13 0xf01>,
227 <1 14 0xf01>,
228 <1 11 0xf01>,
229 <1 10 0xf01>;
230 };
231
aaf232f3
NSR
232 edac {
233 compatible = "arm,cortex-a53-edac";
234 };
235
d64e43f1
NM
236 pcap {
237 compatible = "xlnx,zynqmp-pcap-fpga";
238 };
239
c926e6fb 240 amba_apu: amba_apu@0 {
44303dfa
MS
241 compatible = "simple-bus";
242 #address-cells = <2>;
243 #size-cells = <1>;
85d1142e 244 ranges = <0 0 0 0 0xffffffff>;
44303dfa
MS
245
246 gic: interrupt-controller@f9010000 {
247 compatible = "arm,gic-400", "arm,cortex-a15-gic";
248 #interrupt-cells = <3>;
249 reg = <0x0 0xf9010000 0x10000>,
0a8c4f67 250 <0x0 0xf9020000 0x20000>,
44303dfa 251 <0x0 0xf9040000 0x20000>,
0a8c4f67 252 <0x0 0xf9060000 0x20000>;
44303dfa
MS
253 interrupt-controller;
254 interrupt-parent = <&gic>;
255 interrupts = <1 9 0xf04>;
256 };
257 };
258
b976fd63 259 amba: amba {
44303dfa 260 compatible = "simple-bus";
c9811e14 261 u-boot,dm-pre-reloc;
44303dfa 262 #address-cells = <2>;
b976fd63
MS
263 #size-cells = <2>;
264 ranges;
44303dfa
MS
265
266 can0: can@ff060000 {
267 compatible = "xlnx,zynq-can-1.0";
268 status = "disabled";
269 clock-names = "can_clk", "pclk";
b976fd63 270 reg = <0x0 0xff060000 0x0 0x1000>;
44303dfa
MS
271 interrupts = <0 23 4>;
272 interrupt-parent = <&gic>;
273 tx-fifo-depth = <0x40>;
274 rx-fifo-depth = <0x40>;
8f4e3972 275 power-domains = <&pd_can0>;
44303dfa
MS
276 };
277
278 can1: can@ff070000 {
279 compatible = "xlnx,zynq-can-1.0";
280 status = "disabled";
281 clock-names = "can_clk", "pclk";
b976fd63 282 reg = <0x0 0xff070000 0x0 0x1000>;
44303dfa
MS
283 interrupts = <0 24 4>;
284 interrupt-parent = <&gic>;
285 tx-fifo-depth = <0x40>;
286 rx-fifo-depth = <0x40>;
8f4e3972 287 power-domains = <&pd_can1>;
44303dfa
MS
288 };
289
ff50d21b
MS
290 cci: cci@fd6e0000 {
291 compatible = "arm,cci-400";
b976fd63 292 reg = <0x0 0xfd6e0000 0x0 0x9000>;
ff50d21b
MS
293 ranges = <0x0 0x0 0xfd6e0000 0x10000>;
294 #address-cells = <1>;
295 #size-cells = <1>;
296
297 pmu@9000 {
298 compatible = "arm,cci-400-pmu,r1";
299 reg = <0x9000 0x5000>;
300 interrupt-parent = <&gic>;
301 interrupts = <0 123 4>,
302 <0 123 4>,
303 <0 123 4>,
304 <0 123 4>,
305 <0 123 4>;
306 };
307 };
308
44303dfa
MS
309 /* GDMA */
310 fpd_dma_chan1: dma@fd500000 {
311 status = "disabled";
312 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 313 reg = <0x0 0xfd500000 0x0 0x1000>;
44303dfa
MS
314 interrupt-parent = <&gic>;
315 interrupts = <0 124 4>;
b34d11de 316 clock-names = "clk_main", "clk_apb";
44303dfa 317 xlnx,bus-width = <128>;
ba6ad317
MS
318 #stream-id-cells = <1>;
319 iommus = <&smmu 0x14e8>;
8f4e3972 320 power-domains = <&pd_gdma>;
44303dfa
MS
321 };
322
323 fpd_dma_chan2: dma@fd510000 {
324 status = "disabled";
325 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 326 reg = <0x0 0xfd510000 0x0 0x1000>;
44303dfa
MS
327 interrupt-parent = <&gic>;
328 interrupts = <0 125 4>;
b34d11de 329 clock-names = "clk_main", "clk_apb";
44303dfa 330 xlnx,bus-width = <128>;
ba6ad317
MS
331 #stream-id-cells = <1>;
332 iommus = <&smmu 0x14e9>;
8f4e3972 333 power-domains = <&pd_gdma>;
44303dfa
MS
334 };
335
336 fpd_dma_chan3: dma@fd520000 {
337 status = "disabled";
338 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 339 reg = <0x0 0xfd520000 0x0 0x1000>;
44303dfa
MS
340 interrupt-parent = <&gic>;
341 interrupts = <0 126 4>;
b34d11de 342 clock-names = "clk_main", "clk_apb";
44303dfa 343 xlnx,bus-width = <128>;
ba6ad317
MS
344 #stream-id-cells = <1>;
345 iommus = <&smmu 0x14ea>;
8f4e3972 346 power-domains = <&pd_gdma>;
44303dfa
MS
347 };
348
349 fpd_dma_chan4: dma@fd530000 {
350 status = "disabled";
351 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 352 reg = <0x0 0xfd530000 0x0 0x1000>;
44303dfa
MS
353 interrupt-parent = <&gic>;
354 interrupts = <0 127 4>;
b34d11de 355 clock-names = "clk_main", "clk_apb";
44303dfa 356 xlnx,bus-width = <128>;
ba6ad317
MS
357 #stream-id-cells = <1>;
358 iommus = <&smmu 0x14eb>;
8f4e3972 359 power-domains = <&pd_gdma>;
44303dfa
MS
360 };
361
362 fpd_dma_chan5: dma@fd540000 {
363 status = "disabled";
364 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 365 reg = <0x0 0xfd540000 0x0 0x1000>;
44303dfa
MS
366 interrupt-parent = <&gic>;
367 interrupts = <0 128 4>;
b34d11de 368 clock-names = "clk_main", "clk_apb";
44303dfa 369 xlnx,bus-width = <128>;
ba6ad317
MS
370 #stream-id-cells = <1>;
371 iommus = <&smmu 0x14ec>;
8f4e3972 372 power-domains = <&pd_gdma>;
44303dfa
MS
373 };
374
375 fpd_dma_chan6: dma@fd550000 {
376 status = "disabled";
377 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 378 reg = <0x0 0xfd550000 0x0 0x1000>;
44303dfa
MS
379 interrupt-parent = <&gic>;
380 interrupts = <0 129 4>;
b34d11de 381 clock-names = "clk_main", "clk_apb";
44303dfa 382 xlnx,bus-width = <128>;
ba6ad317
MS
383 #stream-id-cells = <1>;
384 iommus = <&smmu 0x14ed>;
8f4e3972 385 power-domains = <&pd_gdma>;
44303dfa
MS
386 };
387
388 fpd_dma_chan7: dma@fd560000 {
389 status = "disabled";
390 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 391 reg = <0x0 0xfd560000 0x0 0x1000>;
44303dfa
MS
392 interrupt-parent = <&gic>;
393 interrupts = <0 130 4>;
b34d11de 394 clock-names = "clk_main", "clk_apb";
44303dfa 395 xlnx,bus-width = <128>;
ba6ad317
MS
396 #stream-id-cells = <1>;
397 iommus = <&smmu 0x14ee>;
8f4e3972 398 power-domains = <&pd_gdma>;
44303dfa
MS
399 };
400
401 fpd_dma_chan8: dma@fd570000 {
402 status = "disabled";
403 compatible = "xlnx,zynqmp-dma-1.0";
b976fd63 404 reg = <0x0 0xfd570000 0x0 0x1000>;
44303dfa
MS
405 interrupt-parent = <&gic>;
406 interrupts = <0 131 4>;
b34d11de 407 clock-names = "clk_main", "clk_apb";
44303dfa 408 xlnx,bus-width = <128>;
ba6ad317
MS
409 #stream-id-cells = <1>;
410 iommus = <&smmu 0x14ef>;
8f4e3972 411 power-domains = <&pd_gdma>;
44303dfa
MS
412 };
413
414 gpu: gpu@fd4b0000 {
415 status = "disabled";
416 compatible = "arm,mali-400", "arm,mali-utgard";
b976fd63 417 reg = <0x0 0xfd4b0000 0x0 0x30000>;
44303dfa
MS
418 interrupt-parent = <&gic>;
419 interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
420 interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
2af3932f 421 power-domains = <&pd_gpu>;
44303dfa
MS
422 };
423
6af57737
KA
424 /* LPDDMA default allows only secured access. inorder to enable
425 * These dma channels, Users should ensure that these dma
426 * Channels are allowed for non secure access.
427 */
44303dfa
MS
428 lpd_dma_chan1: dma@ffa80000 {
429 status = "disabled";
430 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 431 clock-names = "clk_main", "clk_apb";
b976fd63 432 reg = <0x0 0xffa80000 0x0 0x1000>;
44303dfa
MS
433 interrupt-parent = <&gic>;
434 interrupts = <0 77 4>;
44303dfa 435 xlnx,bus-width = <64>;
ba6ad317
MS
436 #stream-id-cells = <1>;
437 iommus = <&smmu 0x868>;
8f4e3972 438 power-domains = <&pd_adma>;
44303dfa
MS
439 };
440
441 lpd_dma_chan2: dma@ffa90000 {
442 status = "disabled";
443 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 444 clock-names = "clk_main", "clk_apb";
b976fd63 445 reg = <0x0 0xffa90000 0x0 0x1000>;
44303dfa
MS
446 interrupt-parent = <&gic>;
447 interrupts = <0 78 4>;
44303dfa 448 xlnx,bus-width = <64>;
ba6ad317
MS
449 #stream-id-cells = <1>;
450 iommus = <&smmu 0x869>;
8f4e3972 451 power-domains = <&pd_adma>;
44303dfa
MS
452 };
453
454 lpd_dma_chan3: dma@ffaa0000 {
455 status = "disabled";
456 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 457 clock-names = "clk_main", "clk_apb";
b976fd63 458 reg = <0x0 0xffaa0000 0x0 0x1000>;
44303dfa
MS
459 interrupt-parent = <&gic>;
460 interrupts = <0 79 4>;
44303dfa 461 xlnx,bus-width = <64>;
ba6ad317
MS
462 #stream-id-cells = <1>;
463 iommus = <&smmu 0x86a>;
8f4e3972 464 power-domains = <&pd_adma>;
44303dfa
MS
465 };
466
467 lpd_dma_chan4: dma@ffab0000 {
468 status = "disabled";
469 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 470 clock-names = "clk_main", "clk_apb";
b976fd63 471 reg = <0x0 0xffab0000 0x0 0x1000>;
44303dfa
MS
472 interrupt-parent = <&gic>;
473 interrupts = <0 80 4>;
44303dfa 474 xlnx,bus-width = <64>;
ba6ad317
MS
475 #stream-id-cells = <1>;
476 iommus = <&smmu 0x86b>;
8f4e3972 477 power-domains = <&pd_adma>;
44303dfa
MS
478 };
479
480 lpd_dma_chan5: dma@ffac0000 {
481 status = "disabled";
482 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 483 clock-names = "clk_main", "clk_apb";
b976fd63 484 reg = <0x0 0xffac0000 0x0 0x1000>;
44303dfa
MS
485 interrupt-parent = <&gic>;
486 interrupts = <0 81 4>;
44303dfa 487 xlnx,bus-width = <64>;
ba6ad317
MS
488 #stream-id-cells = <1>;
489 iommus = <&smmu 0x86c>;
8f4e3972 490 power-domains = <&pd_adma>;
44303dfa
MS
491 };
492
493 lpd_dma_chan6: dma@ffad0000 {
494 status = "disabled";
495 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 496 clock-names = "clk_main", "clk_apb";
b976fd63 497 reg = <0x0 0xffad0000 0x0 0x1000>;
44303dfa
MS
498 interrupt-parent = <&gic>;
499 interrupts = <0 82 4>;
44303dfa 500 xlnx,bus-width = <64>;
ba6ad317
MS
501 #stream-id-cells = <1>;
502 iommus = <&smmu 0x86d>;
8f4e3972 503 power-domains = <&pd_adma>;
44303dfa
MS
504 };
505
506 lpd_dma_chan7: dma@ffae0000 {
507 status = "disabled";
508 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 509 clock-names = "clk_main", "clk_apb";
b976fd63 510 reg = <0x0 0xffae0000 0x0 0x1000>;
44303dfa
MS
511 interrupt-parent = <&gic>;
512 interrupts = <0 83 4>;
44303dfa 513 xlnx,bus-width = <64>;
ba6ad317
MS
514 #stream-id-cells = <1>;
515 iommus = <&smmu 0x86e>;
8f4e3972 516 power-domains = <&pd_adma>;
44303dfa
MS
517 };
518
519 lpd_dma_chan8: dma@ffaf0000 {
520 status = "disabled";
521 compatible = "xlnx,zynqmp-dma-1.0";
d33046aa 522 clock-names = "clk_main", "clk_apb";
b976fd63 523 reg = <0x0 0xffaf0000 0x0 0x1000>;
44303dfa
MS
524 interrupt-parent = <&gic>;
525 interrupts = <0 84 4>;
44303dfa 526 xlnx,bus-width = <64>;
ba6ad317
MS
527 #stream-id-cells = <1>;
528 iommus = <&smmu 0x86f>;
8f4e3972 529 power-domains = <&pd_adma>;
44303dfa
MS
530 };
531
90869009
NSR
532 mc: memory-controller@fd070000 {
533 compatible = "xlnx,zynqmp-ddrc-2.40a";
b976fd63 534 reg = <0x0 0xfd070000 0x0 0x30000>;
90869009
NSR
535 interrupt-parent = <&gic>;
536 interrupts = <0 112 4>;
537 };
538
44303dfa
MS
539 nand0: nand@ff100000 {
540 compatible = "arasan,nfc-v3p10";
541 status = "disabled";
b976fd63 542 reg = <0x0 0xff100000 0x0 0x1000>;
44303dfa
MS
543 clock-names = "clk_sys", "clk_flash";
544 interrupt-parent = <&gic>;
545 interrupts = <0 14 4>;
546 #address-cells = <2>;
547 #size-cells = <1>;
ba6ad317
MS
548 #stream-id-cells = <1>;
549 iommus = <&smmu 0x872>;
8f4e3972 550 power-domains = <&pd_nand>;
44303dfa
MS
551 };
552
553 gem0: ethernet@ff0b0000 {
da2ad784 554 compatible = "cdns,zynqmp-gem";
44303dfa
MS
555 status = "disabled";
556 interrupt-parent = <&gic>;
557 interrupts = <0 57 4>, <0 57 4>;
b976fd63 558 reg = <0x0 0xff0b0000 0x0 0x1000>;
44303dfa
MS
559 clock-names = "pclk", "hclk", "tx_clk";
560 #address-cells = <1>;
561 #size-cells = <0>;
7f1d7d97 562 #stream-id-cells = <1>;
ba6ad317 563 iommus = <&smmu 0x874>;
8f4e3972 564 power-domains = <&pd_eth0>;
44303dfa
MS
565 };
566
567 gem1: ethernet@ff0c0000 {
da2ad784 568 compatible = "cdns,zynqmp-gem";
44303dfa
MS
569 status = "disabled";
570 interrupt-parent = <&gic>;
571 interrupts = <0 59 4>, <0 59 4>;
b976fd63 572 reg = <0x0 0xff0c0000 0x0 0x1000>;
44303dfa
MS
573 clock-names = "pclk", "hclk", "tx_clk";
574 #address-cells = <1>;
575 #size-cells = <0>;
7f1d7d97 576 #stream-id-cells = <1>;
ba6ad317 577 iommus = <&smmu 0x875>;
8f4e3972 578 power-domains = <&pd_eth1>;
44303dfa
MS
579 };
580
581 gem2: ethernet@ff0d0000 {
da2ad784 582 compatible = "cdns,zynqmp-gem";
44303dfa
MS
583 status = "disabled";
584 interrupt-parent = <&gic>;
585 interrupts = <0 61 4>, <0 61 4>;
b976fd63 586 reg = <0x0 0xff0d0000 0x0 0x1000>;
44303dfa
MS
587 clock-names = "pclk", "hclk", "tx_clk";
588 #address-cells = <1>;
589 #size-cells = <0>;
7f1d7d97 590 #stream-id-cells = <1>;
ba6ad317 591 iommus = <&smmu 0x876>;
8f4e3972 592 power-domains = <&pd_eth2>;
44303dfa
MS
593 };
594
595 gem3: ethernet@ff0e0000 {
da2ad784 596 compatible = "cdns,zynqmp-gem";
44303dfa
MS
597 status = "disabled";
598 interrupt-parent = <&gic>;
599 interrupts = <0 63 4>, <0 63 4>;
b976fd63 600 reg = <0x0 0xff0e0000 0x0 0x1000>;
44303dfa
MS
601 clock-names = "pclk", "hclk", "tx_clk";
602 #address-cells = <1>;
603 #size-cells = <0>;
7f1d7d97 604 #stream-id-cells = <1>;
ba6ad317 605 iommus = <&smmu 0x877>;
8f4e3972 606 power-domains = <&pd_eth3>;
44303dfa
MS
607 };
608
609 gpio: gpio@ff0a0000 {
610 compatible = "xlnx,zynqmp-gpio-1.0";
611 status = "disabled";
612 #gpio-cells = <0x2>;
613 interrupt-parent = <&gic>;
614 interrupts = <0 16 4>;
9e826b68
MS
615 interrupt-controller;
616 #interrupt-cells = <2>;
b976fd63 617 reg = <0x0 0xff0a0000 0x0 0x1000>;
8f4e3972 618 power-domains = <&pd_gpio>;
44303dfa
MS
619 };
620
621 i2c0: i2c@ff020000 {
622 compatible = "cdns,i2c-r1p10";
623 status = "disabled";
624 interrupt-parent = <&gic>;
625 interrupts = <0 17 4>;
b976fd63 626 reg = <0x0 0xff020000 0x0 0x1000>;
44303dfa
MS
627 #address-cells = <1>;
628 #size-cells = <0>;
8f4e3972 629 power-domains = <&pd_i2c0>;
44303dfa
MS
630 };
631
632 i2c1: i2c@ff030000 {
633 compatible = "cdns,i2c-r1p10";
634 status = "disabled";
635 interrupt-parent = <&gic>;
636 interrupts = <0 18 4>;
b976fd63 637 reg = <0x0 0xff030000 0x0 0x1000>;
44303dfa
MS
638 #address-cells = <1>;
639 #size-cells = <0>;
8f4e3972 640 power-domains = <&pd_i2c1>;
44303dfa
MS
641 };
642
5534480a
NSR
643 ocm: memory-controller@ff960000 {
644 compatible = "xlnx,zynqmp-ocmc-1.0";
b976fd63 645 reg = <0x0 0xff960000 0x0 0x1000>;
5534480a
NSR
646 interrupt-parent = <&gic>;
647 interrupts = <0 10 4>;
648 };
649
44303dfa
MS
650 pcie: pcie@fd0e0000 {
651 compatible = "xlnx,nwl-pcie-2.11";
652 status = "disabled";
653 #address-cells = <3>;
654 #size-cells = <2>;
655 #interrupt-cells = <1>;
7d6ca73a 656 msi-controller;
44303dfa
MS
657 device_type = "pci";
658 interrupt-parent = <&gic>;
91a8b0ee 659 interrupts = <0 118 4>,
7d6ca73a 660 <0 117 4>,
91a8b0ee
MS
661 <0 116 4>,
662 <0 115 4>, /* MSI_1 [63...32] */
663 <0 114 4>; /* MSI_0 [31...0] */
7d6ca73a
BKG
664 interrupt-names = "misc","dummy","intx", "msi1", "msi0";
665 msi-parent = <&pcie>;
b976fd63
MS
666 reg = <0x0 0xfd0e0000 0x0 0x1000>,
667 <0x0 0xfd480000 0x0 0x1000>,
668 <0x0 0xe0000000 0x0 0x1000000>;
44303dfa
MS
669 reg-names = "breg", "pcireg", "cfg";
670 ranges = <0x02000000 0x00000000 0xe1000000 0x00000000 0xe1000000 0 0x0f000000>;
33aec517
BKG
671 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
672 interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
673 <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
674 <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
675 <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
2af3932f 676 power-domains = <&pd_pcie>;
33aec517
BKG
677 pcie_intc: legacy-interrupt-controller {
678 interrupt-controller;
679 #address-cells = <0>;
680 #interrupt-cells = <1>;
681 };
44303dfa
MS
682 };
683
684 qspi: spi@ff0f0000 {
685 compatible = "xlnx,zynqmp-qspi-1.0";
686 status = "disabled";
687 clock-names = "ref_clk", "pclk";
688 interrupts = <0 15 4>;
689 interrupt-parent = <&gic>;
690 num-cs = <1>;
b976fd63
MS
691 reg = <0x0 0xff0f0000 0x0 0x1000>,
692 <0x0 0xc0000000 0x0 0x8000000>;
44303dfa
MS
693 #address-cells = <1>;
694 #size-cells = <0>;
ba6ad317
MS
695 #stream-id-cells = <1>;
696 iommus = <&smmu 0x873>;
8f4e3972 697 power-domains = <&pd_qspi>;
44303dfa
MS
698 };
699
700 rtc: rtc@ffa60000 {
701 compatible = "xlnx,zynqmp-rtc";
702 status = "disabled";
b976fd63 703 reg = <0x0 0xffa60000 0x0 0x100>;
44303dfa
MS
704 interrupt-parent = <&gic>;
705 interrupts = <0 26 4>, <0 27 4>;
706 interrupt-names = "alarm", "sec";
707 };
708
db6c62e1
AKV
709 serdes: zynqmp_phy@fd400000 {
710 compatible = "xlnx,zynqmp-psgtr";
711 status = "disabled";
b976fd63
MS
712 reg = <0x0 0xfd400000 0x0 0x40000>,
713 <0x0 0xfd3d0000 0x0 0x1000>,
714 <0x0 0xfd1a0000 0x0 0x1000>,
715 <0x0 0xff5e0000 0x0 0x1000>;
db6c62e1
AKV
716 reg-names = "serdes", "siou", "fpd", "lpd";
717 xlnx,tx_termination_fix;
718 lane0: lane0 {
719 #phy-cells = <4>;
720 };
721 lane1: lane1 {
722 #phy-cells = <4>;
723 };
724 lane2: lane2 {
725 #phy-cells = <4>;
726 };
727 lane3: lane3 {
728 #phy-cells = <4>;
729 };
730 };
731
44303dfa
MS
732 sata: ahci@fd0c0000 {
733 compatible = "ceva,ahci-1v84";
734 status = "disabled";
b976fd63 735 reg = <0x0 0xfd0c0000 0x0 0x2000>;
44303dfa
MS
736 interrupt-parent = <&gic>;
737 interrupts = <0 133 4>;
8f4e3972 738 power-domains = <&pd_sata>;
44303dfa
MS
739 };
740
741 sdhci0: sdhci@ff160000 {
c9811e14 742 u-boot,dm-pre-reloc;
0488a5e1 743 compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
44303dfa
MS
744 status = "disabled";
745 interrupt-parent = <&gic>;
746 interrupts = <0 48 4>;
b976fd63 747 reg = <0x0 0xff160000 0x0 0x1000>;
44303dfa 748 clock-names = "clk_xin", "clk_ahb";
0488a5e1 749 xlnx,device_id = <0>;
ba6ad317
MS
750 #stream-id-cells = <1>;
751 iommus = <&smmu 0x870>;
8f4e3972 752 power-domains = <&pd_sd0>;
44303dfa
MS
753 };
754
755 sdhci1: sdhci@ff170000 {
c9811e14 756 u-boot,dm-pre-reloc;
0488a5e1 757 compatible = "xlnx,zynqmp-8.9a", "arasan,sdhci-8.9a";
44303dfa
MS
758 status = "disabled";
759 interrupt-parent = <&gic>;
760 interrupts = <0 49 4>;
b976fd63 761 reg = <0x0 0xff170000 0x0 0x1000>;
44303dfa 762 clock-names = "clk_xin", "clk_ahb";
0488a5e1 763 xlnx,device_id = <1>;
ba6ad317
MS
764 #stream-id-cells = <1>;
765 iommus = <&smmu 0x871>;
8f4e3972 766 power-domains = <&pd_sd1>;
44303dfa
MS
767 };
768
769 smmu: smmu@fd800000 {
770 compatible = "arm,mmu-500";
b976fd63 771 reg = <0x0 0xfd800000 0x0 0x20000>;
ba6ad317 772 #iommu-cells = <1>;
44303dfa
MS
773 #global-interrupts = <1>;
774 interrupt-parent = <&gic>;
88a85aac
EI
775 interrupts = <0 155 4>,
776 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
777 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
778 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
779 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
7f1d7d97
EI
780 mmu-masters = < &gem0 0x874
781 &gem1 0x875
782 &gem2 0x876
ba6ad317
MS
783 &gem3 0x877
784 &usb0 0x860
785 &usb1 0x861
786 &qspi 0x873
787 &lpd_dma_chan1 0x868
788 &lpd_dma_chan2 0x869
789 &lpd_dma_chan3 0x86a
790 &lpd_dma_chan4 0x86b
791 &lpd_dma_chan5 0x86c
792 &lpd_dma_chan6 0x86d
793 &lpd_dma_chan7 0x86e
794 &lpd_dma_chan8 0x86f
795 &fpd_dma_chan1 0x14e8
796 &fpd_dma_chan2 0x14e9
797 &fpd_dma_chan3 0x14ea
798 &fpd_dma_chan4 0x14eb
799 &fpd_dma_chan5 0x14ec
800 &fpd_dma_chan6 0x14ed
801 &fpd_dma_chan7 0x14ee
802 &fpd_dma_chan8 0x14ef
803 &sdhci0 0x870
804 &sdhci1 0x871
805 &nand0 0x872>;
44303dfa
MS
806 };
807
808 spi0: spi@ff040000 {
809 compatible = "cdns,spi-r1p6";
810 status = "disabled";
811 interrupt-parent = <&gic>;
812 interrupts = <0 19 4>;
b976fd63 813 reg = <0x0 0xff040000 0x0 0x1000>;
44303dfa
MS
814 clock-names = "ref_clk", "pclk";
815 #address-cells = <1>;
816 #size-cells = <0>;
8f4e3972 817 power-domains = <&pd_spi0>;
44303dfa
MS
818 };
819
820 spi1: spi@ff050000 {
821 compatible = "cdns,spi-r1p6";
822 status = "disabled";
823 interrupt-parent = <&gic>;
824 interrupts = <0 20 4>;
b976fd63 825 reg = <0x0 0xff050000 0x0 0x1000>;
44303dfa
MS
826 clock-names = "ref_clk", "pclk";
827 #address-cells = <1>;
828 #size-cells = <0>;
8f4e3972 829 power-domains = <&pd_spi1>;
44303dfa
MS
830 };
831
832 ttc0: timer@ff110000 {
833 compatible = "cdns,ttc";
834 status = "disabled";
835 interrupt-parent = <&gic>;
836 interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
b976fd63 837 reg = <0x0 0xff110000 0x0 0x1000>;
44303dfa 838 timer-width = <32>;
8f4e3972 839 power-domains = <&pd_ttc0>;
44303dfa
MS
840 };
841
842 ttc1: timer@ff120000 {
843 compatible = "cdns,ttc";
844 status = "disabled";
845 interrupt-parent = <&gic>;
846 interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
b976fd63 847 reg = <0x0 0xff120000 0x0 0x1000>;
44303dfa 848 timer-width = <32>;
8f4e3972 849 power-domains = <&pd_ttc1>;
44303dfa
MS
850 };
851
852 ttc2: timer@ff130000 {
853 compatible = "cdns,ttc";
854 status = "disabled";
855 interrupt-parent = <&gic>;
856 interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
b976fd63 857 reg = <0x0 0xff130000 0x0 0x1000>;
44303dfa 858 timer-width = <32>;
8f4e3972 859 power-domains = <&pd_ttc2>;
44303dfa
MS
860 };
861
862 ttc3: timer@ff140000 {
863 compatible = "cdns,ttc";
864 status = "disabled";
865 interrupt-parent = <&gic>;
866 interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
b976fd63 867 reg = <0x0 0xff140000 0x0 0x1000>;
44303dfa 868 timer-width = <32>;
8f4e3972 869 power-domains = <&pd_ttc3>;
44303dfa
MS
870 };
871
872 uart0: serial@ff000000 {
c9811e14 873 u-boot,dm-pre-reloc;
ca2f5878 874 compatible = "cdns,uart-r1p12", "xlnx,xuartps";
44303dfa
MS
875 status = "disabled";
876 interrupt-parent = <&gic>;
877 interrupts = <0 21 4>;
b976fd63 878 reg = <0x0 0xff000000 0x0 0x1000>;
44303dfa 879 clock-names = "uart_clk", "pclk";
8f4e3972 880 power-domains = <&pd_uart0>;
44303dfa
MS
881 };
882
883 uart1: serial@ff010000 {
c9811e14 884 u-boot,dm-pre-reloc;
ca2f5878 885 compatible = "cdns,uart-r1p12", "xlnx,xuartps";
44303dfa
MS
886 status = "disabled";
887 interrupt-parent = <&gic>;
888 interrupts = <0 22 4>;
b976fd63 889 reg = <0x0 0xff010000 0x0 0x1000>;
44303dfa 890 clock-names = "uart_clk", "pclk";
8f4e3972 891 power-domains = <&pd_uart1>;
44303dfa
MS
892 };
893
c926e6fb 894 usb0: usb0 {
a84de48e 895 #address-cells = <2>;
b976fd63 896 #size-cells = <2>;
44303dfa 897 status = "disabled";
a84de48e
MS
898 compatible = "xlnx,zynqmp-dwc3";
899 clock-names = "bus_clk", "ref_clk";
900 clocks = <&clk125>, <&clk125>;
ba6ad317
MS
901 #stream-id-cells = <1>;
902 iommus = <&smmu 0x860>;
8f4e3972 903 power-domains = <&pd_usb0>;
a84de48e
MS
904 ranges;
905
906 dwc3_0: dwc3@fe200000 {
907 compatible = "snps,dwc3";
908 status = "disabled";
b976fd63 909 reg = <0x0 0xfe200000 0x0 0x40000>;
a84de48e
MS
910 interrupt-parent = <&gic>;
911 interrupts = <0 65 4>;
912 /* snps,quirk-frame-length-adjustment = <0x20>; */
913 snps,refclk_fladj;
914 };
44303dfa
MS
915 };
916
c926e6fb 917 usb1: usb1 {
a84de48e 918 #address-cells = <2>;
b976fd63 919 #size-cells = <2>;
44303dfa 920 status = "disabled";
a84de48e
MS
921 compatible = "xlnx,zynqmp-dwc3";
922 clock-names = "bus_clk", "ref_clk";
923 clocks = <&clk125>, <&clk125>;
ba6ad317
MS
924 #stream-id-cells = <1>;
925 iommus = <&smmu 0x861>;
8f4e3972 926 power-domains = <&pd_usb1>;
a84de48e
MS
927 ranges;
928
929 dwc3_1: dwc3@fe300000 {
930 compatible = "snps,dwc3";
931 status = "disabled";
b976fd63 932 reg = <0x0 0xfe300000 0x0 0x40000>;
a84de48e
MS
933 interrupt-parent = <&gic>;
934 interrupts = <0 70 4>;
935 /* snps,quirk-frame-length-adjustment = <0x20>; */
936 snps,refclk_fladj;
937 };
44303dfa
MS
938 };
939
940 watchdog0: watchdog@fd4d0000 {
941 compatible = "cdns,wdt-r1p2";
942 status = "disabled";
943 interrupt-parent = <&gic>;
d3fd433f 944 interrupts = <0 113 1>;
b976fd63 945 reg = <0x0 0xfd4d0000 0x0 0x1000>;
44303dfa
MS
946 timeout-sec = <10>;
947 };
948
949 xilinx_drm: xilinx_drm {
950 compatible = "xlnx,drm";
951 status = "disabled";
952 xlnx,encoder-slave = <&xlnx_dp>;
953 xlnx,connector-type = "DisplayPort";
954 xlnx,dp-sub = <&xlnx_dp_sub>;
955 planes {
956 xlnx,pixel-format = "rgb565";
957 plane0 {
958 dmas = <&xlnx_dpdma 3>;
bfe27980 959 dma-names = "dma0";
44303dfa
MS
960 };
961 plane1 {
bfe27980
HK
962 dmas = <&xlnx_dpdma 0>,
963 <&xlnx_dpdma 1>,
964 <&xlnx_dpdma 2>;
965 dma-names = "dma0", "dma1", "dma2";
44303dfa
MS
966 };
967 };
968 };
969
695d75a1 970 xlnx_dp: dp@fd4a0000 {
44303dfa
MS
971 compatible = "xlnx,v-dp";
972 status = "disabled";
b976fd63 973 reg = <0x0 0xfd4a0000 0x0 0x1000>;
44303dfa
MS
974 interrupts = <0 119 4>;
975 interrupt-parent = <&gic>;
976 clock-names = "aclk", "aud_clk";
977 xlnx,dp-version = "v1.2";
978 xlnx,max-lanes = <2>;
979 xlnx,max-link-rate = <540000>;
980 xlnx,max-bpc = <16>;
981 xlnx,enable-ycrcb;
982 xlnx,colormetry = "rgb";
983 xlnx,bpc = <8>;
984 xlnx,audio-chan = <2>;
985 xlnx,dp-sub = <&xlnx_dp_sub>;
939cfeaf 986 xlnx,max-pclock-frequency = <300000>;
44303dfa
MS
987 };
988
989 xlnx_dp_snd_card: dp_snd_card {
990 compatible = "xlnx,dp-snd-card";
991 status = "disabled";
992 xlnx,dp-snd-pcm = <&xlnx_dp_snd_pcm0>, <&xlnx_dp_snd_pcm1>;
993 xlnx,dp-snd-codec = <&xlnx_dp_snd_codec0>;
994 };
995
996 xlnx_dp_snd_codec0: dp_snd_codec0 {
997 compatible = "xlnx,dp-snd-codec";
998 status = "disabled";
999 clock-names = "aud_clk";
1000 };
1001
1002 xlnx_dp_snd_pcm0: dp_snd_pcm0 {
1003 compatible = "xlnx,dp-snd-pcm";
1004 status = "disabled";
1005 dmas = <&xlnx_dpdma 4>;
1006 dma-names = "tx";
1007 };
1008
1009 xlnx_dp_snd_pcm1: dp_snd_pcm1 {
1010 compatible = "xlnx,dp-snd-pcm";
1011 status = "disabled";
1012 dmas = <&xlnx_dpdma 5>;
1013 dma-names = "tx";
1014 };
1015
695d75a1 1016 xlnx_dp_sub: dp_sub@fd4aa000 {
44303dfa
MS
1017 compatible = "xlnx,dp-sub";
1018 status = "disabled";
b976fd63
MS
1019 reg = <0x0 0xfd4aa000 0x0 0x1000>,
1020 <0x0 0xfd4ab000 0x0 0x1000>,
1021 <0x0 0xfd4ac000 0x0 0x1000>;
44303dfa
MS
1022 reg-names = "blend", "av_buf", "aud";
1023 xlnx,output-fmt = "rgb";
939cfeaf
HK
1024 xlnx,vid-fmt = "yuyv";
1025 xlnx,gfx-fmt = "rgb565";
44303dfa
MS
1026 };
1027
1028 xlnx_dpdma: dma@fd4c0000 {
1029 compatible = "xlnx,dpdma";
1030 status = "disabled";
b976fd63 1031 reg = <0x0 0xfd4c0000 0x0 0x1000>;
44303dfa
MS
1032 interrupts = <0 122 4>;
1033 interrupt-parent = <&gic>;
1034 clock-names = "axi_clk";
1035 dma-channels = <6>;
1036 #dma-cells = <1>;
c926e6fb 1037 dma-video0channel {
44303dfa
MS
1038 compatible = "xlnx,video0";
1039 };
c926e6fb 1040 dma-video1channel {
44303dfa
MS
1041 compatible = "xlnx,video1";
1042 };
c926e6fb 1043 dma-video2channel {
44303dfa
MS
1044 compatible = "xlnx,video2";
1045 };
c926e6fb 1046 dma-graphicschannel {
44303dfa
MS
1047 compatible = "xlnx,graphics";
1048 };
c926e6fb 1049 dma-audio0channel {
44303dfa
MS
1050 compatible = "xlnx,audio0";
1051 };
c926e6fb 1052 dma-audio1channel {
44303dfa
MS
1053 compatible = "xlnx,audio1";
1054 };
1055 };
1056 };
1057};