xref: /freebsd-src/sys/contrib/device-tree/src/arm64/apple/t6002.dtsi (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1*8bab661aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*8bab661aSEmmanuel Vadot/*
3*8bab661aSEmmanuel Vadot * Apple T6002 "M1 Ultra" SoC
4*8bab661aSEmmanuel Vadot *
5*8bab661aSEmmanuel Vadot * Other names: H13J, "Jade 2C"
6*8bab661aSEmmanuel Vadot *
7*8bab661aSEmmanuel Vadot * Copyright The Asahi Linux Contributors
8*8bab661aSEmmanuel Vadot */
9*8bab661aSEmmanuel Vadot
10*8bab661aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
11*8bab661aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/apple-aic.h>
12*8bab661aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
13*8bab661aSEmmanuel Vadot#include <dt-bindings/pinctrl/apple.h>
14*8bab661aSEmmanuel Vadot
15*8bab661aSEmmanuel Vadot#include "multi-die-cpp.h"
16*8bab661aSEmmanuel Vadot
17*8bab661aSEmmanuel Vadot#include "t600x-common.dtsi"
18*8bab661aSEmmanuel Vadot
19*8bab661aSEmmanuel Vadot/ {
20*8bab661aSEmmanuel Vadot	compatible = "apple,t6002", "apple,arm-platform";
21*8bab661aSEmmanuel Vadot
22*8bab661aSEmmanuel Vadot	#address-cells = <2>;
23*8bab661aSEmmanuel Vadot	#size-cells = <2>;
24*8bab661aSEmmanuel Vadot
25*8bab661aSEmmanuel Vadot	cpus {
26*8bab661aSEmmanuel Vadot		cpu-map {
27*8bab661aSEmmanuel Vadot			cluster3 {
28*8bab661aSEmmanuel Vadot				core0 {
29*8bab661aSEmmanuel Vadot					cpu = <&cpu_e10>;
30*8bab661aSEmmanuel Vadot				};
31*8bab661aSEmmanuel Vadot				core1 {
32*8bab661aSEmmanuel Vadot					cpu = <&cpu_e11>;
33*8bab661aSEmmanuel Vadot				};
34*8bab661aSEmmanuel Vadot			};
35*8bab661aSEmmanuel Vadot
36*8bab661aSEmmanuel Vadot			cluster4 {
37*8bab661aSEmmanuel Vadot				core0 {
38*8bab661aSEmmanuel Vadot					cpu = <&cpu_p20>;
39*8bab661aSEmmanuel Vadot				};
40*8bab661aSEmmanuel Vadot				core1 {
41*8bab661aSEmmanuel Vadot					cpu = <&cpu_p21>;
42*8bab661aSEmmanuel Vadot				};
43*8bab661aSEmmanuel Vadot				core2 {
44*8bab661aSEmmanuel Vadot					cpu = <&cpu_p22>;
45*8bab661aSEmmanuel Vadot				};
46*8bab661aSEmmanuel Vadot				core3 {
47*8bab661aSEmmanuel Vadot					cpu = <&cpu_p23>;
48*8bab661aSEmmanuel Vadot				};
49*8bab661aSEmmanuel Vadot			};
50*8bab661aSEmmanuel Vadot
51*8bab661aSEmmanuel Vadot			cluster5 {
52*8bab661aSEmmanuel Vadot				core0 {
53*8bab661aSEmmanuel Vadot					cpu = <&cpu_p30>;
54*8bab661aSEmmanuel Vadot				};
55*8bab661aSEmmanuel Vadot				core1 {
56*8bab661aSEmmanuel Vadot					cpu = <&cpu_p31>;
57*8bab661aSEmmanuel Vadot				};
58*8bab661aSEmmanuel Vadot				core2 {
59*8bab661aSEmmanuel Vadot					cpu = <&cpu_p32>;
60*8bab661aSEmmanuel Vadot				};
61*8bab661aSEmmanuel Vadot				core3 {
62*8bab661aSEmmanuel Vadot					cpu = <&cpu_p33>;
63*8bab661aSEmmanuel Vadot				};
64*8bab661aSEmmanuel Vadot			};
65*8bab661aSEmmanuel Vadot		};
66*8bab661aSEmmanuel Vadot
67*8bab661aSEmmanuel Vadot		cpu_e10: cpu@800 {
68*8bab661aSEmmanuel Vadot			compatible = "apple,icestorm";
69*8bab661aSEmmanuel Vadot			device_type = "cpu";
70*8bab661aSEmmanuel Vadot			reg = <0x0 0x800>;
71*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
72*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
73*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_3>;
74*8bab661aSEmmanuel Vadot			i-cache-size = <0x20000>;
75*8bab661aSEmmanuel Vadot			d-cache-size = <0x10000>;
76*8bab661aSEmmanuel Vadot			operating-points-v2 = <&icestorm_opp>;
77*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <714>;
78*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_e_die1>;
79*8bab661aSEmmanuel Vadot		};
80*8bab661aSEmmanuel Vadot
81*8bab661aSEmmanuel Vadot		cpu_e11: cpu@801 {
82*8bab661aSEmmanuel Vadot			compatible = "apple,icestorm";
83*8bab661aSEmmanuel Vadot			device_type = "cpu";
84*8bab661aSEmmanuel Vadot			reg = <0x0 0x801>;
85*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
86*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
87*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_3>;
88*8bab661aSEmmanuel Vadot			i-cache-size = <0x20000>;
89*8bab661aSEmmanuel Vadot			d-cache-size = <0x10000>;
90*8bab661aSEmmanuel Vadot			operating-points-v2 = <&icestorm_opp>;
91*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <714>;
92*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_e_die1>;
93*8bab661aSEmmanuel Vadot		};
94*8bab661aSEmmanuel Vadot
95*8bab661aSEmmanuel Vadot		cpu_p20: cpu@10900 {
96*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
97*8bab661aSEmmanuel Vadot			device_type = "cpu";
98*8bab661aSEmmanuel Vadot			reg = <0x0 0x10900>;
99*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
100*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
101*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_4>;
102*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
103*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
104*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
105*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
106*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p0_die1>;
107*8bab661aSEmmanuel Vadot		};
108*8bab661aSEmmanuel Vadot
109*8bab661aSEmmanuel Vadot		cpu_p21: cpu@10901 {
110*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
111*8bab661aSEmmanuel Vadot			device_type = "cpu";
112*8bab661aSEmmanuel Vadot			reg = <0x0 0x10901>;
113*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
114*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
115*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_4>;
116*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
117*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
118*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
119*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
120*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p0_die1>;
121*8bab661aSEmmanuel Vadot		};
122*8bab661aSEmmanuel Vadot
123*8bab661aSEmmanuel Vadot		cpu_p22: cpu@10902 {
124*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
125*8bab661aSEmmanuel Vadot			device_type = "cpu";
126*8bab661aSEmmanuel Vadot			reg = <0x0 0x10902>;
127*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
128*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
129*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_4>;
130*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
131*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
132*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
133*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
134*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p0_die1>;
135*8bab661aSEmmanuel Vadot		};
136*8bab661aSEmmanuel Vadot
137*8bab661aSEmmanuel Vadot		cpu_p23: cpu@10903 {
138*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
139*8bab661aSEmmanuel Vadot			device_type = "cpu";
140*8bab661aSEmmanuel Vadot			reg = <0x0 0x10903>;
141*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
142*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
143*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_4>;
144*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
145*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
146*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
147*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
148*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p0_die1>;
149*8bab661aSEmmanuel Vadot		};
150*8bab661aSEmmanuel Vadot
151*8bab661aSEmmanuel Vadot		cpu_p30: cpu@10a00 {
152*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
153*8bab661aSEmmanuel Vadot			device_type = "cpu";
154*8bab661aSEmmanuel Vadot			reg = <0x0 0x10a00>;
155*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
156*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
157*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_5>;
158*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
159*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
160*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
161*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
162*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p1_die1>;
163*8bab661aSEmmanuel Vadot		};
164*8bab661aSEmmanuel Vadot
165*8bab661aSEmmanuel Vadot		cpu_p31: cpu@10a01 {
166*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
167*8bab661aSEmmanuel Vadot			device_type = "cpu";
168*8bab661aSEmmanuel Vadot			reg = <0x0 0x10a01>;
169*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
170*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
171*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_5>;
172*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
173*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
174*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
175*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
176*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p1_die1>;
177*8bab661aSEmmanuel Vadot		};
178*8bab661aSEmmanuel Vadot
179*8bab661aSEmmanuel Vadot		cpu_p32: cpu@10a02 {
180*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
181*8bab661aSEmmanuel Vadot			device_type = "cpu";
182*8bab661aSEmmanuel Vadot			reg = <0x0 0x10a02>;
183*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
184*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
185*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_5>;
186*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
187*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
188*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
189*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
190*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p1_die1>;
191*8bab661aSEmmanuel Vadot		};
192*8bab661aSEmmanuel Vadot
193*8bab661aSEmmanuel Vadot		cpu_p33: cpu@10a03 {
194*8bab661aSEmmanuel Vadot			compatible = "apple,firestorm";
195*8bab661aSEmmanuel Vadot			device_type = "cpu";
196*8bab661aSEmmanuel Vadot			reg = <0x0 0x10a03>;
197*8bab661aSEmmanuel Vadot			enable-method = "spin-table";
198*8bab661aSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
199*8bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_5>;
200*8bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
201*8bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
202*8bab661aSEmmanuel Vadot			operating-points-v2 = <&firestorm_opp>;
203*8bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
204*8bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p1_die1>;
205*8bab661aSEmmanuel Vadot		};
206*8bab661aSEmmanuel Vadot
207*8bab661aSEmmanuel Vadot		l2_cache_3: l2-cache-3 {
208*8bab661aSEmmanuel Vadot			compatible = "cache";
209*8bab661aSEmmanuel Vadot			cache-level = <2>;
210*8bab661aSEmmanuel Vadot			cache-unified;
211*8bab661aSEmmanuel Vadot			cache-size = <0x400000>;
212*8bab661aSEmmanuel Vadot		};
213*8bab661aSEmmanuel Vadot
214*8bab661aSEmmanuel Vadot		l2_cache_4: l2-cache-4 {
215*8bab661aSEmmanuel Vadot			compatible = "cache";
216*8bab661aSEmmanuel Vadot			cache-level = <2>;
217*8bab661aSEmmanuel Vadot			cache-unified;
218*8bab661aSEmmanuel Vadot			cache-size = <0xc00000>;
219*8bab661aSEmmanuel Vadot		};
220*8bab661aSEmmanuel Vadot
221*8bab661aSEmmanuel Vadot		l2_cache_5: l2-cache-5 {
222*8bab661aSEmmanuel Vadot			compatible = "cache";
223*8bab661aSEmmanuel Vadot			cache-level = <2>;
224*8bab661aSEmmanuel Vadot			cache-unified;
225*8bab661aSEmmanuel Vadot			cache-size = <0xc00000>;
226*8bab661aSEmmanuel Vadot		};
227*8bab661aSEmmanuel Vadot	};
228*8bab661aSEmmanuel Vadot
229*8bab661aSEmmanuel Vadot	die0: soc@200000000 {
230*8bab661aSEmmanuel Vadot		compatible = "simple-bus";
231*8bab661aSEmmanuel Vadot		#address-cells = <2>;
232*8bab661aSEmmanuel Vadot		#size-cells = <2>;
233*8bab661aSEmmanuel Vadot		ranges = <0x2 0x0 0x2 0x0 0x4 0x0>,
234*8bab661aSEmmanuel Vadot			 <0x5 0x80000000 0x5 0x80000000 0x1 0x80000000>,
235*8bab661aSEmmanuel Vadot			 <0x7 0x0 0x7 0x0 0xf 0x80000000>;
236*8bab661aSEmmanuel Vadot		nonposted-mmio;
237*8bab661aSEmmanuel Vadot
238*8bab661aSEmmanuel Vadot		// filled via templated includes at the end of the file
239*8bab661aSEmmanuel Vadot	};
240*8bab661aSEmmanuel Vadot
241*8bab661aSEmmanuel Vadot	die1: soc@2200000000 {
242*8bab661aSEmmanuel Vadot		compatible = "simple-bus";
243*8bab661aSEmmanuel Vadot		#address-cells = <2>;
244*8bab661aSEmmanuel Vadot		#size-cells = <2>;
245*8bab661aSEmmanuel Vadot		ranges = <0x2 0x0 0x22 0x0 0x4 0x0>,
246*8bab661aSEmmanuel Vadot			 <0x7 0x0 0x27 0x0 0xf 0x80000000>;
247*8bab661aSEmmanuel Vadot		nonposted-mmio;
248*8bab661aSEmmanuel Vadot
249*8bab661aSEmmanuel Vadot		// filled via templated includes at the end of the file
250*8bab661aSEmmanuel Vadot	};
251*8bab661aSEmmanuel Vadot};
252*8bab661aSEmmanuel Vadot
253*8bab661aSEmmanuel Vadot#define DIE
254*8bab661aSEmmanuel Vadot#define DIE_NO 0
255*8bab661aSEmmanuel Vadot
256*8bab661aSEmmanuel Vadot&die0 {
257*8bab661aSEmmanuel Vadot	#include "t600x-die0.dtsi"
258*8bab661aSEmmanuel Vadot	#include "t600x-dieX.dtsi"
259*8bab661aSEmmanuel Vadot};
260*8bab661aSEmmanuel Vadot
261*8bab661aSEmmanuel Vadot#include "t600x-pmgr.dtsi"
262*8bab661aSEmmanuel Vadot#include "t600x-gpio-pins.dtsi"
263*8bab661aSEmmanuel Vadot
264*8bab661aSEmmanuel Vadot#undef DIE
265*8bab661aSEmmanuel Vadot#undef DIE_NO
266*8bab661aSEmmanuel Vadot
267*8bab661aSEmmanuel Vadot#define DIE _die1
268*8bab661aSEmmanuel Vadot#define DIE_NO 1
269*8bab661aSEmmanuel Vadot
270*8bab661aSEmmanuel Vadot&die1 {
271*8bab661aSEmmanuel Vadot	#include "t600x-dieX.dtsi"
272*8bab661aSEmmanuel Vadot	#include "t600x-nvme.dtsi"
273*8bab661aSEmmanuel Vadot};
274*8bab661aSEmmanuel Vadot
275*8bab661aSEmmanuel Vadot#include "t600x-pmgr.dtsi"
276*8bab661aSEmmanuel Vadot
277*8bab661aSEmmanuel Vadot#undef DIE
278*8bab661aSEmmanuel Vadot#undef DIE_NO
279*8bab661aSEmmanuel Vadot
280*8bab661aSEmmanuel Vadot&aic {
281*8bab661aSEmmanuel Vadot	affinities {
282*8bab661aSEmmanuel Vadot		e-core-pmu-affinity {
283*8bab661aSEmmanuel Vadot			apple,fiq-index = <AIC_CPU_PMU_E>;
284*8bab661aSEmmanuel Vadot			cpus = <&cpu_e00 &cpu_e01
285*8bab661aSEmmanuel Vadot				&cpu_e10 &cpu_e11>;
286*8bab661aSEmmanuel Vadot		};
287*8bab661aSEmmanuel Vadot
288*8bab661aSEmmanuel Vadot		p-core-pmu-affinity {
289*8bab661aSEmmanuel Vadot			apple,fiq-index = <AIC_CPU_PMU_P>;
290*8bab661aSEmmanuel Vadot			cpus = <&cpu_p00 &cpu_p01 &cpu_p02 &cpu_p03
291*8bab661aSEmmanuel Vadot				&cpu_p10 &cpu_p11 &cpu_p12 &cpu_p13
292*8bab661aSEmmanuel Vadot				&cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23
293*8bab661aSEmmanuel Vadot				&cpu_p30 &cpu_p31 &cpu_p32 &cpu_p33>;
294*8bab661aSEmmanuel Vadot		};
295*8bab661aSEmmanuel Vadot	};
296*8bab661aSEmmanuel Vadot};
297*8bab661aSEmmanuel Vadot
298*8bab661aSEmmanuel Vadot&ps_gfx {
299*8bab661aSEmmanuel Vadot	// On t6002, the die0 GPU power domain needs both AFR power domains
300*8bab661aSEmmanuel Vadot	power-domains = <&ps_afr>, <&ps_afr_die1>;
301*8bab661aSEmmanuel Vadot};
302