1*7b0b0191SHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*7b0b0191SHector Martin/*
3*7b0b0191SHector Martin * Apple T6002 "M1 Ultra" SoC
4*7b0b0191SHector Martin *
5*7b0b0191SHector Martin * Other names: H13J, "Jade 2C"
6*7b0b0191SHector Martin *
7*7b0b0191SHector Martin * Copyright The Asahi Linux Contributors
8*7b0b0191SHector Martin */
9*7b0b0191SHector Martin
10*7b0b0191SHector Martin#include <dt-bindings/gpio/gpio.h>
11*7b0b0191SHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h>
12*7b0b0191SHector Martin#include <dt-bindings/interrupt-controller/irq.h>
13*7b0b0191SHector Martin#include <dt-bindings/pinctrl/apple.h>
14*7b0b0191SHector Martin
15*7b0b0191SHector Martin#include "multi-die-cpp.h"
16*7b0b0191SHector Martin
17*7b0b0191SHector Martin#include "t600x-common.dtsi"
18*7b0b0191SHector Martin
19*7b0b0191SHector Martin/ {
20*7b0b0191SHector Martin	compatible = "apple,t6002", "apple,arm-platform";
21*7b0b0191SHector Martin
22*7b0b0191SHector Martin	#address-cells = <2>;
23*7b0b0191SHector Martin	#size-cells = <2>;
24*7b0b0191SHector Martin
25*7b0b0191SHector Martin	cpus {
26*7b0b0191SHector Martin		cpu_e10: cpu@800 {
27*7b0b0191SHector Martin			compatible = "apple,icestorm";
28*7b0b0191SHector Martin			device_type = "cpu";
29*7b0b0191SHector Martin			reg = <0x0 0x800>;
30*7b0b0191SHector Martin			enable-method = "spin-table";
31*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
32*7b0b0191SHector Martin		};
33*7b0b0191SHector Martin
34*7b0b0191SHector Martin		cpu_e11: cpu@801 {
35*7b0b0191SHector Martin			compatible = "apple,icestorm";
36*7b0b0191SHector Martin			device_type = "cpu";
37*7b0b0191SHector Martin			reg = <0x0 0x801>;
38*7b0b0191SHector Martin			enable-method = "spin-table";
39*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
40*7b0b0191SHector Martin		};
41*7b0b0191SHector Martin
42*7b0b0191SHector Martin		cpu_p20: cpu@10900 {
43*7b0b0191SHector Martin			compatible = "apple,firestorm";
44*7b0b0191SHector Martin			device_type = "cpu";
45*7b0b0191SHector Martin			reg = <0x0 0x10900>;
46*7b0b0191SHector Martin			enable-method = "spin-table";
47*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
48*7b0b0191SHector Martin		};
49*7b0b0191SHector Martin
50*7b0b0191SHector Martin		cpu_p21: cpu@10901 {
51*7b0b0191SHector Martin			compatible = "apple,firestorm";
52*7b0b0191SHector Martin			device_type = "cpu";
53*7b0b0191SHector Martin			reg = <0x0 0x10901>;
54*7b0b0191SHector Martin			enable-method = "spin-table";
55*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
56*7b0b0191SHector Martin		};
57*7b0b0191SHector Martin
58*7b0b0191SHector Martin		cpu_p22: cpu@10902 {
59*7b0b0191SHector Martin			compatible = "apple,firestorm";
60*7b0b0191SHector Martin			device_type = "cpu";
61*7b0b0191SHector Martin			reg = <0x0 0x10902>;
62*7b0b0191SHector Martin			enable-method = "spin-table";
63*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
64*7b0b0191SHector Martin		};
65*7b0b0191SHector Martin
66*7b0b0191SHector Martin		cpu_p23: cpu@10903 {
67*7b0b0191SHector Martin			compatible = "apple,firestorm";
68*7b0b0191SHector Martin			device_type = "cpu";
69*7b0b0191SHector Martin			reg = <0x0 0x10903>;
70*7b0b0191SHector Martin			enable-method = "spin-table";
71*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
72*7b0b0191SHector Martin		};
73*7b0b0191SHector Martin
74*7b0b0191SHector Martin		cpu_p30: cpu@10a00 {
75*7b0b0191SHector Martin			compatible = "apple,firestorm";
76*7b0b0191SHector Martin			device_type = "cpu";
77*7b0b0191SHector Martin			reg = <0x0 0x10a00>;
78*7b0b0191SHector Martin			enable-method = "spin-table";
79*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
80*7b0b0191SHector Martin		};
81*7b0b0191SHector Martin
82*7b0b0191SHector Martin		cpu_p31: cpu@10a01 {
83*7b0b0191SHector Martin			compatible = "apple,firestorm";
84*7b0b0191SHector Martin			device_type = "cpu";
85*7b0b0191SHector Martin			reg = <0x0 0x10a01>;
86*7b0b0191SHector Martin			enable-method = "spin-table";
87*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
88*7b0b0191SHector Martin		};
89*7b0b0191SHector Martin
90*7b0b0191SHector Martin		cpu_p32: cpu@10a02 {
91*7b0b0191SHector Martin			compatible = "apple,firestorm";
92*7b0b0191SHector Martin			device_type = "cpu";
93*7b0b0191SHector Martin			reg = <0x0 0x10a02>;
94*7b0b0191SHector Martin			enable-method = "spin-table";
95*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
96*7b0b0191SHector Martin		};
97*7b0b0191SHector Martin
98*7b0b0191SHector Martin		cpu_p33: cpu@10a03 {
99*7b0b0191SHector Martin			compatible = "apple,firestorm";
100*7b0b0191SHector Martin			device_type = "cpu";
101*7b0b0191SHector Martin			reg = <0x0 0x10a03>;
102*7b0b0191SHector Martin			enable-method = "spin-table";
103*7b0b0191SHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
104*7b0b0191SHector Martin		};
105*7b0b0191SHector Martin	};
106*7b0b0191SHector Martin
107*7b0b0191SHector Martin	die0: soc@200000000 {
108*7b0b0191SHector Martin		compatible = "simple-bus";
109*7b0b0191SHector Martin		#address-cells = <2>;
110*7b0b0191SHector Martin		#size-cells = <2>;
111*7b0b0191SHector Martin		ranges = <0x2 0x0 0x2 0x0 0x4 0x0>,
112*7b0b0191SHector Martin			 <0x5 0x80000000 0x5 0x80000000 0x1 0x80000000>,
113*7b0b0191SHector Martin			 <0x7 0x0 0x7 0x0 0xf 0x80000000>;
114*7b0b0191SHector Martin		nonposted-mmio;
115*7b0b0191SHector Martin
116*7b0b0191SHector Martin		// filled via templated includes at the end of the file
117*7b0b0191SHector Martin	};
118*7b0b0191SHector Martin
119*7b0b0191SHector Martin	die1: soc@2200000000 {
120*7b0b0191SHector Martin		compatible = "simple-bus";
121*7b0b0191SHector Martin		#address-cells = <2>;
122*7b0b0191SHector Martin		#size-cells = <2>;
123*7b0b0191SHector Martin		ranges = <0x2 0x0 0x22 0x0 0x4 0x0>,
124*7b0b0191SHector Martin			 <0x7 0x0 0x27 0x0 0xf 0x80000000>;
125*7b0b0191SHector Martin		nonposted-mmio;
126*7b0b0191SHector Martin
127*7b0b0191SHector Martin		// filled via templated includes at the end of the file
128*7b0b0191SHector Martin	};
129*7b0b0191SHector Martin};
130*7b0b0191SHector Martin
131*7b0b0191SHector Martin#define DIE
132*7b0b0191SHector Martin#define DIE_NO 0
133*7b0b0191SHector Martin
134*7b0b0191SHector Martin&die0 {
135*7b0b0191SHector Martin	#include "t600x-die0.dtsi"
136*7b0b0191SHector Martin	#include "t600x-dieX.dtsi"
137*7b0b0191SHector Martin};
138*7b0b0191SHector Martin
139*7b0b0191SHector Martin#include "t600x-pmgr.dtsi"
140*7b0b0191SHector Martin#include "t600x-gpio-pins.dtsi"
141*7b0b0191SHector Martin
142*7b0b0191SHector Martin#undef DIE
143*7b0b0191SHector Martin#undef DIE_NO
144*7b0b0191SHector Martin
145*7b0b0191SHector Martin#define DIE _die1
146*7b0b0191SHector Martin#define DIE_NO 1
147*7b0b0191SHector Martin
148*7b0b0191SHector Martin&die1 {
149*7b0b0191SHector Martin	#include "t600x-dieX.dtsi"
150*7b0b0191SHector Martin	#include "t600x-nvme.dtsi"
151*7b0b0191SHector Martin};
152*7b0b0191SHector Martin
153*7b0b0191SHector Martin#include "t600x-pmgr.dtsi"
154*7b0b0191SHector Martin
155*7b0b0191SHector Martin#undef DIE
156*7b0b0191SHector Martin#undef DIE_NO
157*7b0b0191SHector Martin
158*7b0b0191SHector Martin
159*7b0b0191SHector Martin&aic {
160*7b0b0191SHector Martin	affinities {
161*7b0b0191SHector Martin		e-core-pmu-affinity {
162*7b0b0191SHector Martin			apple,fiq-index = <AIC_CPU_PMU_E>;
163*7b0b0191SHector Martin			cpus = <&cpu_e00 &cpu_e01
164*7b0b0191SHector Martin				&cpu_e10 &cpu_e11>;
165*7b0b0191SHector Martin		};
166*7b0b0191SHector Martin
167*7b0b0191SHector Martin		p-core-pmu-affinity {
168*7b0b0191SHector Martin			apple,fiq-index = <AIC_CPU_PMU_P>;
169*7b0b0191SHector Martin			cpus = <&cpu_p00 &cpu_p01 &cpu_p02 &cpu_p03
170*7b0b0191SHector Martin				&cpu_p10 &cpu_p11 &cpu_p12 &cpu_p13
171*7b0b0191SHector Martin				&cpu_p20 &cpu_p21 &cpu_p22 &cpu_p23
172*7b0b0191SHector Martin				&cpu_p30 &cpu_p31 &cpu_p32 &cpu_p33>;
173*7b0b0191SHector Martin		};
174*7b0b0191SHector Martin	};
175*7b0b0191SHector Martin};
176