Documentation: arm: pmu: Add Potenza PMU binding
[linux-2.6-block.git] / arch / arm64 / boot / dts / apm / apm-storm.dtsi
CommitLineData
ee877b53
VK
1/*
2 * dts file for AppliedMicro (APM) X-Gene Storm SOC
3 *
4 * Copyright (C) 2013, Applied Micro Circuits Corporation
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; either version 2 of
9 * the License, or (at your option) any later version.
10 */
11
12/ {
13 compatible = "apm,xgene-storm";
14 interrupt-parent = <&gic>;
15 #address-cells = <2>;
16 #size-cells = <2>;
17
18 cpus {
19 #address-cells = <2>;
20 #size-cells = <0>;
21
22 cpu@000 {
23 device_type = "cpu";
24 compatible = "apm,potenza", "arm,armv8";
25 reg = <0x0 0x000>;
26 enable-method = "spin-table";
27 cpu-release-addr = <0x1 0x0000fff8>;
28 };
29 cpu@001 {
30 device_type = "cpu";
31 compatible = "apm,potenza", "arm,armv8";
32 reg = <0x0 0x001>;
33 enable-method = "spin-table";
34 cpu-release-addr = <0x1 0x0000fff8>;
35 };
36 cpu@100 {
37 device_type = "cpu";
38 compatible = "apm,potenza", "arm,armv8";
39 reg = <0x0 0x100>;
40 enable-method = "spin-table";
41 cpu-release-addr = <0x1 0x0000fff8>;
42 };
43 cpu@101 {
44 device_type = "cpu";
45 compatible = "apm,potenza", "arm,armv8";
46 reg = <0x0 0x101>;
47 enable-method = "spin-table";
48 cpu-release-addr = <0x1 0x0000fff8>;
49 };
50 cpu@200 {
51 device_type = "cpu";
52 compatible = "apm,potenza", "arm,armv8";
53 reg = <0x0 0x200>;
54 enable-method = "spin-table";
55 cpu-release-addr = <0x1 0x0000fff8>;
56 };
57 cpu@201 {
58 device_type = "cpu";
59 compatible = "apm,potenza", "arm,armv8";
60 reg = <0x0 0x201>;
61 enable-method = "spin-table";
62 cpu-release-addr = <0x1 0x0000fff8>;
63 };
64 cpu@300 {
65 device_type = "cpu";
66 compatible = "apm,potenza", "arm,armv8";
67 reg = <0x0 0x300>;
68 enable-method = "spin-table";
69 cpu-release-addr = <0x1 0x0000fff8>;
70 };
71 cpu@301 {
72 device_type = "cpu";
73 compatible = "apm,potenza", "arm,armv8";
74 reg = <0x0 0x301>;
75 enable-method = "spin-table";
76 cpu-release-addr = <0x1 0x0000fff8>;
77 };
78 };
79
80 gic: interrupt-controller@78010000 {
81 compatible = "arm,cortex-a15-gic";
82 #interrupt-cells = <3>;
83 interrupt-controller;
84 reg = <0x0 0x78010000 0x0 0x1000>, /* GIC Dist */
85 <0x0 0x78020000 0x0 0x1000>, /* GIC CPU */
86 <0x0 0x78040000 0x0 0x2000>, /* GIC VCPU Control */
87 <0x0 0x78060000 0x0 0x2000>; /* GIC VCPU */
88 interrupts = <1 9 0xf04>; /* GIC Maintenence IRQ */
89 };
90
91 timer {
92 compatible = "arm,armv8-timer";
93 interrupts = <1 0 0xff01>, /* Secure Phys IRQ */
94 <1 13 0xff01>, /* Non-secure Phys IRQ */
95 <1 14 0xff01>, /* Virt IRQ */
96 <1 15 0xff01>; /* Hyp IRQ */
97 clock-frequency = <50000000>;
98 };
99
100 soc {
101 compatible = "simple-bus";
102 #address-cells = <2>;
103 #size-cells = <2>;
104 ranges;
74e353e1 105 dma-ranges = <0x0 0x0 0x0 0x0 0x400 0x0>;
ee877b53 106
3eb15d84
LH
107 clocks {
108 #address-cells = <2>;
109 #size-cells = <2>;
110 ranges;
111 refclk: refclk {
112 compatible = "fixed-clock";
113 #clock-cells = <1>;
114 clock-frequency = <100000000>;
115 clock-output-names = "refclk";
116 };
117
118 pcppll: pcppll@17000100 {
119 compatible = "apm,xgene-pcppll-clock";
120 #clock-cells = <1>;
121 clocks = <&refclk 0>;
122 clock-names = "pcppll";
123 reg = <0x0 0x17000100 0x0 0x1000>;
124 clock-output-names = "pcppll";
125 type = <0>;
126 };
127
128 socpll: socpll@17000120 {
129 compatible = "apm,xgene-socpll-clock";
130 #clock-cells = <1>;
131 clocks = <&refclk 0>;
132 clock-names = "socpll";
133 reg = <0x0 0x17000120 0x0 0x1000>;
134 clock-output-names = "socpll";
135 type = <1>;
136 };
137
138 socplldiv2: socplldiv2 {
139 compatible = "fixed-factor-clock";
140 #clock-cells = <1>;
141 clocks = <&socpll 0>;
142 clock-names = "socplldiv2";
143 clock-mult = <1>;
144 clock-div = <2>;
145 clock-output-names = "socplldiv2";
146 };
147
148 qmlclk: qmlclk {
149 compatible = "apm,xgene-device-clock";
150 #clock-cells = <1>;
151 clocks = <&socplldiv2 0>;
152 clock-names = "qmlclk";
153 reg = <0x0 0x1703C000 0x0 0x1000>;
154 reg-names = "csr-reg";
155 clock-output-names = "qmlclk";
156 };
157
158 ethclk: ethclk {
159 compatible = "apm,xgene-device-clock";
160 #clock-cells = <1>;
161 clocks = <&socplldiv2 0>;
162 clock-names = "ethclk";
163 reg = <0x0 0x17000000 0x0 0x1000>;
164 reg-names = "div-reg";
165 divider-offset = <0x238>;
166 divider-width = <0x9>;
167 divider-shift = <0x0>;
168 clock-output-names = "ethclk";
169 };
170
3d390425 171 menetclk: menetclk {
3eb15d84
LH
172 compatible = "apm,xgene-device-clock";
173 #clock-cells = <1>;
174 clocks = <&ethclk 0>;
3eb15d84
LH
175 reg = <0x0 0x1702C000 0x0 0x1000>;
176 reg-names = "csr-reg";
3d390425 177 clock-output-names = "menetclk";
3eb15d84 178 };
71b70ee9 179
4c2e7f09
IS
180 sge0clk: sge0clk@1f21c000 {
181 compatible = "apm,xgene-device-clock";
182 #clock-cells = <1>;
183 clocks = <&socplldiv2 0>;
184 reg = <0x0 0x1f21c000 0x0 0x1000>;
185 reg-names = "csr-reg";
186 csr-mask = <0x3>;
187 clock-output-names = "sge0clk";
188 };
189
2d33394e
KC
190 sge1clk: sge1clk@1f21c000 {
191 compatible = "apm,xgene-device-clock";
192 #clock-cells = <1>;
193 clocks = <&socplldiv2 0>;
194 reg = <0x0 0x1f21c000 0x0 0x1000>;
195 reg-names = "csr-reg";
196 csr-mask = <0xc>;
197 clock-output-names = "sge1clk";
198 };
199
5fb32417
IS
200 xge0clk: xge0clk@1f61c000 {
201 compatible = "apm,xgene-device-clock";
202 #clock-cells = <1>;
203 clocks = <&socplldiv2 0>;
204 reg = <0x0 0x1f61c000 0x0 0x1000>;
205 reg-names = "csr-reg";
206 csr-mask = <0x3>;
207 clock-output-names = "xge0clk";
208 };
209
71b70ee9
LH
210 sataphy1clk: sataphy1clk@1f21c000 {
211 compatible = "apm,xgene-device-clock";
212 #clock-cells = <1>;
213 clocks = <&socplldiv2 0>;
214 reg = <0x0 0x1f21c000 0x0 0x1000>;
215 reg-names = "csr-reg";
216 clock-output-names = "sataphy1clk";
217 status = "disabled";
218 csr-offset = <0x4>;
219 csr-mask = <0x00>;
220 enable-offset = <0x0>;
221 enable-mask = <0x06>;
222 };
223
224 sataphy2clk: sataphy1clk@1f22c000 {
225 compatible = "apm,xgene-device-clock";
226 #clock-cells = <1>;
227 clocks = <&socplldiv2 0>;
228 reg = <0x0 0x1f22c000 0x0 0x1000>;
229 reg-names = "csr-reg";
230 clock-output-names = "sataphy2clk";
231 status = "ok";
232 csr-offset = <0x4>;
233 csr-mask = <0x3a>;
234 enable-offset = <0x0>;
235 enable-mask = <0x06>;
236 };
237
238 sataphy3clk: sataphy1clk@1f23c000 {
239 compatible = "apm,xgene-device-clock";
240 #clock-cells = <1>;
241 clocks = <&socplldiv2 0>;
242 reg = <0x0 0x1f23c000 0x0 0x1000>;
243 reg-names = "csr-reg";
244 clock-output-names = "sataphy3clk";
245 status = "ok";
246 csr-offset = <0x4>;
247 csr-mask = <0x3a>;
248 enable-offset = <0x0>;
249 enable-mask = <0x06>;
250 };
db8c0286
LH
251
252 sata01clk: sata01clk@1f21c000 {
253 compatible = "apm,xgene-device-clock";
254 #clock-cells = <1>;
255 clocks = <&socplldiv2 0>;
256 reg = <0x0 0x1f21c000 0x0 0x1000>;
257 reg-names = "csr-reg";
258 clock-output-names = "sata01clk";
259 csr-offset = <0x4>;
260 csr-mask = <0x05>;
261 enable-offset = <0x0>;
262 enable-mask = <0x39>;
263 };
264
265 sata23clk: sata23clk@1f22c000 {
266 compatible = "apm,xgene-device-clock";
267 #clock-cells = <1>;
268 clocks = <&socplldiv2 0>;
269 reg = <0x0 0x1f22c000 0x0 0x1000>;
270 reg-names = "csr-reg";
271 clock-output-names = "sata23clk";
272 csr-offset = <0x4>;
273 csr-mask = <0x05>;
274 enable-offset = <0x0>;
275 enable-mask = <0x39>;
276 };
277
278 sata45clk: sata45clk@1f23c000 {
279 compatible = "apm,xgene-device-clock";
280 #clock-cells = <1>;
281 clocks = <&socplldiv2 0>;
282 reg = <0x0 0x1f23c000 0x0 0x1000>;
283 reg-names = "csr-reg";
284 clock-output-names = "sata45clk";
285 csr-offset = <0x4>;
286 csr-mask = <0x05>;
287 enable-offset = <0x0>;
288 enable-mask = <0x39>;
289 };
652ba666
LH
290
291 rtcclk: rtcclk@17000000 {
292 compatible = "apm,xgene-device-clock";
293 #clock-cells = <1>;
294 clocks = <&socplldiv2 0>;
295 reg = <0x0 0x17000000 0x0 0x2000>;
296 reg-names = "csr-reg";
297 csr-offset = <0xc>;
298 csr-mask = <0x2>;
299 enable-offset = <0x10>;
300 enable-mask = <0x2>;
301 clock-output-names = "rtcclk";
302 };
ab818739
FK
303
304 rngpkaclk: rngpkaclk@17000000 {
305 compatible = "apm,xgene-device-clock";
306 #clock-cells = <1>;
307 clocks = <&socplldiv2 0>;
308 reg = <0x0 0x17000000 0x0 0x2000>;
309 reg-names = "csr-reg";
310 csr-offset = <0xc>;
311 csr-mask = <0x10>;
312 enable-offset = <0x10>;
313 enable-mask = <0x10>;
314 clock-output-names = "rngpkaclk";
315 };
80213c03 316
767ebaff
TI
317 pcie0clk: pcie0clk@1f2bc000 {
318 status = "disabled";
319 compatible = "apm,xgene-device-clock";
320 #clock-cells = <1>;
321 clocks = <&socplldiv2 0>;
322 reg = <0x0 0x1f2bc000 0x0 0x1000>;
323 reg-names = "csr-reg";
324 clock-output-names = "pcie0clk";
325 };
326
327 pcie1clk: pcie1clk@1f2cc000 {
328 status = "disabled";
329 compatible = "apm,xgene-device-clock";
330 #clock-cells = <1>;
331 clocks = <&socplldiv2 0>;
332 reg = <0x0 0x1f2cc000 0x0 0x1000>;
333 reg-names = "csr-reg";
334 clock-output-names = "pcie1clk";
335 };
336
337 pcie2clk: pcie2clk@1f2dc000 {
338 status = "disabled";
339 compatible = "apm,xgene-device-clock";
340 #clock-cells = <1>;
341 clocks = <&socplldiv2 0>;
342 reg = <0x0 0x1f2dc000 0x0 0x1000>;
343 reg-names = "csr-reg";
344 clock-output-names = "pcie2clk";
345 };
346
347 pcie3clk: pcie3clk@1f50c000 {
348 status = "disabled";
349 compatible = "apm,xgene-device-clock";
350 #clock-cells = <1>;
351 clocks = <&socplldiv2 0>;
352 reg = <0x0 0x1f50c000 0x0 0x1000>;
353 reg-names = "csr-reg";
354 clock-output-names = "pcie3clk";
355 };
356
357 pcie4clk: pcie4clk@1f51c000 {
358 status = "disabled";
359 compatible = "apm,xgene-device-clock";
360 #clock-cells = <1>;
361 clocks = <&socplldiv2 0>;
362 reg = <0x0 0x1f51c000 0x0 0x1000>;
363 reg-names = "csr-reg";
364 clock-output-names = "pcie4clk";
365 };
74e353e1
RPS
366
367 dmaclk: dmaclk@1f27c000 {
368 compatible = "apm,xgene-device-clock";
369 #clock-cells = <1>;
370 clocks = <&socplldiv2 0>;
371 reg = <0x0 0x1f27c000 0x0 0x1000>;
372 reg-names = "csr-reg";
373 clock-output-names = "dmaclk";
374 };
767ebaff
TI
375 };
376
e1e6e5c4
DD
377 msi: msi@79000000 {
378 compatible = "apm,xgene1-msi";
379 msi-controller;
380 reg = <0x00 0x79000000 0x0 0x900000>;
381 interrupts = < 0x0 0x10 0x4
382 0x0 0x11 0x4
383 0x0 0x12 0x4
384 0x0 0x13 0x4
385 0x0 0x14 0x4
386 0x0 0x15 0x4
387 0x0 0x16 0x4
388 0x0 0x17 0x4
389 0x0 0x18 0x4
390 0x0 0x19 0x4
391 0x0 0x1a 0x4
392 0x0 0x1b 0x4
393 0x0 0x1c 0x4
394 0x0 0x1d 0x4
395 0x0 0x1e 0x4
396 0x0 0x1f 0x4>;
397 };
398
5c3a87e3
FK
399 scu: system-clk-controller@17000000 {
400 compatible = "apm,xgene-scu","syscon";
401 reg = <0x0 0x17000000 0x0 0x400>;
402 };
403
404 reboot: reboot@17000014 {
405 compatible = "syscon-reboot";
406 regmap = <&scu>;
407 offset = <0x14>;
408 mask = <0x1>;
409 };
410
8f2ae6f3
LH
411 csw: csw@7e200000 {
412 compatible = "apm,xgene-csw", "syscon";
413 reg = <0x0 0x7e200000 0x0 0x1000>;
414 };
415
416 mcba: mcba@7e700000 {
417 compatible = "apm,xgene-mcb", "syscon";
418 reg = <0x0 0x7e700000 0x0 0x1000>;
419 };
420
421 mcbb: mcbb@7e720000 {
422 compatible = "apm,xgene-mcb", "syscon";
423 reg = <0x0 0x7e720000 0x0 0x1000>;
424 };
425
426 efuse: efuse@1054a000 {
427 compatible = "apm,xgene-efuse", "syscon";
428 reg = <0x0 0x1054a000 0x0 0x20>;
429 };
430
431 edac@78800000 {
432 compatible = "apm,xgene-edac";
433 #address-cells = <2>;
434 #size-cells = <2>;
435 ranges;
436 regmap-csw = <&csw>;
437 regmap-mcba = <&mcba>;
438 regmap-mcbb = <&mcbb>;
439 regmap-efuse = <&efuse>;
440 reg = <0x0 0x78800000 0x0 0x100>;
441 interrupts = <0x0 0x20 0x4>,
442 <0x0 0x21 0x4>,
443 <0x0 0x27 0x4>;
444
445 edacmc@7e800000 {
446 compatible = "apm,xgene-edac-mc";
447 reg = <0x0 0x7e800000 0x0 0x1000>;
448 memory-controller = <0>;
449 };
450
451 edacmc@7e840000 {
452 compatible = "apm,xgene-edac-mc";
453 reg = <0x0 0x7e840000 0x0 0x1000>;
454 memory-controller = <1>;
455 };
456
457 edacmc@7e880000 {
458 compatible = "apm,xgene-edac-mc";
459 reg = <0x0 0x7e880000 0x0 0x1000>;
460 memory-controller = <2>;
461 };
462
463 edacmc@7e8c0000 {
464 compatible = "apm,xgene-edac-mc";
465 reg = <0x0 0x7e8c0000 0x0 0x1000>;
466 memory-controller = <3>;
467 };
468
469 edacpmd@7c000000 {
470 compatible = "apm,xgene-edac-pmd";
471 reg = <0x0 0x7c000000 0x0 0x200000>;
472 pmd-controller = <0>;
473 };
474
475 edacpmd@7c200000 {
476 compatible = "apm,xgene-edac-pmd";
477 reg = <0x0 0x7c200000 0x0 0x200000>;
478 pmd-controller = <1>;
479 };
480
481 edacpmd@7c400000 {
482 compatible = "apm,xgene-edac-pmd";
483 reg = <0x0 0x7c400000 0x0 0x200000>;
484 pmd-controller = <2>;
485 };
486
487 edacpmd@7c600000 {
488 compatible = "apm,xgene-edac-pmd";
489 reg = <0x0 0x7c600000 0x0 0x200000>;
490 pmd-controller = <3>;
491 };
492 };
493
767ebaff
TI
494 pcie0: pcie@1f2b0000 {
495 status = "disabled";
496 device_type = "pci";
497 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
498 #interrupt-cells = <1>;
499 #size-cells = <2>;
500 #address-cells = <3>;
501 reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */
502 0xe0 0xd0000000 0x0 0x00040000>; /* PCI config space */
503 reg-names = "csr", "cfg";
504 ranges = <0x01000000 0x00 0x00000000 0xe0 0x10000000 0x00 0x00010000 /* io */
80bb3eda
DD
505 0x02000000 0x00 0x80000000 0xe1 0x80000000 0x00 0x80000000 /* mem */
506 0x43000000 0xf0 0x00000000 0xf0 0x00000000 0x10 0x00000000>; /* mem */
767ebaff
TI
507 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
508 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
509 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
510 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1
511 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1
512 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1
513 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>;
514 dma-coherent;
515 clocks = <&pcie0clk 0>;
e1e6e5c4 516 msi-parent = <&msi>;
767ebaff
TI
517 };
518
519 pcie1: pcie@1f2c0000 {
520 status = "disabled";
521 device_type = "pci";
522 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
523 #interrupt-cells = <1>;
524 #size-cells = <2>;
525 #address-cells = <3>;
526 reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */
527 0xd0 0xd0000000 0x0 0x00040000>; /* PCI config space */
528 reg-names = "csr", "cfg";
80bb3eda
DD
529 ranges = <0x01000000 0x00 0x00000000 0xd0 0x10000000 0x00 0x00010000 /* io */
530 0x02000000 0x00 0x80000000 0xd1 0x80000000 0x00 0x80000000 /* mem */
531 0x43000000 0xd8 0x00000000 0xd8 0x00000000 0x08 0x00000000>; /* mem */
767ebaff
TI
532 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
533 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
534 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
535 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x1
536 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x1
537 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x1
538 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x1>;
539 dma-coherent;
540 clocks = <&pcie1clk 0>;
e1e6e5c4 541 msi-parent = <&msi>;
767ebaff
TI
542 };
543
544 pcie2: pcie@1f2d0000 {
545 status = "disabled";
546 device_type = "pci";
547 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
548 #interrupt-cells = <1>;
549 #size-cells = <2>;
550 #address-cells = <3>;
551 reg = < 0x00 0x1f2d0000 0x0 0x00010000 /* Controller registers */
552 0x90 0xd0000000 0x0 0x00040000>; /* PCI config space */
553 reg-names = "csr", "cfg";
80bb3eda
DD
554 ranges = <0x01000000 0x00 0x00000000 0x90 0x10000000 0x00 0x00010000 /* io */
555 0x02000000 0x00 0x80000000 0x91 0x80000000 0x00 0x80000000 /* mem */
556 0x43000000 0x94 0x00000000 0x94 0x00000000 0x04 0x00000000>; /* mem */
767ebaff
TI
557 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
558 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
559 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
560 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x1
561 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x1
562 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x1
563 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x1>;
564 dma-coherent;
565 clocks = <&pcie2clk 0>;
e1e6e5c4 566 msi-parent = <&msi>;
767ebaff
TI
567 };
568
569 pcie3: pcie@1f500000 {
570 status = "disabled";
571 device_type = "pci";
572 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
573 #interrupt-cells = <1>;
574 #size-cells = <2>;
575 #address-cells = <3>;
576 reg = < 0x00 0x1f500000 0x0 0x00010000 /* Controller registers */
577 0xa0 0xd0000000 0x0 0x00040000>; /* PCI config space */
578 reg-names = "csr", "cfg";
80bb3eda
DD
579 ranges = <0x01000000 0x00 0x00000000 0xa0 0x10000000 0x00 0x00010000 /* io */
580 0x02000000 0x00 0x80000000 0xa1 0x80000000 0x00 0x80000000 /* mem */
581 0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
767ebaff
TI
582 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
583 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
584 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
585 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x1
586 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x1
587 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x1
588 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x1>;
589 dma-coherent;
590 clocks = <&pcie3clk 0>;
e1e6e5c4 591 msi-parent = <&msi>;
767ebaff
TI
592 };
593
594 pcie4: pcie@1f510000 {
595 status = "disabled";
596 device_type = "pci";
597 compatible = "apm,xgene-storm-pcie", "apm,xgene-pcie";
598 #interrupt-cells = <1>;
599 #size-cells = <2>;
600 #address-cells = <3>;
601 reg = < 0x00 0x1f510000 0x0 0x00010000 /* Controller registers */
602 0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */
603 reg-names = "csr", "cfg";
80bb3eda
DD
604 ranges = <0x01000000 0x00 0x00000000 0xc0 0x10000000 0x00 0x00010000 /* io */
605 0x02000000 0x00 0x80000000 0xc1 0x80000000 0x00 0x80000000 /* mem */
606 0x43000000 0xc8 0x00000000 0xc8 0x00000000 0x08 0x00000000>; /* mem */
767ebaff
TI
607 dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
608 0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
609 interrupt-map-mask = <0x0 0x0 0x0 0x7>;
610 interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x1
611 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x1
612 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x1
613 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x1>;
614 dma-coherent;
615 clocks = <&pcie4clk 0>;
e1e6e5c4 616 msi-parent = <&msi>;
3eb15d84
LH
617 };
618
ee877b53 619 serial0: serial@1c020000 {
457ced84 620 status = "disabled";
ee877b53 621 device_type = "serial";
457ced84 622 compatible = "ns16550a";
ee877b53
VK
623 reg = <0 0x1c020000 0x0 0x1000>;
624 reg-shift = <2>;
625 clock-frequency = <10000000>; /* Updated by bootloader */
626 interrupt-parent = <&gic>;
627 interrupts = <0x0 0x4c 0x4>;
628 };
71b70ee9 629
457ced84
VK
630 serial1: serial@1c021000 {
631 status = "disabled";
632 device_type = "serial";
633 compatible = "ns16550a";
634 reg = <0 0x1c021000 0x0 0x1000>;
635 reg-shift = <2>;
636 clock-frequency = <10000000>; /* Updated by bootloader */
637 interrupt-parent = <&gic>;
638 interrupts = <0x0 0x4d 0x4>;
639 };
640
641 serial2: serial@1c022000 {
642 status = "disabled";
643 device_type = "serial";
644 compatible = "ns16550a";
645 reg = <0 0x1c022000 0x0 0x1000>;
646 reg-shift = <2>;
647 clock-frequency = <10000000>; /* Updated by bootloader */
648 interrupt-parent = <&gic>;
649 interrupts = <0x0 0x4e 0x4>;
650 };
651
652 serial3: serial@1c023000 {
653 status = "disabled";
654 device_type = "serial";
655 compatible = "ns16550a";
656 reg = <0 0x1c023000 0x0 0x1000>;
657 reg-shift = <2>;
658 clock-frequency = <10000000>; /* Updated by bootloader */
659 interrupt-parent = <&gic>;
660 interrupts = <0x0 0x4f 0x4>;
661 };
662
71b70ee9
LH
663 phy1: phy@1f21a000 {
664 compatible = "apm,xgene-phy";
665 reg = <0x0 0x1f21a000 0x0 0x100>;
666 #phy-cells = <1>;
667 clocks = <&sataphy1clk 0>;
668 status = "disabled";
669 apm,tx-boost-gain = <30 30 30 30 30 30>;
670 apm,tx-eye-tuning = <2 10 10 2 10 10>;
671 };
672
673 phy2: phy@1f22a000 {
674 compatible = "apm,xgene-phy";
675 reg = <0x0 0x1f22a000 0x0 0x100>;
676 #phy-cells = <1>;
677 clocks = <&sataphy2clk 0>;
678 status = "ok";
679 apm,tx-boost-gain = <30 30 30 30 30 30>;
680 apm,tx-eye-tuning = <1 10 10 2 10 10>;
681 };
682
683 phy3: phy@1f23a000 {
684 compatible = "apm,xgene-phy";
685 reg = <0x0 0x1f23a000 0x0 0x100>;
686 #phy-cells = <1>;
687 clocks = <&sataphy3clk 0>;
688 status = "ok";
689 apm,tx-boost-gain = <31 31 31 31 31 31>;
690 apm,tx-eye-tuning = <2 10 10 2 10 10>;
691 };
db8c0286
LH
692
693 sata1: sata@1a000000 {
694 compatible = "apm,xgene-ahci";
695 reg = <0x0 0x1a000000 0x0 0x1000>,
696 <0x0 0x1f210000 0x0 0x1000>,
697 <0x0 0x1f21d000 0x0 0x1000>,
698 <0x0 0x1f21e000 0x0 0x1000>,
699 <0x0 0x1f217000 0x0 0x1000>;
700 interrupts = <0x0 0x86 0x4>;
7a8d1ec1 701 dma-coherent;
db8c0286
LH
702 status = "disabled";
703 clocks = <&sata01clk 0>;
704 phys = <&phy1 0>;
705 phy-names = "sata-phy";
706 };
707
708 sata2: sata@1a400000 {
709 compatible = "apm,xgene-ahci";
710 reg = <0x0 0x1a400000 0x0 0x1000>,
711 <0x0 0x1f220000 0x0 0x1000>,
712 <0x0 0x1f22d000 0x0 0x1000>,
713 <0x0 0x1f22e000 0x0 0x1000>,
714 <0x0 0x1f227000 0x0 0x1000>;
715 interrupts = <0x0 0x87 0x4>;
7a8d1ec1 716 dma-coherent;
db8c0286
LH
717 status = "ok";
718 clocks = <&sata23clk 0>;
719 phys = <&phy2 0>;
720 phy-names = "sata-phy";
721 };
722
723 sata3: sata@1a800000 {
724 compatible = "apm,xgene-ahci";
725 reg = <0x0 0x1a800000 0x0 0x1000>,
726 <0x0 0x1f230000 0x0 0x1000>,
727 <0x0 0x1f23d000 0x0 0x1000>,
728 <0x0 0x1f23e000 0x0 0x1000>;
729 interrupts = <0x0 0x88 0x4>;
7a8d1ec1 730 dma-coherent;
db8c0286
LH
731 status = "ok";
732 clocks = <&sata45clk 0>;
733 phys = <&phy3 0>;
734 phy-names = "sata-phy";
735 };
652ba666 736
ea21feb3
V
737 sbgpio: sbgpio@17001000{
738 compatible = "apm,xgene-gpio-sb";
739 reg = <0x0 0x17001000 0x0 0x400>;
740 #gpio-cells = <2>;
741 gpio-controller;
742 interrupts = <0x0 0x28 0x1>,
743 <0x0 0x29 0x1>,
744 <0x0 0x2a 0x1>,
745 <0x0 0x2b 0x1>,
746 <0x0 0x2c 0x1>,
747 <0x0 0x2d 0x1>;
748 };
749
652ba666
LH
750 rtc: rtc@10510000 {
751 compatible = "apm,xgene-rtc";
752 reg = <0x0 0x10510000 0x0 0x400>;
753 interrupts = <0x0 0x46 0x4>;
754 #clock-cells = <1>;
755 clocks = <&rtcclk 0>;
756 };
3d390425
IS
757
758 menet: ethernet@17020000 {
759 compatible = "apm,xgene-enet";
760 status = "disabled";
761 reg = <0x0 0x17020000 0x0 0xd100>,
09c9e059 762 <0x0 0X17030000 0x0 0Xc300>,
3d390425
IS
763 <0x0 0X10000000 0x0 0X200>;
764 reg-names = "enet_csr", "ring_csr", "ring_cmd";
765 interrupts = <0x0 0x3c 0x4>;
766 dma-coherent;
767 clocks = <&menetclk 0>;
5fb32417
IS
768 /* mac address will be overwritten by the bootloader */
769 local-mac-address = [00 00 00 00 00 00];
3d390425
IS
770 phy-connection-type = "rgmii";
771 phy-handle = <&menetphy>;
772 mdio {
773 compatible = "apm,xgene-mdio";
774 #address-cells = <1>;
775 #size-cells = <0>;
776 menetphy: menetphy@3 {
777 compatible = "ethernet-phy-id001c.c915";
778 reg = <0x3>;
779 };
780
781 };
782 };
ab818739 783
4c2e7f09 784 sgenet0: ethernet@1f210000 {
2a91eb72 785 compatible = "apm,xgene1-sgenet";
4c2e7f09 786 status = "disabled";
09c9e059
IS
787 reg = <0x0 0x1f210000 0x0 0xd100>,
788 <0x0 0x1f200000 0x0 0Xc300>,
789 <0x0 0x1B000000 0x0 0X200>;
4c2e7f09 790 reg-names = "enet_csr", "ring_csr", "ring_cmd";
d3134649
IS
791 interrupts = <0x0 0xA0 0x4>,
792 <0x0 0xA1 0x4>;
4c2e7f09
IS
793 dma-coherent;
794 clocks = <&sge0clk 0>;
795 local-mac-address = [00 00 00 00 00 00];
796 phy-connection-type = "sgmii";
797 };
798
2d33394e
KC
799 sgenet1: ethernet@1f210030 {
800 compatible = "apm,xgene1-sgenet";
801 status = "disabled";
802 reg = <0x0 0x1f210030 0x0 0xd100>,
803 <0x0 0x1f200000 0x0 0Xc300>,
804 <0x0 0x1B000000 0x0 0X8000>;
805 reg-names = "enet_csr", "ring_csr", "ring_cmd";
d3134649
IS
806 interrupts = <0x0 0xAC 0x4>,
807 <0x0 0xAD 0x4>;
2d33394e
KC
808 port-id = <1>;
809 dma-coherent;
810 clocks = <&sge1clk 0>;
811 local-mac-address = [00 00 00 00 00 00];
812 phy-connection-type = "sgmii";
813 };
814
5fb32417 815 xgenet: ethernet@1f610000 {
2a91eb72 816 compatible = "apm,xgene1-xgenet";
5fb32417
IS
817 status = "disabled";
818 reg = <0x0 0x1f610000 0x0 0xd100>,
09c9e059 819 <0x0 0x1f600000 0x0 0Xc300>,
5fb32417
IS
820 <0x0 0x18000000 0x0 0X200>;
821 reg-names = "enet_csr", "ring_csr", "ring_cmd";
d3134649
IS
822 interrupts = <0x0 0x60 0x4>,
823 <0x0 0x61 0x4>;
5fb32417
IS
824 dma-coherent;
825 clocks = <&xge0clk 0>;
826 /* mac address will be overwritten by the bootloader */
827 local-mac-address = [00 00 00 00 00 00];
828 phy-connection-type = "xgmii";
829 };
830
ab818739
FK
831 rng: rng@10520000 {
832 compatible = "apm,xgene-rng";
833 reg = <0x0 0x10520000 0x0 0x100>;
834 interrupts = <0x0 0x41 0x4>;
835 clocks = <&rngpkaclk 0>;
836 };
74e353e1
RPS
837
838 dma: dma@1f270000 {
839 compatible = "apm,xgene-storm-dma";
840 device_type = "dma";
841 reg = <0x0 0x1f270000 0x0 0x10000>,
842 <0x0 0x1f200000 0x0 0x10000>,
cda8e937 843 <0x0 0x1b000000 0x0 0x400000>,
74e353e1
RPS
844 <0x0 0x1054a000 0x0 0x100>;
845 interrupts = <0x0 0x82 0x4>,
846 <0x0 0xb8 0x4>,
847 <0x0 0xb9 0x4>,
848 <0x0 0xba 0x4>,
849 <0x0 0xbb 0x4>;
850 dma-coherent;
851 clocks = <&dmaclk 0>;
852 };
ee877b53
VK
853 };
854};