blob: 8abaf1fbb3194f1d6a71fef669f9f52d90a4a0ef [file] [log] [blame]
Michal Simek44303df2015-10-30 15:39:18 +01001/*
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>;
Michal Simek85d11422016-04-07 15:07:38 +020013 #size-cells = <2>;
Michal Simek44303df2015-10-30 15:39:18 +010014
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
Michal Simek69d09dd2016-09-09 08:46:39 +020048 dcc: dcc {
49 compatible = "arm,dcc";
50 status = "disabled";
51 u-boot,dm-pre-reloc;
52 };
53
Soren Brinkmann8f4e3972016-01-11 15:34:42 -080054 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 };
Filip Drazic2af39322016-08-29 19:32:56 +0200192
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>;
Filip Drazica4d7d562016-08-29 19:32:59 +0200200 pd-id = <0x3a 0x14 0x15>;
Filip Drazic2af39322016-08-29 19:32:56 +0200201 };
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800202 };
203
Michal Simek44303df2015-10-30 15:39:18 +0100204 pmu {
205 compatible = "arm,armv8-pmuv3";
Michal Simek14cd9ea2016-04-07 15:28:33 +0200206 interrupt-parent = <&gic>;
Michal Simek44303df2015-10-30 15:39:18 +0100207 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
Michal Simekc926e6f2016-11-11 13:21:04 +0100232 amba_apu: amba_apu@0 {
Michal Simek44303df2015-10-30 15:39:18 +0100233 compatible = "simple-bus";
234 #address-cells = <2>;
235 #size-cells = <1>;
Michal Simek85d11422016-04-07 15:07:38 +0200236 ranges = <0 0 0 0 0xffffffff>;
Michal Simek44303df2015-10-30 15:39:18 +0100237
238 gic: interrupt-controller@f9010000 {
239 compatible = "arm,gic-400", "arm,cortex-a15-gic";
240 #interrupt-cells = <3>;
241 reg = <0x0 0xf9010000 0x10000>,
Alexander Graf0a8c4f62016-05-12 13:44:01 +0200242 <0x0 0xf9020000 0x20000>,
Michal Simek44303df2015-10-30 15:39:18 +0100243 <0x0 0xf9040000 0x20000>,
Alexander Graf0a8c4f62016-05-12 13:44:01 +0200244 <0x0 0xf9060000 0x20000>;
Michal Simek44303df2015-10-30 15:39:18 +0100245 interrupt-controller;
246 interrupt-parent = <&gic>;
247 interrupts = <1 9 0xf04>;
248 };
249 };
250
Michal Simekc926e6f2016-11-11 13:21:04 +0100251 amba: amba@0 {
Michal Simek44303df2015-10-30 15:39:18 +0100252 compatible = "simple-bus";
Michal Simekc9811e12016-02-22 09:57:27 +0100253 u-boot,dm-pre-reloc;
Michal Simek44303df2015-10-30 15:39:18 +0100254 #address-cells = <2>;
255 #size-cells = <1>;
Michal Simek85d11422016-04-07 15:07:38 +0200256 ranges = <0 0 0 0 0xffffffff>;
Michal Simek44303df2015-10-30 15:39:18 +0100257
258 can0: can@ff060000 {
259 compatible = "xlnx,zynq-can-1.0";
260 status = "disabled";
261 clock-names = "can_clk", "pclk";
262 reg = <0x0 0xff060000 0x1000>;
263 interrupts = <0 23 4>;
264 interrupt-parent = <&gic>;
265 tx-fifo-depth = <0x40>;
266 rx-fifo-depth = <0x40>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800267 power-domains = <&pd_can0>;
Michal Simek44303df2015-10-30 15:39:18 +0100268 };
269
270 can1: can@ff070000 {
271 compatible = "xlnx,zynq-can-1.0";
272 status = "disabled";
273 clock-names = "can_clk", "pclk";
274 reg = <0x0 0xff070000 0x1000>;
275 interrupts = <0 24 4>;
276 interrupt-parent = <&gic>;
277 tx-fifo-depth = <0x40>;
278 rx-fifo-depth = <0x40>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800279 power-domains = <&pd_can1>;
Michal Simek44303df2015-10-30 15:39:18 +0100280 };
281
Michal Simekff50d212015-11-26 11:21:25 +0100282 cci: cci@fd6e0000 {
283 compatible = "arm,cci-400";
284 reg = <0x0 0xfd6e0000 0x9000>;
285 ranges = <0x0 0x0 0xfd6e0000 0x10000>;
286 #address-cells = <1>;
287 #size-cells = <1>;
288
289 pmu@9000 {
290 compatible = "arm,cci-400-pmu,r1";
291 reg = <0x9000 0x5000>;
292 interrupt-parent = <&gic>;
293 interrupts = <0 123 4>,
294 <0 123 4>,
295 <0 123 4>,
296 <0 123 4>,
297 <0 123 4>;
298 };
299 };
300
Michal Simek44303df2015-10-30 15:39:18 +0100301 /* GDMA */
302 fpd_dma_chan1: dma@fd500000 {
303 status = "disabled";
304 compatible = "xlnx,zynqmp-dma-1.0";
305 reg = <0x0 0xfd500000 0x1000>;
306 interrupt-parent = <&gic>;
307 interrupts = <0 124 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530308 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100309 xlnx,id = <0>;
310 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800311 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100312 };
313
314 fpd_dma_chan2: dma@fd510000 {
315 status = "disabled";
316 compatible = "xlnx,zynqmp-dma-1.0";
317 reg = <0x0 0xfd510000 0x1000>;
318 interrupt-parent = <&gic>;
319 interrupts = <0 125 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530320 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100321 xlnx,id = <1>;
322 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800323 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100324 };
325
326 fpd_dma_chan3: dma@fd520000 {
327 status = "disabled";
328 compatible = "xlnx,zynqmp-dma-1.0";
329 reg = <0x0 0xfd520000 0x1000>;
330 interrupt-parent = <&gic>;
331 interrupts = <0 126 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530332 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100333 xlnx,id = <2>;
334 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800335 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100336 };
337
338 fpd_dma_chan4: dma@fd530000 {
339 status = "disabled";
340 compatible = "xlnx,zynqmp-dma-1.0";
341 reg = <0x0 0xfd530000 0x1000>;
342 interrupt-parent = <&gic>;
343 interrupts = <0 127 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530344 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100345 xlnx,id = <3>;
346 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800347 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100348 };
349
350 fpd_dma_chan5: dma@fd540000 {
351 status = "disabled";
352 compatible = "xlnx,zynqmp-dma-1.0";
353 reg = <0x0 0xfd540000 0x1000>;
354 interrupt-parent = <&gic>;
355 interrupts = <0 128 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530356 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100357 xlnx,id = <4>;
358 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800359 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100360 };
361
362 fpd_dma_chan6: dma@fd550000 {
363 status = "disabled";
364 compatible = "xlnx,zynqmp-dma-1.0";
365 reg = <0x0 0xfd550000 0x1000>;
366 interrupt-parent = <&gic>;
367 interrupts = <0 129 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530368 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100369 xlnx,id = <5>;
370 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800371 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100372 };
373
374 fpd_dma_chan7: dma@fd560000 {
375 status = "disabled";
376 compatible = "xlnx,zynqmp-dma-1.0";
377 reg = <0x0 0xfd560000 0x1000>;
378 interrupt-parent = <&gic>;
379 interrupts = <0 130 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530380 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100381 xlnx,id = <6>;
382 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800383 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100384 };
385
386 fpd_dma_chan8: dma@fd570000 {
387 status = "disabled";
388 compatible = "xlnx,zynqmp-dma-1.0";
389 reg = <0x0 0xfd570000 0x1000>;
390 interrupt-parent = <&gic>;
391 interrupts = <0 131 4>;
VNSL Durgab34d11d2016-03-24 22:45:12 +0530392 clock-names = "clk_main", "clk_apb";
Michal Simek44303df2015-10-30 15:39:18 +0100393 xlnx,id = <7>;
394 xlnx,bus-width = <128>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800395 power-domains = <&pd_gdma>;
Michal Simek44303df2015-10-30 15:39:18 +0100396 };
397
398 gpu: gpu@fd4b0000 {
399 status = "disabled";
400 compatible = "arm,mali-400", "arm,mali-utgard";
401 reg = <0x0 0xfd4b0000 0x30000>;
402 interrupt-parent = <&gic>;
403 interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
404 interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
Filip Drazic2af39322016-08-29 19:32:56 +0200405 power-domains = <&pd_gpu>;
Michal Simek44303df2015-10-30 15:39:18 +0100406 };
407
408 /* ADMA */
409 lpd_dma_chan1: dma@ffa80000 {
410 status = "disabled";
411 compatible = "xlnx,zynqmp-dma-1.0";
412 reg = <0x0 0xffa80000 0x1000>;
413 interrupt-parent = <&gic>;
414 interrupts = <0 77 4>;
415 xlnx,id = <0>;
416 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800417 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100418 };
419
420 lpd_dma_chan2: dma@ffa90000 {
421 status = "disabled";
422 compatible = "xlnx,zynqmp-dma-1.0";
423 reg = <0x0 0xffa90000 0x1000>;
424 interrupt-parent = <&gic>;
425 interrupts = <0 78 4>;
426 xlnx,id = <1>;
427 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800428 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100429 };
430
431 lpd_dma_chan3: dma@ffaa0000 {
432 status = "disabled";
433 compatible = "xlnx,zynqmp-dma-1.0";
434 reg = <0x0 0xffaa0000 0x1000>;
435 interrupt-parent = <&gic>;
436 interrupts = <0 79 4>;
437 xlnx,id = <2>;
438 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800439 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100440 };
441
442 lpd_dma_chan4: dma@ffab0000 {
443 status = "disabled";
444 compatible = "xlnx,zynqmp-dma-1.0";
445 reg = <0x0 0xffab0000 0x1000>;
446 interrupt-parent = <&gic>;
447 interrupts = <0 80 4>;
448 xlnx,id = <3>;
449 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800450 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100451 };
452
453 lpd_dma_chan5: dma@ffac0000 {
454 status = "disabled";
455 compatible = "xlnx,zynqmp-dma-1.0";
456 reg = <0x0 0xffac0000 0x1000>;
457 interrupt-parent = <&gic>;
458 interrupts = <0 81 4>;
459 xlnx,id = <4>;
460 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800461 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100462 };
463
464 lpd_dma_chan6: dma@ffad0000 {
465 status = "disabled";
466 compatible = "xlnx,zynqmp-dma-1.0";
467 reg = <0x0 0xffad0000 0x1000>;
468 interrupt-parent = <&gic>;
469 interrupts = <0 82 4>;
470 xlnx,id = <5>;
471 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800472 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100473 };
474
475 lpd_dma_chan7: dma@ffae0000 {
476 status = "disabled";
477 compatible = "xlnx,zynqmp-dma-1.0";
478 reg = <0x0 0xffae0000 0x1000>;
479 interrupt-parent = <&gic>;
480 interrupts = <0 83 4>;
481 xlnx,id = <6>;
482 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800483 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100484 };
485
486 lpd_dma_chan8: dma@ffaf0000 {
487 status = "disabled";
488 compatible = "xlnx,zynqmp-dma-1.0";
489 reg = <0x0 0xffaf0000 0x1000>;
490 interrupt-parent = <&gic>;
491 interrupts = <0 84 4>;
492 xlnx,id = <7>;
493 xlnx,bus-width = <64>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800494 power-domains = <&pd_adma>;
Michal Simek44303df2015-10-30 15:39:18 +0100495 };
496
Naga Sureshkumar Relli90869002016-03-11 13:10:26 +0530497 mc: memory-controller@fd070000 {
498 compatible = "xlnx,zynqmp-ddrc-2.40a";
499 reg = <0x0 0xfd070000 0x30000>;
500 interrupt-parent = <&gic>;
501 interrupts = <0 112 4>;
502 };
503
Michal Simek44303df2015-10-30 15:39:18 +0100504 nand0: nand@ff100000 {
505 compatible = "arasan,nfc-v3p10";
506 status = "disabled";
507 reg = <0x0 0xff100000 0x1000>;
508 clock-names = "clk_sys", "clk_flash";
509 interrupt-parent = <&gic>;
510 interrupts = <0 14 4>;
511 #address-cells = <2>;
512 #size-cells = <1>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800513 power-domains = <&pd_nand>;
Michal Simek44303df2015-10-30 15:39:18 +0100514 };
515
516 gem0: ethernet@ff0b0000 {
Michal Simekda2ad782016-02-11 15:26:46 +0100517 compatible = "cdns,zynqmp-gem";
Michal Simek44303df2015-10-30 15:39:18 +0100518 status = "disabled";
519 interrupt-parent = <&gic>;
520 interrupts = <0 57 4>, <0 57 4>;
521 reg = <0x0 0xff0b0000 0x1000>;
522 clock-names = "pclk", "hclk", "tx_clk";
523 #address-cells = <1>;
524 #size-cells = <0>;
Edgar E. Iglesias7f1d7d92015-11-26 14:12:20 +0100525 #stream-id-cells = <1>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800526 power-domains = <&pd_eth0>;
Michal Simek44303df2015-10-30 15:39:18 +0100527 };
528
529 gem1: ethernet@ff0c0000 {
Michal Simekda2ad782016-02-11 15:26:46 +0100530 compatible = "cdns,zynqmp-gem";
Michal Simek44303df2015-10-30 15:39:18 +0100531 status = "disabled";
532 interrupt-parent = <&gic>;
533 interrupts = <0 59 4>, <0 59 4>;
534 reg = <0x0 0xff0c0000 0x1000>;
535 clock-names = "pclk", "hclk", "tx_clk";
536 #address-cells = <1>;
537 #size-cells = <0>;
Edgar E. Iglesias7f1d7d92015-11-26 14:12:20 +0100538 #stream-id-cells = <1>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800539 power-domains = <&pd_eth1>;
Michal Simek44303df2015-10-30 15:39:18 +0100540 };
541
542 gem2: ethernet@ff0d0000 {
Michal Simekda2ad782016-02-11 15:26:46 +0100543 compatible = "cdns,zynqmp-gem";
Michal Simek44303df2015-10-30 15:39:18 +0100544 status = "disabled";
545 interrupt-parent = <&gic>;
546 interrupts = <0 61 4>, <0 61 4>;
547 reg = <0x0 0xff0d0000 0x1000>;
548 clock-names = "pclk", "hclk", "tx_clk";
549 #address-cells = <1>;
550 #size-cells = <0>;
Edgar E. Iglesias7f1d7d92015-11-26 14:12:20 +0100551 #stream-id-cells = <1>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800552 power-domains = <&pd_eth2>;
Michal Simek44303df2015-10-30 15:39:18 +0100553 };
554
555 gem3: ethernet@ff0e0000 {
Michal Simekda2ad782016-02-11 15:26:46 +0100556 compatible = "cdns,zynqmp-gem";
Michal Simek44303df2015-10-30 15:39:18 +0100557 status = "disabled";
558 interrupt-parent = <&gic>;
559 interrupts = <0 63 4>, <0 63 4>;
560 reg = <0x0 0xff0e0000 0x1000>;
561 clock-names = "pclk", "hclk", "tx_clk";
562 #address-cells = <1>;
563 #size-cells = <0>;
Edgar E. Iglesias7f1d7d92015-11-26 14:12:20 +0100564 #stream-id-cells = <1>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800565 power-domains = <&pd_eth3>;
Michal Simek44303df2015-10-30 15:39:18 +0100566 };
567
568 gpio: gpio@ff0a0000 {
569 compatible = "xlnx,zynqmp-gpio-1.0";
570 status = "disabled";
571 #gpio-cells = <0x2>;
Michal Simek7c38ca32015-11-23 13:26:15 +0100572 #interrupt-cells = <2>;
573 interrupt-controller;
Michal Simek44303df2015-10-30 15:39:18 +0100574 interrupt-parent = <&gic>;
575 interrupts = <0 16 4>;
576 reg = <0x0 0xff0a0000 0x1000>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800577 power-domains = <&pd_gpio>;
Michal Simek44303df2015-10-30 15:39:18 +0100578 };
579
580 i2c0: i2c@ff020000 {
581 compatible = "cdns,i2c-r1p10";
582 status = "disabled";
583 interrupt-parent = <&gic>;
584 interrupts = <0 17 4>;
585 reg = <0x0 0xff020000 0x1000>;
586 #address-cells = <1>;
587 #size-cells = <0>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800588 power-domains = <&pd_i2c0>;
Michal Simek44303df2015-10-30 15:39:18 +0100589 };
590
591 i2c1: i2c@ff030000 {
592 compatible = "cdns,i2c-r1p10";
593 status = "disabled";
594 interrupt-parent = <&gic>;
595 interrupts = <0 18 4>;
596 reg = <0x0 0xff030000 0x1000>;
597 #address-cells = <1>;
598 #size-cells = <0>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800599 power-domains = <&pd_i2c1>;
Michal Simek44303df2015-10-30 15:39:18 +0100600 };
601
602 pcie: pcie@fd0e0000 {
603 compatible = "xlnx,nwl-pcie-2.11";
604 status = "disabled";
605 #address-cells = <3>;
606 #size-cells = <2>;
607 #interrupt-cells = <1>;
Bharat Kumar Gogada7d6ca732016-07-19 20:49:29 +0530608 msi-controller;
Michal Simek44303df2015-10-30 15:39:18 +0100609 device_type = "pci";
610 interrupt-parent = <&gic>;
Michal Simek91a8b0e2016-01-20 12:59:23 +0100611 interrupts = <0 118 4>,
Bharat Kumar Gogada7d6ca732016-07-19 20:49:29 +0530612 <0 117 4>,
Michal Simek91a8b0e2016-01-20 12:59:23 +0100613 <0 116 4>,
614 <0 115 4>, /* MSI_1 [63...32] */
615 <0 114 4>; /* MSI_0 [31...0] */
Bharat Kumar Gogada7d6ca732016-07-19 20:49:29 +0530616 interrupt-names = "misc","dummy","intx", "msi1", "msi0";
617 msi-parent = <&pcie>;
Michal Simek44303df2015-10-30 15:39:18 +0100618 reg = <0x0 0xfd0e0000 0x1000>,
619 <0x0 0xfd480000 0x1000>,
620 <0x0 0xe0000000 0x1000000>;
621 reg-names = "breg", "pcireg", "cfg";
622 ranges = <0x02000000 0x00000000 0xe1000000 0x00000000 0xe1000000 0 0x0f000000>;
Bharat Kumar Gogada33aec512016-02-15 21:18:58 +0530623 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
624 interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
625 <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
626 <0x0 0x0 0x0 0x3 &pcie_intc 0x3>,
627 <0x0 0x0 0x0 0x4 &pcie_intc 0x4>;
Filip Drazic2af39322016-08-29 19:32:56 +0200628 power-domains = <&pd_pcie>;
Bharat Kumar Gogada33aec512016-02-15 21:18:58 +0530629 pcie_intc: legacy-interrupt-controller {
630 interrupt-controller;
631 #address-cells = <0>;
632 #interrupt-cells = <1>;
633 };
Michal Simek44303df2015-10-30 15:39:18 +0100634 };
635
636 qspi: spi@ff0f0000 {
637 compatible = "xlnx,zynqmp-qspi-1.0";
638 status = "disabled";
639 clock-names = "ref_clk", "pclk";
640 interrupts = <0 15 4>;
641 interrupt-parent = <&gic>;
642 num-cs = <1>;
Michal Simekc588d152016-04-07 15:01:33 +0200643 reg = <0x0 0xff0f0000 0x1000>,
644 <0x0 0xc0000000 0x8000000>;
Michal Simek44303df2015-10-30 15:39:18 +0100645 #address-cells = <1>;
646 #size-cells = <0>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800647 power-domains = <&pd_qspi>;
Michal Simek44303df2015-10-30 15:39:18 +0100648 };
649
650 rtc: rtc@ffa60000 {
651 compatible = "xlnx,zynqmp-rtc";
652 status = "disabled";
653 reg = <0x0 0xffa60000 0x100>;
654 interrupt-parent = <&gic>;
655 interrupts = <0 26 4>, <0 27 4>;
656 interrupt-names = "alarm", "sec";
657 };
658
659 sata: ahci@fd0c0000 {
660 compatible = "ceva,ahci-1v84";
661 status = "disabled";
662 reg = <0x0 0xfd0c0000 0x2000>;
663 interrupt-parent = <&gic>;
664 interrupts = <0 133 4>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800665 power-domains = <&pd_sata>;
Michal Simek44303df2015-10-30 15:39:18 +0100666 };
667
668 sdhci0: sdhci@ff160000 {
Michal Simekc9811e12016-02-22 09:57:27 +0100669 u-boot,dm-pre-reloc;
Michal Simek44303df2015-10-30 15:39:18 +0100670 compatible = "arasan,sdhci-8.9a";
671 status = "disabled";
672 interrupt-parent = <&gic>;
673 interrupts = <0 48 4>;
674 reg = <0x0 0xff160000 0x1000>;
675 clock-names = "clk_xin", "clk_ahb";
P L Sai Krishnabd750e72016-01-19 19:01:10 +0530676 broken-tuning;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800677 power-domains = <&pd_sd0>;
Michal Simek44303df2015-10-30 15:39:18 +0100678 };
679
680 sdhci1: sdhci@ff170000 {
Michal Simekc9811e12016-02-22 09:57:27 +0100681 u-boot,dm-pre-reloc;
Michal Simek44303df2015-10-30 15:39:18 +0100682 compatible = "arasan,sdhci-8.9a";
683 status = "disabled";
684 interrupt-parent = <&gic>;
685 interrupts = <0 49 4>;
686 reg = <0x0 0xff170000 0x1000>;
687 clock-names = "clk_xin", "clk_ahb";
P L Sai Krishnabd750e72016-01-19 19:01:10 +0530688 broken-tuning;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800689 power-domains = <&pd_sd1>;
Michal Simek44303df2015-10-30 15:39:18 +0100690 };
691
692 smmu: smmu@fd800000 {
693 compatible = "arm,mmu-500";
694 reg = <0x0 0xfd800000 0x20000>;
695 #global-interrupts = <1>;
696 interrupt-parent = <&gic>;
Edgar E. Iglesias88a85aa2015-11-26 14:12:19 +0100697 interrupts = <0 155 4>,
698 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
699 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
700 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
701 <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
Edgar E. Iglesias7f1d7d92015-11-26 14:12:20 +0100702 mmu-masters = < &gem0 0x874
703 &gem1 0x875
704 &gem2 0x876
705 &gem3 0x877 >;
Michal Simek44303df2015-10-30 15:39:18 +0100706 };
707
708 spi0: spi@ff040000 {
709 compatible = "cdns,spi-r1p6";
710 status = "disabled";
711 interrupt-parent = <&gic>;
712 interrupts = <0 19 4>;
713 reg = <0x0 0xff040000 0x1000>;
714 clock-names = "ref_clk", "pclk";
715 #address-cells = <1>;
716 #size-cells = <0>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800717 power-domains = <&pd_spi0>;
Michal Simek44303df2015-10-30 15:39:18 +0100718 };
719
720 spi1: spi@ff050000 {
721 compatible = "cdns,spi-r1p6";
722 status = "disabled";
723 interrupt-parent = <&gic>;
724 interrupts = <0 20 4>;
725 reg = <0x0 0xff050000 0x1000>;
726 clock-names = "ref_clk", "pclk";
727 #address-cells = <1>;
728 #size-cells = <0>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800729 power-domains = <&pd_spi1>;
Michal Simek44303df2015-10-30 15:39:18 +0100730 };
731
732 ttc0: timer@ff110000 {
733 compatible = "cdns,ttc";
734 status = "disabled";
735 interrupt-parent = <&gic>;
736 interrupts = <0 36 4>, <0 37 4>, <0 38 4>;
737 reg = <0x0 0xff110000 0x1000>;
738 timer-width = <32>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800739 power-domains = <&pd_ttc0>;
Michal Simek44303df2015-10-30 15:39:18 +0100740 };
741
742 ttc1: timer@ff120000 {
743 compatible = "cdns,ttc";
744 status = "disabled";
745 interrupt-parent = <&gic>;
746 interrupts = <0 39 4>, <0 40 4>, <0 41 4>;
747 reg = <0x0 0xff120000 0x1000>;
748 timer-width = <32>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800749 power-domains = <&pd_ttc1>;
Michal Simek44303df2015-10-30 15:39:18 +0100750 };
751
752 ttc2: timer@ff130000 {
753 compatible = "cdns,ttc";
754 status = "disabled";
755 interrupt-parent = <&gic>;
756 interrupts = <0 42 4>, <0 43 4>, <0 44 4>;
757 reg = <0x0 0xff130000 0x1000>;
758 timer-width = <32>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800759 power-domains = <&pd_ttc2>;
Michal Simek44303df2015-10-30 15:39:18 +0100760 };
761
762 ttc3: timer@ff140000 {
763 compatible = "cdns,ttc";
764 status = "disabled";
765 interrupt-parent = <&gic>;
766 interrupts = <0 45 4>, <0 46 4>, <0 47 4>;
767 reg = <0x0 0xff140000 0x1000>;
768 timer-width = <32>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800769 power-domains = <&pd_ttc3>;
Michal Simek44303df2015-10-30 15:39:18 +0100770 };
771
772 uart0: serial@ff000000 {
Michal Simekc9811e12016-02-22 09:57:27 +0100773 u-boot,dm-pre-reloc;
Michal Simekca2f5872015-11-27 13:22:58 +0100774 compatible = "cdns,uart-r1p12", "xlnx,xuartps";
Michal Simek44303df2015-10-30 15:39:18 +0100775 status = "disabled";
776 interrupt-parent = <&gic>;
777 interrupts = <0 21 4>;
778 reg = <0x0 0xff000000 0x1000>;
779 clock-names = "uart_clk", "pclk";
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800780 power-domains = <&pd_uart0>;
Michal Simek44303df2015-10-30 15:39:18 +0100781 };
782
783 uart1: serial@ff010000 {
Michal Simekc9811e12016-02-22 09:57:27 +0100784 u-boot,dm-pre-reloc;
Michal Simekca2f5872015-11-27 13:22:58 +0100785 compatible = "cdns,uart-r1p12", "xlnx,xuartps";
Michal Simek44303df2015-10-30 15:39:18 +0100786 status = "disabled";
787 interrupt-parent = <&gic>;
788 interrupts = <0 22 4>;
789 reg = <0x0 0xff010000 0x1000>;
790 clock-names = "uart_clk", "pclk";
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800791 power-domains = <&pd_uart1>;
Michal Simek44303df2015-10-30 15:39:18 +0100792 };
793
Michal Simekc926e6f2016-11-11 13:21:04 +0100794 usb0: usb0 {
Michal Simeka84de482016-04-07 15:06:07 +0200795 #address-cells = <2>;
796 #size-cells = <1>;
Michal Simek44303df2015-10-30 15:39:18 +0100797 status = "disabled";
Michal Simeka84de482016-04-07 15:06:07 +0200798 compatible = "xlnx,zynqmp-dwc3";
799 clock-names = "bus_clk", "ref_clk";
800 clocks = <&clk125>, <&clk125>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800801 power-domains = <&pd_usb0>;
Michal Simeka84de482016-04-07 15:06:07 +0200802 ranges;
803
804 dwc3_0: dwc3@fe200000 {
805 compatible = "snps,dwc3";
806 status = "disabled";
807 reg = <0x0 0xfe200000 0x40000>;
808 interrupt-parent = <&gic>;
809 interrupts = <0 65 4>;
810 /* snps,quirk-frame-length-adjustment = <0x20>; */
811 snps,refclk_fladj;
812 };
Michal Simek44303df2015-10-30 15:39:18 +0100813 };
814
Michal Simekc926e6f2016-11-11 13:21:04 +0100815 usb1: usb1 {
Michal Simeka84de482016-04-07 15:06:07 +0200816 #address-cells = <2>;
817 #size-cells = <1>;
Michal Simek44303df2015-10-30 15:39:18 +0100818 status = "disabled";
Michal Simeka84de482016-04-07 15:06:07 +0200819 compatible = "xlnx,zynqmp-dwc3";
820 clock-names = "bus_clk", "ref_clk";
821 clocks = <&clk125>, <&clk125>;
Soren Brinkmann8f4e3972016-01-11 15:34:42 -0800822 power-domains = <&pd_usb1>;
Michal Simeka84de482016-04-07 15:06:07 +0200823 ranges;
824
825 dwc3_1: dwc3@fe300000 {
826 compatible = "snps,dwc3";
827 status = "disabled";
828 reg = <0x0 0xfe300000 0x40000>;
829 interrupt-parent = <&gic>;
830 interrupts = <0 70 4>;
831 /* snps,quirk-frame-length-adjustment = <0x20>; */
832 snps,refclk_fladj;
833 };
Michal Simek44303df2015-10-30 15:39:18 +0100834 };
835
836 watchdog0: watchdog@fd4d0000 {
837 compatible = "cdns,wdt-r1p2";
838 status = "disabled";
839 interrupt-parent = <&gic>;
Punnaiah Choudary Kallurid3fd4332015-11-04 12:34:17 +0530840 interrupts = <0 113 1>;
Michal Simek44303df2015-10-30 15:39:18 +0100841 reg = <0x0 0xfd4d0000 0x1000>;
842 timeout-sec = <10>;
843 };
844
845 xilinx_drm: xilinx_drm {
846 compatible = "xlnx,drm";
847 status = "disabled";
848 xlnx,encoder-slave = <&xlnx_dp>;
849 xlnx,connector-type = "DisplayPort";
850 xlnx,dp-sub = <&xlnx_dp_sub>;
851 planes {
852 xlnx,pixel-format = "rgb565";
853 plane0 {
854 dmas = <&xlnx_dpdma 3>;
855 dma-names = "dma";
856 };
857 plane1 {
858 dmas = <&xlnx_dpdma 0>;
859 dma-names = "dma";
860 };
861 };
862 };
863
Hyun Kwon695d75a2015-11-23 17:12:54 -0800864 xlnx_dp: dp@fd4a0000 {
Michal Simek44303df2015-10-30 15:39:18 +0100865 compatible = "xlnx,v-dp";
866 status = "disabled";
Michal Simek786db822016-01-27 19:02:37 +0100867 reg = <0x0 0xfd4a0000 0x1000>,
868 <0x0 0xfd400000 0x20000>;
Michal Simek44303df2015-10-30 15:39:18 +0100869 interrupts = <0 119 4>;
870 interrupt-parent = <&gic>;
871 clock-names = "aclk", "aud_clk";
872 xlnx,dp-version = "v1.2";
873 xlnx,max-lanes = <2>;
874 xlnx,max-link-rate = <540000>;
875 xlnx,max-bpc = <16>;
876 xlnx,enable-ycrcb;
877 xlnx,colormetry = "rgb";
878 xlnx,bpc = <8>;
879 xlnx,audio-chan = <2>;
880 xlnx,dp-sub = <&xlnx_dp_sub>;
Hyun Kwon939cfea2015-11-23 17:12:55 -0800881 xlnx,max-pclock-frequency = <300000>;
Michal Simek44303df2015-10-30 15:39:18 +0100882 };
883
884 xlnx_dp_snd_card: dp_snd_card {
885 compatible = "xlnx,dp-snd-card";
886 status = "disabled";
887 xlnx,dp-snd-pcm = <&xlnx_dp_snd_pcm0>, <&xlnx_dp_snd_pcm1>;
888 xlnx,dp-snd-codec = <&xlnx_dp_snd_codec0>;
889 };
890
891 xlnx_dp_snd_codec0: dp_snd_codec0 {
892 compatible = "xlnx,dp-snd-codec";
893 status = "disabled";
894 clock-names = "aud_clk";
895 };
896
897 xlnx_dp_snd_pcm0: dp_snd_pcm0 {
898 compatible = "xlnx,dp-snd-pcm";
899 status = "disabled";
900 dmas = <&xlnx_dpdma 4>;
901 dma-names = "tx";
902 };
903
904 xlnx_dp_snd_pcm1: dp_snd_pcm1 {
905 compatible = "xlnx,dp-snd-pcm";
906 status = "disabled";
907 dmas = <&xlnx_dpdma 5>;
908 dma-names = "tx";
909 };
910
Hyun Kwon695d75a2015-11-23 17:12:54 -0800911 xlnx_dp_sub: dp_sub@fd4aa000 {
Michal Simek44303df2015-10-30 15:39:18 +0100912 compatible = "xlnx,dp-sub";
913 status = "disabled";
Michal Simekc588d152016-04-07 15:01:33 +0200914 reg = <0x0 0xfd4aa000 0x1000>,
915 <0x0 0xfd4ab000 0x1000>,
916 <0x0 0xfd4ac000 0x1000>;
Michal Simek44303df2015-10-30 15:39:18 +0100917 reg-names = "blend", "av_buf", "aud";
918 xlnx,output-fmt = "rgb";
Hyun Kwon939cfea2015-11-23 17:12:55 -0800919 xlnx,vid-fmt = "yuyv";
920 xlnx,gfx-fmt = "rgb565";
Michal Simek44303df2015-10-30 15:39:18 +0100921 };
922
923 xlnx_dpdma: dma@fd4c0000 {
924 compatible = "xlnx,dpdma";
925 status = "disabled";
926 reg = <0x0 0xfd4c0000 0x1000>;
927 interrupts = <0 122 4>;
928 interrupt-parent = <&gic>;
929 clock-names = "axi_clk";
930 dma-channels = <6>;
931 #dma-cells = <1>;
Michal Simekc926e6f2016-11-11 13:21:04 +0100932 dma-video0channel {
Michal Simek44303df2015-10-30 15:39:18 +0100933 compatible = "xlnx,video0";
934 };
Michal Simekc926e6f2016-11-11 13:21:04 +0100935 dma-video1channel {
Michal Simek44303df2015-10-30 15:39:18 +0100936 compatible = "xlnx,video1";
937 };
Michal Simekc926e6f2016-11-11 13:21:04 +0100938 dma-video2channel {
Michal Simek44303df2015-10-30 15:39:18 +0100939 compatible = "xlnx,video2";
940 };
Michal Simekc926e6f2016-11-11 13:21:04 +0100941 dma-graphicschannel {
Michal Simek44303df2015-10-30 15:39:18 +0100942 compatible = "xlnx,graphics";
943 };
Michal Simekc926e6f2016-11-11 13:21:04 +0100944 dma-audio0channel {
Michal Simek44303df2015-10-30 15:39:18 +0100945 compatible = "xlnx,audio0";
946 };
Michal Simekc926e6f2016-11-11 13:21:04 +0100947 dma-audio1channel {
Michal Simek44303df2015-10-30 15:39:18 +0100948 compatible = "xlnx,audio1";
949 };
950 };
951 };
952};