summaryrefslogtreecommitdiffstats
path: root/conf/machine/boards/common/zynq7-base.dtsi
diff options
context:
space:
mode:
Diffstat (limited to 'conf/machine/boards/common/zynq7-base.dtsi')
-rw-r--r--conf/machine/boards/common/zynq7-base.dtsi494
1 files changed, 494 insertions, 0 deletions
diff --git a/conf/machine/boards/common/zynq7-base.dtsi b/conf/machine/boards/common/zynq7-base.dtsi
new file mode 100644
index 00000000..ab109355
--- /dev/null
+++ b/conf/machine/boards/common/zynq7-base.dtsi
@@ -0,0 +1,494 @@
1/*
2 * Zynq 7000 Base Device Tree (System Peripherals and Configuration)
3 *
4 * To use this base include it in the dts/dtsi which relies on it.
5 * /dts-v1/;
6 * /include/ "zynq7-base.dtsi"
7 * / {
8 * ...
9 *
10 * In order to configure your board specific configuration of the Zynq platform,
11 * or to configure additional devices attached to Zynq peripherals use the base
12 * include and override properties, add subnodes or disable existing
13 * peripherals.
14 *
15 * To disable or invalidate an existing Zynq peripheral:
16 * ...
17 * ps7_axi_interconnect_0: amba@0 {
18 * ps7_usb_1: ps7-usb@e0003000 { compatible = "invalid"; };
19 * } ;
20 * ...
21 *
22 * To override a property of an existing peripheral:
23 * ...
24 * ps7_axi_interconnect_0: amba@0 {
25 * ps7_usb_0: ps7-usb@e0002000 {
26 * dr_mode = "device";
27 * } ;
28 * } ;
29 * ...
30 *
31 * To add an additional subnode (e.g. a device attached to a bus) to an existing
32 * peripheral:
33 * ...
34 * ps7_axi_interconnect_0: amba@0 {
35 * ps7_ethernet_0: ps7-ethernet@e000b000 {
36 * mdio {
37 * phy0: phy@7 {
38 * device_type = "ethernet-phy";
39 * reg = <7>;
40 * } ;
41 * } ;
42 * } ;
43 * } ;
44 * ...
45 *
46 * For more details, or for reference please refer to device trees in the
47 * meta-xilinx layer that use this base tree.
48 */
49
50/ {
51 #address-cells = <0x1>;
52 #size-cells = <0x1>;
53 compatible = "xlnx,zynq-7000";
54 aliases {
55 ethernet0 = &ps7_ethernet_0;
56 ethernet1 = &ps7_ethernet_1;
57 serial0 = &ps7_uart_1;
58 serial1 = &ps7_uart_0;
59 } ;
60 cpus {
61 #address-cells = <1>;
62 #size-cells = <0>;
63 ps7_cortexa9_0: cpu@0 {
64 bus-handle = <&ps7_axi_interconnect_0>;
65 clock-latency = <1000>;
66 clocks = <&clkc 3>;
67 compatible = "arm,cortex-a9";
68 d-cache-line-size = <0x20>;
69 d-cache-size = <0x8000>;
70 device_type = "cpu";
71 i-cache-line-size = <0x20>;
72 i-cache-size = <0x8000>;
73 interrupt-handle = <&ps7_scugic_0>;
74 operating-points = <666667 1000000 333334 1000000 222223 1000000>;
75 reg = <0x0>;
76 } ;
77 ps7_cortexa9_1: cpu@1 {
78 bus-handle = <&ps7_axi_interconnect_0>;
79 clocks = <&clkc 3>;
80 compatible = "arm,cortex-a9";
81 d-cache-line-size = <0x20>;
82 d-cache-size = <0x8000>;
83 device_type = "cpu";
84 i-cache-line-size = <0x20>;
85 i-cache-size = <0x8000>;
86 interrupt-handle = <&ps7_scugic_0>;
87 reg = <0x1>;
88 } ;
89 } ;
90 pmu {
91 compatible = "arm,cortex-a9-pmu";
92 interrupt-parent = <&ps7_scugic_0>;
93 interrupts = <0 5 4>, <0 6 4>;
94 reg = <0xf8891000 0x1000>, <0xf8893000 0x1000>;
95 reg-names = "cpu0", "cpu1";
96 } ;
97 ps7_axi_interconnect_0: amba@0 {
98 #address-cells = <1>;
99 #size-cells = <1>;
100 compatible = "xlnx,ps7-axi-interconnect-1.00.a", "simple-bus";
101 ranges ;
102 ps7_afi_0: ps7-afi@f8008000 {
103 compatible = "xlnx,ps7-afi-1.00.a";
104 reg = <0xf8008000 0x1000>;
105 } ;
106 ps7_afi_1: ps7-afi@f8009000 {
107 compatible = "xlnx,ps7-afi-1.00.a";
108 reg = <0xf8009000 0x1000>;
109 } ;
110 ps7_afi_2: ps7-afi@f800a000 {
111 compatible = "xlnx,ps7-afi-1.00.a";
112 reg = <0xf800a000 0x1000>;
113 } ;
114 ps7_afi_3: ps7-afi@f800b000 {
115 compatible = "xlnx,ps7-afi-1.00.a";
116 reg = <0xf800b000 0x1000>;
117 } ;
118 ps7_scugic_0: ps7-scugic@f8f01000 {
119 #address-cells = <2>;
120 #interrupt-cells = <3>;
121 #size-cells = <1>;
122 compatible = "xlnx,ps7-scugic-1.00.a", "arm,cortex-a9-gic", "arm,gic";
123 interrupt-controller ;
124 num_cpus = <2>;
125 num_interrupts = <96>;
126 reg = <0xf8f01000 0x1000>, <0xf8f00100 0x100>;
127 } ;
128 ps7_pl310_0: ps7-pl310@f8f02000 {
129 compatible = "xlnx,ps7-pl310-1.00.a", "arm,pl310-cache";
130 cache-unified;
131 cache-level = <2>;
132 reg = <0xf8f02000 0x1000>;
133 interrupt-parent = <&ps7_scugic_0>;
134 interrupts = <0 2 4>;
135 arm,data-latency = <3 2 2>;
136 arm,tag-latency = <2 2 2>;
137 } ;
138 ps7_ddrc_0: ps7-ddrc@f8006000 {
139 compatible = "xlnx,ps7-ddrc-1.00.a", "xlnx,ps7-ddrc";
140 reg = <0xf8006000 0x1000>;
141 xlnx,has-ecc = <0x0>;
142 } ;
143 ps7_ram_0: ps7-ram@fffc0000 {
144 compatible = "xlnx,ps7-ram-1.00.a", "xlnx,ps7-ocm";
145 interrupt-parent = <&ps7_scugic_0>;
146 interrupts = <0 3 4>;
147 reg = <0xfffc0000 0x40000>;
148 } ;
149 ps7_slcr_0: ps7-slcr@f8000000 {
150 #address-cells = <1>;
151 #size-cells = <1>;
152 compatible = "xlnx,ps7-slcr-1.00.a", "xlnx,zynq-slcr", "syscon";
153 ranges ;
154 reg = <0xf8000000 0x1000>;
155 clkc: clkc@100 {
156 #clock-cells = <1>;
157 clock-output-names = "armpll", "ddrpll", "iopll",
158 "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x",
159 "ddr2x", "ddr3x", "dci",
160 "lqspi", "smc", "pcap",
161 "gem0", "gem1",
162 "fclk0", "fclk1", "fclk2", "fclk3",
163 "can0", "can1",
164 "sdio0", "sdio1",
165 "uart0", "uart1",
166 "spi0", "spi1",
167 "dma",
168 "usb0_aper", "usb1_aper",
169 "gem0_aper", "gem1_aper",
170 "sdio0_aper", "sdio1_aper",
171 "spi0_aper", "spi1_aper",
172 "can0_aper", "can1_aper",
173 "i2c0_aper", "i2c1_aper",
174 "uart0_aper", "uart1_aper",
175 "gpio_aper", "lqspi_aper", "smc_aper", "swdt",
176 "dbg_trc", "dbg_apb";
177 compatible = "xlnx,ps7-clkc";
178 fclk-enable = <0xf>;
179 ps-clk-frequency = <33333333>;
180 reg = <0x100 0x100>;
181 } ;
182 } ;
183 ps7_globaltimer_0: ps7-globaltimer@f8f00200 {
184 clocks = <&clkc 4>;
185 compatible = "xlnx,ps7-globaltimer-1.00.a", "arm,cortex-a9-global-timer";
186 interrupt-parent = <&ps7_scugic_0>;
187 interrupts = <1 11 0x301>;
188 reg = <0xf8f00200 0x100>;
189 } ;
190 ps7_scutimer_0: ps7-scutimer@f8f00600 {
191 clocks = <&clkc 4>;
192 compatible = "xlnx,ps7-scutimer-1.00.a", "arm,cortex-a9-twd-timer";
193 interrupt-parent = <&ps7_scugic_0>;
194 interrupts = <1 13 0x301>;
195 reg = <0xf8f00600 0x20>;
196 } ;
197 ps7_scuwdt_0: ps7-scuwdt@f8f00620 {
198 clocks = <&clkc 4>;
199 compatible = "xlnx,ps7-scuwdt-1.00.a";
200 device_type = "watchdog";
201 interrupt-parent = <&ps7_scugic_0>;
202 interrupts = <1 14 0x301>;
203 reg = <0xf8f00620 0xe0>;
204 } ;
205 ps7_wdt_0: ps7-wdt@f8005000 {
206 clocks = <&clkc 45>;
207 compatible = "xlnx,ps7-wdt-1.00.a";
208 device_type = "watchdog";
209 interrupt-parent = <&ps7_scugic_0>;
210 interrupts = <0 9 4>;
211 reg = <0xf8005000 0x1000>;
212 reset = <0>;
213 timeout = <10>;
214 } ;
215 ps7_dma_ns: ps7-dma@f8004000 {
216 #dma-cells = <1>;
217 #dma-channels = <8>;
218 #dma-requests = <4>;
219 arm,primecell-periphid = <0x41330>;
220 clock-names = "apb_pclk";
221 clocks = <&clkc 27>;
222 compatible = "xlnx,ps7-dma-1.00.a", "arm,primecell", "arm,pl330";
223 interrupt-parent = <&ps7_scugic_0>;
224 interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7";
225 interrupts = <0 13 4>, <0 14 4>, <0 15 4>, <0 16 4>, <0 17 4>, <0 40 4>, <0 41 4>, <0 42 4>, <0 43 4>;
226 reg = <0xf8004000 0x1000>;
227 } ;
228 ps7_dma_s: ps7-dma@f8003000 {
229 #dma-cells = <1>;
230 #dma-channels = <8>;
231 #dma-requests = <4>;
232 arm,primecell-periphid = <0x41330>;
233 clock-names = "apb_pclk";
234 clocks = <&clkc 27>;
235 compatible = "xlnx,ps7-dma-1.00.a", "arm,primecell", "arm,pl330";
236 interrupt-parent = <&ps7_scugic_0>;
237 interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7";
238 interrupts = <0 13 4>, <0 14 4>, <0 15 4>, <0 16 4>, <0 17 4>, <0 40 4>, <0 41 4>, <0 42 4>, <0 43 4>;
239 reg = <0xf8003000 0x1000>;
240 } ;
241 ps7_dev_cfg_0: ps7-dev-cfg@f8007000 {
242 clock-names = "ref_clk", "fclk0", "fclk1", "fclk2", "fclk3";
243 clocks = <&clkc 12>, <&clkc 15>, <&clkc 16>, <&clkc 17>, <&clkc 18>;
244 compatible = "xlnx,ps7-dev-cfg-1.00.a";
245 interrupt-parent = <&ps7_scugic_0>;
246 interrupts = <0 8 4>;
247 reg = <0xf8007000 0x100>;
248 } ;
249 ps7_iop_bus_config_0: ps7-iop-bus-config@e0200000 {
250 compatible = "xlnx,ps7-iop-bus-config-1.00.a";
251 reg = <0xe0200000 0x1000>;
252 } ;
253
254 /* ========= Peripherals ========= */
255
256 ps7_ethernet_0: ps7-ethernet@e000b000 {
257 #address-cells = <1>;
258 #size-cells = <0>;
259 clock-names = "ref_clk", "aper_clk";
260 clocks = <&clkc 13>, <&clkc 30>;
261 compatible = "xlnx,ps7-ethernet-1.00.a";
262 interrupt-parent = <&ps7_scugic_0>;
263 interrupts = <0 22 4>;
264 local-mac-address = [ 00 0a 35 00 00 00 ];
265 reg = <0xe000b000 0x1000>;
266 xlnx,enet-reset = <0xffffffff>;
267 xlnx,eth-mode = <0x1>;
268 xlnx,has-mdio = <0x1>;
269 xlnx,ptp-enet-clock = <111111115>;
270 mdio {
271 #address-cells = <1>;
272 #size-cells = <0>;
273 } ;
274 } ;
275 ps7_ethernet_1: ps7-ethernet@e000c000 {
276 #address-cells = <1>;
277 #size-cells = <0>;
278 clock-names = "ref_clk", "aper_clk";
279 clocks = <&clkc 14>, <&clkc 31>;
280 compatible = "xlnx,ps7-ethernet-1.00.a";
281 interrupt-parent = <&ps7_scugic_0>;
282 interrupts = <0 45 4>;
283 local-mac-address = [ 00 0a 35 00 00 01 ];
284 reg = <0xe000c000 0x1000>;
285 xlnx,enet-reset = <0xffffffff>;
286 xlnx,eth-mode = <0x1>;
287 xlnx,has-mdio = <0x1>;
288 xlnx,ptp-enet-clock = <111111115>;
289 mdio {
290 #address-cells = <1>;
291 #size-cells = <0>;
292 } ;
293 } ;
294
295 ps7_gpio_0: ps7-gpio@e000a000 {
296 #gpio-cells = <2>;
297 clocks = <&clkc 42>;
298 compatible = "xlnx,ps7-gpio-1.00.a";
299 emio-gpio-width = <64>;
300 gpio-controller ;
301 gpio-mask-high = <0x0>;
302 gpio-mask-low = <0x0>;
303 interrupt-parent = <&ps7_scugic_0>;
304 interrupts = <0 20 4>;
305 reg = <0xe000a000 0x1000>;
306 } ;
307
308 ps7_qspi_0: ps7-qspi@e000d000 {
309 bus-num = <2>;
310 clock-names = "ref_clk", "aper_clk";
311 clocks = <&clkc 10>, <&clkc 43>;
312 compatible = "xlnx,ps7-qspi-1.00.a";
313 reg = <0xe000d000 0x1000>;
314 interrupt-parent = <&ps7_scugic_0>;
315 interrupts = <0 19 4>;
316 is-dual = <0>;
317 num-chip-select = <1>;
318 speed-hz = <200000000>;
319 xlnx,fb-clk = <0x1>;
320 xlnx,qspi-mode = <0x0>;
321 #address-cells = <1>;
322 #size-cells = <0>;
323 } ;
324 ps7_qspi_linear_0: ps7-qspi-linear@fc000000 {
325 clock-names = "ref_clk", "aper_clk";
326 clocks = <&clkc 10>, <&clkc 43>;
327 compatible = "xlnx,ps7-qspi-linear-1.00.a";
328 reg = <0xfc000000 0x1000000>;
329 } ;
330
331 ps7_spi_0: ps7-spi@e0006000 {
332 bus-num = <0>;
333 clock-names = "ref_clk", "aper_clk";
334 clocks = <&clkc 25>, <&clkc 34>;
335 compatible = "xlnx,ps7-spi-1.00.a";
336 interrupt-parent = <&ps7_scugic_0>;
337 interrupts = <0 26 4>;
338 num-chip-select = <4>;
339 reg = <0xe0006000 0x1000>;
340 speed-hz = <166666666>;
341 #address-cells = <1>;
342 #size-cells = <0>;
343 } ;
344 ps7_spi_1: ps7-spi@e0007000 {
345 bus-num = <1>;
346 clock-names = "ref_clk", "aper_clk";
347 clocks = <&clkc 26>, <&clkc 35>;
348 compatible = "xlnx,ps7-spi-1.00.a";
349 interrupt-parent = <&ps7_scugic_0>;
350 interrupts = <0 49 4>;
351 num-chip-select = <4>;
352 reg = <0xe0007000 0x1000>;
353 speed-hz = <166666666>;
354 #address-cells = <1>;
355 #size-cells = <0>;
356 } ;
357
358 ps7_sd_0: ps7-sdio@e0100000 {
359 clock-names = "ref_clk", "aper_clk";
360 clocks = <&clkc 21>, <&clkc 32>;
361 clock-frequency = <50000000>;
362 compatible = "xlnx,ps7-sdio-1.00.a", "arasan,sdhci", "arasan,sdhci-8.9a", "generic-sdhci";
363 interrupt-parent = <&ps7_scugic_0>;
364 interrupts = <0 24 4>;
365 reg = <0xe0100000 0x1000>;
366 xlnx,has-cd = <0x1>;
367 xlnx,has-power = <0x0>;
368 xlnx,has-wp = <0x1>;
369 } ;
370 ps7_sd_1: ps7-sdio@e0101000 {
371 clock-names = "ref_clk", "aper_clk";
372 clocks = <&clkc 22>, <&clkc 33>;
373 clock-frequency = <50000000>;
374 compatible = "xlnx,ps7-sdio-1.00.a", "arasan,sdhci", "arasan,sdhci-8.9a", "generic-sdhci";
375 interrupt-parent = <&ps7_scugic_0>;
376 interrupts = <0 47 4>;
377 reg = <0xe0101000 0x1000>;
378 xlnx,has-cd = <0x1>;
379 xlnx,has-power = <0x0>;
380 xlnx,has-wp = <0x1>;
381 } ;
382
383 ps7_ttc_0: ps7-ttc@f8001000 {
384 clocks = <&clkc 6>;
385 compatible = "xlnx,ps7-ttc-1.00.a", "cdns,ttc";
386 interrupt-names = "ttc0", "ttc1", "ttc2";
387 interrupt-parent = <&ps7_scugic_0>;
388 interrupts = <0 10 4>, <0 11 4>, <0 12 4>;
389 reg = <0xf8001000 0x1000>;
390 } ;
391 ps7_ttc_1: ps7-ttc@f8002000 {
392 clocks = <&clkc 6>;
393 compatible = "xlnx,ps7-ttc-1.00.a", "cdns,ttc";
394 interrupt-names = "ttc0", "ttc1", "ttc2";
395 interrupt-parent = <&ps7_scugic_0>;
396 interrupts = <0 37 4>, <0 38 4>, <0 39 4>;
397 reg = <0xf8002000 0x1000>;
398 } ;
399
400 ps7_uart_0: serial@e0000000 {
401 clock-names = "ref_clk", "aper_clk";
402 clocks = <&clkc 23>, <&clkc 40>;
403 compatible = "xlnx,ps7-uart-1.00.a", "xlnx,xuartps";
404 device_type = "serial";
405 interrupt-parent = <&ps7_scugic_0>;
406 interrupts = <0 27 4>;
407 reg = <0xe0000000 0x1000>;
408 port-number = <1>;
409 current-speed = <115200>;
410 xlnx,has-modem = <0x0>;
411 } ;
412 ps7_uart_1: serial@e0001000 {
413 clock-names = "ref_clk", "aper_clk";
414 clocks = <&clkc 24>, <&clkc 41>;
415 compatible = "xlnx,ps7-uart-1.00.a", "xlnx,xuartps";
416 device_type = "serial";
417 interrupt-parent = <&ps7_scugic_0>;
418 interrupts = <0 50 4>;
419 reg = <0xe0001000 0x1000>;
420 port-number = <0>;
421 current-speed = <115200>;
422 xlnx,has-modem = <0x0>;
423 } ;
424
425 ps7_i2c_0: ps7-i2c@e0004000 {
426 bus-id = <0>;
427 clocks = <&clkc 38>;
428 compatible = "xlnx,ps7-i2c-1.00.a";
429 interrupt-parent = <&ps7_scugic_0>;
430 interrupts = <0 25 4>;
431 reg = <0xe0004000 0x1000>;
432 i2c-clk = <400000>;
433 #address-cells = <1>;
434 #size-cells = <0>;
435 } ;
436 ps7_i2c_1: ps7-i2c@e0005000 {
437 bus-id = <1>;
438 clocks = <&clkc 39>;
439 compatible = "xlnx,ps7-i2c-1.00.a";
440 interrupt-parent = <&ps7_scugic_0>;
441 interrupts = <0 48 4>;
442 reg = <0xe0005000 0x1000>;
443 i2c-clk = <400000>;
444 #address-cells = <1>;
445 #size-cells = <0>;
446 } ;
447
448 ps7_can_0: ps7-can@e0008000 {
449 clock-names = "ref_clk", "aper_clk";
450 clocks = <&clkc 19>, <&clkc 36>;
451 compatible = "xlnx,ps7-can-1.00.a", "xlnx,ps7-can";
452 interrupt-parent = <&ps7_scugic_0>;
453 interrupts = <0 28 4>;
454 reg = <0xe0008000 0x1000>;
455 } ;
456 ps7_can_1: ps7-can@e0009000 {
457 clock-names = "ref_clk", "aper_clk";
458 clocks = <&clkc 20>, <&clkc 37>;
459 compatible = "xlnx,ps7-can-1.00.a", "xlnx,ps7-can";
460 interrupt-parent = <&ps7_scugic_0>;
461 interrupts = <0 51 4>;
462 reg = <0xe0009000 0x1000>;
463 } ;
464
465 ps7_usb_0: ps7-usb@e0002000 {
466 clocks = <&clkc 28>;
467 compatible = "xlnx,ps7-usb-1.00.a", "xlnx,zynq-usb-1.00.a";
468 reg = <0xe0002000 0x1000>;
469 interrupt-parent = <&ps7_scugic_0>;
470 interrupts = <0 21 4>;
471 dr_mode = "host";
472 phy_type = "ulpi";
473 xlnx,usb-reset = <0xffffffff>;
474 } ;
475 ps7_usb_1: ps7-usb@e0003000 {
476 clocks = <&clkc 29>;
477 compatible = "xlnx,ps7-usb-1.00.a", "xlnx,zynq-usb-1.00.a";
478 reg = <0xe0003000 0x1000>;
479 interrupt-parent = <&ps7_scugic_0>;
480 interrupts = <0 44 4>;
481 dr_mode = "host";
482 phy_type = "ulpi";
483 xlnx,usb-reset = <0xffffffff>;
484 } ;
485
486 ps7_xadc: ps7-xadc@f8007100 {
487 clocks = <&clkc 12>;
488 compatible = "xlnx,ps7-xadc-1.00.a";
489 reg = <0xf8007100 0x20>;
490 interrupt-parent = <&ps7_scugic_0>;
491 interrupts = <0 7 4>;
492 } ;
493 } ;
494} ;