summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-kernel/linux/linux-xlnx/zynq-7-base.dtsi436
1 files changed, 436 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-xlnx/zynq-7-base.dtsi b/recipes-kernel/linux/linux-xlnx/zynq-7-base.dtsi
new file mode 100644
index 00000000..7cac4da7
--- /dev/null
+++ b/recipes-kernel/linux/linux-xlnx/zynq-7-base.dtsi
@@ -0,0 +1,436 @@
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/ "zynq-7-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-zc770";
54 interrupt-parent = <0x1>;
55 aliases {
56 ethernet0 = &ps7_ethernet_0;
57 ethernet1 = &ps7_ethernet_1;
58 serial0 = &ps7_uart_1;
59 serial1 = &ps7_uart_0;
60 } ;
61 cpus {
62 #address-cells = <1>;
63 #cpus = <0x2>;
64 #size-cells = <0>;
65 ps7_cortexa9_0: cpu@0 {
66 compatible = "xlnx,ps7-cortexa9-1.00.a";
67 d-cache-line-size = <0x20>;
68 d-cache-size = <0x8000>;
69 device_type = "cpu";
70 i-cache-line-size = <0x20>;
71 i-cache-size = <0x8000>;
72 model = "ps7_cortexa9,1.00.a";
73 reg = <0>;
74 } ;
75 ps7_cortexa9_1: cpu@1 {
76 compatible = "xlnx,ps7-cortexa9-1.00.a";
77 d-cache-line-size = <0x20>;
78 d-cache-size = <0x8000>;
79 device_type = "cpu";
80 i-cache-line-size = <0x20>;
81 i-cache-size = <0x8000>;
82 model = "ps7_cortexa9,1.00.a";
83 reg = <1>;
84 } ;
85 } ;
86 pmu {
87 compatible = "arm,cortex-a9-pmu";
88 interrupt-parent = <&ps7_scugic_0>;
89 interrupts = < 0 5 4 0 6 4 >;
90 reg = < 0xf8891000 0x1000 0xf8893000 0x1000 >;
91 } ;
92 ps7_axi_interconnect_0: amba@0 {
93 #address-cells = <1>;
94 #size-cells = <1>;
95 compatible = "xlnx,ps7-axi-interconnect-1.00.a", "simple-bus";
96 ranges ;
97 ps7_afi_0: ps7-afi@f8008000 {
98 compatible = "xlnx,ps7-afi-1.00.a";
99 reg = < 0xf8008000 0x1000 >;
100 } ;
101 ps7_afi_1: ps7-afi@f8009000 {
102 compatible = "xlnx,ps7-afi-1.00.a";
103 reg = < 0xf8009000 0x1000 >;
104 } ;
105 ps7_afi_2: ps7-afi@f800a000 {
106 compatible = "xlnx,ps7-afi-1.00.a";
107 reg = < 0xf800a000 0x1000 >;
108 } ;
109 ps7_afi_3: ps7-afi@f800b000 {
110 compatible = "xlnx,ps7-afi-1.00.a";
111 reg = < 0xf800b000 0x1000 >;
112 } ;
113 ps7_scugic_0: ps7-scugic@f8f01000 {
114 #interrupt-cells = < 3 >;
115 compatible = "xlnx,ps7-scugic-1.00.a", "arm,cortex-a9-gic", "arm,gic";
116 interrupt-controller ;
117 reg = < 0xf8f01000 0x1000 >, < 0xf8f00100 0x100 >;
118 } ;
119 ps7_pl310_0: ps7-pl310@f8f02000 {
120 compatible = "arm,pl310-cache";
121 cache-unified;
122 cache-level = <2>;
123 reg = <0xf8f02000 0x1000>;
124 interrupt-parent = <&ps7_scugic_0>;
125 arm,data-latency = <3 2 2>;
126 arm,tag-latency = <2 2 2>;
127 } ;
128 ps7_ddrc_0: ps7-ddrc@f8006000 {
129 compatible = "xlnx,ps7-ddrc-1.00.a", "xlnx,ps7-ddrc";
130 reg = < 0xf8006000 0x1000 >;
131 xlnx,has-ecc = <0x0>;
132 } ;
133 ps7_ram_0: ps7-ram@fffc0000 {
134 compatible = "xlnx,ps7-ram-1.00.a", "xlnx,ps7-ocm";
135 reg = < 0xfffc0000 0x40000 >;
136 } ;
137 ps7_slcr_0: ps7-slcr@f8000000 {
138 compatible = "xlnx,ps7-slcr-1.00.a", "xlnx,zynq-slcr";
139 reg = < 0xf8000000 0x1000 >;
140 clocks {
141 #address-cells = <1>;
142 #size-cells = <0>;
143 armpll: armpll {
144 #clock-cells = <0>;
145 clock-output-names = "armpll";
146 clocks = <&ps_clk>;
147 compatible = "xlnx,zynq-pll";
148 lockbit = <0>;
149 reg = < 0x100 0x110 0x10c >;
150 } ;
151 ddrpll: ddrpll {
152 #clock-cells = <0>;
153 clock-output-names = "ddrpll";
154 clocks = <&ps_clk>;
155 compatible = "xlnx,zynq-pll";
156 lockbit = <1>;
157 reg = < 0x104 0x114 0x10c >;
158 } ;
159 iopll: iopll {
160 #clock-cells = <0>;
161 clock-output-names = "iopll";
162 clocks = <&ps_clk>;
163 compatible = "xlnx,zynq-pll";
164 lockbit = <2>;
165 reg = < 0x108 0x118 0x10c >;
166 } ;
167 ps_clk: ps_clk {
168 #clock-cells = <0>;
169 clock-frequency = <33333333>;
170 clock-output-names = "ps_clk";
171 compatible = "fixed-clock";
172 } ;
173 } ;
174 } ;
175 ps7_scutimer_0: ps7-scutimer@f8f00600 {
176 compatible = "xlnx,ps7-scutimer-1.00.a", "arm,cortex-a9-twd-timer";
177 interrupt-parent = <&ps7_scugic_0>;
178 interrupts = < 1 13 769 >;
179 reg = < 0xf8f00600 0x20 >;
180 } ;
181 ps7_scuwdt_0: ps7-scuwdt@f8f00620 {
182 compatible = "xlnx,ps7-scuwdt-1.00.a";
183 device_type = "watchdog";
184 interrupt-parent = <&ps7_scugic_0>;
185 interrupts = < 1 14 769 >;
186 reg = < 0xf8f00620 0xe0 >;
187 } ;
188 ps7_wdt_0: ps7-wdt@f8005000 {
189 compatible = "xlnx,ps7-wdt-1.00.a";
190 reg = < 0xf8005000 0x1000 >;
191 interrupt-parent = <&ps7_scugic_0>;
192 interrupts = < 0 9 4 >;
193 device_type = "watchdog";
194 reset = <0>;
195 timeout = <10>;
196 } ;
197 ps7_dma_ns: ps7-dma@f8004000 {
198 #dma-cells = <1>;
199 #dma-channels = <8>;
200 #dma-requests = <4>;
201 arm,primecell-periphid = <0x41330>;
202 compatible = "xlnx,ps7-dma-1.00.a", "arm,pl330";
203 interrupt-parent = <&ps7_scugic_0>;
204 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 >;
205 reg = < 0xf8004000 0x1000 >;
206 } ;
207 ps7_dma_s: ps7-dma@f8003000 {
208 #dma-cells = <1>;
209 #dma-channels = <8>;
210 #dma-requests = <4>;
211 arm,primecell-periphid = <0x41330>;
212 compatible = "xlnx,ps7-dma-1.00.a", "arm,primecell", "arm,pl330";
213 interrupt-parent = <&ps7_scugic_0>;
214 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 >;
215 reg = < 0xf8003000 0x1000 >;
216 } ;
217 ps7_dev_cfg_0: ps7-dev-cfg@f8007000 {
218 compatible = "xlnx,ps7-dev-cfg-1.00.a";
219 interrupt-parent = <&ps7_scugic_0>;
220 interrupts = < 0 8 4 >;
221 reg = < 0xf8007000 0x1000 >;
222 } ;
223 ps7_iop_bus_config_0: ps7-iop-bus-config@e0200000 {
224 compatible = "xlnx,ps7-iop-bus-config-1.00.a";
225 reg = < 0xe0200000 0x1000 >;
226 } ;
227
228 /* ========= Peripherals ========= */
229
230 ps7_ethernet_0: ps7-ethernet@e000b000 {
231 #address-cells = <1>;
232 #size-cells = <0>;
233 compatible = "xlnx,ps7-ethernet-1.00.a";
234 interrupt-parent = <&ps7_scugic_0>;
235 interrupts = < 0 22 1 >;
236 local-mac-address = [ 00 0a 35 00 00 00 ];
237 reg = < 0xe000b000 0x1000 >;
238 xlnx,eth-mode = <0x1>;
239 xlnx,has-mdio = <0x1>;
240 xlnx,ptp-enet-clock = <111111115>;
241 mdio {
242 #address-cells = <1>;
243 #size-cells = <0>;
244 } ;
245 } ;
246 ps7_ethernet_1: ps7-ethernet@e000c000 {
247 #address-cells = <1>;
248 #size-cells = <0>;
249 compatible = "xlnx,ps7-ethernet-1.00.a";
250 interrupt-parent = <&ps7_scugic_0>;
251 interrupts = < 0 45 1 >;
252 local-mac-address = [ 00 0a 35 00 00 01 ];
253 reg = < 0xe000c000 0x1000 >;
254 xlnx,eth-mode = <0x1>;
255 xlnx,has-mdio = <0x1>;
256 xlnx,ptp-enet-clock = <111111115>;
257 mdio {
258 #address-cells = <1>;
259 #size-cells = <0>;
260 } ;
261 } ;
262
263 ps7_gpio_0: ps7-gpio@e000a000 {
264 #gpio-cells = <2>;
265 compatible = "xlnx,ps7-gpio-1.00.a";
266 emio-gpio-width = <64>;
267 gpio-controller ;
268 gpio-mask-high = <0xc0000>;
269 gpio-mask-low = <0xfe81>;
270 interrupt-parent = <&ps7_scugic_0>;
271 interrupts = < 0 20 4 >;
272 reg = < 0xe000a000 0x1000 >;
273 } ;
274
275 ps7_qspi_0: ps7-qspi@e000d000 {
276 compatible = "xlnx,ps7-qspi-1.00.a";
277 reg = < 0xe000d000 0x1000 >;
278 interrupt-parent = <&ps7_scugic_0>;
279 interrupts = < 0 19 4 >;
280 bus-num = <2>;
281 is-dual = <0>;
282 num-chip-select = <1>;
283 speed-hz = <200000000>;
284 #address-cells = <1>;
285 #size-cells = <0>;
286 } ;
287 ps7_qspi_linear_0: ps7-qspi-linear@fc000000 {
288 compatible = "xlnx,ps7-qspi-linear-1.00.a";
289 reg = < 0xfc000000 0x1000000 >;
290 } ;
291
292 ps7_spi_0: ps7-spi@e0006000 {
293 compatible = "xlnx,ps7-spi-1.00.a";
294 interrupt-parent = <&ps7_scugic_0>;
295 interrupts = < 0 26 4 >;
296 bus-num = <0>;
297 num-chip-select = <4>;
298 reg = < 0xe0006000 0x1000 >;
299 speed-hz = <166666666>;
300 #address-cells = <1>;
301 #size-cells = <0>;
302 } ;
303 ps7_spi_1: ps7-spi@e0007000 {
304 compatible = "xlnx,ps7-spi-1.00.a";
305 interrupt-parent = <&ps7_scugic_0>;
306 interrupts = < 0 49 4 >;
307 bus-num = <1>;
308 num-chip-select = <4>;
309 reg = < 0xe0007000 0x1000 >;
310 speed-hz = <166666666>;
311 #address-cells = <1>;
312 #size-cells = <0>;
313 } ;
314
315 ps7_sd_0: ps7-sdio@e0100000 {
316 clock-frequency = <50000000>;
317 compatible = "xlnx,ps7-sdio-1.00.a", "generic-sdhci";
318 interrupt-parent = <&ps7_scugic_0>;
319 interrupts = < 0 24 4 >;
320 reg = < 0xe0100000 0x1000 >;
321 xlnx,has-cd = <0x1>;
322 xlnx,has-power = <0x0>;
323 xlnx,has-wp = <0x1>;
324 xlnx,sdio-clk-freq-hz = <0x2faf080>;
325 } ;
326 ps7_sd_1: ps7-sdio@e0101000 {
327 clock-frequency = <50000000>;
328 compatible = "xlnx,ps7-sdio-1.00.a", "generic-sdhci";
329 interrupt-parent = <&ps7_scugic_0>;
330 interrupts = < 0 47 4 >;
331 reg = < 0xe0101000 0x1000 >;
332 xlnx,has-cd = <0x1>;
333 xlnx,has-power = <0x0>;
334 xlnx,has-wp = <0x1>;
335 xlnx,sdio-clk-freq-hz = <0x2faf080>;
336 } ;
337
338 ps7_ttc_0: ps7-ttc@f8001000 {
339 compatible = "xlnx,ps7-ttc-1.00.a";
340 interrupt-parent = <&ps7_scugic_0>;
341 interrupts = < 0 10 4 0 11 4 0 12 4 >;
342 reg = < 0xf8001000 0x1000 >;
343 } ;
344 ps7_ttc_1: ps7-ttc@f8002000 {
345 compatible = "xlnx,ps7-ttc-1.00.a";
346 interrupt-parent = <&ps7_scugic_0>;
347 interrupts = < 0 37 4 0 38 4 0 39 4 >;
348 reg = < 0xf8002000 0x1000 >;
349 } ;
350
351 ps7_uart_0: serial@e0000000 {
352 compatible = "xlnx,ps7-uart-1.00.a", "xlnx,xuartps";
353 reg = < 0xe0000000 0x1000 >;
354 interrupt-parent = <&ps7_scugic_0>;
355 interrupts = < 0 27 4 >;
356 device_type = "serial";
357 port-number = <1>;
358 current-speed = <115200>;
359 xlnx,has-modem = <0x0>;
360 xlnx,uart-clk-freq-hz = <0x2faf080>;
361 } ;
362 ps7_uart_1: serial@e0001000 {
363 compatible = "xlnx,ps7-uart-1.00.a", "xlnx,xuartps";
364 reg = < 0xe0001000 0x1000 >;
365 interrupt-parent = <&ps7_scugic_0>;
366 interrupts = < 0 50 4 >;
367 device_type = "serial";
368 port-number = <0>;
369 current-speed = <115200>;
370 xlnx,has-modem = <0x0>;
371 xlnx,uart-clk-freq-hz = <0x2faf080>;
372 } ;
373
374 ps7_i2c_0: ps7-i2c@e0004000 {
375 compatible = "xlnx,ps7-i2c-1.00.a";
376 reg = < 0xe0004000 0x1000 >;
377 interrupt-parent = <&ps7_scugic_0>;
378 interrupts = < 0 25 4 >;
379 bus-id = <0>;
380 i2c-clk = <400000>;
381 input-clk = <111111114>;
382 #address-cells = <1>;
383 #size-cells = <0>;
384 } ;
385 ps7_i2c_1: ps7-i2c@e0005000 {
386 compatible = "xlnx,ps7-i2c-1.00.a";
387 reg = < 0xe0005000 0x1000 >;
388 interrupt-parent = <&ps7_scugic_0>;
389 interrupts = < 0 48 4 >;
390 bus-id = <1>;
391 i2c-clk = <400000>;
392 input-clk = <111111114>;
393 #address-cells = <1>;
394 #size-cells = <0>;
395 } ;
396
397 ps7_can_0: ps7-can@e0008000 {
398 compatible = "xlnx,ps7-can-1.00.a";
399 reg = < 0xe0008000 0x1000 >;
400 interrupt-parent = <&ps7_scugic_0>;
401 interrupts = < 0 28 4 >;
402 } ;
403 ps7_can_1: ps7-can@e0009000 {
404 compatible = "xlnx,ps7-can-1.00.a";
405 reg = < 0xe0009000 0x1000 >;
406 interrupt-parent = <&ps7_scugic_0>;
407 interrupts = < 0 51 4 >;
408 } ;
409
410 ps7_usb_0: ps7-usb@e0002000 {
411 compatible = "xlnx,ps7-usb-1.00.a";
412 reg = < 0xe0002000 0x1000 >;
413 interrupt-parent = <&ps7_scugic_0>;
414 interrupts = < 0 21 4 >;
415 dr_mode = "host";
416 phy_type = "ulpi";
417 xlnx,usb-reset = <0xffffffff>;
418 } ;
419 ps7_usb_1: ps7-usb@e0003000 {
420 compatible = "xlnx,ps7-usb-1.00.a";
421 reg = < 0xe0003000 0x1000 >;
422 interrupt-parent = <&ps7_scugic_0>;
423 interrupts = < 0 44 4 >;
424 dr_mode = "host";
425 phy_type = "ulpi";
426 xlnx,usb-reset = <0xffffffff>;
427 } ;
428
429 ps7_xadc: ps7-xadc@f8007100 {
430 compatible = "xlnx,ps7-xadc-1.00.a";
431 reg = < 0xf8007100 0x20 >;
432 interrupt-parent = <&ps7_scugic_0>;
433 interrupts = < 0 7 4 >;
434 } ;
435 } ;
436} ;