2 * Copyright Altera Corporation (C) 2014. All rights reserved.
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.
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
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/>.
17 #include "skeleton.dtsi"
18 #include <dt-bindings/interrupt-controller/arm-gic.h>
27 enable-method = "altr,socfpga-a10-smp";
30 compatible = "arm,cortex-a9";
33 next-level-cache = <&L2>;
36 compatible = "arm,cortex-a9";
39 next-level-cache = <&L2>;
44 compatible = "arm,cortex-a9-gic";
45 #interrupt-cells = <3>;
47 reg = <0xffffd000 0x1000>,
54 compatible = "simple-bus";
56 interrupt-parent = <&intc>;
60 compatible = "arm,amba-bus";
66 compatible = "arm,pl330", "arm,primecell";
67 reg = <0xffda1000 0x1000>;
68 interrupts = <0 83 IRQ_TYPE_LEVEL_HIGH>,
69 <0 84 IRQ_TYPE_LEVEL_HIGH>,
70 <0 85 IRQ_TYPE_LEVEL_HIGH>,
71 <0 86 IRQ_TYPE_LEVEL_HIGH>,
72 <0 87 IRQ_TYPE_LEVEL_HIGH>,
73 <0 88 IRQ_TYPE_LEVEL_HIGH>,
74 <0 89 IRQ_TYPE_LEVEL_HIGH>,
75 <0 90 IRQ_TYPE_LEVEL_HIGH>;
83 compatible = "altr,clk-mgr";
84 reg = <0xffd04000 0x1000>;
90 cb_intosc_hs_div2_clk: cb_intosc_hs_div2_clk {
92 compatible = "fixed-clock";
95 cb_intosc_ls_clk: cb_intosc_ls_clk {
97 compatible = "fixed-clock";
100 f2s_free_clk: f2s_free_clk {
102 compatible = "fixed-clock";
107 compatible = "fixed-clock";
111 #address-cells = <1>;
114 compatible = "altr,socfpga-a10-pll-clock";
115 clocks = <&osc1>, <&cb_intosc_ls_clk>,
119 main_mpu_base_clk: main_mpu_base_clk {
121 compatible = "altr,socfpga-a10-perip-clk";
122 clocks = <&main_pll>;
123 div-reg = <0x140 0 11>;
126 main_noc_base_clk: main_noc_base_clk {
128 compatible = "altr,socfpga-a10-perip-clk";
129 clocks = <&main_pll>;
130 div-reg = <0x144 0 11>;
133 main_emaca_clk: main_emaca_clk {
135 compatible = "altr,socfpga-a10-perip-clk";
136 clocks = <&main_pll>;
140 main_emacb_clk: main_emacb_clk {
142 compatible = "altr,socfpga-a10-perip-clk";
143 clocks = <&main_pll>;
147 main_emac_ptp_clk: main_emac_ptp_clk {
149 compatible = "altr,socfpga-a10-perip-clk";
150 clocks = <&main_pll>;
154 main_gpio_db_clk: main_gpio_db_clk {
156 compatible = "altr,socfpga-a10-perip-clk";
157 clocks = <&main_pll>;
161 main_sdmmc_clk: main_sdmmc_clk {
163 compatible = "altr,socfpga-a10-perip-clk"
165 clocks = <&main_pll>;
169 main_s2f_usr0_clk: main_s2f_usr0_clk {
171 compatible = "altr,socfpga-a10-perip-clk";
172 clocks = <&main_pll>;
176 main_s2f_usr1_clk: main_s2f_usr1_clk {
178 compatible = "altr,socfpga-a10-perip-clk";
179 clocks = <&main_pll>;
183 main_hmc_pll_ref_clk: main_hmc_pll_ref_clk {
185 compatible = "altr,socfpga-a10-perip-clk";
186 clocks = <&main_pll>;
190 main_periph_ref_clk: main_periph_ref_clk {
192 compatible = "altr,socfpga-a10-perip-clk";
193 clocks = <&main_pll>;
198 periph_pll: periph_pll {
199 #address-cells = <1>;
202 compatible = "altr,socfpga-a10-pll-clock";
203 clocks = <&osc1>, <&cb_intosc_ls_clk>,
204 <&f2s_free_clk>, <&main_periph_ref_clk>;
207 peri_mpu_base_clk: peri_mpu_base_clk {
209 compatible = "altr,socfpga-a10-perip-clk";
210 clocks = <&periph_pll>;
211 div-reg = <0x140 16 11>;
214 peri_noc_base_clk: peri_noc_base_clk {
216 compatible = "altr,socfpga-a10-perip-clk";
217 clocks = <&periph_pll>;
218 div-reg = <0x144 16 11>;
221 peri_emaca_clk: peri_emaca_clk {
223 compatible = "altr,socfpga-a10-perip-clk";
224 clocks = <&periph_pll>;
228 peri_emacb_clk: peri_emacb_clk {
230 compatible = "altr,socfpga-a10-perip-clk";
231 clocks = <&periph_pll>;
235 peri_emac_ptp_clk: peri_emac_ptp_clk {
237 compatible = "altr,socfpga-a10-perip-clk";
238 clocks = <&periph_pll>;
242 peri_gpio_db_clk: peri_gpio_db_clk {
244 compatible = "altr,socfpga-a10-perip-clk";
245 clocks = <&periph_pll>;
249 peri_sdmmc_clk: peri_sdmmc_clk {
251 compatible = "altr,socfpga-a10-perip-clk";
252 clocks = <&periph_pll>;
256 peri_s2f_usr0_clk: peri_s2f_usr0_clk {
258 compatible = "altr,socfpga-a10-perip-clk";
259 clocks = <&periph_pll>;
263 peri_s2f_usr1_clk: peri_s2f_usr1_clk {
265 compatible = "altr,socfpga-a10-perip-clk";
266 clocks = <&periph_pll>;
270 peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk {
272 compatible = "altr,socfpga-a10-perip-clk";
273 clocks = <&periph_pll>;
278 mpu_free_clk: mpu_free_clk {
280 compatible = "altr,socfpga-a10-perip-clk";
281 clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
282 <&osc1>, <&cb_intosc_hs_div2_clk>,
287 noc_free_clk: noc_free_clk {
289 compatible = "altr,socfpga-a10-perip-clk";
290 clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
291 <&osc1>, <&cb_intosc_hs_div2_clk>,
296 s2f_user1_free_clk: s2f_user1_free_clk {
298 compatible = "altr,socfpga-a10-perip-clk";
299 clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
300 <&osc1>, <&cb_intosc_hs_div2_clk>,
305 sdmmc_free_clk: sdmmc_free_clk {
307 compatible = "altr,socfpga-a10-perip-clk";
308 clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
309 <&osc1>, <&cb_intosc_hs_div2_clk>,
315 l4_sys_free_clk: l4_sys_free_clk {
317 compatible = "altr,socfpga-a10-perip-clk";
318 clocks = <&noc_free_clk>;
322 l4_main_clk: l4_main_clk {
324 compatible = "altr,socfpga-a10-gate-clk";
325 clocks = <&noc_free_clk>;
326 div-reg = <0xA8 0 2>;
330 l4_mp_clk: l4_mp_clk {
332 compatible = "altr,socfpga-a10-gate-clk";
333 clocks = <&noc_free_clk>;
334 div-reg = <0xA8 8 2>;
338 l4_sp_clk: l4_sp_clk {
340 compatible = "altr,socfpga-a10-gate-clk";
341 clocks = <&noc_free_clk>;
342 div-reg = <0xA8 16 2>;
346 mpu_periph_clk: mpu_periph_clk {
348 compatible = "altr,socfpga-a10-gate-clk";
349 clocks = <&mpu_free_clk>;
354 sdmmc_clk: sdmmc_clk {
356 compatible = "altr,socfpga-a10-gate-clk";
357 clocks = <&sdmmc_free_clk>;
363 compatible = "altr,socfpga-a10-gate-clk";
364 clocks = <&l4_main_clk>;
365 clk-gate = <0xC8 11>;
370 compatible = "altr,socfpga-a10-gate-clk";
371 clocks = <&l4_mp_clk>;
372 clk-gate = <0xC8 10>;
375 spi_m_clk: spi_m_clk {
377 compatible = "altr,socfpga-a10-gate-clk";
378 clocks = <&l4_main_clk>;
384 compatible = "altr,socfpga-a10-gate-clk";
385 clocks = <&l4_mp_clk>;
389 s2f_usr1_clk: s2f_usr1_clk {
391 compatible = "altr,socfpga-a10-gate-clk";
392 clocks = <&peri_s2f_usr1_clk>;
398 gmac0: ethernet@ff800000 {
399 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
400 altr,sysmgr-syscon = <&sysmgr 0x44 0>;
401 reg = <0xff800000 0x2000>;
402 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
403 interrupt-names = "macirq";
404 /* Filled in by bootloader */
405 mac-address = [00 00 00 00 00 00];
406 snps,multicast-filter-bins = <256>;
407 snps,perfect-filter-entries = <128>;
408 tx-fifo-depth = <4096>;
409 rx-fifo-depth = <16384>;
410 clocks = <&l4_mp_clk>;
411 clock-names = "stmmaceth";
415 gmac1: ethernet@ff802000 {
416 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
417 altr,sysmgr-syscon = <&sysmgr 0x48 0>;
418 reg = <0xff802000 0x2000>;
419 interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
420 interrupt-names = "macirq";
421 /* Filled in by bootloader */
422 mac-address = [00 00 00 00 00 00];
423 snps,multicast-filter-bins = <256>;
424 snps,perfect-filter-entries = <128>;
425 tx-fifo-depth = <4096>;
426 rx-fifo-depth = <16384>;
427 clocks = <&l4_mp_clk>;
428 clock-names = "stmmaceth";
432 gmac2: ethernet@ff804000 {
433 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.72a", "snps,dwmac";
434 altr,sysmgr-syscon = <&sysmgr 0x4C 0>;
435 reg = <0xff804000 0x2000>;
436 interrupts = <0 94 IRQ_TYPE_LEVEL_HIGH>;
437 interrupt-names = "macirq";
438 /* Filled in by bootloader */
439 mac-address = [00 00 00 00 00 00];
440 snps,multicast-filter-bins = <256>;
441 snps,perfect-filter-entries = <128>;
442 tx-fifo-depth = <4096>;
443 rx-fifo-depth = <16384>;
444 clocks = <&l4_mp_clk>;
445 clock-names = "stmmaceth";
449 gpio0: gpio@ffc02900 {
450 #address-cells = <1>;
452 compatible = "snps,dw-apb-gpio";
453 reg = <0xffc02900 0x100>;
456 porta: gpio-controller@0 {
457 compatible = "snps,dw-apb-gpio-port";
460 snps,nr-gpios = <29>;
462 interrupt-controller;
463 #interrupt-cells = <2>;
464 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
468 gpio1: gpio@ffc02a00 {
469 #address-cells = <1>;
471 compatible = "snps,dw-apb-gpio";
472 reg = <0xffc02a00 0x100>;
475 portb: gpio-controller@0 {
476 compatible = "snps,dw-apb-gpio-port";
479 snps,nr-gpios = <29>;
481 interrupt-controller;
482 #interrupt-cells = <2>;
483 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
487 gpio2: gpio@ffc02b00 {
488 #address-cells = <1>;
490 compatible = "snps,dw-apb-gpio";
491 reg = <0xffc02b00 0x100>;
494 portc: gpio-controller@0 {
495 compatible = "snps,dw-apb-gpio-port";
498 snps,nr-gpios = <27>;
500 interrupt-controller;
501 #interrupt-cells = <2>;
502 interrupts = <0 114 IRQ_TYPE_LEVEL_HIGH>;
507 #address-cells = <1>;
509 compatible = "snps,designware-i2c";
510 reg = <0xffc02200 0x100>;
511 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
516 #address-cells = <1>;
518 compatible = "snps,designware-i2c";
519 reg = <0xffc02300 0x100>;
520 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
525 #address-cells = <1>;
527 compatible = "snps,designware-i2c";
528 reg = <0xffc02400 0x100>;
529 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
534 #address-cells = <1>;
536 compatible = "snps,designware-i2c";
537 reg = <0xffc02500 0x100>;
538 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
543 #address-cells = <1>;
545 compatible = "snps,designware-i2c";
546 reg = <0xffc02600 0x100>;
547 interrupts = <0 109 IRQ_TYPE_LEVEL_HIGH>;
552 compatible = "syscon";
553 reg = <0xffcfb100 0x80>;
557 compatible = "altr,sdram-edac-a10";
558 altr,sdr-syscon = <&sdr>;
559 interrupts = <0 2 4>, <0 0 4>;
562 L2: l2-cache@fffff000 {
563 compatible = "arm,pl310-cache";
564 reg = <0xfffff000 0x1000>;
565 interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
570 mmc: dwmmc0@ff808000 {
571 #address-cells = <1>;
573 compatible = "altr,socfpga-dw-mshc";
574 reg = <0xff808000 0x1000>;
575 interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
576 fifo-depth = <0x400>;
577 clocks = <&l4_mp_clk>, <&sdmmc_free_clk>;
578 clock-names = "biu", "ciu";
582 ocram: sram@ffe00000 {
583 compatible = "mmio-sram";
584 reg = <0xffe00000 0x40000>;
587 rst: rstmgr@ffd05000 {
589 compatible = "altr,rst-mgr";
590 reg = <0xffd05000 0x100>;
593 scu: snoop-control-unit@ffffc000 {
594 compatible = "arm,cortex-a9-scu";
595 reg = <0xffffc000 0x100>;
598 sysmgr: sysmgr@ffd06000 {
599 compatible = "altr,sys-mgr", "syscon";
600 reg = <0xffd06000 0x300>;
601 cpu1-start-addr = <0xffd06230>;
606 compatible = "arm,cortex-a9-twd-timer";
607 reg = <0xffffc600 0x100>;
608 interrupts = <1 13 0xf04>;
609 clocks = <&mpu_periph_clk>;
612 timer0: timer0@ffc02700 {
613 compatible = "snps,dw-apb-timer";
614 interrupts = <0 115 IRQ_TYPE_LEVEL_HIGH>;
615 reg = <0xffc02700 0x100>;
616 clocks = <&l4_sp_clk>;
617 clock-names = "timer";
620 timer1: timer1@ffc02800 {
621 compatible = "snps,dw-apb-timer";
622 interrupts = <0 116 IRQ_TYPE_LEVEL_HIGH>;
623 reg = <0xffc02800 0x100>;
624 clocks = <&l4_sp_clk>;
625 clock-names = "timer";
628 timer2: timer2@ffd00000 {
629 compatible = "snps,dw-apb-timer";
630 interrupts = <0 117 IRQ_TYPE_LEVEL_HIGH>;
631 reg = <0xffd00000 0x100>;
632 clocks = <&l4_sys_free_clk>;
633 clock-names = "timer";
636 timer3: timer3@ffd00100 {
637 compatible = "snps,dw-apb-timer";
638 interrupts = <0 118 IRQ_TYPE_LEVEL_HIGH>;
639 reg = <0xffd01000 0x100>;
640 clocks = <&l4_sys_free_clk>;
641 clock-names = "timer";
644 uart0: serial0@ffc02000 {
645 compatible = "snps,dw-apb-uart";
646 reg = <0xffc02000 0x100>;
647 interrupts = <0 110 IRQ_TYPE_LEVEL_HIGH>;
653 uart1: serial1@ffc02100 {
654 compatible = "snps,dw-apb-uart";
655 reg = <0xffc02100 0x100>;
656 interrupts = <0 111 IRQ_TYPE_LEVEL_HIGH>;
659 clocks = <&l4_sp_clk>;
665 compatible = "usb-nop-xceiv";
670 compatible = "snps,dwc2";
671 reg = <0xffb00000 0xffff>;
672 interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
676 phy-names = "usb2-phy";
681 compatible = "snps,dwc2";
682 reg = <0xffb40000 0xffff>;
683 interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
685 phy-names = "usb2-phy";
689 watchdog0: watchdog@ffd00200 {
690 compatible = "snps,dw-wdt";
691 reg = <0xffd00200 0x100>;
692 interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
693 clocks = <&l4_sys_free_clk>;
697 watchdog1: watchdog@ffd00300 {
698 compatible = "snps,dw-wdt";
699 reg = <0xffd00300 0x100>;
700 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
701 clocks = <&l4_sys_free_clk>;