Linux Audio

Check our new training course

Linux BSP upgrade and security maintenance

Need help to get security updates for your Linux BSP?
Loading...
Note: File does not exist in v4.17.
  1// SPDX-License-Identifier: GPL-2.0+ OR MIT
  2/*
  3 * Common Apple T6000 / T6001 / T6002 "M1 Pro/Max/Ultra" SoC
  4 *
  5 * Other names: H13J, "Jade Chop", "Jade", "Jade 2C"
  6 *
  7 * Copyright The Asahi Linux Contributors
  8 */
  9
 10/ {
 11	#address-cells = <2>;
 12	#size-cells = <2>;
 13
 14	cpus {
 15		#address-cells = <2>;
 16		#size-cells = <0>;
 17
 18		cpu-map {
 19			cluster0 {
 20				core0 {
 21					cpu = <&cpu_e00>;
 22				};
 23				core1 {
 24					cpu = <&cpu_e01>;
 25				};
 26			};
 27
 28			cluster1 {
 29				core0 {
 30					cpu = <&cpu_p00>;
 31				};
 32				core1 {
 33					cpu = <&cpu_p01>;
 34				};
 35				core2 {
 36					cpu = <&cpu_p02>;
 37				};
 38				core3 {
 39					cpu = <&cpu_p03>;
 40				};
 41			};
 42
 43			cluster2 {
 44				core0 {
 45					cpu = <&cpu_p10>;
 46				};
 47				core1 {
 48					cpu = <&cpu_p11>;
 49				};
 50				core2 {
 51					cpu = <&cpu_p12>;
 52				};
 53				core3 {
 54					cpu = <&cpu_p13>;
 55				};
 56			};
 57		};
 58
 59		cpu_e00: cpu@0 {
 60			compatible = "apple,icestorm";
 61			device_type = "cpu";
 62			reg = <0x0 0x0>;
 63			enable-method = "spin-table";
 64			cpu-release-addr = <0 0>; /* To be filled by loader */
 65			next-level-cache = <&l2_cache_0>;
 66			i-cache-size = <0x20000>;
 67			d-cache-size = <0x10000>;
 68			operating-points-v2 = <&icestorm_opp>;
 69			capacity-dmips-mhz = <714>;
 70			performance-domains = <&cpufreq_e>;
 71		};
 72
 73		cpu_e01: cpu@1 {
 74			compatible = "apple,icestorm";
 75			device_type = "cpu";
 76			reg = <0x0 0x1>;
 77			enable-method = "spin-table";
 78			cpu-release-addr = <0 0>; /* To be filled by loader */
 79			next-level-cache = <&l2_cache_0>;
 80			i-cache-size = <0x20000>;
 81			d-cache-size = <0x10000>;
 82			operating-points-v2 = <&icestorm_opp>;
 83			capacity-dmips-mhz = <714>;
 84			performance-domains = <&cpufreq_e>;
 85		};
 86
 87		cpu_p00: cpu@10100 {
 88			compatible = "apple,firestorm";
 89			device_type = "cpu";
 90			reg = <0x0 0x10100>;
 91			enable-method = "spin-table";
 92			cpu-release-addr = <0 0>; /* To be filled by loader */
 93			next-level-cache = <&l2_cache_1>;
 94			i-cache-size = <0x30000>;
 95			d-cache-size = <0x20000>;
 96			operating-points-v2 = <&firestorm_opp>;
 97			capacity-dmips-mhz = <1024>;
 98			performance-domains = <&cpufreq_p0>;
 99		};
100
101		cpu_p01: cpu@10101 {
102			compatible = "apple,firestorm";
103			device_type = "cpu";
104			reg = <0x0 0x10101>;
105			enable-method = "spin-table";
106			cpu-release-addr = <0 0>; /* To be filled by loader */
107			next-level-cache = <&l2_cache_1>;
108			i-cache-size = <0x30000>;
109			d-cache-size = <0x20000>;
110			operating-points-v2 = <&firestorm_opp>;
111			capacity-dmips-mhz = <1024>;
112			performance-domains = <&cpufreq_p0>;
113		};
114
115		cpu_p02: cpu@10102 {
116			compatible = "apple,firestorm";
117			device_type = "cpu";
118			reg = <0x0 0x10102>;
119			enable-method = "spin-table";
120			cpu-release-addr = <0 0>; /* To be filled by loader */
121			next-level-cache = <&l2_cache_1>;
122			i-cache-size = <0x30000>;
123			d-cache-size = <0x20000>;
124			operating-points-v2 = <&firestorm_opp>;
125			capacity-dmips-mhz = <1024>;
126			performance-domains = <&cpufreq_p0>;
127		};
128
129		cpu_p03: cpu@10103 {
130			compatible = "apple,firestorm";
131			device_type = "cpu";
132			reg = <0x0 0x10103>;
133			enable-method = "spin-table";
134			cpu-release-addr = <0 0>; /* To be filled by loader */
135			next-level-cache = <&l2_cache_1>;
136			i-cache-size = <0x30000>;
137			d-cache-size = <0x20000>;
138			operating-points-v2 = <&firestorm_opp>;
139			capacity-dmips-mhz = <1024>;
140			performance-domains = <&cpufreq_p0>;
141		};
142
143		cpu_p10: cpu@10200 {
144			compatible = "apple,firestorm";
145			device_type = "cpu";
146			reg = <0x0 0x10200>;
147			enable-method = "spin-table";
148			cpu-release-addr = <0 0>; /* To be filled by loader */
149			next-level-cache = <&l2_cache_2>;
150			i-cache-size = <0x30000>;
151			d-cache-size = <0x20000>;
152			operating-points-v2 = <&firestorm_opp>;
153			capacity-dmips-mhz = <1024>;
154			performance-domains = <&cpufreq_p1>;
155		};
156
157		cpu_p11: cpu@10201 {
158			compatible = "apple,firestorm";
159			device_type = "cpu";
160			reg = <0x0 0x10201>;
161			enable-method = "spin-table";
162			cpu-release-addr = <0 0>; /* To be filled by loader */
163			next-level-cache = <&l2_cache_2>;
164			i-cache-size = <0x30000>;
165			d-cache-size = <0x20000>;
166			operating-points-v2 = <&firestorm_opp>;
167			capacity-dmips-mhz = <1024>;
168			performance-domains = <&cpufreq_p1>;
169		};
170
171		cpu_p12: cpu@10202 {
172			compatible = "apple,firestorm";
173			device_type = "cpu";
174			reg = <0x0 0x10202>;
175			enable-method = "spin-table";
176			cpu-release-addr = <0 0>; /* To be filled by loader */
177			next-level-cache = <&l2_cache_2>;
178			i-cache-size = <0x30000>;
179			d-cache-size = <0x20000>;
180			operating-points-v2 = <&firestorm_opp>;
181			capacity-dmips-mhz = <1024>;
182			performance-domains = <&cpufreq_p1>;
183		};
184
185		cpu_p13: cpu@10203 {
186			compatible = "apple,firestorm";
187			device_type = "cpu";
188			reg = <0x0 0x10203>;
189			enable-method = "spin-table";
190			cpu-release-addr = <0 0>; /* To be filled by loader */
191			next-level-cache = <&l2_cache_2>;
192			i-cache-size = <0x30000>;
193			d-cache-size = <0x20000>;
194			operating-points-v2 = <&firestorm_opp>;
195			capacity-dmips-mhz = <1024>;
196			performance-domains = <&cpufreq_p1>;
197		};
198
199		l2_cache_0: l2-cache-0 {
200			compatible = "cache";
201			cache-level = <2>;
202			cache-unified;
203			cache-size = <0x400000>;
204		};
205
206		l2_cache_1: l2-cache-1 {
207			compatible = "cache";
208			cache-level = <2>;
209			cache-unified;
210			cache-size = <0xc00000>;
211		};
212
213		l2_cache_2: l2-cache-2 {
214			compatible = "cache";
215			cache-level = <2>;
216			cache-unified;
217			cache-size = <0xc00000>;
218		};
219	};
220
221	icestorm_opp: opp-table-0 {
222		compatible = "operating-points-v2";
223
224		opp01 {
225			opp-hz = /bits/ 64 <600000000>;
226			opp-level = <1>;
227			clock-latency-ns = <7500>;
228		};
229		opp02 {
230			opp-hz = /bits/ 64 <972000000>;
231			opp-level = <2>;
232			clock-latency-ns = <23000>;
233		};
234		opp03 {
235			opp-hz = /bits/ 64 <1332000000>;
236			opp-level = <3>;
237			clock-latency-ns = <29000>;
238		};
239		opp04 {
240			opp-hz = /bits/ 64 <1704000000>;
241			opp-level = <4>;
242			clock-latency-ns = <40000>;
243		};
244		opp05 {
245			opp-hz = /bits/ 64 <2064000000>;
246			opp-level = <5>;
247			clock-latency-ns = <50000>;
248		};
249	};
250
251	firestorm_opp: opp-table-1 {
252		compatible = "operating-points-v2";
253
254		opp01 {
255			opp-hz = /bits/ 64 <600000000>;
256			opp-level = <1>;
257			clock-latency-ns = <8000>;
258		};
259		opp02 {
260			opp-hz = /bits/ 64 <828000000>;
261			opp-level = <2>;
262			clock-latency-ns = <18000>;
263		};
264		opp03 {
265			opp-hz = /bits/ 64 <1056000000>;
266			opp-level = <3>;
267			clock-latency-ns = <19000>;
268		};
269		opp04 {
270			opp-hz = /bits/ 64 <1296000000>;
271			opp-level = <4>;
272			clock-latency-ns = <23000>;
273		};
274		opp05 {
275			opp-hz = /bits/ 64 <1524000000>;
276			opp-level = <5>;
277			clock-latency-ns = <24000>;
278		};
279		opp06 {
280			opp-hz = /bits/ 64 <1752000000>;
281			opp-level = <6>;
282			clock-latency-ns = <28000>;
283		};
284		opp07 {
285			opp-hz = /bits/ 64 <1980000000>;
286			opp-level = <7>;
287			clock-latency-ns = <31000>;
288		};
289		opp08 {
290			opp-hz = /bits/ 64 <2208000000>;
291			opp-level = <8>;
292			clock-latency-ns = <45000>;
293		};
294		opp09 {
295			opp-hz = /bits/ 64 <2448000000>;
296			opp-level = <9>;
297			clock-latency-ns = <49000>;
298		};
299		opp10 {
300			opp-hz = /bits/ 64 <2676000000>;
301			opp-level = <10>;
302			clock-latency-ns = <53000>;
303		};
304		opp11 {
305			opp-hz = /bits/ 64 <2904000000>;
306			opp-level = <11>;
307			clock-latency-ns = <56000>;
308		};
309		opp12 {
310			opp-hz = /bits/ 64 <3036000000>;
311			opp-level = <12>;
312			clock-latency-ns = <56000>;
313		};
314		/* Not available until CPU deep sleep is implemented
315		opp13 {
316			opp-hz = /bits/ 64 <3132000000>;
317			opp-level = <13>;
318			clock-latency-ns = <56000>;
319			turbo-mode;
320		};
321		opp14 {
322			opp-hz = /bits/ 64 <3168000000>;
323			opp-level = <14>;
324			clock-latency-ns = <56000>;
325			turbo-mode;
326		};
327		opp15 {
328			opp-hz = /bits/ 64 <3228000000>;
329			opp-level = <15>;
330			clock-latency-ns = <56000>;
331			turbo-mode;
332		};
333		*/
334	};
335
336	pmu-e {
337		compatible = "apple,icestorm-pmu";
338		interrupt-parent = <&aic>;
339		interrupts = <AIC_FIQ 0 AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>;
340	};
341
342	pmu-p {
343		compatible = "apple,firestorm-pmu";
344		interrupt-parent = <&aic>;
345		interrupts = <AIC_FIQ 0 AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>;
346	};
347
348	timer {
349		compatible = "arm,armv8-timer";
350		interrupt-parent = <&aic>;
351		interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
352		interrupts = <AIC_FIQ 0 AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
353			     <AIC_FIQ 0 AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
354			     <AIC_FIQ 0 AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
355			     <AIC_FIQ 0 AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
356	};
357
358	clkref: clock-ref {
359		compatible = "fixed-clock";
360		#clock-cells = <0>;
361		clock-frequency = <24000000>;
362		clock-output-names = "clkref";
363	};
364
365	/*
366	 * This is a fabulated representation of the input clock
367	 * to NCO since we don't know the true clock tree.
368	 */
369	nco_clkref: clock-ref-nco {
370		compatible = "fixed-clock";
371		#clock-cells = <0>;
372		clock-output-names = "nco_ref";
373	};
374};