1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 * Device Tree Include file for Marvell Armada 1500-mini (Berlin BG2CD) SoC
5 * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
7 * based on GPL'ed 2.6 kernel sources
8 * (c) Marvell International Ltd.
11 #include <dt-bindings/clock/berlin2.h>
12 #include <dt-bindings/interrupt-controller/arm-gic.h>
15 model = "Marvell Armada 1500-mini (BG2CD) SoC";
16 compatible = "marvell,berlin2cd", "marvell,berlin";
30 compatible = "arm,cortex-a9";
32 next-level-cache = <&l2>;
35 clocks = <&chip_clk CLKID_CPU>;
36 clock-latency = <100000>;
46 compatible = "arm,cortex-a9-pmu";
47 interrupt-parent = <&gic>;
48 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
52 compatible = "fixed-clock";
54 clock-frequency = <25000000>;
58 compatible = "simple-bus";
61 interrupt-parent = <&gic>;
63 ranges = <0 0xf7000000 0x1000000>;
66 compatible = "mrvl,pxav3-mmc";
67 reg = <0xab0000 0x200>;
68 clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
69 clock-names = "io", "core";
70 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
74 l2: cache-controller@ac0000 {
75 compatible = "arm,pl310-cache";
76 reg = <0xac0000 0x1000>;
81 snoop-control-unit@ad0000 {
82 compatible = "arm,cortex-a9-scu";
83 reg = <0xad0000 0x100>;
86 gic: interrupt-controller@ad1000 {
87 compatible = "arm,cortex-a9-gic";
88 reg = <0xad1000 0x1000>, <0xad0100 0x0100>;
90 #interrupt-cells = <3>;
94 compatible = "arm,cortex-a9-global-timer";
95 reg = <0xad0200 0x20>;
96 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_EDGE_RISING)>;
97 clocks = <&chip_clk CLKID_TWD>;
101 compatible = "arm,cortex-a9-twd-timer";
102 reg = <0xad0600 0x20>;
103 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_EDGE_RISING)>;
104 clocks = <&chip_clk CLKID_TWD>;
108 compatible = "arm,cortex-a9-twd-wdt";
109 reg = <0xad0620 0x20>;
110 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_EDGE_RISING)>;
111 clocks = <&chip_clk CLKID_TWD>;
114 usb_phy0: usb-phy@b74000 {
115 compatible = "marvell,berlin2cd-usb-phy";
116 reg = <0xb74000 0x128>;
118 resets = <&chip_rst 0x178 23>;
122 usb_phy1: usb-phy@b78000 {
123 compatible = "marvell,berlin2cd-usb-phy";
124 reg = <0xb78000 0x128>;
126 resets = <&chip_rst 0x178 24>;
130 eth1: ethernet@b90000 {
131 compatible = "marvell,pxa168-eth";
132 reg = <0xb90000 0x10000>;
133 clocks = <&chip_clk CLKID_GETH1>;
134 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
135 /* set by bootloader */
136 local-mac-address = [00 00 00 00 00 00];
137 #address-cells = <1>;
139 phy-connection-type = "mii";
140 phy-handle = <ðphy1>;
143 ethphy1: ethernet-phy@0 {
148 eth0: ethernet@e50000 {
149 compatible = "marvell,pxa168-eth";
150 reg = <0xe50000 0x10000>;
151 clocks = <&chip_clk CLKID_GETH0>;
152 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
153 /* set by bootloader */
154 local-mac-address = [00 00 00 00 00 00];
155 #address-cells = <1>;
157 phy-connection-type = "mii";
158 phy-handle = <ðphy0>;
161 ethphy0: ethernet-phy@0 {
167 compatible = "simple-bus";
168 #address-cells = <1>;
171 ranges = <0 0xe80000 0x10000>;
172 interrupt-parent = <&aic>;
175 compatible = "snps,dw-apb-gpio";
176 reg = <0x0400 0x400>;
177 #address-cells = <1>;
181 compatible = "snps,dw-apb-gpio-port";
186 interrupt-controller;
187 #interrupt-cells = <2>;
193 compatible = "snps,dw-apb-gpio";
194 reg = <0x0800 0x400>;
195 #address-cells = <1>;
199 compatible = "snps,dw-apb-gpio-port";
204 interrupt-controller;
205 #interrupt-cells = <2>;
211 compatible = "snps,dw-apb-gpio";
212 reg = <0x0c00 0x400>;
213 #address-cells = <1>;
217 compatible = "snps,dw-apb-gpio-port";
222 interrupt-controller;
223 #interrupt-cells = <2>;
229 compatible = "snps,dw-apb-gpio";
230 reg = <0x1000 0x400>;
231 #address-cells = <1>;
235 compatible = "snps,dw-apb-gpio-port";
240 interrupt-controller;
241 #interrupt-cells = <2>;
247 compatible = "snps,designware-i2c";
248 #address-cells = <1>;
250 reg = <0x1400 0x100>;
252 clocks = <&chip_clk CLKID_CFG>;
257 compatible = "snps,designware-i2c";
258 #address-cells = <1>;
260 reg = <0x1800 0x100>;
262 clocks = <&chip_clk CLKID_CFG>;
267 compatible = "snps,dw-apb-ssi";
268 #address-cells = <1>;
270 reg = <0x1c00 0x100>;
272 clocks = <&chip_clk CLKID_CFG>;
276 wdt4: watchdog@2000 {
277 compatible = "snps,dw-wdt";
278 reg = <0x2000 0x100>;
279 clocks = <&chip_clk CLKID_CFG>;
284 wdt5: watchdog@2400 {
285 compatible = "snps,dw-wdt";
286 reg = <0x2400 0x100>;
287 clocks = <&chip_clk CLKID_CFG>;
292 wdt6: watchdog@2800 {
293 compatible = "snps,dw-wdt";
294 reg = <0x2800 0x100>;
295 clocks = <&chip_clk CLKID_CFG>;
301 compatible = "snps,dw-apb-timer";
304 clocks = <&chip_clk CLKID_CFG>;
305 clock-names = "timer";
310 compatible = "snps,dw-apb-timer";
313 clocks = <&chip_clk CLKID_CFG>;
314 clock-names = "timer";
319 compatible = "snps,dw-apb-timer";
322 clocks = <&chip_clk CLKID_CFG>;
323 clock-names = "timer";
328 compatible = "snps,dw-apb-timer";
331 clocks = <&chip_clk CLKID_CFG>;
332 clock-names = "timer";
337 compatible = "snps,dw-apb-timer";
340 clocks = <&chip_clk CLKID_CFG>;
341 clock-names = "timer";
346 compatible = "snps,dw-apb-timer";
349 clocks = <&chip_clk CLKID_CFG>;
350 clock-names = "timer";
355 compatible = "snps,dw-apb-timer";
358 clocks = <&chip_clk CLKID_CFG>;
359 clock-names = "timer";
364 compatible = "snps,dw-apb-timer";
367 clocks = <&chip_clk CLKID_CFG>;
368 clock-names = "timer";
372 aic: interrupt-controller@3000 {
373 compatible = "snps,dw-apb-ictl";
374 reg = <0x3000 0xc00>;
375 interrupt-controller;
376 #interrupt-cells = <1>;
377 interrupt-parent = <&gic>;
378 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
382 chip: chip-control@ea0000 {
383 compatible = "simple-mfd", "syscon";
384 reg = <0xea0000 0x400>;
387 compatible = "marvell,berlin2-clk";
390 clock-names = "refclk";
393 soc_pinctrl: pin-controller {
394 compatible = "marvell,berlin2cd-soc-pinctrl";
396 uart0_pmux: uart0-pmux {
403 compatible = "marvell,berlin2-reset";
409 compatible = "chipidea,usb2";
410 reg = <0xed0000 0x200>;
411 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
412 clocks = <&chip_clk CLKID_USB0>;
414 phy-names = "usb-phy";
419 compatible = "chipidea,usb2";
420 reg = <0xee0000 0x200>;
421 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
422 clocks = <&chip_clk CLKID_USB1>;
424 phy-names = "usb-phy";
429 compatible = "marvell,berlin-pwm";
430 reg = <0xf20000 0x40>;
431 clocks = <&chip_clk CLKID_CFG>;
436 compatible = "simple-bus";
437 #address-cells = <1>;
440 ranges = <0 0xfc0000 0x10000>;
441 interrupt-parent = <&sic>;
443 wdt0: watchdog@1000 {
444 compatible = "snps,dw-wdt";
445 reg = <0x1000 0x100>;
450 wdt1: watchdog@2000 {
451 compatible = "snps,dw-wdt";
452 reg = <0x2000 0x100>;
458 wdt2: watchdog@3000 {
459 compatible = "snps,dw-wdt";
460 reg = <0x3000 0x100>;
466 sm_gpio1: gpio@5000 {
467 compatible = "snps,dw-apb-gpio";
468 reg = <0x5000 0x400>;
469 #address-cells = <1>;
473 compatible = "snps,dw-apb-gpio-port";
482 compatible = "snps,dw-apb-ssi";
483 #address-cells = <1>;
485 reg = <0x6000 0x100>;
492 compatible = "snps,designware-i2c";
493 #address-cells = <1>;
495 reg = <0x7000 0x100>;
502 compatible = "snps,designware-i2c";
503 #address-cells = <1>;
505 reg = <0x8000 0x100>;
511 sm_gpio0: gpio@c000 {
512 compatible = "snps,dw-apb-gpio";
513 reg = <0xc000 0x400>;
514 #address-cells = <1>;
518 compatible = "snps,dw-apb-gpio-port";
527 compatible = "snps,dw-apb-uart";
528 reg = <0x9000 0x100>;
533 pinctrl-0 = <&uart0_pmux>;
534 pinctrl-names = "default";
539 compatible = "snps,dw-apb-uart";
540 reg = <0xa000 0x100>;
549 compatible = "snps,dw-apb-uart";
550 reg = <0xb000 0x100>;
558 sysctrl: system-controller@d000 {
559 compatible = "simple-mfd", "syscon";
560 reg = <0xd000 0x100>;
562 sys_pinctrl: pin-controller {
563 compatible = "marvell,berlin2cd-system-pinctrl";
567 compatible = "marvell,berlin2-adc";
568 interrupts = <12>, <14>;
569 interrupt-names = "adc", "tsen";
573 sic: interrupt-controller@e000 {
574 compatible = "snps,dw-apb-ictl";
575 reg = <0xe000 0x400>;
576 interrupt-controller;
577 #interrupt-cells = <1>;
578 interrupt-parent = <&gic>;
579 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;