diff options
author | Nathan Rossi <nathan.rossi@xilinx.com> | 2013-06-19 12:04:30 +1000 |
---|---|---|
committer | Nathan Rossi <nathan.rossi@xilinx.com> | 2013-06-19 14:23:17 +1000 |
commit | 530475a897a815408e24a39e01eee335329762ea (patch) | |
tree | c74f4f88f58eb5f53c23695ef8f2e869fbf7b062 /recipes-kernel | |
parent | 7822b299a70129e2c51faa388f896d9632179aa3 (diff) | |
download | meta-xilinx-530475a897a815408e24a39e01eee335329762ea.tar.gz |
linux-xlnx: Create base Zynq-7 DTSI definition
* Create the DTS fragment for general Zynq-7 Systems.
Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Diffstat (limited to 'recipes-kernel')
-rw-r--r-- | recipes-kernel/linux/linux-xlnx/zynq-7-base.dtsi | 436 |
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 | } ; | ||