xref: /freebsd-src/sys/contrib/device-tree/src/arm64/apple/t8103.dtsi (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
12eb4d8dcSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ OR MIT
22eb4d8dcSEmmanuel Vadot/*
32eb4d8dcSEmmanuel Vadot * Apple T8103 "M1" SoC
42eb4d8dcSEmmanuel Vadot *
52eb4d8dcSEmmanuel Vadot * Other names: H13G, "Tonga"
62eb4d8dcSEmmanuel Vadot *
72eb4d8dcSEmmanuel Vadot * Copyright The Asahi Linux Contributors
82eb4d8dcSEmmanuel Vadot */
92eb4d8dcSEmmanuel Vadot
108cc087a1SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
112eb4d8dcSEmmanuel Vadot#include <dt-bindings/interrupt-controller/apple-aic.h>
122eb4d8dcSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
138cc087a1SEmmanuel Vadot#include <dt-bindings/pinctrl/apple.h>
142eb4d8dcSEmmanuel Vadot
152eb4d8dcSEmmanuel Vadot/ {
162eb4d8dcSEmmanuel Vadot	compatible = "apple,t8103", "apple,arm-platform";
172eb4d8dcSEmmanuel Vadot
182eb4d8dcSEmmanuel Vadot	#address-cells = <2>;
192eb4d8dcSEmmanuel Vadot	#size-cells = <2>;
202eb4d8dcSEmmanuel Vadot
212eb4d8dcSEmmanuel Vadot	cpus {
222eb4d8dcSEmmanuel Vadot		#address-cells = <2>;
232eb4d8dcSEmmanuel Vadot		#size-cells = <0>;
242eb4d8dcSEmmanuel Vadot
258bab661aSEmmanuel Vadot		cpu-map {
268bab661aSEmmanuel Vadot			cluster0 {
278bab661aSEmmanuel Vadot				core0 {
288bab661aSEmmanuel Vadot					cpu = <&cpu_e0>;
298bab661aSEmmanuel Vadot				};
308bab661aSEmmanuel Vadot				core1 {
318bab661aSEmmanuel Vadot					cpu = <&cpu_e1>;
328bab661aSEmmanuel Vadot				};
338bab661aSEmmanuel Vadot				core2 {
348bab661aSEmmanuel Vadot					cpu = <&cpu_e2>;
358bab661aSEmmanuel Vadot				};
368bab661aSEmmanuel Vadot				core3 {
378bab661aSEmmanuel Vadot					cpu = <&cpu_e3>;
388bab661aSEmmanuel Vadot				};
398bab661aSEmmanuel Vadot			};
408bab661aSEmmanuel Vadot
418bab661aSEmmanuel Vadot			cluster1 {
428bab661aSEmmanuel Vadot				core0 {
438bab661aSEmmanuel Vadot					cpu = <&cpu_p0>;
448bab661aSEmmanuel Vadot				};
458bab661aSEmmanuel Vadot				core1 {
468bab661aSEmmanuel Vadot					cpu = <&cpu_p1>;
478bab661aSEmmanuel Vadot				};
488bab661aSEmmanuel Vadot				core2 {
498bab661aSEmmanuel Vadot					cpu = <&cpu_p2>;
508bab661aSEmmanuel Vadot				};
518bab661aSEmmanuel Vadot				core3 {
528bab661aSEmmanuel Vadot					cpu = <&cpu_p3>;
538bab661aSEmmanuel Vadot				};
548bab661aSEmmanuel Vadot			};
558bab661aSEmmanuel Vadot		};
568bab661aSEmmanuel Vadot
578bab661aSEmmanuel Vadot		cpu_e0: cpu@0 {
582eb4d8dcSEmmanuel Vadot			compatible = "apple,icestorm";
592eb4d8dcSEmmanuel Vadot			device_type = "cpu";
602eb4d8dcSEmmanuel Vadot			reg = <0x0 0x0>;
612eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
622eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
638bab661aSEmmanuel Vadot			operating-points-v2 = <&ecluster_opp>;
648bab661aSEmmanuel Vadot			capacity-dmips-mhz = <714>;
658bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_e>;
668bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_0>;
678bab661aSEmmanuel Vadot			i-cache-size = <0x20000>;
688bab661aSEmmanuel Vadot			d-cache-size = <0x10000>;
692eb4d8dcSEmmanuel Vadot		};
702eb4d8dcSEmmanuel Vadot
718bab661aSEmmanuel Vadot		cpu_e1: cpu@1 {
722eb4d8dcSEmmanuel Vadot			compatible = "apple,icestorm";
732eb4d8dcSEmmanuel Vadot			device_type = "cpu";
742eb4d8dcSEmmanuel Vadot			reg = <0x0 0x1>;
752eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
762eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
778bab661aSEmmanuel Vadot			operating-points-v2 = <&ecluster_opp>;
788bab661aSEmmanuel Vadot			capacity-dmips-mhz = <714>;
798bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_e>;
808bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_0>;
818bab661aSEmmanuel Vadot			i-cache-size = <0x20000>;
828bab661aSEmmanuel Vadot			d-cache-size = <0x10000>;
832eb4d8dcSEmmanuel Vadot		};
842eb4d8dcSEmmanuel Vadot
858bab661aSEmmanuel Vadot		cpu_e2: cpu@2 {
862eb4d8dcSEmmanuel Vadot			compatible = "apple,icestorm";
872eb4d8dcSEmmanuel Vadot			device_type = "cpu";
882eb4d8dcSEmmanuel Vadot			reg = <0x0 0x2>;
892eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
902eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
918bab661aSEmmanuel Vadot			operating-points-v2 = <&ecluster_opp>;
928bab661aSEmmanuel Vadot			capacity-dmips-mhz = <714>;
938bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_e>;
948bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_0>;
958bab661aSEmmanuel Vadot			i-cache-size = <0x20000>;
968bab661aSEmmanuel Vadot			d-cache-size = <0x10000>;
972eb4d8dcSEmmanuel Vadot		};
982eb4d8dcSEmmanuel Vadot
998bab661aSEmmanuel Vadot		cpu_e3: cpu@3 {
1002eb4d8dcSEmmanuel Vadot			compatible = "apple,icestorm";
1012eb4d8dcSEmmanuel Vadot			device_type = "cpu";
1022eb4d8dcSEmmanuel Vadot			reg = <0x0 0x3>;
1032eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
1042eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
1058bab661aSEmmanuel Vadot			operating-points-v2 = <&ecluster_opp>;
1068bab661aSEmmanuel Vadot			capacity-dmips-mhz = <714>;
1078bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_e>;
1088bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_0>;
1098bab661aSEmmanuel Vadot			i-cache-size = <0x20000>;
1108bab661aSEmmanuel Vadot			d-cache-size = <0x10000>;
1112eb4d8dcSEmmanuel Vadot		};
1122eb4d8dcSEmmanuel Vadot
1138bab661aSEmmanuel Vadot		cpu_p0: cpu@10100 {
1142eb4d8dcSEmmanuel Vadot			compatible = "apple,firestorm";
1152eb4d8dcSEmmanuel Vadot			device_type = "cpu";
1162eb4d8dcSEmmanuel Vadot			reg = <0x0 0x10100>;
1172eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
1182eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
1198bab661aSEmmanuel Vadot			operating-points-v2 = <&pcluster_opp>;
1208bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
1218bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p>;
1228bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_1>;
1238bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
1248bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
1252eb4d8dcSEmmanuel Vadot		};
1262eb4d8dcSEmmanuel Vadot
1278bab661aSEmmanuel Vadot		cpu_p1: cpu@10101 {
1282eb4d8dcSEmmanuel Vadot			compatible = "apple,firestorm";
1292eb4d8dcSEmmanuel Vadot			device_type = "cpu";
1302eb4d8dcSEmmanuel Vadot			reg = <0x0 0x10101>;
1312eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
1322eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
1338bab661aSEmmanuel Vadot			operating-points-v2 = <&pcluster_opp>;
1348bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
1358bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p>;
1368bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_1>;
1378bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
1388bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
1392eb4d8dcSEmmanuel Vadot		};
1402eb4d8dcSEmmanuel Vadot
1418bab661aSEmmanuel Vadot		cpu_p2: cpu@10102 {
1422eb4d8dcSEmmanuel Vadot			compatible = "apple,firestorm";
1432eb4d8dcSEmmanuel Vadot			device_type = "cpu";
1442eb4d8dcSEmmanuel Vadot			reg = <0x0 0x10102>;
1452eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
1462eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
1478bab661aSEmmanuel Vadot			operating-points-v2 = <&pcluster_opp>;
1488bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
1498bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p>;
1508bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_1>;
1518bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
1528bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
1532eb4d8dcSEmmanuel Vadot		};
1542eb4d8dcSEmmanuel Vadot
1558bab661aSEmmanuel Vadot		cpu_p3: cpu@10103 {
1562eb4d8dcSEmmanuel Vadot			compatible = "apple,firestorm";
1572eb4d8dcSEmmanuel Vadot			device_type = "cpu";
1582eb4d8dcSEmmanuel Vadot			reg = <0x0 0x10103>;
1592eb4d8dcSEmmanuel Vadot			enable-method = "spin-table";
1602eb4d8dcSEmmanuel Vadot			cpu-release-addr = <0 0>; /* To be filled by loader */
1618bab661aSEmmanuel Vadot			operating-points-v2 = <&pcluster_opp>;
1628bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
1638bab661aSEmmanuel Vadot			performance-domains = <&cpufreq_p>;
1648bab661aSEmmanuel Vadot			next-level-cache = <&l2_cache_1>;
1658bab661aSEmmanuel Vadot			i-cache-size = <0x30000>;
1668bab661aSEmmanuel Vadot			d-cache-size = <0x20000>;
1672eb4d8dcSEmmanuel Vadot		};
1688bab661aSEmmanuel Vadot
1698bab661aSEmmanuel Vadot		l2_cache_0: l2-cache-0 {
1708bab661aSEmmanuel Vadot			compatible = "cache";
1718bab661aSEmmanuel Vadot			cache-level = <2>;
1728bab661aSEmmanuel Vadot			cache-unified;
1738bab661aSEmmanuel Vadot			cache-size = <0x400000>;
1748bab661aSEmmanuel Vadot		};
1758bab661aSEmmanuel Vadot
1768bab661aSEmmanuel Vadot		l2_cache_1: l2-cache-1 {
1778bab661aSEmmanuel Vadot			compatible = "cache";
1788bab661aSEmmanuel Vadot			cache-level = <2>;
1798bab661aSEmmanuel Vadot			cache-unified;
1808bab661aSEmmanuel Vadot			cache-size = <0xc00000>;
1818bab661aSEmmanuel Vadot		};
1828bab661aSEmmanuel Vadot	};
1838bab661aSEmmanuel Vadot
1848bab661aSEmmanuel Vadot	ecluster_opp: opp-table-0 {
1858bab661aSEmmanuel Vadot		compatible = "operating-points-v2";
1868bab661aSEmmanuel Vadot
1878bab661aSEmmanuel Vadot		opp01 {
1888bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <600000000>;
1898bab661aSEmmanuel Vadot			opp-level = <1>;
1908bab661aSEmmanuel Vadot			clock-latency-ns = <7500>;
1918bab661aSEmmanuel Vadot		};
1928bab661aSEmmanuel Vadot		opp02 {
1938bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <972000000>;
1948bab661aSEmmanuel Vadot			opp-level = <2>;
1958bab661aSEmmanuel Vadot			clock-latency-ns = <22000>;
1968bab661aSEmmanuel Vadot		};
1978bab661aSEmmanuel Vadot		opp03 {
1988bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1332000000>;
1998bab661aSEmmanuel Vadot			opp-level = <3>;
2008bab661aSEmmanuel Vadot			clock-latency-ns = <27000>;
2018bab661aSEmmanuel Vadot		};
2028bab661aSEmmanuel Vadot		opp04 {
2038bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1704000000>;
2048bab661aSEmmanuel Vadot			opp-level = <4>;
2058bab661aSEmmanuel Vadot			clock-latency-ns = <33000>;
2068bab661aSEmmanuel Vadot		};
2078bab661aSEmmanuel Vadot		opp05 {
2088bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <2064000000>;
2098bab661aSEmmanuel Vadot			opp-level = <5>;
2108bab661aSEmmanuel Vadot			clock-latency-ns = <50000>;
2118bab661aSEmmanuel Vadot		};
2128bab661aSEmmanuel Vadot	};
2138bab661aSEmmanuel Vadot
2148bab661aSEmmanuel Vadot	pcluster_opp: opp-table-1 {
2158bab661aSEmmanuel Vadot		compatible = "operating-points-v2";
2168bab661aSEmmanuel Vadot
2178bab661aSEmmanuel Vadot		opp01 {
2188bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <600000000>;
2198bab661aSEmmanuel Vadot			opp-level = <1>;
2208bab661aSEmmanuel Vadot			clock-latency-ns = <8000>;
2218bab661aSEmmanuel Vadot		};
2228bab661aSEmmanuel Vadot		opp02 {
2238bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <828000000>;
2248bab661aSEmmanuel Vadot			opp-level = <2>;
2258bab661aSEmmanuel Vadot			clock-latency-ns = <19000>;
2268bab661aSEmmanuel Vadot		};
2278bab661aSEmmanuel Vadot		opp03 {
2288bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1056000000>;
2298bab661aSEmmanuel Vadot			opp-level = <3>;
2308bab661aSEmmanuel Vadot			clock-latency-ns = <21000>;
2318bab661aSEmmanuel Vadot		};
2328bab661aSEmmanuel Vadot		opp04 {
2338bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1284000000>;
2348bab661aSEmmanuel Vadot			opp-level = <4>;
2358bab661aSEmmanuel Vadot			clock-latency-ns = <23000>;
2368bab661aSEmmanuel Vadot		};
2378bab661aSEmmanuel Vadot		opp05 {
2388bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1500000000>;
2398bab661aSEmmanuel Vadot			opp-level = <5>;
2408bab661aSEmmanuel Vadot			clock-latency-ns = <24000>;
2418bab661aSEmmanuel Vadot		};
2428bab661aSEmmanuel Vadot		opp06 {
2438bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1728000000>;
2448bab661aSEmmanuel Vadot			opp-level = <6>;
2458bab661aSEmmanuel Vadot			clock-latency-ns = <29000>;
2468bab661aSEmmanuel Vadot		};
2478bab661aSEmmanuel Vadot		opp07 {
2488bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <1956000000>;
2498bab661aSEmmanuel Vadot			opp-level = <7>;
2508bab661aSEmmanuel Vadot			clock-latency-ns = <31000>;
2518bab661aSEmmanuel Vadot		};
2528bab661aSEmmanuel Vadot		opp08 {
2538bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <2184000000>;
2548bab661aSEmmanuel Vadot			opp-level = <8>;
2558bab661aSEmmanuel Vadot			clock-latency-ns = <34000>;
2568bab661aSEmmanuel Vadot		};
2578bab661aSEmmanuel Vadot		opp09 {
2588bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <2388000000>;
2598bab661aSEmmanuel Vadot			opp-level = <9>;
2608bab661aSEmmanuel Vadot			clock-latency-ns = <36000>;
2618bab661aSEmmanuel Vadot		};
2628bab661aSEmmanuel Vadot		opp10 {
2638bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <2592000000>;
2648bab661aSEmmanuel Vadot			opp-level = <10>;
2658bab661aSEmmanuel Vadot			clock-latency-ns = <51000>;
2668bab661aSEmmanuel Vadot		};
2678bab661aSEmmanuel Vadot		opp11 {
2688bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <2772000000>;
2698bab661aSEmmanuel Vadot			opp-level = <11>;
2708bab661aSEmmanuel Vadot			clock-latency-ns = <54000>;
2718bab661aSEmmanuel Vadot		};
2728bab661aSEmmanuel Vadot		opp12 {
2738bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <2988000000>;
2748bab661aSEmmanuel Vadot			opp-level = <12>;
2758bab661aSEmmanuel Vadot			clock-latency-ns = <55000>;
2768bab661aSEmmanuel Vadot		};
2778bab661aSEmmanuel Vadot#if 0
2788bab661aSEmmanuel Vadot		/* Not available until CPU deep sleep is implemented */
2798bab661aSEmmanuel Vadot		opp13 {
2808bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <3096000000>;
2818bab661aSEmmanuel Vadot			opp-level = <13>;
2828bab661aSEmmanuel Vadot			clock-latency-ns = <55000>;
2838bab661aSEmmanuel Vadot			turbo-mode;
2848bab661aSEmmanuel Vadot		};
2858bab661aSEmmanuel Vadot		opp14 {
2868bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <3144000000>;
2878bab661aSEmmanuel Vadot			opp-level = <14>;
2888bab661aSEmmanuel Vadot			clock-latency-ns = <56000>;
2898bab661aSEmmanuel Vadot			turbo-mode;
2908bab661aSEmmanuel Vadot		};
2918bab661aSEmmanuel Vadot		opp15 {
2928bab661aSEmmanuel Vadot			opp-hz = /bits/ 64 <3204000000>;
2938bab661aSEmmanuel Vadot			opp-level = <15>;
2948bab661aSEmmanuel Vadot			clock-latency-ns = <56000>;
2958bab661aSEmmanuel Vadot			turbo-mode;
2968bab661aSEmmanuel Vadot		};
2978bab661aSEmmanuel Vadot#endif
2982eb4d8dcSEmmanuel Vadot	};
2992eb4d8dcSEmmanuel Vadot
3002eb4d8dcSEmmanuel Vadot	timer {
3012eb4d8dcSEmmanuel Vadot		compatible = "arm,armv8-timer";
3022eb4d8dcSEmmanuel Vadot		interrupt-parent = <&aic>;
3032eb4d8dcSEmmanuel Vadot		interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
3042eb4d8dcSEmmanuel Vadot		interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
3052eb4d8dcSEmmanuel Vadot			     <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
3062eb4d8dcSEmmanuel Vadot			     <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
3072eb4d8dcSEmmanuel Vadot			     <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
3082eb4d8dcSEmmanuel Vadot	};
3092eb4d8dcSEmmanuel Vadot
310c9ccf3a3SEmmanuel Vadot	pmu-e {
311c9ccf3a3SEmmanuel Vadot		compatible = "apple,icestorm-pmu";
312c9ccf3a3SEmmanuel Vadot		interrupt-parent = <&aic>;
313c9ccf3a3SEmmanuel Vadot		interrupts = <AIC_FIQ AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>;
314c9ccf3a3SEmmanuel Vadot	};
315c9ccf3a3SEmmanuel Vadot
316c9ccf3a3SEmmanuel Vadot	pmu-p {
317c9ccf3a3SEmmanuel Vadot		compatible = "apple,firestorm-pmu";
318c9ccf3a3SEmmanuel Vadot		interrupt-parent = <&aic>;
319c9ccf3a3SEmmanuel Vadot		interrupts = <AIC_FIQ AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>;
320c9ccf3a3SEmmanuel Vadot	};
321c9ccf3a3SEmmanuel Vadot
322e67e8565SEmmanuel Vadot	clkref: clock-ref {
3232eb4d8dcSEmmanuel Vadot		compatible = "fixed-clock";
3242eb4d8dcSEmmanuel Vadot		#clock-cells = <0>;
3252eb4d8dcSEmmanuel Vadot		clock-frequency = <24000000>;
326e67e8565SEmmanuel Vadot		clock-output-names = "clkref";
3272eb4d8dcSEmmanuel Vadot	};
3282eb4d8dcSEmmanuel Vadot
3298bab661aSEmmanuel Vadot	/*
3308bab661aSEmmanuel Vadot	 * This is a fabulated representation of the input clock
3318bab661aSEmmanuel Vadot	 * to NCO since we don't know the true clock tree.
3328bab661aSEmmanuel Vadot	 */
3338bab661aSEmmanuel Vadot	nco_clkref: clock-ref-nco {
3348bab661aSEmmanuel Vadot		compatible = "fixed-clock";
3358bab661aSEmmanuel Vadot		#clock-cells = <0>;
3368bab661aSEmmanuel Vadot		clock-output-names = "nco_ref";
3378bab661aSEmmanuel Vadot	};
3388bab661aSEmmanuel Vadot
3392eb4d8dcSEmmanuel Vadot	soc {
3402eb4d8dcSEmmanuel Vadot		compatible = "simple-bus";
3412eb4d8dcSEmmanuel Vadot		#address-cells = <2>;
3422eb4d8dcSEmmanuel Vadot		#size-cells = <2>;
3432eb4d8dcSEmmanuel Vadot
3442eb4d8dcSEmmanuel Vadot		ranges;
3452eb4d8dcSEmmanuel Vadot		nonposted-mmio;
3462eb4d8dcSEmmanuel Vadot
3478bab661aSEmmanuel Vadot		cpufreq_e: performance-controller@210e20000 {
3488bab661aSEmmanuel Vadot			compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq";
3498bab661aSEmmanuel Vadot			reg = <0x2 0x10e20000 0 0x1000>;
3508bab661aSEmmanuel Vadot			#performance-domain-cells = <0>;
3518bab661aSEmmanuel Vadot		};
3528bab661aSEmmanuel Vadot
3538bab661aSEmmanuel Vadot		cpufreq_p: performance-controller@211e20000 {
3548bab661aSEmmanuel Vadot			compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq";
3558bab661aSEmmanuel Vadot			reg = <0x2 0x11e20000 0 0x1000>;
3568bab661aSEmmanuel Vadot			#performance-domain-cells = <0>;
3578bab661aSEmmanuel Vadot		};
3588bab661aSEmmanuel Vadot
3598bab661aSEmmanuel Vadot		sio_dart: iommu@235004000 {
3608bab661aSEmmanuel Vadot			compatible = "apple,t8103-dart";
3618bab661aSEmmanuel Vadot			reg = <0x2 0x35004000 0x0 0x4000>;
3628bab661aSEmmanuel Vadot			interrupt-parent = <&aic>;
3638bab661aSEmmanuel Vadot			interrupts = <AIC_IRQ 635 IRQ_TYPE_LEVEL_HIGH>;
3648bab661aSEmmanuel Vadot			#iommu-cells = <1>;
3658bab661aSEmmanuel Vadot			power-domains = <&ps_sio_cpu>;
3668bab661aSEmmanuel Vadot		};
3678bab661aSEmmanuel Vadot
368e67e8565SEmmanuel Vadot		i2c0: i2c@235010000 {
369e67e8565SEmmanuel Vadot			compatible = "apple,t8103-i2c", "apple,i2c";
370e67e8565SEmmanuel Vadot			reg = <0x2 0x35010000 0x0 0x4000>;
371e67e8565SEmmanuel Vadot			clocks = <&clkref>;
372e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
373e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>;
374e67e8565SEmmanuel Vadot			pinctrl-0 = <&i2c0_pins>;
375e67e8565SEmmanuel Vadot			pinctrl-names = "default";
376e67e8565SEmmanuel Vadot			#address-cells = <0x1>;
377e67e8565SEmmanuel Vadot			#size-cells = <0x0>;
378e67e8565SEmmanuel Vadot			power-domains = <&ps_i2c0>;
379e67e8565SEmmanuel Vadot		};
380e67e8565SEmmanuel Vadot
381e67e8565SEmmanuel Vadot		i2c1: i2c@235014000 {
382e67e8565SEmmanuel Vadot			compatible = "apple,t8103-i2c", "apple,i2c";
383e67e8565SEmmanuel Vadot			reg = <0x2 0x35014000 0x0 0x4000>;
384e67e8565SEmmanuel Vadot			clocks = <&clkref>;
385e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
386e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>;
387e67e8565SEmmanuel Vadot			pinctrl-0 = <&i2c1_pins>;
388e67e8565SEmmanuel Vadot			pinctrl-names = "default";
389e67e8565SEmmanuel Vadot			#address-cells = <0x1>;
390e67e8565SEmmanuel Vadot			#size-cells = <0x0>;
391e67e8565SEmmanuel Vadot			power-domains = <&ps_i2c1>;
392e67e8565SEmmanuel Vadot		};
393e67e8565SEmmanuel Vadot
394e67e8565SEmmanuel Vadot		i2c2: i2c@235018000 {
395e67e8565SEmmanuel Vadot			compatible = "apple,t8103-i2c", "apple,i2c";
396e67e8565SEmmanuel Vadot			reg = <0x2 0x35018000 0x0 0x4000>;
397e67e8565SEmmanuel Vadot			clocks = <&clkref>;
398e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
399e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>;
400e67e8565SEmmanuel Vadot			pinctrl-0 = <&i2c2_pins>;
401e67e8565SEmmanuel Vadot			pinctrl-names = "default";
402e67e8565SEmmanuel Vadot			#address-cells = <0x1>;
403e67e8565SEmmanuel Vadot			#size-cells = <0x0>;
404e67e8565SEmmanuel Vadot			status = "disabled"; /* not used in all devices */
405e67e8565SEmmanuel Vadot			power-domains = <&ps_i2c2>;
406e67e8565SEmmanuel Vadot		};
407e67e8565SEmmanuel Vadot
408e67e8565SEmmanuel Vadot		i2c3: i2c@23501c000 {
409e67e8565SEmmanuel Vadot			compatible = "apple,t8103-i2c", "apple,i2c";
410e67e8565SEmmanuel Vadot			reg = <0x2 0x3501c000 0x0 0x4000>;
411e67e8565SEmmanuel Vadot			clocks = <&clkref>;
412e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
413e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>;
414e67e8565SEmmanuel Vadot			pinctrl-0 = <&i2c3_pins>;
415e67e8565SEmmanuel Vadot			pinctrl-names = "default";
416e67e8565SEmmanuel Vadot			#address-cells = <0x1>;
417e67e8565SEmmanuel Vadot			#size-cells = <0x0>;
418e67e8565SEmmanuel Vadot			power-domains = <&ps_i2c3>;
419e67e8565SEmmanuel Vadot		};
420e67e8565SEmmanuel Vadot
421e67e8565SEmmanuel Vadot		i2c4: i2c@235020000 {
422e67e8565SEmmanuel Vadot			compatible = "apple,t8103-i2c", "apple,i2c";
423e67e8565SEmmanuel Vadot			reg = <0x2 0x35020000 0x0 0x4000>;
424e67e8565SEmmanuel Vadot			clocks = <&clkref>;
425e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
426e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>;
427e67e8565SEmmanuel Vadot			pinctrl-0 = <&i2c4_pins>;
428e67e8565SEmmanuel Vadot			pinctrl-names = "default";
429e67e8565SEmmanuel Vadot			#address-cells = <0x1>;
430e67e8565SEmmanuel Vadot			#size-cells = <0x0>;
431e67e8565SEmmanuel Vadot			power-domains = <&ps_i2c4>;
432e67e8565SEmmanuel Vadot			status = "disabled"; /* only used in J293 */
433e67e8565SEmmanuel Vadot		};
434e67e8565SEmmanuel Vadot
435*fac71e4eSEmmanuel Vadot		fpwm1: pwm@235044000 {
436*fac71e4eSEmmanuel Vadot			compatible = "apple,t8103-fpwm", "apple,s5l-fpwm";
437*fac71e4eSEmmanuel Vadot			reg = <0x2 0x35044000 0x0 0x4000>;
438*fac71e4eSEmmanuel Vadot			power-domains = <&ps_fpwm1>;
439*fac71e4eSEmmanuel Vadot			clocks = <&clkref>;
440*fac71e4eSEmmanuel Vadot			#pwm-cells = <2>;
441*fac71e4eSEmmanuel Vadot			status = "disabled";
442*fac71e4eSEmmanuel Vadot		};
443*fac71e4eSEmmanuel Vadot
4442eb4d8dcSEmmanuel Vadot		serial0: serial@235200000 {
4452eb4d8dcSEmmanuel Vadot			compatible = "apple,s5l-uart";
4462eb4d8dcSEmmanuel Vadot			reg = <0x2 0x35200000 0x0 0x1000>;
4472eb4d8dcSEmmanuel Vadot			reg-io-width = <4>;
4482eb4d8dcSEmmanuel Vadot			interrupt-parent = <&aic>;
4492eb4d8dcSEmmanuel Vadot			interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>;
4502eb4d8dcSEmmanuel Vadot			/*
4512eb4d8dcSEmmanuel Vadot			 * TODO: figure out the clocking properly, there may
4522eb4d8dcSEmmanuel Vadot			 * be a third selectable clock.
4532eb4d8dcSEmmanuel Vadot			 */
454e67e8565SEmmanuel Vadot			clocks = <&clkref>, <&clkref>;
4552eb4d8dcSEmmanuel Vadot			clock-names = "uart", "clk_uart_baud0";
456e67e8565SEmmanuel Vadot			power-domains = <&ps_uart0>;
457e67e8565SEmmanuel Vadot			status = "disabled";
458e67e8565SEmmanuel Vadot		};
459e67e8565SEmmanuel Vadot
460e67e8565SEmmanuel Vadot		serial2: serial@235208000 {
461e67e8565SEmmanuel Vadot			compatible = "apple,s5l-uart";
462e67e8565SEmmanuel Vadot			reg = <0x2 0x35208000 0x0 0x1000>;
463e67e8565SEmmanuel Vadot			reg-io-width = <4>;
464e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
465e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>;
466e67e8565SEmmanuel Vadot			clocks = <&clkref>, <&clkref>;
467e67e8565SEmmanuel Vadot			clock-names = "uart", "clk_uart_baud0";
468e67e8565SEmmanuel Vadot			power-domains = <&ps_uart2>;
4692eb4d8dcSEmmanuel Vadot			status = "disabled";
4702eb4d8dcSEmmanuel Vadot		};
4712eb4d8dcSEmmanuel Vadot
4728bab661aSEmmanuel Vadot		admac: dma-controller@238200000 {
4738bab661aSEmmanuel Vadot			compatible = "apple,t8103-admac", "apple,admac";
4748bab661aSEmmanuel Vadot			reg = <0x2 0x38200000 0x0 0x34000>;
4758bab661aSEmmanuel Vadot			dma-channels = <24>;
4768bab661aSEmmanuel Vadot			interrupts-extended = <0>,
4778bab661aSEmmanuel Vadot					      <&aic AIC_IRQ 626 IRQ_TYPE_LEVEL_HIGH>,
4788bab661aSEmmanuel Vadot					      <0>,
4798bab661aSEmmanuel Vadot					      <0>;
4808bab661aSEmmanuel Vadot			#dma-cells = <1>;
4818bab661aSEmmanuel Vadot			iommus = <&sio_dart 2>;
4828bab661aSEmmanuel Vadot			power-domains = <&ps_sio_adma>;
4838bab661aSEmmanuel Vadot			resets = <&ps_audio_p>;
4848bab661aSEmmanuel Vadot		};
4858bab661aSEmmanuel Vadot
4868bab661aSEmmanuel Vadot		mca: i2s@238400000 {
4878bab661aSEmmanuel Vadot			compatible = "apple,t8103-mca", "apple,mca";
4888bab661aSEmmanuel Vadot			reg = <0x2 0x38400000 0x0 0x18000>,
4898bab661aSEmmanuel Vadot			      <0x2 0x38300000 0x0 0x30000>;
4908bab661aSEmmanuel Vadot
4918bab661aSEmmanuel Vadot			interrupt-parent = <&aic>;
4928bab661aSEmmanuel Vadot			interrupts = <AIC_IRQ 619 IRQ_TYPE_LEVEL_HIGH>,
4938bab661aSEmmanuel Vadot				     <AIC_IRQ 620 IRQ_TYPE_LEVEL_HIGH>,
4948bab661aSEmmanuel Vadot				     <AIC_IRQ 621 IRQ_TYPE_LEVEL_HIGH>,
4958bab661aSEmmanuel Vadot				     <AIC_IRQ 622 IRQ_TYPE_LEVEL_HIGH>,
4968bab661aSEmmanuel Vadot				     <AIC_IRQ 623 IRQ_TYPE_LEVEL_HIGH>,
4978bab661aSEmmanuel Vadot				     <AIC_IRQ 624 IRQ_TYPE_LEVEL_HIGH>;
4988bab661aSEmmanuel Vadot
4998bab661aSEmmanuel Vadot			resets = <&ps_audio_p>;
5008bab661aSEmmanuel Vadot			clocks = <&nco 0>, <&nco 1>, <&nco 2>,
5018bab661aSEmmanuel Vadot				 <&nco 3>, <&nco 4>, <&nco 4>;
5028bab661aSEmmanuel Vadot			power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
5038bab661aSEmmanuel Vadot					<&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>;
5048bab661aSEmmanuel Vadot			dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
5058bab661aSEmmanuel Vadot			       <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
5068bab661aSEmmanuel Vadot			       <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
5078bab661aSEmmanuel Vadot			       <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>,
5088bab661aSEmmanuel Vadot			       <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>,
5098bab661aSEmmanuel Vadot			       <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>;
5108bab661aSEmmanuel Vadot			dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
5118bab661aSEmmanuel Vadot				"tx1a", "rx1a", "tx1b", "rx1b",
5128bab661aSEmmanuel Vadot				"tx2a", "rx2a", "tx2b", "rx2b",
5138bab661aSEmmanuel Vadot				"tx3a", "rx3a", "tx3b", "rx3b",
5148bab661aSEmmanuel Vadot				"tx4a", "rx4a", "tx4b", "rx4b",
5158bab661aSEmmanuel Vadot				"tx5a", "rx5a", "tx5b", "rx5b";
5168bab661aSEmmanuel Vadot
5178bab661aSEmmanuel Vadot			#sound-dai-cells = <1>;
5188bab661aSEmmanuel Vadot		};
5198bab661aSEmmanuel Vadot
5208bab661aSEmmanuel Vadot		nco: clock-controller@23b044000 {
5218bab661aSEmmanuel Vadot			compatible = "apple,t8103-nco", "apple,nco";
5228bab661aSEmmanuel Vadot			reg = <0x2 0x3b044000 0x0 0x14000>;
5238bab661aSEmmanuel Vadot			clocks = <&nco_clkref>;
5248bab661aSEmmanuel Vadot			#clock-cells = <1>;
5258bab661aSEmmanuel Vadot		};
5268bab661aSEmmanuel Vadot
5272eb4d8dcSEmmanuel Vadot		aic: interrupt-controller@23b100000 {
5282eb4d8dcSEmmanuel Vadot			compatible = "apple,t8103-aic", "apple,aic";
5292eb4d8dcSEmmanuel Vadot			#interrupt-cells = <3>;
5302eb4d8dcSEmmanuel Vadot			interrupt-controller;
5312eb4d8dcSEmmanuel Vadot			reg = <0x2 0x3b100000 0x0 0x8000>;
532e67e8565SEmmanuel Vadot			power-domains = <&ps_aic>;
533c9ccf3a3SEmmanuel Vadot
534c9ccf3a3SEmmanuel Vadot			affinities {
535c9ccf3a3SEmmanuel Vadot				e-core-pmu-affinity {
536c9ccf3a3SEmmanuel Vadot					apple,fiq-index = <AIC_CPU_PMU_E>;
5378bab661aSEmmanuel Vadot					cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>;
538c9ccf3a3SEmmanuel Vadot				};
539c9ccf3a3SEmmanuel Vadot
540c9ccf3a3SEmmanuel Vadot				p-core-pmu-affinity {
541c9ccf3a3SEmmanuel Vadot					apple,fiq-index = <AIC_CPU_PMU_P>;
5428bab661aSEmmanuel Vadot					cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>;
543c9ccf3a3SEmmanuel Vadot				};
544c9ccf3a3SEmmanuel Vadot			};
545e67e8565SEmmanuel Vadot		};
546e67e8565SEmmanuel Vadot
547e67e8565SEmmanuel Vadot		pmgr: power-management@23b700000 {
548e67e8565SEmmanuel Vadot			compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
549e67e8565SEmmanuel Vadot			#address-cells = <1>;
550e67e8565SEmmanuel Vadot			#size-cells = <1>;
551e67e8565SEmmanuel Vadot			reg = <0x2 0x3b700000 0 0x14000>;
5522eb4d8dcSEmmanuel Vadot		};
5538cc087a1SEmmanuel Vadot
5548cc087a1SEmmanuel Vadot		pinctrl_ap: pinctrl@23c100000 {
5558cc087a1SEmmanuel Vadot			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
5568cc087a1SEmmanuel Vadot			reg = <0x2 0x3c100000 0x0 0x100000>;
557e67e8565SEmmanuel Vadot			power-domains = <&ps_gpio>;
5588cc087a1SEmmanuel Vadot
5598cc087a1SEmmanuel Vadot			gpio-controller;
5608cc087a1SEmmanuel Vadot			#gpio-cells = <2>;
5618cc087a1SEmmanuel Vadot			gpio-ranges = <&pinctrl_ap 0 0 212>;
5628cc087a1SEmmanuel Vadot			apple,npins = <212>;
5638cc087a1SEmmanuel Vadot
5648cc087a1SEmmanuel Vadot			interrupt-controller;
5658cc087a1SEmmanuel Vadot			#interrupt-cells = <2>;
5668cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
5678cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>,
5688cc087a1SEmmanuel Vadot				     <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>,
5698cc087a1SEmmanuel Vadot				     <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>,
5708cc087a1SEmmanuel Vadot				     <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>,
5718cc087a1SEmmanuel Vadot				     <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>,
5728cc087a1SEmmanuel Vadot				     <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>,
5738cc087a1SEmmanuel Vadot				     <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>;
5748cc087a1SEmmanuel Vadot
575e67e8565SEmmanuel Vadot			i2c0_pins: i2c0-pins {
576e67e8565SEmmanuel Vadot				pinmux = <APPLE_PINMUX(192, 1)>,
577e67e8565SEmmanuel Vadot					 <APPLE_PINMUX(188, 1)>;
578e67e8565SEmmanuel Vadot			};
579e67e8565SEmmanuel Vadot
580e67e8565SEmmanuel Vadot			i2c1_pins: i2c1-pins {
581e67e8565SEmmanuel Vadot				pinmux = <APPLE_PINMUX(201, 1)>,
582e67e8565SEmmanuel Vadot					 <APPLE_PINMUX(199, 1)>;
583e67e8565SEmmanuel Vadot			};
584e67e8565SEmmanuel Vadot
585e67e8565SEmmanuel Vadot			i2c2_pins: i2c2-pins {
586e67e8565SEmmanuel Vadot				pinmux = <APPLE_PINMUX(163, 1)>,
587e67e8565SEmmanuel Vadot					 <APPLE_PINMUX(162, 1)>;
588e67e8565SEmmanuel Vadot			};
589e67e8565SEmmanuel Vadot
590e67e8565SEmmanuel Vadot			i2c3_pins: i2c3-pins {
591e67e8565SEmmanuel Vadot				pinmux = <APPLE_PINMUX(73, 1)>,
592e67e8565SEmmanuel Vadot					 <APPLE_PINMUX(72, 1)>;
593e67e8565SEmmanuel Vadot			};
594e67e8565SEmmanuel Vadot
595e67e8565SEmmanuel Vadot			i2c4_pins: i2c4-pins {
596e67e8565SEmmanuel Vadot				pinmux = <APPLE_PINMUX(135, 1)>,
597e67e8565SEmmanuel Vadot					 <APPLE_PINMUX(134, 1)>;
598e67e8565SEmmanuel Vadot			};
599e67e8565SEmmanuel Vadot
6008cc087a1SEmmanuel Vadot			pcie_pins: pcie-pins {
6018cc087a1SEmmanuel Vadot				pinmux = <APPLE_PINMUX(150, 1)>,
6028cc087a1SEmmanuel Vadot					 <APPLE_PINMUX(151, 1)>,
6038cc087a1SEmmanuel Vadot					 <APPLE_PINMUX(32, 1)>;
6048cc087a1SEmmanuel Vadot			};
6058cc087a1SEmmanuel Vadot		};
6068cc087a1SEmmanuel Vadot
6078cc087a1SEmmanuel Vadot		pinctrl_nub: pinctrl@23d1f0000 {
6088cc087a1SEmmanuel Vadot			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
6098cc087a1SEmmanuel Vadot			reg = <0x2 0x3d1f0000 0x0 0x4000>;
610e67e8565SEmmanuel Vadot			power-domains = <&ps_nub_gpio>;
6118cc087a1SEmmanuel Vadot
6128cc087a1SEmmanuel Vadot			gpio-controller;
6138cc087a1SEmmanuel Vadot			#gpio-cells = <2>;
6148cc087a1SEmmanuel Vadot			gpio-ranges = <&pinctrl_nub 0 0 23>;
6158cc087a1SEmmanuel Vadot			apple,npins = <23>;
6168cc087a1SEmmanuel Vadot
6178cc087a1SEmmanuel Vadot			interrupt-controller;
6188cc087a1SEmmanuel Vadot			#interrupt-cells = <2>;
6198cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
6208cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>,
6218cc087a1SEmmanuel Vadot				     <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>,
6228cc087a1SEmmanuel Vadot				     <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>,
6238cc087a1SEmmanuel Vadot				     <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>,
6248cc087a1SEmmanuel Vadot				     <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>,
6258cc087a1SEmmanuel Vadot				     <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>,
6268cc087a1SEmmanuel Vadot				     <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>;
6278cc087a1SEmmanuel Vadot		};
6288cc087a1SEmmanuel Vadot
629e67e8565SEmmanuel Vadot		pmgr_mini: power-management@23d280000 {
630e67e8565SEmmanuel Vadot			compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd";
631e67e8565SEmmanuel Vadot			#address-cells = <1>;
632e67e8565SEmmanuel Vadot			#size-cells = <1>;
633e67e8565SEmmanuel Vadot			reg = <0x2 0x3d280000 0 0x4000>;
634e67e8565SEmmanuel Vadot		};
635e67e8565SEmmanuel Vadot
636e67e8565SEmmanuel Vadot		wdt: watchdog@23d2b0000 {
637e67e8565SEmmanuel Vadot			compatible = "apple,t8103-wdt", "apple,wdt";
638e67e8565SEmmanuel Vadot			reg = <0x2 0x3d2b0000 0x0 0x4000>;
639e67e8565SEmmanuel Vadot			clocks = <&clkref>;
640e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
641e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>;
642e67e8565SEmmanuel Vadot		};
643e67e8565SEmmanuel Vadot
6448cc087a1SEmmanuel Vadot		pinctrl_smc: pinctrl@23e820000 {
6458cc087a1SEmmanuel Vadot			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
6468cc087a1SEmmanuel Vadot			reg = <0x2 0x3e820000 0x0 0x4000>;
6478cc087a1SEmmanuel Vadot
6488cc087a1SEmmanuel Vadot			gpio-controller;
6498cc087a1SEmmanuel Vadot			#gpio-cells = <2>;
6508cc087a1SEmmanuel Vadot			gpio-ranges = <&pinctrl_smc 0 0 16>;
6518cc087a1SEmmanuel Vadot			apple,npins = <16>;
6528cc087a1SEmmanuel Vadot
6538cc087a1SEmmanuel Vadot			interrupt-controller;
6548cc087a1SEmmanuel Vadot			#interrupt-cells = <2>;
6558cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
6568cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>,
6578cc087a1SEmmanuel Vadot				     <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>,
6588cc087a1SEmmanuel Vadot				     <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>,
6598cc087a1SEmmanuel Vadot				     <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>,
6608cc087a1SEmmanuel Vadot				     <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>,
6618cc087a1SEmmanuel Vadot				     <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>,
6628cc087a1SEmmanuel Vadot				     <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>;
6638cc087a1SEmmanuel Vadot		};
6648cc087a1SEmmanuel Vadot
665e67e8565SEmmanuel Vadot		pinctrl_aop: pinctrl@24a820000 {
666e67e8565SEmmanuel Vadot			compatible = "apple,t8103-pinctrl", "apple,pinctrl";
667e67e8565SEmmanuel Vadot			reg = <0x2 0x4a820000 0x0 0x4000>;
668e67e8565SEmmanuel Vadot
669e67e8565SEmmanuel Vadot			gpio-controller;
670e67e8565SEmmanuel Vadot			#gpio-cells = <2>;
671e67e8565SEmmanuel Vadot			gpio-ranges = <&pinctrl_aop 0 0 42>;
672e67e8565SEmmanuel Vadot			apple,npins = <42>;
673e67e8565SEmmanuel Vadot
674e67e8565SEmmanuel Vadot			interrupt-controller;
675e67e8565SEmmanuel Vadot			#interrupt-cells = <2>;
676e67e8565SEmmanuel Vadot			interrupt-parent = <&aic>;
677e67e8565SEmmanuel Vadot			interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>,
678e67e8565SEmmanuel Vadot				     <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>,
679e67e8565SEmmanuel Vadot				     <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>,
680e67e8565SEmmanuel Vadot				     <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>,
681e67e8565SEmmanuel Vadot				     <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>,
682e67e8565SEmmanuel Vadot				     <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>,
683e67e8565SEmmanuel Vadot				     <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>;
684e67e8565SEmmanuel Vadot		};
685e67e8565SEmmanuel Vadot
686b97ee269SEmmanuel Vadot		ans_mbox: mbox@277408000 {
687b97ee269SEmmanuel Vadot			compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
688b97ee269SEmmanuel Vadot			reg = <0x2 0x77408000 0x0 0x4000>;
689b97ee269SEmmanuel Vadot			interrupt-parent = <&aic>;
690b97ee269SEmmanuel Vadot			interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>,
691b97ee269SEmmanuel Vadot				<AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>,
692b97ee269SEmmanuel Vadot				<AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>,
693b97ee269SEmmanuel Vadot				<AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>;
694b97ee269SEmmanuel Vadot			interrupt-names = "send-empty", "send-not-empty",
695b97ee269SEmmanuel Vadot				"recv-empty", "recv-not-empty";
696b97ee269SEmmanuel Vadot			#mbox-cells = <0>;
697b97ee269SEmmanuel Vadot			power-domains = <&ps_ans2>;
698b97ee269SEmmanuel Vadot		};
699b97ee269SEmmanuel Vadot
700b97ee269SEmmanuel Vadot		sart: iommu@27bc50000 {
701b97ee269SEmmanuel Vadot			compatible = "apple,t8103-sart";
702b97ee269SEmmanuel Vadot			reg = <0x2 0x7bc50000 0x0 0x10000>;
703b97ee269SEmmanuel Vadot			power-domains = <&ps_ans2>;
704b97ee269SEmmanuel Vadot		};
705b97ee269SEmmanuel Vadot
706b97ee269SEmmanuel Vadot		nvme@27bcc0000 {
707b97ee269SEmmanuel Vadot			compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2";
708b97ee269SEmmanuel Vadot			reg = <0x2 0x7bcc0000 0x0 0x40000>,
709b97ee269SEmmanuel Vadot				<0x2 0x77400000 0x0 0x4000>;
710b97ee269SEmmanuel Vadot			reg-names = "nvme", "ans";
711b97ee269SEmmanuel Vadot			interrupt-parent = <&aic>;
712b97ee269SEmmanuel Vadot			interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>;
713b97ee269SEmmanuel Vadot			mboxes = <&ans_mbox>;
714b97ee269SEmmanuel Vadot			apple,sart = <&sart>;
715b97ee269SEmmanuel Vadot			power-domains = <&ps_ans2>, <&ps_apcie_st>;
716b97ee269SEmmanuel Vadot			power-domain-names = "ans", "apcie0";
717b97ee269SEmmanuel Vadot			resets = <&ps_ans2>;
718b97ee269SEmmanuel Vadot		};
719b97ee269SEmmanuel Vadot
7208bab661aSEmmanuel Vadot		pcie0_dart_0: iommu@681008000 {
7218cc087a1SEmmanuel Vadot			compatible = "apple,t8103-dart";
7228cc087a1SEmmanuel Vadot			reg = <0x6 0x81008000 0x0 0x4000>;
7238cc087a1SEmmanuel Vadot			#iommu-cells = <1>;
7248cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
7258cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>;
726e67e8565SEmmanuel Vadot			power-domains = <&ps_apcie_gp>;
7278cc087a1SEmmanuel Vadot		};
7288cc087a1SEmmanuel Vadot
7298bab661aSEmmanuel Vadot		pcie0_dart_1: iommu@682008000 {
7308cc087a1SEmmanuel Vadot			compatible = "apple,t8103-dart";
7318cc087a1SEmmanuel Vadot			reg = <0x6 0x82008000 0x0 0x4000>;
7328cc087a1SEmmanuel Vadot			#iommu-cells = <1>;
7338cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
7348cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>;
735e67e8565SEmmanuel Vadot			power-domains = <&ps_apcie_gp>;
736*fac71e4eSEmmanuel Vadot			status = "disabled";
7378cc087a1SEmmanuel Vadot		};
7388cc087a1SEmmanuel Vadot
7398bab661aSEmmanuel Vadot		pcie0_dart_2: iommu@683008000 {
7408cc087a1SEmmanuel Vadot			compatible = "apple,t8103-dart";
7418cc087a1SEmmanuel Vadot			reg = <0x6 0x83008000 0x0 0x4000>;
7428cc087a1SEmmanuel Vadot			#iommu-cells = <1>;
7438cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
7448cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>;
745e67e8565SEmmanuel Vadot			power-domains = <&ps_apcie_gp>;
746*fac71e4eSEmmanuel Vadot			status = "disabled";
7478cc087a1SEmmanuel Vadot		};
7488cc087a1SEmmanuel Vadot
7498cc087a1SEmmanuel Vadot		pcie0: pcie@690000000 {
7508cc087a1SEmmanuel Vadot			compatible = "apple,t8103-pcie", "apple,pcie";
7518cc087a1SEmmanuel Vadot			device_type = "pci";
7528cc087a1SEmmanuel Vadot
7538cc087a1SEmmanuel Vadot			reg = <0x6 0x90000000 0x0 0x1000000>,
7548cc087a1SEmmanuel Vadot			      <0x6 0x80000000 0x0 0x100000>,
7558cc087a1SEmmanuel Vadot			      <0x6 0x81000000 0x0 0x4000>,
7568cc087a1SEmmanuel Vadot			      <0x6 0x82000000 0x0 0x4000>,
7578cc087a1SEmmanuel Vadot			      <0x6 0x83000000 0x0 0x4000>;
7588cc087a1SEmmanuel Vadot			reg-names = "config", "rc", "port0", "port1", "port2";
7598cc087a1SEmmanuel Vadot
7608cc087a1SEmmanuel Vadot			interrupt-parent = <&aic>;
7618cc087a1SEmmanuel Vadot			interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>,
7628cc087a1SEmmanuel Vadot				     <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>,
7638cc087a1SEmmanuel Vadot				     <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>;
7648cc087a1SEmmanuel Vadot
7658cc087a1SEmmanuel Vadot			msi-controller;
7668cc087a1SEmmanuel Vadot			msi-parent = <&pcie0>;
7678cc087a1SEmmanuel Vadot			msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>;
7688cc087a1SEmmanuel Vadot
7698cc087a1SEmmanuel Vadot
7708cc087a1SEmmanuel Vadot			iommu-map = <0x100 &pcie0_dart_0 1 1>,
7718cc087a1SEmmanuel Vadot				    <0x200 &pcie0_dart_1 1 1>,
7728cc087a1SEmmanuel Vadot				    <0x300 &pcie0_dart_2 1 1>;
7738cc087a1SEmmanuel Vadot			iommu-map-mask = <0xff00>;
7748cc087a1SEmmanuel Vadot
7758cc087a1SEmmanuel Vadot			bus-range = <0 3>;
7768cc087a1SEmmanuel Vadot			#address-cells = <3>;
7778cc087a1SEmmanuel Vadot			#size-cells = <2>;
7788cc087a1SEmmanuel Vadot			ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
7798cc087a1SEmmanuel Vadot				 <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
7808cc087a1SEmmanuel Vadot
781e67e8565SEmmanuel Vadot			power-domains = <&ps_apcie_gp>;
7828cc087a1SEmmanuel Vadot			pinctrl-0 = <&pcie_pins>;
7838cc087a1SEmmanuel Vadot			pinctrl-names = "default";
7848cc087a1SEmmanuel Vadot
7858cc087a1SEmmanuel Vadot			port00: pci@0,0 {
7868cc087a1SEmmanuel Vadot				device_type = "pci";
7878cc087a1SEmmanuel Vadot				reg = <0x0 0x0 0x0 0x0 0x0>;
7888cc087a1SEmmanuel Vadot				reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>;
7898cc087a1SEmmanuel Vadot
7908cc087a1SEmmanuel Vadot				#address-cells = <3>;
7918cc087a1SEmmanuel Vadot				#size-cells = <2>;
7928cc087a1SEmmanuel Vadot				ranges;
7938cc087a1SEmmanuel Vadot
7948cc087a1SEmmanuel Vadot				interrupt-controller;
7958cc087a1SEmmanuel Vadot				#interrupt-cells = <1>;
7968cc087a1SEmmanuel Vadot
7978cc087a1SEmmanuel Vadot				interrupt-map-mask = <0 0 0 7>;
7988cc087a1SEmmanuel Vadot				interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
7998cc087a1SEmmanuel Vadot						<0 0 0 2 &port00 0 0 0 1>,
8008cc087a1SEmmanuel Vadot						<0 0 0 3 &port00 0 0 0 2>,
8018cc087a1SEmmanuel Vadot						<0 0 0 4 &port00 0 0 0 3>;
8028cc087a1SEmmanuel Vadot			};
8038cc087a1SEmmanuel Vadot
8048cc087a1SEmmanuel Vadot			port01: pci@1,0 {
8058cc087a1SEmmanuel Vadot				device_type = "pci";
8068cc087a1SEmmanuel Vadot				reg = <0x800 0x0 0x0 0x0 0x0>;
8078cc087a1SEmmanuel Vadot				reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>;
8088cc087a1SEmmanuel Vadot
8098cc087a1SEmmanuel Vadot				#address-cells = <3>;
8108cc087a1SEmmanuel Vadot				#size-cells = <2>;
8118cc087a1SEmmanuel Vadot				ranges;
8128cc087a1SEmmanuel Vadot
8138cc087a1SEmmanuel Vadot				interrupt-controller;
8148cc087a1SEmmanuel Vadot				#interrupt-cells = <1>;
8158cc087a1SEmmanuel Vadot
8168cc087a1SEmmanuel Vadot				interrupt-map-mask = <0 0 0 7>;
8178cc087a1SEmmanuel Vadot				interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
8188cc087a1SEmmanuel Vadot						<0 0 0 2 &port01 0 0 0 1>,
8198cc087a1SEmmanuel Vadot						<0 0 0 3 &port01 0 0 0 2>,
8208cc087a1SEmmanuel Vadot						<0 0 0 4 &port01 0 0 0 3>;
821*fac71e4eSEmmanuel Vadot				status = "disabled";
8228cc087a1SEmmanuel Vadot			};
8238cc087a1SEmmanuel Vadot
8248cc087a1SEmmanuel Vadot			port02: pci@2,0 {
8258cc087a1SEmmanuel Vadot				device_type = "pci";
8268cc087a1SEmmanuel Vadot				reg = <0x1000 0x0 0x0 0x0 0x0>;
8278cc087a1SEmmanuel Vadot				reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
8288cc087a1SEmmanuel Vadot
8298cc087a1SEmmanuel Vadot				#address-cells = <3>;
8308cc087a1SEmmanuel Vadot				#size-cells = <2>;
8318cc087a1SEmmanuel Vadot				ranges;
8328cc087a1SEmmanuel Vadot
8338cc087a1SEmmanuel Vadot				interrupt-controller;
8348cc087a1SEmmanuel Vadot				#interrupt-cells = <1>;
8358cc087a1SEmmanuel Vadot
8368cc087a1SEmmanuel Vadot				interrupt-map-mask = <0 0 0 7>;
8378cc087a1SEmmanuel Vadot				interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
8388cc087a1SEmmanuel Vadot						<0 0 0 2 &port02 0 0 0 1>,
8398cc087a1SEmmanuel Vadot						<0 0 0 3 &port02 0 0 0 2>,
8408cc087a1SEmmanuel Vadot						<0 0 0 4 &port02 0 0 0 3>;
841*fac71e4eSEmmanuel Vadot				status = "disabled";
8428cc087a1SEmmanuel Vadot			};
8438cc087a1SEmmanuel Vadot		};
8442eb4d8dcSEmmanuel Vadot	};
8452eb4d8dcSEmmanuel Vadot};
846e67e8565SEmmanuel Vadot
847e67e8565SEmmanuel Vadot#include "t8103-pmgr.dtsi"
848