1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (C) 2019 Marvell Technology Group Ltd.
5 * Device Tree file for Marvell Armada AP80x.
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
9 #include <dt-bindings/thermal/thermal.h>
25 compatible = "arm,psci-0.2";
35 * This area matches the mapping done with a
36 * mainline U-Boot, and should be updated by the
41 reg = <0x0 0x4000000 0x0 0x200000>;
49 compatible = "simple-bus";
50 interrupt-parent = <&gic>;
53 config-space@f0000000 {
56 compatible = "simple-bus";
57 ranges = <0x0 0x0 0xf0000000 0x1000000>;
59 gic: interrupt-controller@210000 {
60 compatible = "arm,gic-400";
61 #interrupt-cells = <3>;
66 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
67 reg = <0x210000 0x10000>,
72 gic_v2m0: v2m@280000 {
73 compatible = "arm,gic-v2m-frame";
75 reg = <0x280000 0x1000>;
76 arm,msi-base-spi = <160>;
77 arm,msi-num-spis = <32>;
79 gic_v2m1: v2m@290000 {
80 compatible = "arm,gic-v2m-frame";
82 reg = <0x290000 0x1000>;
83 arm,msi-base-spi = <192>;
84 arm,msi-num-spis = <32>;
86 gic_v2m2: v2m@2a0000 {
87 compatible = "arm,gic-v2m-frame";
89 reg = <0x2a0000 0x1000>;
90 arm,msi-base-spi = <224>;
91 arm,msi-num-spis = <32>;
93 gic_v2m3: v2m@2b0000 {
94 compatible = "arm,gic-v2m-frame";
96 reg = <0x2b0000 0x1000>;
97 arm,msi-base-spi = <256>;
98 arm,msi-num-spis = <32>;
103 compatible = "arm,armv8-timer";
104 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
105 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
106 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
107 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
111 compatible = "arm,cortex-a72-pmu";
112 interrupt-parent = <&pic>;
117 compatible = "marvell,odmi-controller";
118 interrupt-controller;
120 marvell,odmi-frames = <4>;
121 reg = <0x300000 0x4000>,
125 marvell,spi-base = <128>, <136>, <144>, <152>;
129 compatible = "marvell,ap806-gicp";
130 reg = <0x3f0040 0x10>;
131 marvell,spi-ranges = <64 64>, <288 64>;
135 pic: interrupt-controller@3f0100 {
136 compatible = "marvell,armada-8k-pic";
137 reg = <0x3f0100 0x10>;
138 #interrupt-cells = <1>;
139 interrupt-controller;
140 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
143 sei: interrupt-controller@3f0200 {
144 compatible = "marvell,ap806-sei";
145 reg = <0x3f0200 0x40>;
146 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
147 #interrupt-cells = <1>;
148 interrupt-controller;
153 compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
154 reg = <0x400000 0x1000>,
156 msi-parent = <&gic_v2m0>;
157 clocks = <&ap_clk 3>;
162 compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
163 reg = <0x420000 0x1000>,
165 msi-parent = <&gic_v2m0>;
166 clocks = <&ap_clk 3>;
171 compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
172 reg = <0x440000 0x1000>,
174 msi-parent = <&gic_v2m0>;
175 clocks = <&ap_clk 3>;
180 compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
181 reg = <0x460000 0x1000>,
183 msi-parent = <&gic_v2m0>;
184 clocks = <&ap_clk 3>;
189 compatible = "marvell,armada-380-spi";
190 reg = <0x510600 0x50>;
191 #address-cells = <1>;
193 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&ap_clk 3>;
199 compatible = "marvell,mv78230-i2c";
200 reg = <0x511000 0x20>;
201 #address-cells = <1>;
203 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
205 clocks = <&ap_clk 3>;
209 uart0: serial@512000 {
210 compatible = "snps,dw-apb-uart";
211 reg = <0x512000 0x100>;
213 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
215 clocks = <&ap_clk 3>;
219 uart1: serial@512100 {
220 compatible = "snps,dw-apb-uart";
221 reg = <0x512100 0x100>;
223 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
225 clocks = <&ap_clk 3>;
230 watchdog: watchdog@610000 {
231 compatible = "arm,sbsa-gwdt";
232 reg = <0x610000 0x1000>, <0x600000 0x1000>;
233 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
236 ap_sdhci0: sdhci@6e0000 {
237 compatible = "marvell,armada-ap806-sdhci";
238 reg = <0x6e0000 0x300>;
239 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
240 clock-names = "core";
241 clocks = <&ap_clk 4>;
243 marvell,xenon-phy-slow-mode;
247 ap_syscon0: system-controller@6f4000 {
248 compatible = "syscon", "simple-mfd";
249 reg = <0x6f4000 0x2000>;
251 ap_pinctrl: pinctrl {
252 compatible = "marvell,ap806-pinctrl";
254 uart0_pins: uart0-pins {
255 marvell,pins = "mpp11", "mpp19";
256 marvell,function = "uart0";
261 compatible = "marvell,armada-8k-gpio";
266 gpio-ranges = <&ap_pinctrl 0 0 20>;
270 ap_syscon1: system-controller@6f8000 {
271 compatible = "syscon", "simple-mfd";
272 reg = <0x6f8000 0x1000>;
273 #address-cells = <1>;
276 ap_thermal: thermal-sensor@80 {
277 compatible = "marvell,armada-ap806-thermal";
279 interrupt-parent = <&sei>;
281 #thermal-sensor-cells = <1>;
288 * The thermal IP features one internal sensor plus, if applicable, one
289 * remote channel wired to one sensor per CPU.
291 * Only one thermal zone per AP/CP may trigger interrupts at a time, the
292 * first one that will have a critical trip point will be chosen.
295 ap_thermal_ic: ap-thermal-ic {
296 polling-delay-passive = <0>; /* Interrupt driven */
297 polling-delay = <0>; /* Interrupt driven */
299 thermal-sensors = <&ap_thermal 0>;
303 temperature = <100000>; /* mC degrees */
304 hysteresis = <2000>; /* mC degrees */
312 ap_thermal_cpu0: ap-thermal-cpu0 {
313 polling-delay-passive = <1000>;
314 polling-delay = <1000>;
316 thermal-sensors = <&ap_thermal 1>;
320 temperature = <85000>;
324 cpu0_emerg: cpu0-emerg {
325 temperature = <95000>;
334 cooling-device = <&cpu0 1 2>,
337 map0_emerg: map0-ermerg {
338 trip = <&cpu0_emerg>;
339 cooling-device = <&cpu0 3 3>,
345 ap_thermal_cpu1: ap-thermal-cpu1 {
346 polling-delay-passive = <1000>;
347 polling-delay = <1000>;
349 thermal-sensors = <&ap_thermal 2>;
353 temperature = <85000>;
357 cpu1_emerg: cpu1-emerg {
358 temperature = <95000>;
367 cooling-device = <&cpu0 1 2>,
370 map1_emerg: map1-emerg {
371 trip = <&cpu1_emerg>;
372 cooling-device = <&cpu0 3 3>,
378 ap_thermal_cpu2: ap-thermal-cpu2 {
379 polling-delay-passive = <1000>;
380 polling-delay = <1000>;
382 thermal-sensors = <&ap_thermal 3>;
386 temperature = <85000>;
390 cpu2_emerg: cpu2-emerg {
391 temperature = <95000>;
400 cooling-device = <&cpu2 1 2>,
403 map2_emerg: map2-emerg {
404 trip = <&cpu2_emerg>;
405 cooling-device = <&cpu2 3 3>,
411 ap_thermal_cpu3: ap-thermal-cpu3 {
412 polling-delay-passive = <1000>;
413 polling-delay = <1000>;
415 thermal-sensors = <&ap_thermal 4>;
419 temperature = <85000>;
423 cpu3_emerg: cpu3-emerg {
424 temperature = <95000>;
431 map3_hot: map3-bhot {
433 cooling-device = <&cpu2 1 2>,
436 map3_emerg: map3-emerg {
437 trip = <&cpu3_emerg>;
438 cooling-device = <&cpu2 3 3>,