xref: /linux/scripts/dtc/include-prefixes/arm64/apple/t602x-die0.dtsi (revision 0f048c878ee32a4259dbf28e0ad8fd0b71ee0085)
1*a8f20eb6SHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*a8f20eb6SHector Martin/*
3*a8f20eb6SHector Martin * Devices used on die 0 on the Apple T6022 "M2 Ultra" SoC and present on
4*a8f20eb6SHector Martin * Apple T6020 / T6021 "M2 Pro" / "M2 Max".
5*a8f20eb6SHector Martin *
6*a8f20eb6SHector Martin * Copyright The Asahi Linux Contributors
7*a8f20eb6SHector Martin */
8*a8f20eb6SHector Martin
9*a8f20eb6SHector Martin	nco: clock-controller@28e03c000 {
10*a8f20eb6SHector Martin		compatible = "apple,t6020-nco", "apple,t8103-nco";
11*a8f20eb6SHector Martin		reg = <0x2 0x8e03c000 0x0 0x14000>;
12*a8f20eb6SHector Martin		clocks = <&nco_clkref>;
13*a8f20eb6SHector Martin		#clock-cells = <1>;
14*a8f20eb6SHector Martin	};
15*a8f20eb6SHector Martin
16*a8f20eb6SHector Martin	aic: interrupt-controller@28e100000 {
17*a8f20eb6SHector Martin		compatible = "apple,t6020-aic", "apple,aic2";
18*a8f20eb6SHector Martin		#interrupt-cells = <4>;
19*a8f20eb6SHector Martin		interrupt-controller;
20*a8f20eb6SHector Martin		reg = <0x2 0x8e100000 0x0 0xc000>,
21*a8f20eb6SHector Martin			<0x2 0x8e10c000 0x0 0x1000>;
22*a8f20eb6SHector Martin		reg-names = "core", "event";
23*a8f20eb6SHector Martin		power-domains = <&ps_aic>;
24*a8f20eb6SHector Martin	};
25*a8f20eb6SHector Martin
26*a8f20eb6SHector Martin	nub_spmi0: spmi@29e114000 {
27*a8f20eb6SHector Martin		compatible = "apple,t6020-spmi", "apple,t8103-spmi";
28*a8f20eb6SHector Martin		reg = <0x2 0x9e114000 0x0 0x100>;
29*a8f20eb6SHector Martin		#address-cells = <2>;
30*a8f20eb6SHector Martin		#size-cells = <0>;
31*a8f20eb6SHector Martin
32*a8f20eb6SHector Martin		pmic1: pmic@f {
33*a8f20eb6SHector Martin			compatible = "apple,maverick-pmic", "apple,spmi-nvmem";
34*a8f20eb6SHector Martin			reg = <0xb SPMI_USID>;
35*a8f20eb6SHector Martin
36*a8f20eb6SHector Martin			nvmem-layout {
37*a8f20eb6SHector Martin				compatible = "fixed-layout";
38*a8f20eb6SHector Martin				#address-cells = <1>;
39*a8f20eb6SHector Martin				#size-cells = <1>;
40*a8f20eb6SHector Martin
41*a8f20eb6SHector Martin				pm_setting: pm-setting@1405 {
42*a8f20eb6SHector Martin					reg = <0x1405 0x1>;
43*a8f20eb6SHector Martin				};
44*a8f20eb6SHector Martin
45*a8f20eb6SHector Martin				rtc_offset: rtc-offset@1411 {
46*a8f20eb6SHector Martin					reg = <0x1411 0x6>;
47*a8f20eb6SHector Martin				};
48*a8f20eb6SHector Martin
49*a8f20eb6SHector Martin				boot_stage: boot-stage@6001 {
50*a8f20eb6SHector Martin					reg = <0x6001 0x1>;
51*a8f20eb6SHector Martin				};
52*a8f20eb6SHector Martin
53*a8f20eb6SHector Martin				boot_error_count: boot-error-count@6002,0 {
54*a8f20eb6SHector Martin					reg = <0x6002 0x1>;
55*a8f20eb6SHector Martin					bits = <0 4>;
56*a8f20eb6SHector Martin				};
57*a8f20eb6SHector Martin
58*a8f20eb6SHector Martin				panic_count: panic-count@6002,4 {
59*a8f20eb6SHector Martin					reg = <0x6002 0x1>;
60*a8f20eb6SHector Martin					bits = <4 4>;
61*a8f20eb6SHector Martin				};
62*a8f20eb6SHector Martin
63*a8f20eb6SHector Martin				boot_error_stage: boot-error-stage@6003 {
64*a8f20eb6SHector Martin					reg = <0x6003 0x1>;
65*a8f20eb6SHector Martin				};
66*a8f20eb6SHector Martin
67*a8f20eb6SHector Martin				shutdown_flag: shutdown-flag@600f,3 {
68*a8f20eb6SHector Martin					reg = <0x600f 0x1>;
69*a8f20eb6SHector Martin					bits = <3 1>;
70*a8f20eb6SHector Martin				};
71*a8f20eb6SHector Martin
72*a8f20eb6SHector Martin				fault_shadow: fault-shadow@867b {
73*a8f20eb6SHector Martin					reg = <0x867b 0x10>;
74*a8f20eb6SHector Martin				};
75*a8f20eb6SHector Martin
76*a8f20eb6SHector Martin				socd: socd@8b00 {
77*a8f20eb6SHector Martin					reg = <0x8b00 0x400>;
78*a8f20eb6SHector Martin				};
79*a8f20eb6SHector Martin			};
80*a8f20eb6SHector Martin		};
81*a8f20eb6SHector Martin	};
82*a8f20eb6SHector Martin
83*a8f20eb6SHector Martin	wdt: watchdog@29e2c4000 {
84*a8f20eb6SHector Martin		compatible = "apple,t6020-wdt", "apple,t8103-wdt";
85*a8f20eb6SHector Martin		reg = <0x2 0x9e2c4000 0x0 0x4000>;
86*a8f20eb6SHector Martin		clocks = <&clkref>;
87*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
88*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 719 IRQ_TYPE_LEVEL_HIGH>;
89*a8f20eb6SHector Martin	};
90*a8f20eb6SHector Martin
91*a8f20eb6SHector Martin	smc_mbox: mbox@2a2408000 {
92*a8f20eb6SHector Martin		compatible = "apple,t6020-asc-mailbox", "apple,asc-mailbox-v4";
93*a8f20eb6SHector Martin		reg = <0x2 0xa2408000 0x0 0x4000>;
94*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
95*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 862 IRQ_TYPE_LEVEL_HIGH>,
96*a8f20eb6SHector Martin			<AIC_IRQ 0 863 IRQ_TYPE_LEVEL_HIGH>,
97*a8f20eb6SHector Martin			<AIC_IRQ 0 864 IRQ_TYPE_LEVEL_HIGH>,
98*a8f20eb6SHector Martin			<AIC_IRQ 0 865 IRQ_TYPE_LEVEL_HIGH>;
99*a8f20eb6SHector Martin		interrupt-names = "send-empty", "send-not-empty",
100*a8f20eb6SHector Martin			"recv-empty", "recv-not-empty";
101*a8f20eb6SHector Martin		#mbox-cells = <0>;
102*a8f20eb6SHector Martin	};
103*a8f20eb6SHector Martin
104*a8f20eb6SHector Martin	smc: smc@2a2400000 {
105*a8f20eb6SHector Martin		compatible = "apple,t6020-smc", "apple,t8103-smc";
106*a8f20eb6SHector Martin		reg = <0x2 0xa2400000 0x0 0x4000>,
107*a8f20eb6SHector Martin			<0x2 0xa3e00000 0x0 0x100000>;
108*a8f20eb6SHector Martin		reg-names = "smc", "sram";
109*a8f20eb6SHector Martin		mboxes = <&smc_mbox>;
110*a8f20eb6SHector Martin
111*a8f20eb6SHector Martin		smc_gpio: gpio {
112*a8f20eb6SHector Martin			compatible = "apple,smc-gpio";
113*a8f20eb6SHector Martin			gpio-controller;
114*a8f20eb6SHector Martin			#gpio-cells = <2>;
115*a8f20eb6SHector Martin		};
116*a8f20eb6SHector Martin
117*a8f20eb6SHector Martin		smc_reboot: reboot {
118*a8f20eb6SHector Martin			compatible = "apple,smc-reboot";
119*a8f20eb6SHector Martin			nvmem-cells = <&shutdown_flag>, <&boot_stage>,
120*a8f20eb6SHector Martin				<&boot_error_count>, <&panic_count>;
121*a8f20eb6SHector Martin			nvmem-cell-names = "shutdown_flag", "boot_stage",
122*a8f20eb6SHector Martin				"boot_error_count", "panic_count";
123*a8f20eb6SHector Martin		};
124*a8f20eb6SHector Martin	};
125*a8f20eb6SHector Martin
126*a8f20eb6SHector Martin	pinctrl_smc: pinctrl@2a2820000 {
127*a8f20eb6SHector Martin		compatible = "apple,t6020-pinctrl", "apple,t8103-pinctrl";
128*a8f20eb6SHector Martin		reg = <0x2 0xa2820000 0x0 0x4000>;
129*a8f20eb6SHector Martin
130*a8f20eb6SHector Martin		gpio-controller;
131*a8f20eb6SHector Martin		#gpio-cells = <2>;
132*a8f20eb6SHector Martin		gpio-ranges = <&pinctrl_smc 0 0 30>;
133*a8f20eb6SHector Martin		apple,npins = <30>;
134*a8f20eb6SHector Martin
135*a8f20eb6SHector Martin		interrupt-controller;
136*a8f20eb6SHector Martin		#interrupt-cells = <2>;
137*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
138*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 851 IRQ_TYPE_LEVEL_HIGH>,
139*a8f20eb6SHector Martin				<AIC_IRQ 0 852 IRQ_TYPE_LEVEL_HIGH>,
140*a8f20eb6SHector Martin				<AIC_IRQ 0 853 IRQ_TYPE_LEVEL_HIGH>,
141*a8f20eb6SHector Martin				<AIC_IRQ 0 854 IRQ_TYPE_LEVEL_HIGH>,
142*a8f20eb6SHector Martin				<AIC_IRQ 0 855 IRQ_TYPE_LEVEL_HIGH>,
143*a8f20eb6SHector Martin				<AIC_IRQ 0 856 IRQ_TYPE_LEVEL_HIGH>,
144*a8f20eb6SHector Martin				<AIC_IRQ 0 857 IRQ_TYPE_LEVEL_HIGH>;
145*a8f20eb6SHector Martin	};
146*a8f20eb6SHector Martin
147*a8f20eb6SHector Martin	sio_dart: iommu@39b008000 {
148*a8f20eb6SHector Martin		compatible = "apple,t6020-dart", "apple,t8110-dart";
149*a8f20eb6SHector Martin		reg = <0x3 0x9b008000 0x0 0x8000>;
150*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
151*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1231 IRQ_TYPE_LEVEL_HIGH>;
152*a8f20eb6SHector Martin		#iommu-cells = <1>;
153*a8f20eb6SHector Martin		power-domains = <&ps_sio_cpu>;
154*a8f20eb6SHector Martin	};
155*a8f20eb6SHector Martin
156*a8f20eb6SHector Martin	fpwm0: pwm@39b030000 {
157*a8f20eb6SHector Martin		compatible = "apple,t6020-fpwm", "apple,s5l-fpwm";
158*a8f20eb6SHector Martin		reg = <0x3 0x9b030000 0x0 0x4000>;
159*a8f20eb6SHector Martin		power-domains = <&ps_fpwm0>;
160*a8f20eb6SHector Martin		clocks = <&clkref>;
161*a8f20eb6SHector Martin		#pwm-cells = <2>;
162*a8f20eb6SHector Martin		status = "disabled";
163*a8f20eb6SHector Martin	};
164*a8f20eb6SHector Martin
165*a8f20eb6SHector Martin	i2c0: i2c@39b040000 {
166*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
167*a8f20eb6SHector Martin		reg = <0x3 0x9b040000 0x0 0x4000>;
168*a8f20eb6SHector Martin		clocks = <&clkref>;
169*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
170*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1219 IRQ_TYPE_LEVEL_HIGH>;
171*a8f20eb6SHector Martin		pinctrl-0 = <&i2c0_pins>;
172*a8f20eb6SHector Martin		pinctrl-names = "default";
173*a8f20eb6SHector Martin		power-domains = <&ps_i2c0>;
174*a8f20eb6SHector Martin		#address-cells = <0x1>;
175*a8f20eb6SHector Martin		#size-cells = <0x0>;
176*a8f20eb6SHector Martin	};
177*a8f20eb6SHector Martin
178*a8f20eb6SHector Martin	i2c1: i2c@39b044000 {
179*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
180*a8f20eb6SHector Martin		reg = <0x3 0x9b044000 0x0 0x4000>;
181*a8f20eb6SHector Martin		clocks = <&clkref>;
182*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
183*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1220 IRQ_TYPE_LEVEL_HIGH>;
184*a8f20eb6SHector Martin		pinctrl-0 = <&i2c1_pins>;
185*a8f20eb6SHector Martin		pinctrl-names = "default";
186*a8f20eb6SHector Martin		power-domains = <&ps_i2c1>;
187*a8f20eb6SHector Martin		#address-cells = <0x1>;
188*a8f20eb6SHector Martin		#size-cells = <0x0>;
189*a8f20eb6SHector Martin		status = "disabled";
190*a8f20eb6SHector Martin	};
191*a8f20eb6SHector Martin
192*a8f20eb6SHector Martin	i2c2: i2c@39b048000 {
193*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
194*a8f20eb6SHector Martin		reg = <0x3 0x9b048000 0x0 0x4000>;
195*a8f20eb6SHector Martin		clocks = <&clkref>;
196*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
197*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1221 IRQ_TYPE_LEVEL_HIGH>;
198*a8f20eb6SHector Martin		pinctrl-0 = <&i2c2_pins>;
199*a8f20eb6SHector Martin		pinctrl-names = "default";
200*a8f20eb6SHector Martin		power-domains = <&ps_i2c2>;
201*a8f20eb6SHector Martin		#address-cells = <0x1>;
202*a8f20eb6SHector Martin		#size-cells = <0x0>;
203*a8f20eb6SHector Martin		status = "disabled";
204*a8f20eb6SHector Martin	};
205*a8f20eb6SHector Martin
206*a8f20eb6SHector Martin	i2c3: i2c@39b04c000 {
207*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
208*a8f20eb6SHector Martin		reg = <0x3 0x9b04c000 0x0 0x4000>;
209*a8f20eb6SHector Martin		clocks = <&clkref>;
210*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
211*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1222 IRQ_TYPE_LEVEL_HIGH>;
212*a8f20eb6SHector Martin		pinctrl-0 = <&i2c3_pins>;
213*a8f20eb6SHector Martin		pinctrl-names = "default";
214*a8f20eb6SHector Martin		power-domains = <&ps_i2c3>;
215*a8f20eb6SHector Martin		#address-cells = <0x1>;
216*a8f20eb6SHector Martin		#size-cells = <0x0>;
217*a8f20eb6SHector Martin		status = "disabled";
218*a8f20eb6SHector Martin	};
219*a8f20eb6SHector Martin
220*a8f20eb6SHector Martin	i2c4: i2c@39b050000 {
221*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
222*a8f20eb6SHector Martin		reg = <0x3 0x9b050000 0x0 0x4000>;
223*a8f20eb6SHector Martin		clocks = <&clkref>;
224*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
225*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1223 IRQ_TYPE_LEVEL_HIGH>;
226*a8f20eb6SHector Martin		pinctrl-0 = <&i2c4_pins>;
227*a8f20eb6SHector Martin		pinctrl-names = "default";
228*a8f20eb6SHector Martin		power-domains = <&ps_i2c4>;
229*a8f20eb6SHector Martin		#address-cells = <0x1>;
230*a8f20eb6SHector Martin		#size-cells = <0x0>;
231*a8f20eb6SHector Martin		status = "disabled";
232*a8f20eb6SHector Martin	};
233*a8f20eb6SHector Martin
234*a8f20eb6SHector Martin	i2c5: i2c@39b054000 {
235*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
236*a8f20eb6SHector Martin		reg = <0x3 0x9b054000 0x0 0x4000>;
237*a8f20eb6SHector Martin		clocks = <&clkref>;
238*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
239*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1224 IRQ_TYPE_LEVEL_HIGH>;
240*a8f20eb6SHector Martin		pinctrl-0 = <&i2c5_pins>;
241*a8f20eb6SHector Martin		pinctrl-names = "default";
242*a8f20eb6SHector Martin		power-domains = <&ps_i2c5>;
243*a8f20eb6SHector Martin		#address-cells = <0x1>;
244*a8f20eb6SHector Martin		#size-cells = <0x0>;
245*a8f20eb6SHector Martin		status = "disabled";
246*a8f20eb6SHector Martin	};
247*a8f20eb6SHector Martin
248*a8f20eb6SHector Martin	i2c6: i2c@39b054000 {
249*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
250*a8f20eb6SHector Martin		reg = <0x3 0x9b054000 0x0 0x4000>;
251*a8f20eb6SHector Martin		clocks = <&clkref>;
252*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
253*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1225 IRQ_TYPE_LEVEL_HIGH>;
254*a8f20eb6SHector Martin		pinctrl-0 = <&i2c6_pins>;
255*a8f20eb6SHector Martin		pinctrl-names = "default";
256*a8f20eb6SHector Martin		power-domains = <&ps_i2c6>;
257*a8f20eb6SHector Martin		#address-cells = <0x1>;
258*a8f20eb6SHector Martin		#size-cells = <0x0>;
259*a8f20eb6SHector Martin		status = "disabled";
260*a8f20eb6SHector Martin	};
261*a8f20eb6SHector Martin
262*a8f20eb6SHector Martin	i2c7: i2c@39b054000 {
263*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
264*a8f20eb6SHector Martin		reg = <0x3 0x9b054000 0x0 0x4000>;
265*a8f20eb6SHector Martin		clocks = <&clkref>;
266*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
267*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1226 IRQ_TYPE_LEVEL_HIGH>;
268*a8f20eb6SHector Martin		pinctrl-0 = <&i2c7_pins>;
269*a8f20eb6SHector Martin		pinctrl-names = "default";
270*a8f20eb6SHector Martin		power-domains = <&ps_i2c7>;
271*a8f20eb6SHector Martin		#address-cells = <0x1>;
272*a8f20eb6SHector Martin		#size-cells = <0x0>;
273*a8f20eb6SHector Martin		status = "disabled";
274*a8f20eb6SHector Martin	};
275*a8f20eb6SHector Martin
276*a8f20eb6SHector Martin	i2c8: i2c@39b054000 {
277*a8f20eb6SHector Martin		compatible = "apple,t6020-i2c", "apple,t8103-i2c";
278*a8f20eb6SHector Martin		reg = <0x3 0x9b054000 0x0 0x4000>;
279*a8f20eb6SHector Martin		clocks = <&clkref>;
280*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
281*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1227 IRQ_TYPE_LEVEL_HIGH>;
282*a8f20eb6SHector Martin		pinctrl-0 = <&i2c8_pins>;
283*a8f20eb6SHector Martin		pinctrl-names = "default";
284*a8f20eb6SHector Martin		power-domains = <&ps_i2c8>;
285*a8f20eb6SHector Martin		#address-cells = <0x1>;
286*a8f20eb6SHector Martin		#size-cells = <0x0>;
287*a8f20eb6SHector Martin		status = "disabled";
288*a8f20eb6SHector Martin	};
289*a8f20eb6SHector Martin
290*a8f20eb6SHector Martin	spi1: spi@39b104000 {
291*a8f20eb6SHector Martin		compatible = "apple,t6020-spi", "apple,t8103-spi";
292*a8f20eb6SHector Martin		reg = <0x3 0x9b104000 0x0 0x4000>;
293*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
294*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1206 IRQ_TYPE_LEVEL_HIGH>;
295*a8f20eb6SHector Martin		#address-cells = <1>;
296*a8f20eb6SHector Martin		#size-cells = <0>;
297*a8f20eb6SHector Martin		clocks = <&clk_200m>;
298*a8f20eb6SHector Martin		pinctrl-0 = <&spi1_pins>;
299*a8f20eb6SHector Martin		pinctrl-names = "default";
300*a8f20eb6SHector Martin		power-domains = <&ps_spi1>;
301*a8f20eb6SHector Martin		status = "disabled";
302*a8f20eb6SHector Martin	};
303*a8f20eb6SHector Martin
304*a8f20eb6SHector Martin	spi2: spi@39b108000 {
305*a8f20eb6SHector Martin		compatible = "apple,t6020-spi", "apple,t8103-spi";
306*a8f20eb6SHector Martin		reg = <0x3 0x9b108000 0x0 0x4000>;
307*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
308*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1207 IRQ_TYPE_LEVEL_HIGH>;
309*a8f20eb6SHector Martin		#address-cells = <1>;
310*a8f20eb6SHector Martin		#size-cells = <0>;
311*a8f20eb6SHector Martin		clocks = <&clkref>;
312*a8f20eb6SHector Martin		pinctrl-0 = <&spi2_pins>;
313*a8f20eb6SHector Martin		pinctrl-names = "default";
314*a8f20eb6SHector Martin		power-domains = <&ps_spi2>;
315*a8f20eb6SHector Martin		status = "disabled";
316*a8f20eb6SHector Martin	};
317*a8f20eb6SHector Martin
318*a8f20eb6SHector Martin	spi4: spi@39b110000 {
319*a8f20eb6SHector Martin		compatible = "apple,t6020-spi", "apple,t8103-spi";
320*a8f20eb6SHector Martin		reg = <0x3 0x9b110000 0x0 0x4000>;
321*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
322*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1209 IRQ_TYPE_LEVEL_HIGH>;
323*a8f20eb6SHector Martin		#address-cells = <1>;
324*a8f20eb6SHector Martin		#size-cells = <0>;
325*a8f20eb6SHector Martin		clocks = <&clkref>;
326*a8f20eb6SHector Martin		pinctrl-0 = <&spi4_pins>;
327*a8f20eb6SHector Martin		pinctrl-names = "default";
328*a8f20eb6SHector Martin		power-domains = <&ps_spi4>;
329*a8f20eb6SHector Martin		status = "disabled";
330*a8f20eb6SHector Martin	};
331*a8f20eb6SHector Martin
332*a8f20eb6SHector Martin	serial0: serial@39b200000 {
333*a8f20eb6SHector Martin		compatible = "apple,s5l-uart";
334*a8f20eb6SHector Martin		reg = <0x3 0x9b200000 0x0 0x4000>;
335*a8f20eb6SHector Martin		reg-io-width = <4>;
336*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
337*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1198 IRQ_TYPE_LEVEL_HIGH>;
338*a8f20eb6SHector Martin		/*
339*a8f20eb6SHector Martin		 * TODO: figure out the clocking properly, there may
340*a8f20eb6SHector Martin		 * be a third selectable clock.
341*a8f20eb6SHector Martin		 */
342*a8f20eb6SHector Martin		clocks = <&clkref>, <&clkref>;
343*a8f20eb6SHector Martin		clock-names = "uart", "clk_uart_baud0";
344*a8f20eb6SHector Martin		power-domains = <&ps_uart0>;
345*a8f20eb6SHector Martin		status = "disabled";
346*a8f20eb6SHector Martin	};
347*a8f20eb6SHector Martin
348*a8f20eb6SHector Martin	admac: dma-controller@39b400000 {
349*a8f20eb6SHector Martin		compatible = "apple,t6020-admac", "apple,t8103-admac";
350*a8f20eb6SHector Martin		reg = <0x3 0x9b400000 0x0 0x34000>;
351*a8f20eb6SHector Martin		#dma-cells = <1>;
352*a8f20eb6SHector Martin		dma-channels = <16>;
353*a8f20eb6SHector Martin		interrupts-extended = <0>,
354*a8f20eb6SHector Martin				      <&aic AIC_IRQ 0 1218 IRQ_TYPE_LEVEL_HIGH>,
355*a8f20eb6SHector Martin				      <0>,
356*a8f20eb6SHector Martin				      <0>;
357*a8f20eb6SHector Martin		iommus = <&sio_dart 2>;
358*a8f20eb6SHector Martin		power-domains = <&ps_sio_adma>;
359*a8f20eb6SHector Martin		resets = <&ps_audio_p>;
360*a8f20eb6SHector Martin	};
361*a8f20eb6SHector Martin
362*a8f20eb6SHector Martin	mca: mca@39b600000 {
363*a8f20eb6SHector Martin		compatible = "apple,t6020-mca", "apple,t8103-mca";
364*a8f20eb6SHector Martin		reg = <0x3 0x9b600000 0x0 0x10000>,
365*a8f20eb6SHector Martin		      <0x3 0x9b500000 0x0 0x20000>;
366*a8f20eb6SHector Martin		clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
367*a8f20eb6SHector Martin		dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
368*a8f20eb6SHector Martin		       <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
369*a8f20eb6SHector Martin		       <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
370*a8f20eb6SHector Martin		       <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>;
371*a8f20eb6SHector Martin		dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
372*a8f20eb6SHector Martin			    "tx1a", "rx1a", "tx1b", "rx1b",
373*a8f20eb6SHector Martin			    "tx2a", "rx2a", "tx2b", "rx2b",
374*a8f20eb6SHector Martin			    "tx3a", "rx3a", "tx3b", "rx3b";
375*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
376*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1211 IRQ_TYPE_LEVEL_HIGH>,
377*a8f20eb6SHector Martin			     <AIC_IRQ 0 1212 IRQ_TYPE_LEVEL_HIGH>,
378*a8f20eb6SHector Martin			     <AIC_IRQ 0 1213 IRQ_TYPE_LEVEL_HIGH>,
379*a8f20eb6SHector Martin			     <AIC_IRQ 0 1214 IRQ_TYPE_LEVEL_HIGH>;
380*a8f20eb6SHector Martin		power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
381*a8f20eb6SHector Martin				<&ps_mca2>, <&ps_mca3>;
382*a8f20eb6SHector Martin		resets = <&ps_audio_p>;
383*a8f20eb6SHector Martin		#sound-dai-cells = <1>;
384*a8f20eb6SHector Martin	};
385*a8f20eb6SHector Martin
386*a8f20eb6SHector Martin	gpu: gpu@406400000 {
387*a8f20eb6SHector Martin		compatible = "apple,agx-g14s";
388*a8f20eb6SHector Martin		reg = <0x4 0x6400000 0 0x40000>,
389*a8f20eb6SHector Martin			<0x4 0x4000000 0 0x1000000>;
390*a8f20eb6SHector Martin		reg-names = "asc", "sgx";
391*a8f20eb6SHector Martin		mboxes = <&agx_mbox>;
392*a8f20eb6SHector Martin		power-domains = <&ps_gfx>;
393*a8f20eb6SHector Martin		memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
394*a8f20eb6SHector Martin				<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
395*a8f20eb6SHector Martin		memory-region-names = "ttbs", "pagetables", "handoff",
396*a8f20eb6SHector Martin				      "hw-cal-a", "hw-cal-b", "globals";
397*a8f20eb6SHector Martin
398*a8f20eb6SHector Martin		apple,firmware-abi = <0 0 0>;
399*a8f20eb6SHector Martin	};
400*a8f20eb6SHector Martin
401*a8f20eb6SHector Martin	agx_mbox: mbox@406408000 {
402*a8f20eb6SHector Martin		compatible = "apple,t6020-asc-mailbox", "apple,asc-mailbox-v4";
403*a8f20eb6SHector Martin		reg = <0x4 0x6408000 0x0 0x4000>;
404*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
405*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1143 IRQ_TYPE_LEVEL_HIGH>,
406*a8f20eb6SHector Martin			<AIC_IRQ 0 1144 IRQ_TYPE_LEVEL_HIGH>,
407*a8f20eb6SHector Martin			<AIC_IRQ 0 1145 IRQ_TYPE_LEVEL_HIGH>,
408*a8f20eb6SHector Martin			<AIC_IRQ 0 1146 IRQ_TYPE_LEVEL_HIGH>;
409*a8f20eb6SHector Martin		interrupt-names = "send-empty", "send-not-empty",
410*a8f20eb6SHector Martin			"recv-empty", "recv-not-empty";
411*a8f20eb6SHector Martin		#mbox-cells = <0>;
412*a8f20eb6SHector Martin	};
413*a8f20eb6SHector Martin
414*a8f20eb6SHector Martin	pcie0: pcie@580000000 {
415*a8f20eb6SHector Martin		compatible = "apple,t6020-pcie";
416*a8f20eb6SHector Martin		device_type = "pci";
417*a8f20eb6SHector Martin
418*a8f20eb6SHector Martin		reg = <0x5 0x80000000 0x0 0x1000000>,	/* config */
419*a8f20eb6SHector Martin			<0x5 0x91000000 0x0 0x4000>,	/* rc */
420*a8f20eb6SHector Martin			<0x5 0x94008000 0x0 0x4000>,	/* port0 */
421*a8f20eb6SHector Martin			<0x5 0x95008000 0x0 0x4000>,	/* port1 */
422*a8f20eb6SHector Martin			<0x5 0x96008000 0x0 0x4000>,	/* port2 */
423*a8f20eb6SHector Martin			<0x5 0x97008000 0x0 0x4000>,	/* port3 */
424*a8f20eb6SHector Martin			<0x5 0x9e00c000 0x0 0x4000>,	/* phy0 */
425*a8f20eb6SHector Martin			<0x5 0x9e010000 0x0 0x4000>,	/* phy1 */
426*a8f20eb6SHector Martin			<0x5 0x9e014000 0x0 0x4000>,	/* phy2 */
427*a8f20eb6SHector Martin			<0x5 0x9e018000 0x0 0x4000>;	/* phy3 */
428*a8f20eb6SHector Martin		reg-names = "config", "rc",
429*a8f20eb6SHector Martin			"port0", "port1", "port2", "port3",
430*a8f20eb6SHector Martin			"phy0", "phy1", "phy2", "phy3";
431*a8f20eb6SHector Martin
432*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
433*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1340 IRQ_TYPE_LEVEL_HIGH>,
434*a8f20eb6SHector Martin				<AIC_IRQ 0 1344 IRQ_TYPE_LEVEL_HIGH>,
435*a8f20eb6SHector Martin				<AIC_IRQ 0 1348 IRQ_TYPE_LEVEL_HIGH>,
436*a8f20eb6SHector Martin				<AIC_IRQ 0 1352 IRQ_TYPE_LEVEL_HIGH>;
437*a8f20eb6SHector Martin
438*a8f20eb6SHector Martin		msi-controller;
439*a8f20eb6SHector Martin		msi-parent = <&pcie0>;
440*a8f20eb6SHector Martin		msi-ranges = <&aic AIC_IRQ 0 1672 IRQ_TYPE_EDGE_RISING 32>;
441*a8f20eb6SHector Martin
442*a8f20eb6SHector Martin		iommu-map = <0x100 &pcie0_dart_0 1 1>,
443*a8f20eb6SHector Martin				<0x200 &pcie0_dart_1 1 1>,
444*a8f20eb6SHector Martin				<0x300 &pcie0_dart_2 1 1>,
445*a8f20eb6SHector Martin				<0x400 &pcie0_dart_3 1 1>;
446*a8f20eb6SHector Martin		iommu-map-mask = <0xff00>;
447*a8f20eb6SHector Martin
448*a8f20eb6SHector Martin		bus-range = <0 4>;
449*a8f20eb6SHector Martin		#address-cells = <3>;
450*a8f20eb6SHector Martin		#size-cells = <2>;
451*a8f20eb6SHector Martin		ranges = <0x43000000 0x5 0xa0000000 0x5 0xa0000000 0x0 0x20000000>,
452*a8f20eb6SHector Martin				<0x02000000 0x0 0xc0000000 0x5 0xc0000000 0x0 0x40000000>;
453*a8f20eb6SHector Martin
454*a8f20eb6SHector Martin		power-domains = <&ps_apcie_gp_sys>;
455*a8f20eb6SHector Martin		pinctrl-0 = <&pcie_pins>;
456*a8f20eb6SHector Martin		pinctrl-names = "default";
457*a8f20eb6SHector Martin
458*a8f20eb6SHector Martin		port00: pci@0,0 {
459*a8f20eb6SHector Martin			device_type = "pci";
460*a8f20eb6SHector Martin			reg = <0x0 0x0 0x0 0x0 0x0>;
461*a8f20eb6SHector Martin			reset-gpios = <&pinctrl_ap 4 GPIO_ACTIVE_LOW>;
462*a8f20eb6SHector Martin
463*a8f20eb6SHector Martin			#address-cells = <3>;
464*a8f20eb6SHector Martin			#size-cells = <2>;
465*a8f20eb6SHector Martin			ranges;
466*a8f20eb6SHector Martin
467*a8f20eb6SHector Martin			interrupt-controller;
468*a8f20eb6SHector Martin			#interrupt-cells = <1>;
469*a8f20eb6SHector Martin
470*a8f20eb6SHector Martin			interrupt-map-mask = <0 0 0 7>;
471*a8f20eb6SHector Martin			interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
472*a8f20eb6SHector Martin					<0 0 0 2 &port00 0 0 0 1>,
473*a8f20eb6SHector Martin					<0 0 0 3 &port00 0 0 0 2>,
474*a8f20eb6SHector Martin					<0 0 0 4 &port00 0 0 0 3>;
475*a8f20eb6SHector Martin		};
476*a8f20eb6SHector Martin
477*a8f20eb6SHector Martin		port01: pci@1,0 {
478*a8f20eb6SHector Martin			device_type = "pci";
479*a8f20eb6SHector Martin			reg = <0x800 0x0 0x0 0x0 0x0>;
480*a8f20eb6SHector Martin			reset-gpios = <&pinctrl_ap 5 GPIO_ACTIVE_LOW>;
481*a8f20eb6SHector Martin
482*a8f20eb6SHector Martin			#address-cells = <3>;
483*a8f20eb6SHector Martin			#size-cells = <2>;
484*a8f20eb6SHector Martin			ranges;
485*a8f20eb6SHector Martin
486*a8f20eb6SHector Martin			interrupt-controller;
487*a8f20eb6SHector Martin			#interrupt-cells = <1>;
488*a8f20eb6SHector Martin
489*a8f20eb6SHector Martin			interrupt-map-mask = <0 0 0 7>;
490*a8f20eb6SHector Martin			interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
491*a8f20eb6SHector Martin					<0 0 0 2 &port01 0 0 0 1>,
492*a8f20eb6SHector Martin					<0 0 0 3 &port01 0 0 0 2>,
493*a8f20eb6SHector Martin					<0 0 0 4 &port01 0 0 0 3>;
494*a8f20eb6SHector Martin			status = "disabled";
495*a8f20eb6SHector Martin		};
496*a8f20eb6SHector Martin
497*a8f20eb6SHector Martin		port02: pci@2,0 {
498*a8f20eb6SHector Martin			device_type = "pci";
499*a8f20eb6SHector Martin			reg = <0x1000 0x0 0x0 0x0 0x0>;
500*a8f20eb6SHector Martin			reset-gpios = <&pinctrl_ap 6 GPIO_ACTIVE_LOW>;
501*a8f20eb6SHector Martin
502*a8f20eb6SHector Martin			#address-cells = <3>;
503*a8f20eb6SHector Martin			#size-cells = <2>;
504*a8f20eb6SHector Martin			ranges;
505*a8f20eb6SHector Martin
506*a8f20eb6SHector Martin			interrupt-controller;
507*a8f20eb6SHector Martin			#interrupt-cells = <1>;
508*a8f20eb6SHector Martin
509*a8f20eb6SHector Martin			interrupt-map-mask = <0 0 0 7>;
510*a8f20eb6SHector Martin			interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
511*a8f20eb6SHector Martin					<0 0 0 2 &port02 0 0 0 1>,
512*a8f20eb6SHector Martin					<0 0 0 3 &port02 0 0 0 2>,
513*a8f20eb6SHector Martin					<0 0 0 4 &port02 0 0 0 3>;
514*a8f20eb6SHector Martin			status = "disabled";
515*a8f20eb6SHector Martin		};
516*a8f20eb6SHector Martin
517*a8f20eb6SHector Martin		port03: pci@3,0 {
518*a8f20eb6SHector Martin			device_type = "pci";
519*a8f20eb6SHector Martin			reg = <0x1800 0x0 0x0 0x0 0x0>;
520*a8f20eb6SHector Martin			reset-gpios = <&pinctrl_ap 7 GPIO_ACTIVE_LOW>;
521*a8f20eb6SHector Martin
522*a8f20eb6SHector Martin			#address-cells = <3>;
523*a8f20eb6SHector Martin			#size-cells = <2>;
524*a8f20eb6SHector Martin			ranges;
525*a8f20eb6SHector Martin
526*a8f20eb6SHector Martin			interrupt-controller;
527*a8f20eb6SHector Martin			#interrupt-cells = <1>;
528*a8f20eb6SHector Martin
529*a8f20eb6SHector Martin			interrupt-map-mask = <0 0 0 7>;
530*a8f20eb6SHector Martin			interrupt-map = <0 0 0 1 &port03 0 0 0 0>,
531*a8f20eb6SHector Martin					<0 0 0 2 &port03 0 0 0 1>,
532*a8f20eb6SHector Martin					<0 0 0 3 &port03 0 0 0 2>,
533*a8f20eb6SHector Martin					<0 0 0 4 &port03 0 0 0 3>;
534*a8f20eb6SHector Martin			status = "disabled";
535*a8f20eb6SHector Martin		};
536*a8f20eb6SHector Martin	};
537*a8f20eb6SHector Martin
538*a8f20eb6SHector Martin	pcie0_dart_0: iommu@594000000 {
539*a8f20eb6SHector Martin		compatible = "apple,t6020-dart", "apple,t8110-dart";
540*a8f20eb6SHector Martin		reg = <0x5 0x94000000 0x0 0x4000>;
541*a8f20eb6SHector Martin		#iommu-cells = <1>;
542*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
543*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1341 IRQ_TYPE_LEVEL_HIGH>;
544*a8f20eb6SHector Martin		power-domains = <&ps_apcie_gp_sys>;
545*a8f20eb6SHector Martin	};
546*a8f20eb6SHector Martin
547*a8f20eb6SHector Martin	pcie0_dart_1: iommu@595000000 {
548*a8f20eb6SHector Martin		compatible = "apple,t6020-dart", "apple,t8110-dart";
549*a8f20eb6SHector Martin		reg = <0x5 0x95000000 0x0 0x4000>;
550*a8f20eb6SHector Martin		#iommu-cells = <1>;
551*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
552*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1345 IRQ_TYPE_LEVEL_HIGH>;
553*a8f20eb6SHector Martin		power-domains = <&ps_apcie_gp_sys>;
554*a8f20eb6SHector Martin		status = "disabled";
555*a8f20eb6SHector Martin	};
556*a8f20eb6SHector Martin
557*a8f20eb6SHector Martin	pcie0_dart_2: iommu@596000000 {
558*a8f20eb6SHector Martin		compatible = "apple,t6020-dart", "apple,t8110-dart";
559*a8f20eb6SHector Martin		reg = <0x5 0x96000000 0x0 0x4000>;
560*a8f20eb6SHector Martin		#iommu-cells = <1>;
561*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
562*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1349 IRQ_TYPE_LEVEL_HIGH>;
563*a8f20eb6SHector Martin		power-domains = <&ps_apcie_gp_sys>;
564*a8f20eb6SHector Martin		status = "disabled";
565*a8f20eb6SHector Martin	};
566*a8f20eb6SHector Martin
567*a8f20eb6SHector Martin	pcie0_dart_3: iommu@597000000 {
568*a8f20eb6SHector Martin		compatible = "apple,t6020-dart", "apple,t8110-dart";
569*a8f20eb6SHector Martin		reg = <0x5 0x97000000 0x0 0x4000>;
570*a8f20eb6SHector Martin		#iommu-cells = <1>;
571*a8f20eb6SHector Martin		interrupt-parent = <&aic>;
572*a8f20eb6SHector Martin		interrupts = <AIC_IRQ 0 1353 IRQ_TYPE_LEVEL_HIGH>;
573*a8f20eb6SHector Martin		power-domains = <&ps_apcie_gp_sys>;
574*a8f20eb6SHector Martin		status = "disabled";
575*a8f20eb6SHector Martin	};
576