xref: /linux/scripts/dtc/include-prefixes/arm64/apple/t6002.dtsi (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
17b0b0191SHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT
27b0b0191SHector Martin/*
37b0b0191SHector Martin * Apple T6002 "M1 Ultra" SoC
47b0b0191SHector Martin *
57b0b0191SHector Martin * Other names: H13J, "Jade 2C"
67b0b0191SHector Martin *
77b0b0191SHector Martin * Copyright The Asahi Linux Contributors
87b0b0191SHector Martin */
97b0b0191SHector Martin
107b0b0191SHector Martin#include <dt-bindings/gpio/gpio.h>
117b0b0191SHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h>
127b0b0191SHector Martin#include <dt-bindings/interrupt-controller/irq.h>
137b0b0191SHector Martin#include <dt-bindings/pinctrl/apple.h>
14d8bf8208SHector Martin#include <dt-bindings/spmi/spmi.h>
157b0b0191SHector Martin
167b0b0191SHector Martin#include "multi-die-cpp.h"
177b0b0191SHector Martin
187b0b0191SHector Martin#include "t600x-common.dtsi"
197b0b0191SHector Martin
207b0b0191SHector Martin/ {
217b0b0191SHector Martin	compatible = "apple,t6002", "apple,arm-platform";
227b0b0191SHector Martin
237b0b0191SHector Martin	#address-cells = <2>;
247b0b0191SHector Martin	#size-cells = <2>;
257b0b0191SHector Martin
267b0b0191SHector Martin	cpus {
27d32c1530SHector Martin		cpu-map {
28d32c1530SHector Martin			cluster3 {
29d32c1530SHector Martin				core0 {
30d32c1530SHector Martin					cpu = <&cpu_e10>;
31d32c1530SHector Martin				};
32d32c1530SHector Martin				core1 {
33d32c1530SHector Martin					cpu = <&cpu_e11>;
34d32c1530SHector Martin				};
35d32c1530SHector Martin			};
36d32c1530SHector Martin
37d32c1530SHector Martin			cluster4 {
38d32c1530SHector Martin				core0 {
39d32c1530SHector Martin					cpu = <&cpu_p20>;
40d32c1530SHector Martin				};
41d32c1530SHector Martin				core1 {
42d32c1530SHector Martin					cpu = <&cpu_p21>;
43d32c1530SHector Martin				};
44d32c1530SHector Martin				core2 {
45d32c1530SHector Martin					cpu = <&cpu_p22>;
46d32c1530SHector Martin				};
47d32c1530SHector Martin				core3 {
48d32c1530SHector Martin					cpu = <&cpu_p23>;
49d32c1530SHector Martin				};
50d32c1530SHector Martin			};
51d32c1530SHector Martin
52d32c1530SHector Martin			cluster5 {
53d32c1530SHector Martin				core0 {
54d32c1530SHector Martin					cpu = <&cpu_p30>;
55d32c1530SHector Martin				};
56d32c1530SHector Martin				core1 {
57d32c1530SHector Martin					cpu = <&cpu_p31>;
58d32c1530SHector Martin				};
59d32c1530SHector Martin				core2 {
60d32c1530SHector Martin					cpu = <&cpu_p32>;
61d32c1530SHector Martin				};
62d32c1530SHector Martin				core3 {
63d32c1530SHector Martin					cpu = <&cpu_p33>;
64d32c1530SHector Martin				};
65d32c1530SHector Martin			};
66d32c1530SHector Martin		};
67d32c1530SHector Martin
687b0b0191SHector Martin		cpu_e10: cpu@800 {
697b0b0191SHector Martin			compatible = "apple,icestorm";
707b0b0191SHector Martin			device_type = "cpu";
717b0b0191SHector Martin			reg = <0x0 0x800>;
727b0b0191SHector Martin			enable-method = "spin-table";
737b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
7483fb5b55SRob Herring			next-level-cache = <&l2_cache_3>;
7583fb5b55SRob Herring			i-cache-size = <0x20000>;
7683fb5b55SRob Herring			d-cache-size = <0x10000>;
77d32c1530SHector Martin			operating-points-v2 = <&icestorm_opp>;
78d32c1530SHector Martin			capacity-dmips-mhz = <714>;
79d32c1530SHector Martin			performance-domains = <&cpufreq_e_die1>;
807b0b0191SHector Martin		};
817b0b0191SHector Martin
827b0b0191SHector Martin		cpu_e11: cpu@801 {
837b0b0191SHector Martin			compatible = "apple,icestorm";
847b0b0191SHector Martin			device_type = "cpu";
857b0b0191SHector Martin			reg = <0x0 0x801>;
867b0b0191SHector Martin			enable-method = "spin-table";
877b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
8883fb5b55SRob Herring			next-level-cache = <&l2_cache_3>;
8983fb5b55SRob Herring			i-cache-size = <0x20000>;
9083fb5b55SRob Herring			d-cache-size = <0x10000>;
91d32c1530SHector Martin			operating-points-v2 = <&icestorm_opp>;
92d32c1530SHector Martin			capacity-dmips-mhz = <714>;
93d32c1530SHector Martin			performance-domains = <&cpufreq_e_die1>;
947b0b0191SHector Martin		};
957b0b0191SHector Martin
967b0b0191SHector Martin		cpu_p20: cpu@10900 {
977b0b0191SHector Martin			compatible = "apple,firestorm";
987b0b0191SHector Martin			device_type = "cpu";
997b0b0191SHector Martin			reg = <0x0 0x10900>;
1007b0b0191SHector Martin			enable-method = "spin-table";
1017b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
10283fb5b55SRob Herring			next-level-cache = <&l2_cache_4>;
10383fb5b55SRob Herring			i-cache-size = <0x30000>;
10483fb5b55SRob Herring			d-cache-size = <0x20000>;
105d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
106d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
107d32c1530SHector Martin			performance-domains = <&cpufreq_p0_die1>;
1087b0b0191SHector Martin		};
1097b0b0191SHector Martin
1107b0b0191SHector Martin		cpu_p21: cpu@10901 {
1117b0b0191SHector Martin			compatible = "apple,firestorm";
1127b0b0191SHector Martin			device_type = "cpu";
1137b0b0191SHector Martin			reg = <0x0 0x10901>;
1147b0b0191SHector Martin			enable-method = "spin-table";
1157b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
11683fb5b55SRob Herring			next-level-cache = <&l2_cache_4>;
11783fb5b55SRob Herring			i-cache-size = <0x30000>;
11883fb5b55SRob Herring			d-cache-size = <0x20000>;
119d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
120d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
121d32c1530SHector Martin			performance-domains = <&cpufreq_p0_die1>;
1227b0b0191SHector Martin		};
1237b0b0191SHector Martin
1247b0b0191SHector Martin		cpu_p22: cpu@10902 {
1257b0b0191SHector Martin			compatible = "apple,firestorm";
1267b0b0191SHector Martin			device_type = "cpu";
1277b0b0191SHector Martin			reg = <0x0 0x10902>;
1287b0b0191SHector Martin			enable-method = "spin-table";
1297b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
13083fb5b55SRob Herring			next-level-cache = <&l2_cache_4>;
13183fb5b55SRob Herring			i-cache-size = <0x30000>;
13283fb5b55SRob Herring			d-cache-size = <0x20000>;
133d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
134d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
135d32c1530SHector Martin			performance-domains = <&cpufreq_p0_die1>;
1367b0b0191SHector Martin		};
1377b0b0191SHector Martin
1387b0b0191SHector Martin		cpu_p23: cpu@10903 {
1397b0b0191SHector Martin			compatible = "apple,firestorm";
1407b0b0191SHector Martin			device_type = "cpu";
1417b0b0191SHector Martin			reg = <0x0 0x10903>;
1427b0b0191SHector Martin			enable-method = "spin-table";
1437b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
14483fb5b55SRob Herring			next-level-cache = <&l2_cache_4>;
14583fb5b55SRob Herring			i-cache-size = <0x30000>;
14683fb5b55SRob Herring			d-cache-size = <0x20000>;
147d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
148d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
149d32c1530SHector Martin			performance-domains = <&cpufreq_p0_die1>;
1507b0b0191SHector Martin		};
1517b0b0191SHector Martin
1527b0b0191SHector Martin		cpu_p30: cpu@10a00 {
1537b0b0191SHector Martin			compatible = "apple,firestorm";
1547b0b0191SHector Martin			device_type = "cpu";
1557b0b0191SHector Martin			reg = <0x0 0x10a00>;
1567b0b0191SHector Martin			enable-method = "spin-table";
1577b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
15883fb5b55SRob Herring			next-level-cache = <&l2_cache_5>;
15983fb5b55SRob Herring			i-cache-size = <0x30000>;
16083fb5b55SRob Herring			d-cache-size = <0x20000>;
161d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
162d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
163d32c1530SHector Martin			performance-domains = <&cpufreq_p1_die1>;
1647b0b0191SHector Martin		};
1657b0b0191SHector Martin
1667b0b0191SHector Martin		cpu_p31: cpu@10a01 {
1677b0b0191SHector Martin			compatible = "apple,firestorm";
1687b0b0191SHector Martin			device_type = "cpu";
1697b0b0191SHector Martin			reg = <0x0 0x10a01>;
1707b0b0191SHector Martin			enable-method = "spin-table";
1717b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
17283fb5b55SRob Herring			next-level-cache = <&l2_cache_5>;
17383fb5b55SRob Herring			i-cache-size = <0x30000>;
17483fb5b55SRob Herring			d-cache-size = <0x20000>;
175d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
176d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
177d32c1530SHector Martin			performance-domains = <&cpufreq_p1_die1>;
1787b0b0191SHector Martin		};
1797b0b0191SHector Martin
1807b0b0191SHector Martin		cpu_p32: cpu@10a02 {
1817b0b0191SHector Martin			compatible = "apple,firestorm";
1827b0b0191SHector Martin			device_type = "cpu";
1837b0b0191SHector Martin			reg = <0x0 0x10a02>;
1847b0b0191SHector Martin			enable-method = "spin-table";
1857b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
18683fb5b55SRob Herring			next-level-cache = <&l2_cache_5>;
18783fb5b55SRob Herring			i-cache-size = <0x30000>;
18883fb5b55SRob Herring			d-cache-size = <0x20000>;
189d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
190d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
191d32c1530SHector Martin			performance-domains = <&cpufreq_p1_die1>;
1927b0b0191SHector Martin		};
1937b0b0191SHector Martin
1947b0b0191SHector Martin		cpu_p33: cpu@10a03 {
1957b0b0191SHector Martin			compatible = "apple,firestorm";
1967b0b0191SHector Martin			device_type = "cpu";
1977b0b0191SHector Martin			reg = <0x0 0x10a03>;
1987b0b0191SHector Martin			enable-method = "spin-table";
1997b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
20083fb5b55SRob Herring			next-level-cache = <&l2_cache_5>;
20183fb5b55SRob Herring			i-cache-size = <0x30000>;
20283fb5b55SRob Herring			d-cache-size = <0x20000>;
203d32c1530SHector Martin			operating-points-v2 = <&firestorm_opp>;
204d32c1530SHector Martin			capacity-dmips-mhz = <1024>;
205d32c1530SHector Martin			performance-domains = <&cpufreq_p1_die1>;
20683fb5b55SRob Herring		};
20783fb5b55SRob Herring
20883fb5b55SRob Herring		l2_cache_3: l2-cache-3 {
20983fb5b55SRob Herring			compatible = "cache";
21083fb5b55SRob Herring			cache-level = <2>;
21183fb5b55SRob Herring			cache-unified;
21283fb5b55SRob Herring			cache-size = <0x400000>;
21383fb5b55SRob Herring		};
21483fb5b55SRob Herring
21583fb5b55SRob Herring		l2_cache_4: l2-cache-4 {
21683fb5b55SRob Herring			compatible = "cache";
21783fb5b55SRob Herring			cache-level = <2>;
21883fb5b55SRob Herring			cache-unified;
21983fb5b55SRob Herring			cache-size = <0xc00000>;
22083fb5b55SRob Herring		};
22183fb5b55SRob Herring
22283fb5b55SRob Herring		l2_cache_5: l2-cache-5 {
22383fb5b55SRob Herring			compatible = "cache";
22483fb5b55SRob Herring			cache-level = <2>;
22583fb5b55SRob Herring			cache-unified;
22683fb5b55SRob Herring			cache-size = <0xc00000>;
2277b0b0191SHector Martin		};
2287b0b0191SHector Martin	};
2297b0b0191SHector Martin
2307b0b0191SHector Martin	die0: soc@200000000 {
2317b0b0191SHector Martin		compatible = "simple-bus";
2327b0b0191SHector Martin		#address-cells = <2>;
2337b0b0191SHector Martin		#size-cells = <2>;
2347b0b0191SHector Martin		ranges = <0x2 0x0 0x2 0x0 0x4 0x0>,
2357b0b0191SHector Martin			 <0x5 0x80000000 0x5 0x80000000 0x1 0x80000000>,
2367b0b0191SHector Martin			 <0x7 0x0 0x7 0x0 0xf 0x80000000>;
2377b0b0191SHector Martin		nonposted-mmio;
2387b0b0191SHector Martin
2397b0b0191SHector Martin		// filled via templated includes at the end of the file
2407b0b0191SHector Martin	};
2417b0b0191SHector Martin
2427b0b0191SHector Martin	die1: soc@2200000000 {
2437b0b0191SHector Martin		compatible = "simple-bus";
2447b0b0191SHector Martin		#address-cells = <2>;
2457b0b0191SHector Martin		#size-cells = <2>;
2467b0b0191SHector Martin		ranges = <0x2 0x0 0x22 0x0 0x4 0x0>,
2477b0b0191SHector Martin			 <0x7 0x0 0x27 0x0 0xf 0x80000000>;
2487b0b0191SHector Martin		nonposted-mmio;
2497b0b0191SHector Martin
2507b0b0191SHector Martin		// filled via templated includes at the end of the file
2517b0b0191SHector Martin	};
2527b0b0191SHector Martin};
2537b0b0191SHector Martin
2547b0b0191SHector Martin#define DIE
2557b0b0191SHector Martin#define DIE_NO 0
2567b0b0191SHector Martin
2577b0b0191SHector Martin&die0 {
2587b0b0191SHector Martin	#include "t600x-die0.dtsi"
2597b0b0191SHector Martin	#include "t600x-dieX.dtsi"
2607b0b0191SHector Martin};
2617b0b0191SHector Martin
2627b0b0191SHector Martin#include "t600x-pmgr.dtsi"
2637b0b0191SHector Martin#include "t600x-gpio-pins.dtsi"
2647b0b0191SHector Martin
2657b0b0191SHector Martin#undef DIE
2667b0b0191SHector Martin#undef DIE_NO
2677b0b0191SHector Martin
2687b0b0191SHector Martin#define DIE _die1
2697b0b0191SHector Martin#define DIE_NO 1
2707b0b0191SHector Martin
2717b0b0191SHector Martin&die1 {
2727b0b0191SHector Martin	#include "t600x-dieX.dtsi"
2737b0b0191SHector Martin	#include "t600x-nvme.dtsi"
2747b0b0191SHector Martin};
2757b0b0191SHector Martin
2767b0b0191SHector Martin#include "t600x-pmgr.dtsi"
2777b0b0191SHector Martin
2787b0b0191SHector Martin#undef DIE
2797b0b0191SHector Martin#undef DIE_NO
2807b0b0191SHector Martin
2817b0b0191SHector Martin&aic {
2827b0b0191SHector Martin	affinities {
2837b0b0191SHector Martin		e-core-pmu-affinity {
2847b0b0191SHector Martin			apple,fiq-index = <AIC_CPU_PMU_E>;
2857b0b0191SHector Martin			cpus = <&cpu_e00 &cpu_e01
2867b0b0191SHector Martin				&cpu_e10 &cpu_e11>;
2877b0b0191SHector Martin		};
2887b0b0191SHector Martin
2897b0b0191SHector Martin		p-core-pmu-affinity {
2907b0b0191SHector Martin			apple,fiq-index = <AIC_CPU_PMU_P>;
2917b0b0191SHector Martin			cpus = <&cpu_p00 &cpu_p01 &cpu_p02 &cpu_p03
2927b0b0191SHector Martin				&cpu_p10 &cpu_p11 &cpu_p12 &cpu_p13
2937b0b0191SHector Martin				&cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23
2947b0b0191SHector Martin				&cpu_p30 &cpu_p31 &cpu_p32 &cpu_p33>;
2957b0b0191SHector Martin		};
2967b0b0191SHector Martin	};
2977b0b0191SHector Martin};
29867327f12SAsahi Lina
29967327f12SAsahi Lina&ps_gfx {
30067327f12SAsahi Lina	// On t6002, the die0 GPU power domain needs both AFR power domains
30167327f12SAsahi Lina	power-domains = <&ps_afr>, <&ps_afr_die1>;
30267327f12SAsahi Lina};
303*76f3ffebSSasha Finkelstein
304*76f3ffebSSasha Finkelstein&gpu {
305*76f3ffebSSasha Finkelstein	compatible = "apple,agx-g13d", "apple,agx-g13s";
306*76f3ffebSSasha Finkelstein};
307