1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 * Copyright (C) 2021 Marvell
6 * Copyright (C) 2022 Allied Telesis Labs
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
13 model = "Marvell AC5 SoC";
14 compatible = "marvell,ac5";
15 interrupt-parent = <&gic>;
36 compatible = "arm,cortex-a55";
38 enable-method = "psci";
39 next-level-cache = <&l2>;
44 compatible = "arm,cortex-a55";
46 enable-method = "psci";
47 next-level-cache = <&l2>;
56 compatible = "arm,psci-0.2";
61 compatible = "arm,armv8-timer";
62 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>,
63 <GIC_PPI 8 IRQ_TYPE_LEVEL_HIGH>,
64 <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>,
65 <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
69 compatible = "arm,armv8-pmuv3";
70 interrupts = <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH>;
74 compatible = "simple-bus";
80 internal-regs@7f000000 {
83 compatible = "simple-bus";
84 /* 16M internal register @ 0x7f00_0000 */
85 ranges = <0x0 0x0 0x7f000000 0x1000000>;
89 compatible = "snps,dw-apb-uart";
90 reg = <0x12000 0x100>;
92 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
94 clocks = <&cnm_clock>;
101 compatible = "marvell,orion-mdio";
103 clocks = <&cnm_clock>;
107 compatible = "marvell,mv78230-i2c";
108 reg = <0x11000 0x20>;
109 #address-cells = <1>;
112 clocks = <&cnm_clock>;
113 clock-names = "core";
114 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
115 clock-frequency=<100000>;
117 pinctrl-names = "default", "gpio";
118 pinctrl-0 = <&i2c0_pins>;
119 pinctrl-1 = <&i2c0_gpio>;
120 scl_gpio = <&gpio0 26 GPIO_ACTIVE_HIGH>;
121 sda_gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>;
126 compatible = "marvell,mv78230-i2c";
127 reg = <0x11100 0x20>;
128 #address-cells = <1>;
131 clocks = <&cnm_clock>;
132 clock-names = "core";
133 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
134 clock-frequency=<100000>;
136 pinctrl-names = "default", "gpio";
137 pinctrl-0 = <&i2c1_pins>;
138 pinctrl-1 = <&i2c1_gpio>;
139 scl_gpio = <&gpio0 20 GPIO_ACTIVE_HIGH>;
140 sda_gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
145 compatible = "marvell,orion-gpio";
146 reg = <0x18100 0x40>;
150 gpio-ranges = <&pinctrl0 0 0 32>;
151 marvell,pwm-offset = <0x1f0>;
152 interrupt-controller;
153 #interrupt-cells = <2>;
154 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
155 <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
156 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
157 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
161 reg = <0x18140 0x40>;
162 compatible = "marvell,orion-gpio";
166 gpio-ranges = <&pinctrl0 0 32 14>;
167 marvell,pwm-offset = <0x1f0>;
168 interrupt-controller;
169 #interrupt-cells = <2>;
170 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
171 <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
176 * Dedicated section for devices behind 32bit controllers so we
177 * can configure specific DMA mapping for them
179 behind-32bit-controller@7f000000 {
180 compatible = "simple-bus";
181 #address-cells = <0x2>;
183 ranges = <0x0 0x0 0x0 0x7f000000 0x0 0x1000000>;
184 /* Host phy ram starts at 0x200M */
185 dma-ranges = <0x0 0x0 0x2 0x0 0x1 0x0>;
188 eth0: ethernet@20000 {
189 compatible = "marvell,armada-ac5-neta";
190 reg = <0x0 0x20000 0x0 0x4000>;
191 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
192 clocks = <&cnm_clock>;
197 eth1: ethernet@24000 {
198 compatible = "marvell,armada-ac5-neta";
199 reg = <0x0 0x24000 0x0 0x4000>;
200 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
201 clocks = <&cnm_clock>;
207 compatible = "marvell,orion-ehci";
208 reg = <0x0 0x80000 0x0 0x500>;
209 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
214 compatible = "marvell,orion-ehci";
215 reg = <0x0 0xa0000 0x0 0x500>;
216 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
221 pinctrl0: pinctrl@80020100 {
222 compatible = "marvell,ac5-pinctrl";
223 reg = <0 0x80020100 0 0x20>;
225 i2c0_pins: i2c0-pins {
226 marvell,pins = "mpp26", "mpp27";
227 marvell,function = "i2c0";
230 i2c0_gpio: i2c0-gpio-pins {
231 marvell,pins = "mpp26", "mpp27";
232 marvell,function = "gpio";
235 i2c1_pins: i2c1-pins {
236 marvell,pins = "mpp20", "mpp21";
237 marvell,function = "i2c1";
240 i2c1_gpio: i2c1-gpio-pins {
241 marvell,pins = "mpp20", "mpp21";
242 marvell,function = "i2c1";
247 compatible = "marvell,armada-3700-spi";
248 reg = <0x0 0x805a0000 0x0 0x50>;
249 #address-cells = <0x1>;
251 clocks = <&spi_clock>;
252 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
258 compatible = "marvell,armada-3700-spi";
259 reg = <0x0 0x805a8000 0x0 0x50>;
260 #address-cells = <0x1>;
262 clocks = <&spi_clock>;
263 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
268 gic: interrupt-controller@80600000 {
269 compatible = "arm,gic-v3";
270 #interrupt-cells = <3>;
271 interrupt-controller;
272 reg = <0x0 0x80600000 0x0 0x10000>, /* GICD */
273 <0x0 0x80660000 0x0 0x40000>; /* GICR */
274 interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
279 cnm_clock: cnm-clock {
280 compatible = "fixed-clock";
282 clock-frequency = <328000000>;
285 spi_clock: spi-clock {
286 compatible = "fixed-clock";
288 clock-frequency = <200000000>;