xref: /freebsd/sys/contrib/device-tree/src/arm64/arm/zena-css.dtsi (revision 69ed3df4f588860308677cda76cbcce1f19a54c9)
1*69ed3df4SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
2*69ed3df4SEmmanuel Vadot/*
3*69ed3df4SEmmanuel Vadot * Copyright (c) 2025, Arm Limited. All rights reserved.
4*69ed3df4SEmmanuel Vadot */
5*69ed3df4SEmmanuel Vadot
6*69ed3df4SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
7*69ed3df4SEmmanuel Vadot
8*69ed3df4SEmmanuel Vadot/ {
9*69ed3df4SEmmanuel Vadot	#address-cells = <2>;
10*69ed3df4SEmmanuel Vadot	#size-cells = <2>;
11*69ed3df4SEmmanuel Vadot	interrupt-parent = <&gic>;
12*69ed3df4SEmmanuel Vadot
13*69ed3df4SEmmanuel Vadot	soc_clk24mhz: clock-24000000 {
14*69ed3df4SEmmanuel Vadot		compatible = "fixed-clock";
15*69ed3df4SEmmanuel Vadot		#clock-cells = <0>;
16*69ed3df4SEmmanuel Vadot		clock-frequency = <24000000>;
17*69ed3df4SEmmanuel Vadot		clock-output-names = "refclk24mhz";
18*69ed3df4SEmmanuel Vadot	};
19*69ed3df4SEmmanuel Vadot
20*69ed3df4SEmmanuel Vadot	cpus {
21*69ed3df4SEmmanuel Vadot		#address-cells = <2>;
22*69ed3df4SEmmanuel Vadot		#size-cells = <0>;
23*69ed3df4SEmmanuel Vadot
24*69ed3df4SEmmanuel Vadot		/*
25*69ed3df4SEmmanuel Vadot		 * The latency and residency numbers below are for illustrative
26*69ed3df4SEmmanuel Vadot		 * purposes only and may vary on actual silicon. These values are
27*69ed3df4SEmmanuel Vadot		 * considered just to demonstrate that the cpuidle governor logic
28*69ed3df4SEmmanuel Vadot		 * works.
29*69ed3df4SEmmanuel Vadot		 */
30*69ed3df4SEmmanuel Vadot		idle-states {
31*69ed3df4SEmmanuel Vadot			entry-method = "psci";
32*69ed3df4SEmmanuel Vadot
33*69ed3df4SEmmanuel Vadot			cpu_sleep: cpu-sleep {
34*69ed3df4SEmmanuel Vadot				compatible = "arm,idle-state";
35*69ed3df4SEmmanuel Vadot				arm,psci-suspend-param = <0x10000>;
36*69ed3df4SEmmanuel Vadot				entry-latency-us = <800>;
37*69ed3df4SEmmanuel Vadot				exit-latency-us = <3200>;
38*69ed3df4SEmmanuel Vadot				local-timer-stop;
39*69ed3df4SEmmanuel Vadot				min-residency-us = <4200>;
40*69ed3df4SEmmanuel Vadot			};
41*69ed3df4SEmmanuel Vadot
42*69ed3df4SEmmanuel Vadot			cluster_sleep: cluster-sleep {
43*69ed3df4SEmmanuel Vadot				compatible = "arm,idle-state";
44*69ed3df4SEmmanuel Vadot				arm,psci-suspend-param = <0x1010000>;
45*69ed3df4SEmmanuel Vadot				entry-latency-us = <1000>;
46*69ed3df4SEmmanuel Vadot				exit-latency-us = <3200>;
47*69ed3df4SEmmanuel Vadot				local-timer-stop;
48*69ed3df4SEmmanuel Vadot				min-residency-us = <4500>;
49*69ed3df4SEmmanuel Vadot			};
50*69ed3df4SEmmanuel Vadot		};
51*69ed3df4SEmmanuel Vadot
52*69ed3df4SEmmanuel Vadot		cpu-map {
53*69ed3df4SEmmanuel Vadot			cluster0 {
54*69ed3df4SEmmanuel Vadot				core0 { cpu = <&cpu0>; };
55*69ed3df4SEmmanuel Vadot				core1 { cpu = <&cpu1>; };
56*69ed3df4SEmmanuel Vadot				core2 { cpu = <&cpu2>; };
57*69ed3df4SEmmanuel Vadot				core3 { cpu = <&cpu3>; };
58*69ed3df4SEmmanuel Vadot			};
59*69ed3df4SEmmanuel Vadot
60*69ed3df4SEmmanuel Vadot			cluster1 {
61*69ed3df4SEmmanuel Vadot				core0 { cpu = <&cpu4>; };
62*69ed3df4SEmmanuel Vadot				core1 { cpu = <&cpu5>; };
63*69ed3df4SEmmanuel Vadot				core2 { cpu = <&cpu6>; };
64*69ed3df4SEmmanuel Vadot				core3 { cpu = <&cpu7>; };
65*69ed3df4SEmmanuel Vadot			};
66*69ed3df4SEmmanuel Vadot
67*69ed3df4SEmmanuel Vadot			cluster2 {
68*69ed3df4SEmmanuel Vadot				core0 { cpu = <&cpu8>; };
69*69ed3df4SEmmanuel Vadot				core1 { cpu = <&cpu9>; };
70*69ed3df4SEmmanuel Vadot				core2 { cpu = <&cpu10>; };
71*69ed3df4SEmmanuel Vadot				core3 { cpu = <&cpu11>; };
72*69ed3df4SEmmanuel Vadot			};
73*69ed3df4SEmmanuel Vadot
74*69ed3df4SEmmanuel Vadot			cluster3 {
75*69ed3df4SEmmanuel Vadot				core0 { cpu = <&cpu12>; };
76*69ed3df4SEmmanuel Vadot				core1 { cpu = <&cpu13>; };
77*69ed3df4SEmmanuel Vadot				core2 { cpu = <&cpu14>; };
78*69ed3df4SEmmanuel Vadot				core3 { cpu = <&cpu15>; };
79*69ed3df4SEmmanuel Vadot			};
80*69ed3df4SEmmanuel Vadot		};
81*69ed3df4SEmmanuel Vadot
82*69ed3df4SEmmanuel Vadot		cpu0: cpu@0 {
83*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
84*69ed3df4SEmmanuel Vadot			device_type = "cpu";
85*69ed3df4SEmmanuel Vadot			reg = <0x00 0x0000>;
86*69ed3df4SEmmanuel Vadot			enable-method = "psci";
87*69ed3df4SEmmanuel Vadot
88*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
89*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
90*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl0_l2_0>;
91*69ed3df4SEmmanuel Vadot
92*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
93*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
94*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
95*69ed3df4SEmmanuel Vadot
96*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
97*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
98*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
99*69ed3df4SEmmanuel Vadot
100*69ed3df4SEmmanuel Vadot			cl0_l2_0: l2-cache {
101*69ed3df4SEmmanuel Vadot				compatible = "cache";
102*69ed3df4SEmmanuel Vadot				cache-level = <2>;
103*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
104*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
105*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
106*69ed3df4SEmmanuel Vadot				cache-unified;
107*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl0_l3>;
108*69ed3df4SEmmanuel Vadot			};
109*69ed3df4SEmmanuel Vadot		};
110*69ed3df4SEmmanuel Vadot
111*69ed3df4SEmmanuel Vadot		cpu1: cpu@100 {
112*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
113*69ed3df4SEmmanuel Vadot			device_type = "cpu";
114*69ed3df4SEmmanuel Vadot			reg = <0x00 0x0100>;
115*69ed3df4SEmmanuel Vadot			enable-method = "psci";
116*69ed3df4SEmmanuel Vadot
117*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
118*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
119*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl0_l2_1>;
120*69ed3df4SEmmanuel Vadot
121*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
122*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
123*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
124*69ed3df4SEmmanuel Vadot
125*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
126*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
127*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
128*69ed3df4SEmmanuel Vadot
129*69ed3df4SEmmanuel Vadot			cl0_l2_1: l2-cache {
130*69ed3df4SEmmanuel Vadot				compatible = "cache";
131*69ed3df4SEmmanuel Vadot				cache-level = <2>;
132*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
133*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
134*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
135*69ed3df4SEmmanuel Vadot				cache-unified;
136*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl0_l3>;
137*69ed3df4SEmmanuel Vadot			};
138*69ed3df4SEmmanuel Vadot		};
139*69ed3df4SEmmanuel Vadot
140*69ed3df4SEmmanuel Vadot		cpu2: cpu@200 {
141*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
142*69ed3df4SEmmanuel Vadot			device_type = "cpu";
143*69ed3df4SEmmanuel Vadot			reg = <0x00 0x0200>;
144*69ed3df4SEmmanuel Vadot			enable-method = "psci";
145*69ed3df4SEmmanuel Vadot
146*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
147*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
148*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl0_l2_2>;
149*69ed3df4SEmmanuel Vadot
150*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
151*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
152*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
153*69ed3df4SEmmanuel Vadot
154*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
155*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
156*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
157*69ed3df4SEmmanuel Vadot
158*69ed3df4SEmmanuel Vadot			cl0_l2_2: l2-cache {
159*69ed3df4SEmmanuel Vadot				compatible = "cache";
160*69ed3df4SEmmanuel Vadot				cache-level = <2>;
161*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
162*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
163*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
164*69ed3df4SEmmanuel Vadot				cache-unified;
165*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl0_l3>;
166*69ed3df4SEmmanuel Vadot			};
167*69ed3df4SEmmanuel Vadot		};
168*69ed3df4SEmmanuel Vadot
169*69ed3df4SEmmanuel Vadot		cpu3: cpu@300 {
170*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
171*69ed3df4SEmmanuel Vadot			device_type = "cpu";
172*69ed3df4SEmmanuel Vadot			reg = <0x00 0x0300>;
173*69ed3df4SEmmanuel Vadot			enable-method = "psci";
174*69ed3df4SEmmanuel Vadot
175*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
176*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
177*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl0_l2_3>;
178*69ed3df4SEmmanuel Vadot
179*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
180*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
181*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
182*69ed3df4SEmmanuel Vadot
183*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
184*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
185*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
186*69ed3df4SEmmanuel Vadot
187*69ed3df4SEmmanuel Vadot			cl0_l2_3: l2-cache {
188*69ed3df4SEmmanuel Vadot				compatible = "cache";
189*69ed3df4SEmmanuel Vadot				cache-level = <2>;
190*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
191*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
192*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
193*69ed3df4SEmmanuel Vadot				cache-unified;
194*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl0_l3>;
195*69ed3df4SEmmanuel Vadot			};
196*69ed3df4SEmmanuel Vadot		};
197*69ed3df4SEmmanuel Vadot
198*69ed3df4SEmmanuel Vadot		cpu4: cpu@10000 {
199*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
200*69ed3df4SEmmanuel Vadot			device_type = "cpu";
201*69ed3df4SEmmanuel Vadot			reg = <0x00 0x10000>;
202*69ed3df4SEmmanuel Vadot			enable-method = "psci";
203*69ed3df4SEmmanuel Vadot
204*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
205*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
206*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl1_l2_0>;
207*69ed3df4SEmmanuel Vadot
208*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
209*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
210*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
211*69ed3df4SEmmanuel Vadot
212*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
213*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
214*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
215*69ed3df4SEmmanuel Vadot
216*69ed3df4SEmmanuel Vadot			cl1_l2_0: l2-cache {
217*69ed3df4SEmmanuel Vadot				compatible = "cache";
218*69ed3df4SEmmanuel Vadot				cache-level = <2>;
219*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
220*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
221*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
222*69ed3df4SEmmanuel Vadot				cache-unified;
223*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl1_l3>;
224*69ed3df4SEmmanuel Vadot			};
225*69ed3df4SEmmanuel Vadot		};
226*69ed3df4SEmmanuel Vadot
227*69ed3df4SEmmanuel Vadot		cpu5: cpu@10100 {
228*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
229*69ed3df4SEmmanuel Vadot			device_type = "cpu";
230*69ed3df4SEmmanuel Vadot			reg = <0x00 0x10100>;
231*69ed3df4SEmmanuel Vadot			enable-method = "psci";
232*69ed3df4SEmmanuel Vadot
233*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
234*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
235*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl1_l2_1>;
236*69ed3df4SEmmanuel Vadot
237*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
238*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
239*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
240*69ed3df4SEmmanuel Vadot
241*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
242*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
243*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
244*69ed3df4SEmmanuel Vadot
245*69ed3df4SEmmanuel Vadot			cl1_l2_1: l2-cache {
246*69ed3df4SEmmanuel Vadot				compatible = "cache";
247*69ed3df4SEmmanuel Vadot				cache-level = <2>;
248*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
249*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
250*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
251*69ed3df4SEmmanuel Vadot				cache-unified;
252*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl1_l3>;
253*69ed3df4SEmmanuel Vadot			};
254*69ed3df4SEmmanuel Vadot		};
255*69ed3df4SEmmanuel Vadot
256*69ed3df4SEmmanuel Vadot		cpu6: cpu@10200 {
257*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
258*69ed3df4SEmmanuel Vadot			device_type = "cpu";
259*69ed3df4SEmmanuel Vadot			reg = <0x00 0x10200>;
260*69ed3df4SEmmanuel Vadot			enable-method = "psci";
261*69ed3df4SEmmanuel Vadot
262*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
263*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
264*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl1_l2_2>;
265*69ed3df4SEmmanuel Vadot
266*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
267*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
268*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
269*69ed3df4SEmmanuel Vadot
270*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
271*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
272*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
273*69ed3df4SEmmanuel Vadot
274*69ed3df4SEmmanuel Vadot			cl1_l2_2: l2-cache {
275*69ed3df4SEmmanuel Vadot				compatible = "cache";
276*69ed3df4SEmmanuel Vadot				cache-level = <2>;
277*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
278*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
279*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
280*69ed3df4SEmmanuel Vadot				cache-unified;
281*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl1_l3>;
282*69ed3df4SEmmanuel Vadot			};
283*69ed3df4SEmmanuel Vadot		};
284*69ed3df4SEmmanuel Vadot
285*69ed3df4SEmmanuel Vadot		cpu7: cpu@10300 {
286*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
287*69ed3df4SEmmanuel Vadot			device_type = "cpu";
288*69ed3df4SEmmanuel Vadot			reg = <0x00 0x10300>;
289*69ed3df4SEmmanuel Vadot			enable-method = "psci";
290*69ed3df4SEmmanuel Vadot
291*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
292*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
293*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl1_l2_3>;
294*69ed3df4SEmmanuel Vadot
295*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
296*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
297*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
298*69ed3df4SEmmanuel Vadot
299*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
300*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
301*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
302*69ed3df4SEmmanuel Vadot
303*69ed3df4SEmmanuel Vadot			cl1_l2_3: l2-cache {
304*69ed3df4SEmmanuel Vadot				compatible = "cache";
305*69ed3df4SEmmanuel Vadot				cache-level = <2>;
306*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
307*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
308*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
309*69ed3df4SEmmanuel Vadot				cache-unified;
310*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl1_l3>;
311*69ed3df4SEmmanuel Vadot			};
312*69ed3df4SEmmanuel Vadot		};
313*69ed3df4SEmmanuel Vadot
314*69ed3df4SEmmanuel Vadot		cpu8: cpu@20000 {
315*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
316*69ed3df4SEmmanuel Vadot			device_type = "cpu";
317*69ed3df4SEmmanuel Vadot			reg = <0x00 0x20000>;
318*69ed3df4SEmmanuel Vadot			enable-method = "psci";
319*69ed3df4SEmmanuel Vadot
320*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
321*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
322*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl2_l2_0>;
323*69ed3df4SEmmanuel Vadot
324*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
325*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
326*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
327*69ed3df4SEmmanuel Vadot
328*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
329*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
330*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
331*69ed3df4SEmmanuel Vadot
332*69ed3df4SEmmanuel Vadot			cl2_l2_0: l2-cache {
333*69ed3df4SEmmanuel Vadot				compatible = "cache";
334*69ed3df4SEmmanuel Vadot				cache-level = <2>;
335*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
336*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
337*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
338*69ed3df4SEmmanuel Vadot				cache-unified;
339*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl2_l3>;
340*69ed3df4SEmmanuel Vadot			};
341*69ed3df4SEmmanuel Vadot		};
342*69ed3df4SEmmanuel Vadot
343*69ed3df4SEmmanuel Vadot		cpu9: cpu@20100 {
344*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
345*69ed3df4SEmmanuel Vadot			device_type = "cpu";
346*69ed3df4SEmmanuel Vadot			reg = <0x00 0x20100>;
347*69ed3df4SEmmanuel Vadot			enable-method = "psci";
348*69ed3df4SEmmanuel Vadot
349*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
350*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
351*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl2_l2_1>;
352*69ed3df4SEmmanuel Vadot
353*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
354*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
355*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
356*69ed3df4SEmmanuel Vadot
357*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
358*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
359*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
360*69ed3df4SEmmanuel Vadot
361*69ed3df4SEmmanuel Vadot			cl2_l2_1: l2-cache {
362*69ed3df4SEmmanuel Vadot				compatible = "cache";
363*69ed3df4SEmmanuel Vadot				cache-level = <2>;
364*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
365*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
366*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
367*69ed3df4SEmmanuel Vadot				cache-unified;
368*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl2_l3>;
369*69ed3df4SEmmanuel Vadot			};
370*69ed3df4SEmmanuel Vadot		};
371*69ed3df4SEmmanuel Vadot
372*69ed3df4SEmmanuel Vadot		cpu10: cpu@20200 {
373*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
374*69ed3df4SEmmanuel Vadot			device_type = "cpu";
375*69ed3df4SEmmanuel Vadot			reg = <0x00 0x20200>;
376*69ed3df4SEmmanuel Vadot			enable-method = "psci";
377*69ed3df4SEmmanuel Vadot
378*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
379*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
380*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl2_l2_2>;
381*69ed3df4SEmmanuel Vadot
382*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
383*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
384*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
385*69ed3df4SEmmanuel Vadot
386*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
387*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
388*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
389*69ed3df4SEmmanuel Vadot
390*69ed3df4SEmmanuel Vadot			cl2_l2_2: l2-cache {
391*69ed3df4SEmmanuel Vadot				compatible = "cache";
392*69ed3df4SEmmanuel Vadot				cache-level = <2>;
393*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
394*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
395*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
396*69ed3df4SEmmanuel Vadot				cache-unified;
397*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl2_l3>;
398*69ed3df4SEmmanuel Vadot			};
399*69ed3df4SEmmanuel Vadot		};
400*69ed3df4SEmmanuel Vadot
401*69ed3df4SEmmanuel Vadot		cpu11: cpu@20300 {
402*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
403*69ed3df4SEmmanuel Vadot			device_type = "cpu";
404*69ed3df4SEmmanuel Vadot			reg = <0x00 0x20300>;
405*69ed3df4SEmmanuel Vadot			enable-method = "psci";
406*69ed3df4SEmmanuel Vadot
407*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
408*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
409*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl2_l2_3>;
410*69ed3df4SEmmanuel Vadot
411*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
412*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
413*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
414*69ed3df4SEmmanuel Vadot
415*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
416*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
417*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
418*69ed3df4SEmmanuel Vadot
419*69ed3df4SEmmanuel Vadot			cl2_l2_3: l2-cache {
420*69ed3df4SEmmanuel Vadot				compatible = "cache";
421*69ed3df4SEmmanuel Vadot				cache-level = <2>;
422*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
423*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
424*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
425*69ed3df4SEmmanuel Vadot				cache-unified;
426*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl2_l3>;
427*69ed3df4SEmmanuel Vadot			};
428*69ed3df4SEmmanuel Vadot		};
429*69ed3df4SEmmanuel Vadot
430*69ed3df4SEmmanuel Vadot		cpu12: cpu@30000 {
431*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
432*69ed3df4SEmmanuel Vadot			device_type = "cpu";
433*69ed3df4SEmmanuel Vadot			reg = <0x00 0x30000>;
434*69ed3df4SEmmanuel Vadot			enable-method = "psci";
435*69ed3df4SEmmanuel Vadot
436*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
437*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
438*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl3_l2_0>;
439*69ed3df4SEmmanuel Vadot
440*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
441*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
442*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
443*69ed3df4SEmmanuel Vadot
444*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
445*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
446*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
447*69ed3df4SEmmanuel Vadot
448*69ed3df4SEmmanuel Vadot			cl3_l2_0: l2-cache {
449*69ed3df4SEmmanuel Vadot				compatible = "cache";
450*69ed3df4SEmmanuel Vadot				cache-level = <2>;
451*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
452*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
453*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
454*69ed3df4SEmmanuel Vadot				cache-unified;
455*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl3_l3>;
456*69ed3df4SEmmanuel Vadot			};
457*69ed3df4SEmmanuel Vadot		};
458*69ed3df4SEmmanuel Vadot
459*69ed3df4SEmmanuel Vadot		cpu13: cpu@30100 {
460*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
461*69ed3df4SEmmanuel Vadot			device_type = "cpu";
462*69ed3df4SEmmanuel Vadot			reg = <0x00 0x30100>;
463*69ed3df4SEmmanuel Vadot			enable-method = "psci";
464*69ed3df4SEmmanuel Vadot
465*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
466*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
467*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl3_l2_1>;
468*69ed3df4SEmmanuel Vadot
469*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
470*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
471*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
472*69ed3df4SEmmanuel Vadot
473*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
474*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
475*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
476*69ed3df4SEmmanuel Vadot
477*69ed3df4SEmmanuel Vadot			cl3_l2_1: l2-cache {
478*69ed3df4SEmmanuel Vadot				compatible = "cache";
479*69ed3df4SEmmanuel Vadot				cache-level = <2>;
480*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
481*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
482*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
483*69ed3df4SEmmanuel Vadot				cache-unified;
484*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl3_l3>;
485*69ed3df4SEmmanuel Vadot			};
486*69ed3df4SEmmanuel Vadot		};
487*69ed3df4SEmmanuel Vadot
488*69ed3df4SEmmanuel Vadot		cpu14: cpu@30200 {
489*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
490*69ed3df4SEmmanuel Vadot			device_type = "cpu";
491*69ed3df4SEmmanuel Vadot			reg = <0x00 0x30200>;
492*69ed3df4SEmmanuel Vadot			enable-method = "psci";
493*69ed3df4SEmmanuel Vadot
494*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
495*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
496*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl3_l2_2>;
497*69ed3df4SEmmanuel Vadot
498*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
499*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
500*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
501*69ed3df4SEmmanuel Vadot
502*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
503*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
504*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
505*69ed3df4SEmmanuel Vadot
506*69ed3df4SEmmanuel Vadot			cl3_l2_2: l2-cache {
507*69ed3df4SEmmanuel Vadot				compatible = "cache";
508*69ed3df4SEmmanuel Vadot				cache-level = <2>;
509*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
510*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
511*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
512*69ed3df4SEmmanuel Vadot				cache-unified;
513*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl3_l3>;
514*69ed3df4SEmmanuel Vadot			};
515*69ed3df4SEmmanuel Vadot		};
516*69ed3df4SEmmanuel Vadot
517*69ed3df4SEmmanuel Vadot		cpu15: cpu@30300 {
518*69ed3df4SEmmanuel Vadot			compatible = "arm,cortex-a720ae";
519*69ed3df4SEmmanuel Vadot			device_type = "cpu";
520*69ed3df4SEmmanuel Vadot			reg = <0x00 0x30300>;
521*69ed3df4SEmmanuel Vadot			enable-method = "psci";
522*69ed3df4SEmmanuel Vadot
523*69ed3df4SEmmanuel Vadot			clocks = <&scmi_dvfs 0>;
524*69ed3df4SEmmanuel Vadot			cpu-idle-states = <&cpu_sleep &cluster_sleep>;
525*69ed3df4SEmmanuel Vadot			next-level-cache = <&cl3_l2_3>;
526*69ed3df4SEmmanuel Vadot
527*69ed3df4SEmmanuel Vadot			i-cache-line-size = <64>;
528*69ed3df4SEmmanuel Vadot			i-cache-sets = <256>;
529*69ed3df4SEmmanuel Vadot			i-cache-size = <0x10000>;
530*69ed3df4SEmmanuel Vadot
531*69ed3df4SEmmanuel Vadot			d-cache-line-size = <64>;
532*69ed3df4SEmmanuel Vadot			d-cache-sets = <256>;
533*69ed3df4SEmmanuel Vadot			d-cache-size = <0x10000>;
534*69ed3df4SEmmanuel Vadot
535*69ed3df4SEmmanuel Vadot			cl3_l2_3: l2-cache {
536*69ed3df4SEmmanuel Vadot				compatible = "cache";
537*69ed3df4SEmmanuel Vadot				cache-level = <2>;
538*69ed3df4SEmmanuel Vadot				cache-line-size = <64>;
539*69ed3df4SEmmanuel Vadot				cache-sets = <0x400>;	/* 8-way set */
540*69ed3df4SEmmanuel Vadot				cache-size = <0x80000>;	/* 512KB */
541*69ed3df4SEmmanuel Vadot				cache-unified;
542*69ed3df4SEmmanuel Vadot				next-level-cache = <&cl3_l3>;
543*69ed3df4SEmmanuel Vadot			};
544*69ed3df4SEmmanuel Vadot		};
545*69ed3df4SEmmanuel Vadot
546*69ed3df4SEmmanuel Vadot		cl0_l3: l3-cache0 {
547*69ed3df4SEmmanuel Vadot			compatible = "cache";
548*69ed3df4SEmmanuel Vadot			cache-level = <3>;
549*69ed3df4SEmmanuel Vadot			cache-line-size = <64>;
550*69ed3df4SEmmanuel Vadot			cache-sets = <0x1000>;		/* 16-way set */
551*69ed3df4SEmmanuel Vadot			cache-size = <0x400000>;	/* 4MB */
552*69ed3df4SEmmanuel Vadot			cache-unified;
553*69ed3df4SEmmanuel Vadot		};
554*69ed3df4SEmmanuel Vadot
555*69ed3df4SEmmanuel Vadot		cl1_l3: l3-cache1 {
556*69ed3df4SEmmanuel Vadot			compatible = "cache";
557*69ed3df4SEmmanuel Vadot			cache-level = <3>;
558*69ed3df4SEmmanuel Vadot			cache-line-size = <64>;
559*69ed3df4SEmmanuel Vadot			cache-sets = <0x1000>;		/* 16-way set */
560*69ed3df4SEmmanuel Vadot			cache-size = <0x400000>;	/* 4MB */
561*69ed3df4SEmmanuel Vadot			cache-unified;
562*69ed3df4SEmmanuel Vadot		};
563*69ed3df4SEmmanuel Vadot
564*69ed3df4SEmmanuel Vadot		cl2_l3: l3-cache2 {
565*69ed3df4SEmmanuel Vadot			compatible = "cache";
566*69ed3df4SEmmanuel Vadot			cache-level = <3>;
567*69ed3df4SEmmanuel Vadot			cache-line-size = <64>;
568*69ed3df4SEmmanuel Vadot			cache-sets = <0x1000>;		/* 16-way set */
569*69ed3df4SEmmanuel Vadot			cache-size = <0x400000>;	/* 4MB */
570*69ed3df4SEmmanuel Vadot			cache-unified;
571*69ed3df4SEmmanuel Vadot		};
572*69ed3df4SEmmanuel Vadot
573*69ed3df4SEmmanuel Vadot		cl3_l3: l3-cache3 {
574*69ed3df4SEmmanuel Vadot			compatible = "cache";
575*69ed3df4SEmmanuel Vadot			cache-level = <3>;
576*69ed3df4SEmmanuel Vadot			cache-line-size = <64>;
577*69ed3df4SEmmanuel Vadot			cache-sets = <0x1000>;		/* 16-way set */
578*69ed3df4SEmmanuel Vadot			cache-size = <0x400000>;	/* 4MB */
579*69ed3df4SEmmanuel Vadot			cache-unified;
580*69ed3df4SEmmanuel Vadot		};
581*69ed3df4SEmmanuel Vadot	};
582*69ed3df4SEmmanuel Vadot
583*69ed3df4SEmmanuel Vadot	firmware {
584*69ed3df4SEmmanuel Vadot		scmi {
585*69ed3df4SEmmanuel Vadot			compatible = "arm,scmi";
586*69ed3df4SEmmanuel Vadot			#address-cells = <1>;
587*69ed3df4SEmmanuel Vadot			#size-cells = <0>;
588*69ed3df4SEmmanuel Vadot
589*69ed3df4SEmmanuel Vadot			mbox-names = "tx", "tx_reply", "rx";
590*69ed3df4SEmmanuel Vadot			mboxes = <&mbox_db_tx 0 0 0>,
591*69ed3df4SEmmanuel Vadot				 <&mbox_db_rx 0 0 0>,
592*69ed3df4SEmmanuel Vadot				 <&mbox_db_rx 0 0 2>;
593*69ed3df4SEmmanuel Vadot			shmem = <&scmi_shmem_tx &scmi_shmem_rx>;
594*69ed3df4SEmmanuel Vadot
595*69ed3df4SEmmanuel Vadot			scmi_dvfs: protocol@13 {
596*69ed3df4SEmmanuel Vadot				reg = <0x13>;
597*69ed3df4SEmmanuel Vadot				#clock-cells = <1>;
598*69ed3df4SEmmanuel Vadot			};
599*69ed3df4SEmmanuel Vadot		};
600*69ed3df4SEmmanuel Vadot	};
601*69ed3df4SEmmanuel Vadot
602*69ed3df4SEmmanuel Vadot	dsu-pmu-0 {
603*69ed3df4SEmmanuel Vadot		compatible = "arm,dsu-pmu";
604*69ed3df4SEmmanuel Vadot		cpus = <&cpu0 &cpu1 &cpu2 &cpu3>;
605*69ed3df4SEmmanuel Vadot		interrupts = <GIC_SPI 184 IRQ_TYPE_EDGE_RISING>;
606*69ed3df4SEmmanuel Vadot	};
607*69ed3df4SEmmanuel Vadot
608*69ed3df4SEmmanuel Vadot	dsu-pmu-1 {
609*69ed3df4SEmmanuel Vadot		compatible = "arm,dsu-pmu";
610*69ed3df4SEmmanuel Vadot		cpus = <&cpu4 &cpu5 &cpu6 &cpu7>;
611*69ed3df4SEmmanuel Vadot		interrupts = <GIC_SPI 185 IRQ_TYPE_EDGE_RISING>;
612*69ed3df4SEmmanuel Vadot	};
613*69ed3df4SEmmanuel Vadot
614*69ed3df4SEmmanuel Vadot	dsu-pmu-2 {
615*69ed3df4SEmmanuel Vadot		compatible = "arm,dsu-pmu";
616*69ed3df4SEmmanuel Vadot		cpus = <&cpu8 &cpu9 &cpu10 &cpu11>;
617*69ed3df4SEmmanuel Vadot		interrupts = <GIC_SPI 186 IRQ_TYPE_EDGE_RISING>;
618*69ed3df4SEmmanuel Vadot	};
619*69ed3df4SEmmanuel Vadot
620*69ed3df4SEmmanuel Vadot	dsu-pmu-3 {
621*69ed3df4SEmmanuel Vadot		compatible = "arm,dsu-pmu";
622*69ed3df4SEmmanuel Vadot		cpus = <&cpu12 &cpu13 &cpu14 &cpu15>;
623*69ed3df4SEmmanuel Vadot		interrupts = <GIC_SPI 187 IRQ_TYPE_EDGE_RISING>;
624*69ed3df4SEmmanuel Vadot	};
625*69ed3df4SEmmanuel Vadot
626*69ed3df4SEmmanuel Vadot	psci {
627*69ed3df4SEmmanuel Vadot		compatible = "arm,psci-1.0", "arm,psci-0.2";
628*69ed3df4SEmmanuel Vadot		method = "smc";
629*69ed3df4SEmmanuel Vadot	};
630*69ed3df4SEmmanuel Vadot
631*69ed3df4SEmmanuel Vadot	soc: soc {
632*69ed3df4SEmmanuel Vadot		compatible = "simple-bus";
633*69ed3df4SEmmanuel Vadot		#address-cells = <2>;
634*69ed3df4SEmmanuel Vadot		#size-cells = <2>;
635*69ed3df4SEmmanuel Vadot		ranges;
636*69ed3df4SEmmanuel Vadot
637*69ed3df4SEmmanuel Vadot		sram: sram@104000 {
638*69ed3df4SEmmanuel Vadot			compatible = "mmio-sram";
639*69ed3df4SEmmanuel Vadot			reg = <0x0 0x00104000 0x0 0x00001000>;
640*69ed3df4SEmmanuel Vadot			#address-cells = <1>;
641*69ed3df4SEmmanuel Vadot			#size-cells = <1>;
642*69ed3df4SEmmanuel Vadot			ranges = <0 0x0 0x00104000 0x00001000>;
643*69ed3df4SEmmanuel Vadot
644*69ed3df4SEmmanuel Vadot			scmi_shmem_tx: scpshmem-sram-section@0 {
645*69ed3df4SEmmanuel Vadot				compatible = "arm,scmi-shmem";
646*69ed3df4SEmmanuel Vadot				reg = <0x0 0x100>;
647*69ed3df4SEmmanuel Vadot			};
648*69ed3df4SEmmanuel Vadot
649*69ed3df4SEmmanuel Vadot			scmi_shmem_rx: scpshmem-sram-section@100 {
650*69ed3df4SEmmanuel Vadot				compatible = "arm,scmi-shmem";
651*69ed3df4SEmmanuel Vadot				reg = <0x100 0x100>;
652*69ed3df4SEmmanuel Vadot			};
653*69ed3df4SEmmanuel Vadot		};
654*69ed3df4SEmmanuel Vadot
655*69ed3df4SEmmanuel Vadot		timer@1a810000 {
656*69ed3df4SEmmanuel Vadot			compatible = "arm,armv7-timer-mem";
657*69ed3df4SEmmanuel Vadot			reg = <0x0 0x1a810000 0x0 0x10000>;
658*69ed3df4SEmmanuel Vadot			#address-cells = <1>;
659*69ed3df4SEmmanuel Vadot			#size-cells = <1>;
660*69ed3df4SEmmanuel Vadot
661*69ed3df4SEmmanuel Vadot			/*
662*69ed3df4SEmmanuel Vadot			 * Map child space [0x0..0x30000) to parent @ 0x1a810000
663*69ed3df4SEmmanuel Vadot			 */
664*69ed3df4SEmmanuel Vadot			ranges = <0x0 0x0 0x1a810000 0x00030000>;
665*69ed3df4SEmmanuel Vadot
666*69ed3df4SEmmanuel Vadot			frame@20000 {
667*69ed3df4SEmmanuel Vadot				reg = <0x20000 0x10000>;
668*69ed3df4SEmmanuel Vadot				frame-number = <0>;
669*69ed3df4SEmmanuel Vadot				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
670*69ed3df4SEmmanuel Vadot			};
671*69ed3df4SEmmanuel Vadot		};
672*69ed3df4SEmmanuel Vadot
673*69ed3df4SEmmanuel Vadot		gic: interrupt-controller@20800000 {
674*69ed3df4SEmmanuel Vadot			compatible = "arm,gic-v3";
675*69ed3df4SEmmanuel Vadot			#interrupt-cells = <3>;
676*69ed3df4SEmmanuel Vadot			#address-cells = <2>;
677*69ed3df4SEmmanuel Vadot			#size-cells = <2>;
678*69ed3df4SEmmanuel Vadot			#redistributor-regions = <16>;
679*69ed3df4SEmmanuel Vadot			interrupt-controller;
680*69ed3df4SEmmanuel Vadot			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
681*69ed3df4SEmmanuel Vadot			ranges;
682*69ed3df4SEmmanuel Vadot
683*69ed3df4SEmmanuel Vadot			/*
684*69ed3df4SEmmanuel Vadot			 * With GIC-A720AE multiview enabled, GICR_TYPER.Last is
685*69ed3df4SEmmanuel Vadot			 * always reported as 1 on redistributor views other than
686*69ed3df4SEmmanuel Vadot			 * view 0. This breaks discovery of a single contiguous
687*69ed3df4SEmmanuel Vadot			 * GICR frame region, so each core is described with its own
688*69ed3df4SEmmanuel Vadot			 * redistributor region.
689*69ed3df4SEmmanuel Vadot			 */
690*69ed3df4SEmmanuel Vadot			reg = <0x0 0x20800000 0x0 0x10000>,	/* GICD */
691*69ed3df4SEmmanuel Vadot			      <0x0 0x20880000 0x0 0x40000>,	/* 16 * GICR */
692*69ed3df4SEmmanuel Vadot			      <0x0 0x208c0000 0x0 0x40000>,
693*69ed3df4SEmmanuel Vadot			      <0x0 0x20900000 0x0 0x40000>,
694*69ed3df4SEmmanuel Vadot			      <0x0 0x20940000 0x0 0x40000>,
695*69ed3df4SEmmanuel Vadot			      <0x0 0x20980000 0x0 0x40000>,
696*69ed3df4SEmmanuel Vadot			      <0x0 0x209c0000 0x0 0x40000>,
697*69ed3df4SEmmanuel Vadot			      <0x0 0x20a00000 0x0 0x40000>,
698*69ed3df4SEmmanuel Vadot			      <0x0 0x20a40000 0x0 0x40000>,
699*69ed3df4SEmmanuel Vadot			      <0x0 0x20a80000 0x0 0x40000>,
700*69ed3df4SEmmanuel Vadot			      <0x0 0x20ac0000 0x0 0x40000>,
701*69ed3df4SEmmanuel Vadot			      <0x0 0x20b00000 0x0 0x40000>,
702*69ed3df4SEmmanuel Vadot			      <0x0 0x20b40000 0x0 0x40000>,
703*69ed3df4SEmmanuel Vadot			      <0x0 0x20b80000 0x0 0x40000>,
704*69ed3df4SEmmanuel Vadot			      <0x0 0x20bc0000 0x0 0x40000>,
705*69ed3df4SEmmanuel Vadot			      <0x0 0x20c00000 0x0 0x40000>,
706*69ed3df4SEmmanuel Vadot			      <0x0 0x20c40000 0x0 0x40000>;
707*69ed3df4SEmmanuel Vadot
708*69ed3df4SEmmanuel Vadot			its: msi-controller@20840000 {
709*69ed3df4SEmmanuel Vadot				compatible = "arm,gic-v3-its";
710*69ed3df4SEmmanuel Vadot				reg = <0x0 0x20840000 0x0 0x40000>;
711*69ed3df4SEmmanuel Vadot				msi-controller;
712*69ed3df4SEmmanuel Vadot				#msi-cells = <1>;
713*69ed3df4SEmmanuel Vadot			};
714*69ed3df4SEmmanuel Vadot		};
715*69ed3df4SEmmanuel Vadot
716*69ed3df4SEmmanuel Vadot		/*
717*69ed3df4SEmmanuel Vadot		 * UART is fixed at 24MHz, both UARTCLK and PCLK.
718*69ed3df4SEmmanuel Vadot		 */
719*69ed3df4SEmmanuel Vadot		soc_serial0: serial@1a400000 {
720*69ed3df4SEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
721*69ed3df4SEmmanuel Vadot			reg = <0x0 0x1a400000 0x0 0x10000>;
722*69ed3df4SEmmanuel Vadot			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
723*69ed3df4SEmmanuel Vadot			clocks = <&soc_clk24mhz>, <&soc_clk24mhz>;
724*69ed3df4SEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
725*69ed3df4SEmmanuel Vadot		};
726*69ed3df4SEmmanuel Vadot
727*69ed3df4SEmmanuel Vadot		watchdog@1a420000 {
728*69ed3df4SEmmanuel Vadot			compatible = "arm,sbsa-gwdt";
729*69ed3df4SEmmanuel Vadot			reg = <0x0 0x1a420000 0x0 0x10000>,
730*69ed3df4SEmmanuel Vadot			      <0x0 0x1a430000 0x0 0x10000>;
731*69ed3df4SEmmanuel Vadot			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
732*69ed3df4SEmmanuel Vadot		};
733*69ed3df4SEmmanuel Vadot
734*69ed3df4SEmmanuel Vadot		rtc@300d0000 {
735*69ed3df4SEmmanuel Vadot			compatible = "arm,pl031", "arm,primecell";
736*69ed3df4SEmmanuel Vadot			reg = <0x0 0x300d0000 0x0 0x10000>;
737*69ed3df4SEmmanuel Vadot			interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
738*69ed3df4SEmmanuel Vadot			clocks = <&soc_clk24mhz>;
739*69ed3df4SEmmanuel Vadot			clock-names = "apb_pclk";
740*69ed3df4SEmmanuel Vadot		};
741*69ed3df4SEmmanuel Vadot
742*69ed3df4SEmmanuel Vadot		mbox_db_tx: mailbox@40020000 {
743*69ed3df4SEmmanuel Vadot			compatible = "arm,mhuv3";
744*69ed3df4SEmmanuel Vadot			reg = <0x0 0x40020000 0x0 0x30000>;
745*69ed3df4SEmmanuel Vadot			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
746*69ed3df4SEmmanuel Vadot			interrupt-names = "combined";
747*69ed3df4SEmmanuel Vadot			clocks = <&soc_clk24mhz>;
748*69ed3df4SEmmanuel Vadot			#mbox-cells = <3>;
749*69ed3df4SEmmanuel Vadot		};
750*69ed3df4SEmmanuel Vadot
751*69ed3df4SEmmanuel Vadot		mbox_db_rx: mailbox@40060000 {
752*69ed3df4SEmmanuel Vadot			compatible = "arm,mhuv3";
753*69ed3df4SEmmanuel Vadot			reg = <0x0 0x40060000 0x0 0x30000>;
754*69ed3df4SEmmanuel Vadot			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
755*69ed3df4SEmmanuel Vadot			interrupt-names = "combined";
756*69ed3df4SEmmanuel Vadot			clocks = <&soc_clk24mhz>;
757*69ed3df4SEmmanuel Vadot			#mbox-cells = <3>;
758*69ed3df4SEmmanuel Vadot		};
759*69ed3df4SEmmanuel Vadot	};
760*69ed3df4SEmmanuel Vadot
761*69ed3df4SEmmanuel Vadot	timer {
762*69ed3df4SEmmanuel Vadot		compatible = "arm,armv8-timer";
763*69ed3df4SEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
764*69ed3df4SEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
765*69ed3df4SEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
766*69ed3df4SEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>,
767*69ed3df4SEmmanuel Vadot			     <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>;
768*69ed3df4SEmmanuel Vadot	};
769*69ed3df4SEmmanuel Vadot};
770