1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright 2020, Amazon.com, Inc. or its affiliates. All Rights Reserved
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 model = "Amazon's Annapurna Labs Alpine v3";
12 compatible = "amazon,al-alpine-v3";
14 interrupt-parent = <&gic>;
25 compatible = "arm,cortex-a72";
27 enable-method = "psci";
28 d-cache-size = <0x8000>;
29 d-cache-line-size = <64>;
31 i-cache-size = <0xc000>;
32 i-cache-line-size = <64>;
34 next-level-cache = <&cluster0_l2>;
39 compatible = "arm,cortex-a72";
41 enable-method = "psci";
42 d-cache-size = <0x8000>;
43 d-cache-line-size = <64>;
45 i-cache-size = <0xc000>;
46 i-cache-line-size = <64>;
48 next-level-cache = <&cluster0_l2>;
53 compatible = "arm,cortex-a72";
55 enable-method = "psci";
56 d-cache-size = <0x8000>;
57 d-cache-line-size = <64>;
59 i-cache-size = <0xc000>;
60 i-cache-line-size = <64>;
62 next-level-cache = <&cluster0_l2>;
67 compatible = "arm,cortex-a72";
69 enable-method = "psci";
70 d-cache-size = <0x8000>;
71 d-cache-line-size = <64>;
73 i-cache-size = <0xc000>;
74 i-cache-line-size = <64>;
76 next-level-cache = <&cluster0_l2>;
81 compatible = "arm,cortex-a72";
83 enable-method = "psci";
84 d-cache-size = <0x8000>;
85 d-cache-line-size = <64>;
87 i-cache-size = <0xc000>;
88 i-cache-line-size = <64>;
90 next-level-cache = <&cluster1_l2>;
95 compatible = "arm,cortex-a72";
97 enable-method = "psci";
98 d-cache-size = <0x8000>;
99 d-cache-line-size = <64>;
100 d-cache-sets = <256>;
101 i-cache-size = <0xc000>;
102 i-cache-line-size = <64>;
103 i-cache-sets = <256>;
104 next-level-cache = <&cluster1_l2>;
109 compatible = "arm,cortex-a72";
111 enable-method = "psci";
112 d-cache-size = <0x8000>;
113 d-cache-line-size = <64>;
114 d-cache-sets = <256>;
115 i-cache-size = <0xc000>;
116 i-cache-line-size = <64>;
117 i-cache-sets = <256>;
118 next-level-cache = <&cluster1_l2>;
123 compatible = "arm,cortex-a72";
125 enable-method = "psci";
126 d-cache-size = <0x8000>;
127 d-cache-line-size = <64>;
128 d-cache-sets = <256>;
129 i-cache-size = <0xc000>;
130 i-cache-line-size = <64>;
131 i-cache-sets = <256>;
132 next-level-cache = <&cluster1_l2>;
137 compatible = "arm,cortex-a72";
139 enable-method = "psci";
140 d-cache-size = <0x8000>;
141 d-cache-line-size = <64>;
142 d-cache-sets = <256>;
143 i-cache-size = <0xc000>;
144 i-cache-line-size = <64>;
145 i-cache-sets = <256>;
146 next-level-cache = <&cluster2_l2>;
151 compatible = "arm,cortex-a72";
153 enable-method = "psci";
154 d-cache-size = <0x8000>;
155 d-cache-line-size = <64>;
156 d-cache-sets = <256>;
157 i-cache-size = <0xc000>;
158 i-cache-line-size = <64>;
159 i-cache-sets = <256>;
160 next-level-cache = <&cluster2_l2>;
165 compatible = "arm,cortex-a72";
167 enable-method = "psci";
168 d-cache-size = <0x8000>;
169 d-cache-line-size = <64>;
170 d-cache-sets = <256>;
171 i-cache-size = <0xc000>;
172 i-cache-line-size = <64>;
173 i-cache-sets = <256>;
174 next-level-cache = <&cluster2_l2>;
179 compatible = "arm,cortex-a72";
181 enable-method = "psci";
182 d-cache-size = <0x8000>;
183 d-cache-line-size = <64>;
184 d-cache-sets = <256>;
185 i-cache-size = <0xc000>;
186 i-cache-line-size = <64>;
187 i-cache-sets = <256>;
188 next-level-cache = <&cluster2_l2>;
193 compatible = "arm,cortex-a72";
195 enable-method = "psci";
196 d-cache-size = <0x8000>;
197 d-cache-line-size = <64>;
198 d-cache-sets = <256>;
199 i-cache-size = <0xc000>;
200 i-cache-line-size = <64>;
201 i-cache-sets = <256>;
202 next-level-cache = <&cluster3_l2>;
207 compatible = "arm,cortex-a72";
209 enable-method = "psci";
210 d-cache-size = <0x8000>;
211 d-cache-line-size = <64>;
212 d-cache-sets = <256>;
213 i-cache-size = <0xc000>;
214 i-cache-line-size = <64>;
215 i-cache-sets = <256>;
216 next-level-cache = <&cluster3_l2>;
221 compatible = "arm,cortex-a72";
223 enable-method = "psci";
224 d-cache-size = <0x8000>;
225 d-cache-line-size = <64>;
226 d-cache-sets = <256>;
227 i-cache-size = <0xc000>;
228 i-cache-line-size = <64>;
229 i-cache-sets = <256>;
230 next-level-cache = <&cluster3_l2>;
235 compatible = "arm,cortex-a72";
237 enable-method = "psci";
238 d-cache-size = <0x8000>;
239 d-cache-line-size = <64>;
240 d-cache-sets = <256>;
241 i-cache-size = <0xc000>;
242 i-cache-line-size = <64>;
243 i-cache-sets = <256>;
244 next-level-cache = <&cluster3_l2>;
247 cluster0_l2: cache@0 {
248 compatible = "cache";
249 cache-size = <0x200000>;
250 cache-line-size = <64>;
255 cluster1_l2: cache@100 {
256 compatible = "cache";
257 cache-size = <0x200000>;
258 cache-line-size = <64>;
263 cluster2_l2: cache@200 {
264 compatible = "cache";
265 cache-size = <0x200000>;
266 cache-line-size = <64>;
271 cluster3_l2: cache@300 {
272 compatible = "cache";
273 cache-size = <0x200000>;
274 cache-line-size = <64>;
282 #address-cells = <2>;
287 reg = <0x0 0x0 0x0 0x100000>;
293 compatible = "arm,psci-0.2";
298 compatible = "arm,armv8-timer";
299 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
300 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
301 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
302 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
306 compatible = "arm,cortex-a72-pmu";
307 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
312 compatible = "simple-bus";
313 #address-cells = <2>;
317 gic: interrupt-controller@f0000000 {
318 compatible = "arm,gic-v3";
319 #interrupt-cells = <3>;
320 interrupt-controller;
321 reg = <0x0 0xf0800000 0 0x10000>, /* GICD */
322 <0x0 0xf0a00000 0 0x200000>, /* GICR */
323 <0x0 0xf0000000 0 0x2000>, /* GICC */
324 <0x0 0xf0010000 0 0x1000>, /* GICH */
325 <0x0 0xf0020000 0 0x2000>; /* GICV */
326 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
330 compatible = "pci-host-ecam-generic";
333 #address-cells = <3>;
334 #interrupt-cells = <1>;
335 reg = <0x0 0xfbd00000 0x0 0x100000>;
336 interrupt-map-mask = <0xf800 0 0 7>;
337 /* 8 x legacy interrupts for SATA only */
338 interrupt-map = <0x4000 0 0 1 &gic 0 57 IRQ_TYPE_LEVEL_HIGH>,
339 <0x4800 0 0 1 &gic 0 58 IRQ_TYPE_LEVEL_HIGH>,
340 <0x5000 0 0 1 &gic 0 59 IRQ_TYPE_LEVEL_HIGH>,
341 <0x5800 0 0 1 &gic 0 60 IRQ_TYPE_LEVEL_HIGH>,
342 <0x6000 0 0 1 &gic 0 61 IRQ_TYPE_LEVEL_HIGH>,
343 <0x6800 0 0 1 &gic 0 62 IRQ_TYPE_LEVEL_HIGH>,
344 <0x7000 0 0 1 &gic 0 63 IRQ_TYPE_LEVEL_HIGH>,
345 <0x7800 0 0 1 &gic 0 64 IRQ_TYPE_LEVEL_HIGH>;
346 ranges = <0x02000000 0x0 0xfe000000 0x0 0xfe000000 0x0 0x1000000>;
347 bus-range = <0x00 0x00>;
348 msi-parent = <&msix>;
351 msix: msix@fbe00000 {
352 compatible = "al,alpine-msix";
353 reg = <0x0 0xfbe00000 0x0 0x100000>;
354 interrupt-controller;
356 al,msi-base-spi = <336>;
357 al,msi-num-spis = <959>;
358 interrupt-parent = <&gic>;
362 compatible = "simple-bus";
363 #address-cells = <1>;
365 ranges = <0x0 0x0 0xfc000000 0x2000000>;
367 uart0: serial@1883000 {
368 compatible = "ns16550a";
369 reg = <0x1883000 0x1000>;
370 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
371 clock-frequency = <0>; /* Filled by firmware */
377 uart1: serial@1884000 {
378 compatible = "ns16550a";
379 reg = <0x1884000 0x1000>;
380 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
381 clock-frequency = <0>; /* Filled by firmware */
387 uart2: serial@1885000 {
388 compatible = "ns16550a";
389 reg = <0x1885000 0x1000>;
390 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
391 clock-frequency = <0>; /* Filled by firmware */
397 uart3: serial@1886000 {
398 compatible = "ns16550a";
399 reg = <0x1886000 0x1000>;
400 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
401 clock-frequency = <0>; /* Filled by firmware */