blob: 377700df1195c90376ddd52b49d7ea89fc57260b [file] [log] [blame]
Ley Foon Tan2f721202017-04-26 02:44:44 +08001/*
2 * Copyright Altera Corporation (C) 2014-2017. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "skeleton.dtsi"
18#include <dt-bindings/interrupt-controller/arm-gic.h>
19#include <dt-bindings/reset/altr,rst-mgr-a10.h>
20
21/ {
22 #address-cells = <1>;
23 #size-cells = <1>;
24
25 aliases {
26 ethernet0 = &gmac0;
27 ethernet1 = &gmac1;
28 ethernet2 = &gmac2;
29 serial0 = &uart0;
30 serial1 = &uart1;
31 timer0 = &timer0;
32 timer1 = &timer1;
33 timer2 = &timer2;
34 timer3 = &timer3;
35 spi0 = &spi0;
36 spi1 = &spi1;
37 };
38
39 memory {
40 name = "memory";
41 device_type = "memory";
42 reg = <0x0 0x40000000>; /* 1GB */
43 };
44
45 cpus {
46 #address-cells = <1>;
47 #size-cells = <0>;
48
49 cpu@0 {
50 compatible = "arm,cortex-a9";
51 device_type = "cpu";
52 reg = <0>;
53 next-level-cache = <&L2>;
54 };
55 cpu@1 {
56 compatible = "arm,cortex-a9";
57 device_type = "cpu";
58 reg = <1>;
59 next-level-cache = <&L2>;
60 };
61 };
62
63 intc: intc@ffffd000 {
64 compatible = "arm,cortex-a9-gic";
65 #interrupt-cells = <3>;
66 interrupt-controller;
67 reg = <0xffffd000 0x1000>,
68 <0xffffc100 0x100>;
69 };
70
71 soc {
72 #address-cells = <1>;
73 #size-cells = <1>;
74 compatible = "simple-bus";
75 device_type = "soc";
76 interrupt-parent = <&intc>;
77 ranges;
78
79 amba {
80 compatible = "simple-bus";
81 #address-cells = <1>;
82 #size-cells = <1>;
83 ranges;
84
85 pdma: pdma@ffda1000 {
86 compatible = "arm,pl330", "arm,primecell";
87 reg = <0xffda1000 0x1000>;
88 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
89 <0 84 IRQ_TYPE_LEVEL_HIGH>,
90 <0 85 IRQ_TYPE_LEVEL_HIGH>,
91 <0 86 IRQ_TYPE_LEVEL_HIGH>,
92 <0 87 IRQ_TYPE_LEVEL_HIGH>,
93 <0 88 IRQ_TYPE_LEVEL_HIGH>,
94 <0 89 IRQ_TYPE_LEVEL_HIGH>,
95 <0 90 IRQ_TYPE_LEVEL_HIGH>,
96 <0 91 IRQ_TYPE_LEVEL_HIGH>;
97 #dma-cells = <1>;
98 #dma-channels = <8>;
99 #dma-requests = <32>;
100 clocks = <&l4_main_clk>;
101 clock-names = "apb_pclk";
102 };
103 };
104
105 clkmgr@ffd04000 {
106 compatible = "altr,clk-mgr";
107 reg = <0xffd04000 0x1000>;
108 reg-names = "soc_clock_manager_OCP_SLV";
109
110 clocks {
111 #address-cells = <1>;
112 #size-cells = <0>;
113
114 cb_intosc_hs_div2_clk: cb_intosc_hs_div2_clk {
115 #clock-cells = <0>;
116 compatible = "fixed-clock";
117 };
118
119 cb_intosc_ls_clk: cb_intosc_ls_clk {
120 #clock-cells = <0>;
121 compatible = "fixed-clock";
122 };
123
124 f2s_free_clk: f2s_free_clk {
125 #clock-cells = <0>;
126 compatible = "fixed-clock";
127 };
128
129 osc1: osc1 {
130 #clock-cells = <0>;
131 compatible = "fixed-clock";
132 };
133
134 main_pll: main_pll {
135 #address-cells = <1>;
136 #size-cells = <0>;
137 #clock-cells = <0>;
138 compatible = "altr,socfpga-a10-pll-clock";
139 clocks = <&osc1>, <&cb_intosc_ls_clk>,
140 <&f2s_free_clk>;
141 reg = <0x40>;
142
143 main_mpu_base_clk: main_mpu_base_clk {
144 #clock-cells = <0>;
145 compatible = "altr,socfpga-a10-perip-clk";
146 clocks = <&main_pll>;
147 div-reg = <0x140 0 11>;
148 };
149
150 main_noc_base_clk: main_noc_base_clk {
151 #clock-cells = <0>;
152 compatible = "altr,socfpga-a10-perip-clk";
153 clocks = <&main_pll>;
154 div-reg = <0x144 0 11>;
155 };
156
157 main_emaca_clk: main_emaca_clk {
158 #clock-cells = <0>;
159 compatible = "altr,socfpga-a10-perip-clk";
160 clocks = <&main_pll>;
161 reg = <0x68>;
162 };
163
164 main_emacb_clk: main_emacb_clk {
165 #clock-cells = <0>;
166 compatible = "altr,socfpga-a10-perip-clk";
167 clocks = <&main_pll>;
168 reg = <0x6C>;
169 };
170
171 main_emac_ptp_clk: main_emac_ptp_clk {
172 #clock-cells = <0>;
173 compatible = "altr,socfpga-a10-perip-clk";
174 clocks = <&main_pll>;
175 reg = <0x70>;
176 };
177
178 main_gpio_db_clk: main_gpio_db_clk {
179 #clock-cells = <0>;
180 compatible = "altr,socfpga-a10-perip-clk";
181 clocks = <&main_pll>;
182 reg = <0x74>;
183 };
184
185 main_sdmmc_clk: main_sdmmc_clk {
186 #clock-cells = <0>;
187 compatible = "altr,socfpga-a10-perip-clk";
188 clocks = <&main_pll>;
189 reg = <0x78>;
190 };
191
192 main_s2f_usr0_clk: main_s2f_usr0_clk {
193 #clock-cells = <0>;
194 compatible = "altr,socfpga-a10-perip-clk";
195 clocks = <&main_pll>;
196 reg = <0x7C>;
197 };
198
199 main_s2f_usr1_clk: main_s2f_usr1_clk {
200 #clock-cells = <0>;
201 compatible = "altr,socfpga-a10-perip-clk";
202 clocks = <&main_pll>;
203 reg = <0x80>;
204 };
205
206 main_hmc_pll_ref_clk: main_hmc_pll_ref_clk {
207 #clock-cells = <0>;
208 compatible = "altr,socfpga-a10-perip-clk";
209 clocks = <&main_pll>;
210 reg = <0x84>;
211 };
212
213 main_periph_ref_clk: main_periph_ref_clk {
214 #clock-cells = <0>;
215 compatible = "altr,socfpga-a10-perip-clk";
216 clocks = <&main_pll>;
217 reg = <0x9C>;
218 };
219 };
220
221 periph_pll: periph_pll {
222 #address-cells = <1>;
223 #size-cells = <0>;
224 #clock-cells = <0>;
225 compatible = "altr,socfpga-a10-pll-clock";
226 clocks = <&osc1>, <&cb_intosc_ls_clk>,
227 <&f2s_free_clk>, <&main_periph_ref_clk>;
228 reg = <0xC0>;
229
230 peri_mpu_base_clk: peri_mpu_base_clk {
231 #clock-cells = <0>;
232 compatible = "altr,socfpga-a10-perip-clk";
233 clocks = <&periph_pll>;
234 div-reg = <0x140 16 11>;
235 };
236
237 peri_noc_base_clk: peri_noc_base_clk {
238 #clock-cells = <0>;
239 compatible = "altr,socfpga-a10-perip-clk";
240 clocks = <&periph_pll>;
241 div-reg = <0x144 16 11>;
242 };
243
244 peri_emaca_clk: peri_emaca_clk {
245 #clock-cells = <0>;
246 compatible = "altr,socfpga-a10-perip-clk";
247 clocks = <&periph_pll>;
248 reg = <0xE8>;
249 };
250
251 peri_emacb_clk: peri_emacb_clk {
252 #clock-cells = <0>;
253 compatible = "altr,socfpga-a10-perip-clk";
254 clocks = <&periph_pll>;
255 reg = <0xEC>;
256 };
257
258 peri_emac_ptp_clk: peri_emac_ptp_clk {
259 #clock-cells = <0>;
260 compatible = "altr,socfpga-a10-perip-clk";
261 clocks = <&periph_pll>;
262 reg = <0xF0>;
263 };
264
265 peri_gpio_db_clk: peri_gpio_db_clk {
266 #clock-cells = <0>;
267 compatible = "altr,socfpga-a10-perip-clk";
268 clocks = <&periph_pll>;
269 reg = <0xF4>;
270 };
271
272 peri_sdmmc_clk: peri_sdmmc_clk {
273 #clock-cells = <0>;
274 compatible = "altr,socfpga-a10-perip-clk";
275 clocks = <&periph_pll>;
276 reg = <0xF8>;
277 };
278
279 peri_s2f_usr0_clk: peri_s2f_usr0_clk {
280 #clock-cells = <0>;
281 compatible = "altr,socfpga-a10-perip-clk";
282 clocks = <&periph_pll>;
283 reg = <0xFC>;
284 };
285
286 peri_s2f_usr1_clk: peri_s2f_usr1_clk {
287 #clock-cells = <0>;
288 compatible = "altr,socfpga-a10-perip-clk";
289 clocks = <&periph_pll>;
290 reg = <0x100>;
291 };
292
293 peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk {
294 #clock-cells = <0>;
295 compatible = "altr,socfpga-a10-perip-clk";
296 clocks = <&periph_pll>;
297 reg = <0x104>;
298 };
299 };
300
301 mpu_free_clk: mpu_free_clk {
302 #clock-cells = <0>;
303 compatible = "altr,socfpga-a10-perip-clk";
304 clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
305 <&osc1>, <&cb_intosc_hs_div2_clk>,
306 <&f2s_free_clk>;
307 reg = <0x60>;
308 };
309
310 noc_free_clk: noc_free_clk {
311 #clock-cells = <0>;
312 compatible = "altr,socfpga-a10-perip-clk";
313 clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
314 <&osc1>, <&cb_intosc_hs_div2_clk>,
315 <&f2s_free_clk>;
316 reg = <0x64>;
317 };
318
319 s2f_user1_free_clk: s2f_user1_free_clk {
320 #clock-cells = <0>;
321 compatible = "altr,socfpga-a10-perip-clk";
322 clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
323 <&osc1>, <&cb_intosc_hs_div2_clk>,
324 <&f2s_free_clk>;
325 reg = <0x104>;
326 };
327
328 sdmmc_free_clk: sdmmc_free_clk {
329 #clock-cells = <0>;
330 compatible = "altr,socfpga-a10-perip-clk";
331 clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
332 <&osc1>, <&cb_intosc_hs_div2_clk>,
333 <&f2s_free_clk>;
334 fixed-divider = <4>;
335 reg = <0xF8>;
336 };
337
338 l4_sys_free_clk: l4_sys_free_clk {
339 #clock-cells = <0>;
340 compatible = "altr,socfpga-a10-perip-clk";
341 clocks = <&noc_free_clk>;
342 fixed-divider = <4>;
343 };
344
345 l4_main_clk: l4_main_clk {
346 #clock-cells = <0>;
347 compatible = "altr,socfpga-a10-gate-clk";
348 clocks = <&noc_free_clk>;
349 div-reg = <0xA8 0 2>;
350 clk-gate = <0x48 1>;
351 };
352
353 l4_mp_clk: l4_mp_clk {
354 #clock-cells = <0>;
355 compatible = "altr,socfpga-a10-gate-clk";
356 clocks = <&noc_free_clk>;
357 div-reg = <0xA8 8 2>;
358 clk-gate = <0x48 2>;
359 };
360
361 l4_sp_clk: l4_sp_clk {
362 #clock-cells = <0>;
363 compatible = "altr,socfpga-a10-gate-clk";
364 clocks = <&noc_free_clk>;
365 div-reg = <0xA8 16 2>;
366 clk-gate = <0x48 3>;
367 };
368
369 mpu_periph_clk: mpu_periph_clk {
370 #clock-cells = <0>;
371 compatible = "altr,socfpga-a10-gate-clk";
372 clocks = <&mpu_free_clk>;
373 fixed-divider = <4>;
374 clk-gate = <0x48 0>;
375 };
376
377 sdmmc_clk: sdmmc_clk {
378 #clock-cells = <0>;
379 compatible = "altr,socfpga-a10-gate-clk";
380 clocks = <&sdmmc_free_clk>;
381 clk-gate = <0xC8 5>;
382 clk-phase = <0 135>;
383 };
384
385 qspi_clk: qspi_clk {
386 #clock-cells = <0>;
387 compatible = "altr,socfpga-a10-gate-clk";
388 clocks = <&l4_main_clk>;
389 clk-gate = <0xC8 11>;
390 };
391
392 nand_clk: nand_clk {
393 #clock-cells = <0>;
394 compatible = "altr,socfpga-a10-gate-clk";
395 clocks = <&l4_mp_clk>;
396 clk-gate = <0xC8 10>;
397 };
398
399 spi_m_clk: spi_m_clk {
400 #clock-cells = <0>;
401 compatible = "altr,socfpga-a10-gate-clk";
402 clocks = <&l4_main_clk>;
403 clk-gate = <0xC8 9>;
404 };
405
406 usb_clk: usb_clk {
407 #clock-cells = <0>;
408 compatible = "altr,socfpga-a10-gate-clk";
409 clocks = <&l4_mp_clk>;
410 clk-gate = <0xC8 8>;
411 };
412
413 s2f_usr1_clk: s2f_usr1_clk {
414 #clock-cells = <0>;
415 compatible = "altr,socfpga-a10-gate-clk";
416 clocks = <&peri_s2f_usr1_clk>;
417 clk-gate = <0xC8 6>;
418 };
419 };
420 };
421
422 gmac0: ethernet@ff800000 {
423 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
424 altr,sysmgr-syscon = <&sysmgr 0x44 0>;
425 reg = <0xff800000 0x2000>;
426 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
427 interrupt-names = "macirq";
428 /* Filled in by bootloader */
429 mac-address = [00 00 00 00 00 00];
430 snps,multicast-filter-bins = <256>;
431 snps,perfect-filter-entries = <128>;
432 tx-fifo-depth = <4096>;
433 rx-fifo-depth = <16384>;
434 clocks = <&l4_mp_clk>;
435 clock-names = "stmmaceth";
436 resets = <&rst EMAC0_RESET>;
437 reset-names = "stmmaceth";
438 status = "disabled";
439 };
440
441 gmac1: ethernet@ff802000 {
442 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
443 altr,sysmgr-syscon = <&sysmgr 0x48 0>;
444 reg = <0xff802000 0x2000>;
445 interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
446 interrupt-names = "macirq";
447 /* Filled in by bootloader */
448 mac-address = [00 00 00 00 00 00];
449 snps,multicast-filter-bins = <256>;
450 snps,perfect-filter-entries = <128>;
451 tx-fifo-depth = <4096>;
452 rx-fifo-depth = <16384>;
453 clocks = <&l4_mp_clk>;
454 clock-names = "stmmaceth";
455 resets = <&rst EMAC1_RESET>;
456 reset-names = "stmmaceth";
457 status = "disabled";
458 };
459
460 gmac2: ethernet@ff804000 {
461 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
462 altr,sysmgr-syscon = <&sysmgr 0x4C 0>;
463 reg = <0xff804000 0x2000>;
464 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
465 interrupt-names = "macirq";
466 /* Filled in by bootloader */
467 mac-address = [00 00 00 00 00 00];
468 snps,multicast-filter-bins = <256>;
469 snps,perfect-filter-entries = <128>;
470 tx-fifo-depth = <4096>;
471 rx-fifo-depth = <16384>;
472 clocks = <&l4_mp_clk>;
473 clock-names = "stmmaceth";
474 status = "disabled";
475 };
476
477 gpio0: gpio@ffc02900 {
478 #address-cells = <1>;
479 #size-cells = <0>;
480 compatible = "snps,dw-apb-gpio";
481 reg = <0xffc02900 0x100>;
482 status = "disabled";
483
484 porta: gpio-controller@0 {
485 compatible = "snps,dw-apb-gpio-port";
486 gpio-controller;
487 #gpio-cells = <2>;
488 snps,nr-gpios = <29>;
489 reg = <0>;
490 interrupt-controller;
491 #interrupt-cells = <2>;
492 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
493 };
494 };
495
496 gpio1: gpio@ffc02a00 {
497 #address-cells = <1>;
498 #size-cells = <0>;
499 compatible = "snps,dw-apb-gpio";
500 reg = <0xffc02a00 0x100>;
501 status = "disabled";
502
503 portb: gpio-controller@0 {
504 compatible = "snps,dw-apb-gpio-port";
505 gpio-controller;
506 #gpio-cells = <2>;
507 snps,nr-gpios = <29>;
508 reg = <0>;
509 interrupt-controller;
510 #interrupt-cells = <2>;
511 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
512 };
513 };
514
515 gpio2: gpio@ffc02b00 {
516 #address-cells = <1>;
517 #size-cells = <0>;
518 compatible = "snps,dw-apb-gpio";
519 reg = <0xffc02b00 0x100>;
520 status = "disabled";
521
522 portc: gpio-controller@0 {
523 compatible = "snps,dw-apb-gpio-port";
524 gpio-controller;
525 #gpio-cells = <2>;
526 snps,nr-gpios = <27>;
527 reg = <0>;
528 interrupt-controller;
529 #interrupt-cells = <2>;
530 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
531 };
532 };
533
534 fpga_mgr: fpga-mgr@ffd03000 {
535 compatible = "altr,socfpga-a10-fpga-mgr";
536 reg = <0xffd03000 0x100
537 0xffcfe400 0x20>;
538 clocks = <&l4_mp_clk>;
539 resets = <&rst FPGAMGR_RESET>;
540 reset-names = "fpgamgr";
541 };
542
543 i2c0: i2c@ffc02200 {
544 #address-cells = <1>;
545 #size-cells = <0>;
546 compatible = "snps,designware-i2c";
547 reg = <0xffc02200 0x100>;
548 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
549 clocks = <&l4_sp_clk>;
550 status = "disabled";
551 };
552
553 i2c1: i2c@ffc02300 {
554 #address-cells = <1>;
555 #size-cells = <0>;
556 compatible = "snps,designware-i2c";
557 reg = <0xffc02300 0x100>;
558 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
559 clocks = <&l4_sp_clk>;
560 status = "disabled";
561 };
562
563 i2c2: i2c@ffc02400 {
564 #address-cells = <1>;
565 #size-cells = <0>;
566 compatible = "snps,designware-i2c";
567 reg = <0xffc02400 0x100>;
568 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
569 clocks = <&l4_sp_clk>;
570 status = "disabled";
571 };
572
573 i2c3: i2c@ffc02500 {
574 #address-cells = <1>;
575 #size-cells = <0>;
576 compatible = "snps,designware-i2c";
577 reg = <0xffc02500 0x100>;
578 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
579 clocks = <&l4_sp_clk>;
580 status = "disabled";
581 };
582
583 i2c4: i2c@ffc02600 {
584 #address-cells = <1>;
585 #size-cells = <0>;
586 compatible = "snps,designware-i2c";
587 reg = <0xffc02600 0x100>;
588 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
589 clocks = <&l4_sp_clk>;
590 status = "disabled";
591 };
592
593 sdr: sdr@0xffcfb100 {
594 compatible = "syscon";
595 reg = <0xffcfb100 0x80>;
596 };
597
598 spi0: spi@ffda4000 {
599 compatible = "snps,dw-apb-ssi";
600 #address-cells = <1>;
601 #size-cells = <0>;
602 reg = <0xffda4000 0x100>;
603 interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
604 num-chipselect = <4>;
605 bus-num = <0>;
606 tx-dma-channel = <&pdma 16>;
607 rx-dma-channel = <&pdma 17>;
608 clocks = <&spi_m_clk>;
609 status = "disabled";
610 };
611
612 spi1: spi@ffda5000 {
613 compatible = "snps,dw-apb-ssi";
614 #address-cells = <1>;
615 #size-cells = <0>;
616 reg = <0xffda5000 0x100>;
617 interrupts = <0 102 IRQ_TYPE_LEVEL_HIGH>;
618 num-chipselect = <4>;
619 bus-num = <0>;
620 tx-dma-channel = <&pdma 20>;
621 rx-dma-channel = <&pdma 21>;
622 clocks = <&spi_m_clk>;
623 status = "disabled";
624 };
625
626 L2: l2-cache@fffff000 {
627 compatible = "arm,pl310-cache";
628 reg = <0xfffff000 0x1000>;
629 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
630 cache-unified;
631 cache-level = <2>;
632 };
633
634 mmc: dwmmc0@ff808000 {
635 #address-cells = <1>;
636 #size-cells = <0>;
637 compatible = "altr,socfpga-dw-mshc";
638 reg = <0xff808000 0x1000>;
639 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
640 fifo-depth = <0x400>;
641 bus-width = <4>;
642 clocks = <&l4_mp_clk>, <&sdmmc_clk>;
643 clock-names = "biu", "ciu";
644 status = "disabled";
645 };
646
647 ocram: sram@ffe00000 {
648 compatible = "mmio-sram";
649 reg = <0xffe00000 0x40000>;
650 };
651
652 eccmgr: eccmgr@ffd06000 {
653 compatible = "altr,socfpga-a10-ecc-manager";
654 altr,sysmgr-syscon = <&sysmgr>;
655 #address-cells = <1>;
656 #size-cells = <1>;
657 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
658 <0 0 IRQ_TYPE_LEVEL_HIGH>;
659 interrupt-controller;
660 #interrupt-cells = <2>;
661 ranges;
662
663 sdramedac {
664 compatible = "altr,sdram-edac-a10";
665 altr,sdr-syscon = <&sdr>;
666 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
667 <49 IRQ_TYPE_LEVEL_HIGH>;
668 };
669
670 l2-ecc@ffd06010 {
671 compatible = "altr,socfpga-a10-l2-ecc";
672 reg = <0xffd06010 0x4>;
673 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
674 <32 IRQ_TYPE_LEVEL_HIGH>;
675 };
676
677 ocram-ecc@ff8c3000 {
678 compatible = "altr,socfpga-a10-ocram-ecc";
679 reg = <0xff8c3000 0x400>;
680 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
681 <33 IRQ_TYPE_LEVEL_HIGH>;
682 };
683
684 sdmmca-ecc@ff8c2c00 {
685 compatible = "altr,socfpga-sdmmc-ecc";
686 reg = <0xff8c2c00 0x400>;
687 altr,ecc-parent = <&mmc>;
688 interrupts = <15 IRQ_TYPE_LEVEL_HIGH>,
689 <47 IRQ_TYPE_LEVEL_HIGH>,
690 <16 IRQ_TYPE_LEVEL_HIGH>,
691 <48 IRQ_TYPE_LEVEL_HIGH>;
692 };
693
694 emac0-rx-ecc@ff8c0800 {
695 compatible = "altr,socfpga-eth-mac-ecc";
696 reg = <0xff8c0800 0x400>;
697 altr,ecc-parent = <&gmac0>;
698 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>,
699 <36 IRQ_TYPE_LEVEL_HIGH>;
700 };
701
702 emac0-tx-ecc@ff8c0c00 {
703 compatible = "altr,socfpga-eth-mac-ecc";
704 reg = <0xff8c0c00 0x400>;
705 altr,ecc-parent = <&gmac0>;
706 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>,
707 <37 IRQ_TYPE_LEVEL_HIGH>;
708 };
709
710 dma-ecc@ff8c8000 {
711 compatible = "altr,socfpga-dma-ecc";
712 reg = <0xff8c8000 0x400>;
713 altr,ecc-parent = <&pdma>;
714 interrupts = <10 IRQ_TYPE_LEVEL_HIGH>,
715 <42 IRQ_TYPE_LEVEL_HIGH>;
716 };
717
718 usb0-ecc@ff8c8800 {
719 compatible = "altr,socfpga-usb-ecc";
720 reg = <0xff8c8800 0x400>;
721 altr,ecc-parent = <&usb0>;
722 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
723 <34 IRQ_TYPE_LEVEL_HIGH>;
724 };
725 };
726
727 qspi: qspi@ff809000 {
728 #address-cells = <1>;
729 #size-cells = <0>;
730 compatible = "cadence,qspi";
731 reg = <0xff809000 0x100>,
732 <0xffa00000 0x100000>;
733 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
734 clocks = <&l4_main_clk>;
735 ext-decoder = <0>; /* external decoder */
736 num-chipselect = <4>;
737 fifo-depth = <128>;
738 sram-size = <512>;
739 bus-num = <2>;
740 status = "disabled";
741 };
742
743 rst: rstmgr@ffd05000 {
744 #reset-cells = <1>;
745 compatible = "altr,rst-mgr";
746 reg = <0xffd05000 0x100>;
747 altr,modrst-offset = <0x20>;
748 };
749
750 scu: snoop-control-unit@ffffc000 {
751 compatible = "arm,cortex-a9-scu";
752 reg = <0xffffc000 0x100>;
753 };
754
755 sysmgr: sysmgr@ffd06000 {
756 compatible = "altr,sys-mgr", "syscon";
757 reg = <0xffd06000 0x300>;
758 cpu1-start-addr = <0xffd06230>;
759 };
760
761 /* Local timer */
762 timer@ffffc600 {
763 compatible = "arm,cortex-a9-twd-timer";
764 reg = <0xffffc600 0x100>;
765 interrupts = <1 13 0xf04>;
766 clocks = <&mpu_periph_clk>;
767 };
768
769 timer0: timer0@ffc02700 {
770 compatible = "snps,dw-apb-timer";
771 interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
772 reg = <0xffc02700 0x100>;
773 clocks = <&l4_sp_clk>;
774 clock-names = "timer";
775 };
776
777 timer1: timer1@ffc02800 {
778 compatible = "snps,dw-apb-timer";
779 interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
780 reg = <0xffc02800 0x100>;
781 clocks = <&l4_sp_clk>;
782 clock-names = "timer";
783 };
784
785 timer2: timer2@ffd00000 {
786 compatible = "snps,dw-apb-timer";
787 interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
788 reg = <0xffd00000 0x100>;
789 clocks = <&l4_sys_free_clk>;
790 clock-names = "timer";
791 };
792
793 timer3: timer3@ffd00100 {
794 compatible = "snps,dw-apb-timer";
795 interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
796 reg = <0xffd01000 0x100>;
797 clocks = <&l4_sys_free_clk>;
798 clock-names = "timer";
799 };
800
801 uart0: serial0@ffc02000 {
802 compatible = "snps,dw-apb-uart";
803 reg = <0xffc02000 0x100>;
804 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
805 reg-shift = <2>;
806 reg-io-width = <4>;
807 clocks = <&l4_sp_clk>;
808 status = "disabled";
809 };
810
811 uart1: serial1@ffc02100 {
812 compatible = "snps,dw-apb-uart";
813 reg = <0xffc02100 0x100>;
814 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
815 reg-shift = <2>;
816 reg-io-width = <4>;
817 clocks = <&l4_sp_clk>;
818 status = "disabled";
819 };
820
821 usbphy0: usbphy@0 {
822 #phy-cells = <0>;
823 compatible = "usb-nop-xceiv";
824 status = "okay";
825 };
826
827 usb0: usb@ffb00000 {
828 compatible = "snps,dwc2";
829 reg = <0xffb00000 0xffff>;
830 interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
831 clocks = <&usb_clk>;
832 clock-names = "otg";
833 resets = <&rst USB0_RESET>;
834 reset-names = "dwc2";
835 phys = <&usbphy0>;
836 phy-names = "usb2-phy";
837 status = "disabled";
838 };
839
840 usb1: usb@ffb40000 {
841 compatible = "snps,dwc2";
842 reg = <0xffb40000 0xffff>;
843 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
844 clocks = <&usb_clk>;
845 clock-names = "otg";
846 resets = <&rst USB1_RESET>;
847 reset-names = "dwc2";
848 phys = <&usbphy0>;
849 phy-names = "usb2-phy";
850 status = "disabled";
851 };
852
853 watchdog0: watchdog@ffd00200 {
854 compatible = "snps,dw-wdt";
855 reg = <0xffd00200 0x100>;
856 interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
857 clocks = <&l4_sys_free_clk>;
858 status = "disabled";
859 };
860
861 watchdog1: watchdog@ffd00300 {
862 compatible = "snps,dw-wdt";
863 reg = <0xffd00300 0x100>;
864 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
865 clocks = <&l4_sys_free_clk>;
866 status = "disabled";
867 };
868 };
869};