xref: /linux/scripts/dtc/include-prefixes/arm64/apple/t8112.dtsi (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
12d5ce3fbSHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT
22d5ce3fbSHector Martin/*
32d5ce3fbSHector Martin * Apple T8112 "M2" SoC
42d5ce3fbSHector Martin *
52d5ce3fbSHector Martin * Other names: H14G
62d5ce3fbSHector Martin *
72d5ce3fbSHector Martin * Copyright The Asahi Linux Contributors
82d5ce3fbSHector Martin */
92d5ce3fbSHector Martin
102d5ce3fbSHector Martin#include <dt-bindings/gpio/gpio.h>
112d5ce3fbSHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h>
122d5ce3fbSHector Martin#include <dt-bindings/interrupt-controller/irq.h>
132d5ce3fbSHector Martin#include <dt-bindings/pinctrl/apple.h>
142d5ce3fbSHector Martin#include <dt-bindings/spmi/spmi.h>
152d5ce3fbSHector Martin
162d5ce3fbSHector Martin/ {
172d5ce3fbSHector Martin	compatible = "apple,t8112", "apple,arm-platform";
182d5ce3fbSHector Martin
192d5ce3fbSHector Martin	#address-cells = <2>;
202d5ce3fbSHector Martin	#size-cells = <2>;
212d5ce3fbSHector Martin
22*76f3ffebSSasha Finkelstein	aliases {
23*76f3ffebSSasha Finkelstein		gpu = &gpu;
24*76f3ffebSSasha Finkelstein	};
25*76f3ffebSSasha Finkelstein
262d5ce3fbSHector Martin	cpus {
272d5ce3fbSHector Martin		#address-cells = <2>;
282d5ce3fbSHector Martin		#size-cells = <0>;
292d5ce3fbSHector Martin
302d5ce3fbSHector Martin		cpu-map {
312d5ce3fbSHector Martin			cluster0 {
322d5ce3fbSHector Martin				core0 {
332d5ce3fbSHector Martin					cpu = <&cpu_e0>;
342d5ce3fbSHector Martin				};
352d5ce3fbSHector Martin				core1 {
362d5ce3fbSHector Martin					cpu = <&cpu_e1>;
372d5ce3fbSHector Martin				};
382d5ce3fbSHector Martin				core2 {
392d5ce3fbSHector Martin					cpu = <&cpu_e2>;
402d5ce3fbSHector Martin				};
412d5ce3fbSHector Martin				core3 {
422d5ce3fbSHector Martin					cpu = <&cpu_e3>;
432d5ce3fbSHector Martin				};
442d5ce3fbSHector Martin			};
452d5ce3fbSHector Martin
462d5ce3fbSHector Martin			cluster1 {
472d5ce3fbSHector Martin				core0 {
482d5ce3fbSHector Martin					cpu = <&cpu_p0>;
492d5ce3fbSHector Martin				};
502d5ce3fbSHector Martin				core1 {
512d5ce3fbSHector Martin					cpu = <&cpu_p1>;
522d5ce3fbSHector Martin				};
532d5ce3fbSHector Martin				core2 {
542d5ce3fbSHector Martin					cpu = <&cpu_p2>;
552d5ce3fbSHector Martin				};
562d5ce3fbSHector Martin				core3 {
572d5ce3fbSHector Martin					cpu = <&cpu_p3>;
582d5ce3fbSHector Martin				};
592d5ce3fbSHector Martin			};
602d5ce3fbSHector Martin		};
612d5ce3fbSHector Martin
622d5ce3fbSHector Martin		cpu_e0: cpu@0 {
632d5ce3fbSHector Martin			compatible = "apple,blizzard";
642d5ce3fbSHector Martin			device_type = "cpu";
652d5ce3fbSHector Martin			reg = <0x0 0x0>;
662d5ce3fbSHector Martin			enable-method = "spin-table";
672d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
682d5ce3fbSHector Martin			operating-points-v2 = <&ecluster_opp>;
692d5ce3fbSHector Martin			capacity-dmips-mhz = <756>;
702d5ce3fbSHector Martin			performance-domains = <&cpufreq_e>;
712d5ce3fbSHector Martin			next-level-cache = <&l2_cache_0>;
722d5ce3fbSHector Martin			i-cache-size = <0x20000>;
732d5ce3fbSHector Martin			d-cache-size = <0x10000>;
742d5ce3fbSHector Martin		};
752d5ce3fbSHector Martin
762d5ce3fbSHector Martin		cpu_e1: cpu@1 {
772d5ce3fbSHector Martin			compatible = "apple,blizzard";
782d5ce3fbSHector Martin			device_type = "cpu";
792d5ce3fbSHector Martin			reg = <0x0 0x1>;
802d5ce3fbSHector Martin			enable-method = "spin-table";
812d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
822d5ce3fbSHector Martin			operating-points-v2 = <&ecluster_opp>;
832d5ce3fbSHector Martin			capacity-dmips-mhz = <756>;
842d5ce3fbSHector Martin			performance-domains = <&cpufreq_e>;
852d5ce3fbSHector Martin			next-level-cache = <&l2_cache_0>;
862d5ce3fbSHector Martin			i-cache-size = <0x20000>;
872d5ce3fbSHector Martin			d-cache-size = <0x10000>;
882d5ce3fbSHector Martin		};
892d5ce3fbSHector Martin
902d5ce3fbSHector Martin		cpu_e2: cpu@2 {
912d5ce3fbSHector Martin			compatible = "apple,blizzard";
922d5ce3fbSHector Martin			device_type = "cpu";
932d5ce3fbSHector Martin			reg = <0x0 0x2>;
942d5ce3fbSHector Martin			enable-method = "spin-table";
952d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
962d5ce3fbSHector Martin			operating-points-v2 = <&ecluster_opp>;
972d5ce3fbSHector Martin			capacity-dmips-mhz = <756>;
982d5ce3fbSHector Martin			performance-domains = <&cpufreq_e>;
992d5ce3fbSHector Martin			next-level-cache = <&l2_cache_0>;
1002d5ce3fbSHector Martin			i-cache-size = <0x20000>;
1012d5ce3fbSHector Martin			d-cache-size = <0x10000>;
1022d5ce3fbSHector Martin		};
1032d5ce3fbSHector Martin
1042d5ce3fbSHector Martin		cpu_e3: cpu@3 {
1052d5ce3fbSHector Martin			compatible = "apple,blizzard";
1062d5ce3fbSHector Martin			device_type = "cpu";
1072d5ce3fbSHector Martin			reg = <0x0 0x3>;
1082d5ce3fbSHector Martin			enable-method = "spin-table";
1092d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
1102d5ce3fbSHector Martin			operating-points-v2 = <&ecluster_opp>;
1112d5ce3fbSHector Martin			capacity-dmips-mhz = <756>;
1122d5ce3fbSHector Martin			performance-domains = <&cpufreq_e>;
1132d5ce3fbSHector Martin			next-level-cache = <&l2_cache_0>;
1142d5ce3fbSHector Martin			i-cache-size = <0x20000>;
1152d5ce3fbSHector Martin			d-cache-size = <0x10000>;
1162d5ce3fbSHector Martin		};
1172d5ce3fbSHector Martin
1182d5ce3fbSHector Martin		cpu_p0: cpu@10100 {
1192d5ce3fbSHector Martin			compatible = "apple,avalanche";
1202d5ce3fbSHector Martin			device_type = "cpu";
1212d5ce3fbSHector Martin			reg = <0x0 0x10100>;
1222d5ce3fbSHector Martin			enable-method = "spin-table";
1232d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
1242d5ce3fbSHector Martin			operating-points-v2 = <&pcluster_opp>;
1252d5ce3fbSHector Martin			capacity-dmips-mhz = <1024>;
1262d5ce3fbSHector Martin			performance-domains = <&cpufreq_p>;
1272d5ce3fbSHector Martin			next-level-cache = <&l2_cache_1>;
1282d5ce3fbSHector Martin			i-cache-size = <0x30000>;
1292d5ce3fbSHector Martin			d-cache-size = <0x20000>;
1302d5ce3fbSHector Martin		};
1312d5ce3fbSHector Martin
1322d5ce3fbSHector Martin		cpu_p1: cpu@10101 {
1332d5ce3fbSHector Martin			compatible = "apple,avalanche";
1342d5ce3fbSHector Martin			device_type = "cpu";
1352d5ce3fbSHector Martin			reg = <0x0 0x10101>;
1362d5ce3fbSHector Martin			enable-method = "spin-table";
1372d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
1382d5ce3fbSHector Martin			operating-points-v2 = <&pcluster_opp>;
1392d5ce3fbSHector Martin			capacity-dmips-mhz = <1024>;
1402d5ce3fbSHector Martin			performance-domains = <&cpufreq_p>;
1412d5ce3fbSHector Martin			next-level-cache = <&l2_cache_1>;
1422d5ce3fbSHector Martin			i-cache-size = <0x30000>;
1432d5ce3fbSHector Martin			d-cache-size = <0x20000>;
1442d5ce3fbSHector Martin		};
1452d5ce3fbSHector Martin
1462d5ce3fbSHector Martin		cpu_p2: cpu@10102 {
1472d5ce3fbSHector Martin			compatible = "apple,avalanche";
1482d5ce3fbSHector Martin			device_type = "cpu";
1492d5ce3fbSHector Martin			reg = <0x0 0x10102>;
1502d5ce3fbSHector Martin			enable-method = "spin-table";
1512d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
1522d5ce3fbSHector Martin			operating-points-v2 = <&pcluster_opp>;
1532d5ce3fbSHector Martin			capacity-dmips-mhz = <1024>;
1542d5ce3fbSHector Martin			performance-domains = <&cpufreq_p>;
1552d5ce3fbSHector Martin			next-level-cache = <&l2_cache_1>;
1562d5ce3fbSHector Martin			i-cache-size = <0x30000>;
1572d5ce3fbSHector Martin			d-cache-size = <0x20000>;
1582d5ce3fbSHector Martin		};
1592d5ce3fbSHector Martin
1602d5ce3fbSHector Martin		cpu_p3: cpu@10103 {
1612d5ce3fbSHector Martin			compatible = "apple,avalanche";
1622d5ce3fbSHector Martin			device_type = "cpu";
1632d5ce3fbSHector Martin			reg = <0x0 0x10103>;
1642d5ce3fbSHector Martin			enable-method = "spin-table";
1652d5ce3fbSHector Martin			cpu-release-addr = <0 0>; /* To be filled by loader */
1662d5ce3fbSHector Martin			operating-points-v2 = <&pcluster_opp>;
1672d5ce3fbSHector Martin			capacity-dmips-mhz = <1024>;
1682d5ce3fbSHector Martin			performance-domains = <&cpufreq_p>;
1692d5ce3fbSHector Martin			next-level-cache = <&l2_cache_1>;
1702d5ce3fbSHector Martin			i-cache-size = <0x30000>;
1712d5ce3fbSHector Martin			d-cache-size = <0x20000>;
1722d5ce3fbSHector Martin		};
1732d5ce3fbSHector Martin
1742d5ce3fbSHector Martin		l2_cache_0: l2-cache-0 {
1752d5ce3fbSHector Martin			compatible = "cache";
1762d5ce3fbSHector Martin			cache-level = <2>;
1772d5ce3fbSHector Martin			cache-unified;
1782d5ce3fbSHector Martin			cache-size = <0x400000>;
1792d5ce3fbSHector Martin		};
1802d5ce3fbSHector Martin
1812d5ce3fbSHector Martin		l2_cache_1: l2-cache-1 {
1822d5ce3fbSHector Martin			compatible = "cache";
1832d5ce3fbSHector Martin			cache-level = <2>;
1842d5ce3fbSHector Martin			cache-unified;
1852d5ce3fbSHector Martin			cache-size = <0x1000000>;
1862d5ce3fbSHector Martin		};
1872d5ce3fbSHector Martin	};
1882d5ce3fbSHector Martin
1892d5ce3fbSHector Martin	ecluster_opp: opp-table-0 {
1902d5ce3fbSHector Martin		compatible = "operating-points-v2";
1912d5ce3fbSHector Martin		opp-shared;
1922d5ce3fbSHector Martin
1932d5ce3fbSHector Martin		opp01 {
1942d5ce3fbSHector Martin			opp-hz = /bits/ 64 <600000000>;
1952d5ce3fbSHector Martin			opp-level = <1>;
1962d5ce3fbSHector Martin			clock-latency-ns = <7500>;
1972d5ce3fbSHector Martin		};
1982d5ce3fbSHector Martin		opp02 {
1992d5ce3fbSHector Martin			opp-hz = /bits/ 64 <912000000>;
2002d5ce3fbSHector Martin			opp-level = <2>;
2012d5ce3fbSHector Martin			clock-latency-ns = <20000>;
2022d5ce3fbSHector Martin		};
2032d5ce3fbSHector Martin		opp03 {
2042d5ce3fbSHector Martin			opp-hz = /bits/ 64 <1284000000>;
2052d5ce3fbSHector Martin			opp-level = <3>;
2062d5ce3fbSHector Martin			clock-latency-ns = <22000>;
2072d5ce3fbSHector Martin		};
2082d5ce3fbSHector Martin		opp04 {
2092d5ce3fbSHector Martin			opp-hz = /bits/ 64 <1752000000>;
2102d5ce3fbSHector Martin			opp-level = <4>;
2112d5ce3fbSHector Martin			clock-latency-ns = <30000>;
2122d5ce3fbSHector Martin		};
2132d5ce3fbSHector Martin		opp05 {
2142d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2004000000>;
2152d5ce3fbSHector Martin			opp-level = <5>;
2162d5ce3fbSHector Martin			clock-latency-ns = <35000>;
2172d5ce3fbSHector Martin		};
2182d5ce3fbSHector Martin		opp06 {
2192d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2256000000>;
2202d5ce3fbSHector Martin			opp-level = <6>;
2212d5ce3fbSHector Martin			clock-latency-ns = <39000>;
2222d5ce3fbSHector Martin		};
2232d5ce3fbSHector Martin		opp07 {
2242d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2424000000>;
2252d5ce3fbSHector Martin			opp-level = <7>;
2262d5ce3fbSHector Martin			clock-latency-ns = <53000>;
2272d5ce3fbSHector Martin		};
2282d5ce3fbSHector Martin	};
2292d5ce3fbSHector Martin
2302d5ce3fbSHector Martin	pcluster_opp: opp-table-1 {
2312d5ce3fbSHector Martin		compatible = "operating-points-v2";
2322d5ce3fbSHector Martin		opp-shared;
2332d5ce3fbSHector Martin
2342d5ce3fbSHector Martin		opp01 {
2352d5ce3fbSHector Martin			opp-hz = /bits/ 64 <660000000>;
2362d5ce3fbSHector Martin			opp-level = <1>;
2372d5ce3fbSHector Martin			clock-latency-ns = <9000>;
2382d5ce3fbSHector Martin		};
2392d5ce3fbSHector Martin		opp02 {
2402d5ce3fbSHector Martin			opp-hz = /bits/ 64 <924000000>;
2412d5ce3fbSHector Martin			opp-level = <2>;
2422d5ce3fbSHector Martin			clock-latency-ns = <19000>;
2432d5ce3fbSHector Martin		};
2442d5ce3fbSHector Martin		opp03 {
2452d5ce3fbSHector Martin			opp-hz = /bits/ 64 <1188000000>;
2462d5ce3fbSHector Martin			opp-level = <3>;
2472d5ce3fbSHector Martin			clock-latency-ns = <22000>;
2482d5ce3fbSHector Martin		};
2492d5ce3fbSHector Martin		opp04 {
2502d5ce3fbSHector Martin			opp-hz = /bits/ 64 <1452000000>;
2512d5ce3fbSHector Martin			opp-level = <4>;
2522d5ce3fbSHector Martin			clock-latency-ns = <24000>;
2532d5ce3fbSHector Martin		};
2542d5ce3fbSHector Martin		opp05 {
2552d5ce3fbSHector Martin			opp-hz = /bits/ 64 <1704000000>;
2562d5ce3fbSHector Martin			opp-level = <5>;
2572d5ce3fbSHector Martin			clock-latency-ns = <26000>;
2582d5ce3fbSHector Martin		};
2592d5ce3fbSHector Martin		opp06 {
2602d5ce3fbSHector Martin			opp-hz = /bits/ 64 <1968000000>;
2612d5ce3fbSHector Martin			opp-level = <6>;
2622d5ce3fbSHector Martin			clock-latency-ns = <28000>;
2632d5ce3fbSHector Martin		};
2642d5ce3fbSHector Martin		opp07 {
2652d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2208000000>;
2662d5ce3fbSHector Martin			opp-level = <7>;
2672d5ce3fbSHector Martin			clock-latency-ns = <30000>;
2682d5ce3fbSHector Martin		};
2692d5ce3fbSHector Martin		opp08 {
2702d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2400000000>;
2712d5ce3fbSHector Martin			opp-level = <8>;
2722d5ce3fbSHector Martin			clock-latency-ns = <33000>;
2732d5ce3fbSHector Martin		};
2742d5ce3fbSHector Martin		opp09 {
2752d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2568000000>;
2762d5ce3fbSHector Martin			opp-level = <9>;
2772d5ce3fbSHector Martin			clock-latency-ns = <34000>;
2782d5ce3fbSHector Martin		};
2792d5ce3fbSHector Martin		opp10 {
2802d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2724000000>;
2812d5ce3fbSHector Martin			opp-level = <10>;
2822d5ce3fbSHector Martin			clock-latency-ns = <36000>;
2832d5ce3fbSHector Martin		};
2842d5ce3fbSHector Martin		opp11 {
2852d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2868000000>;
2862d5ce3fbSHector Martin			opp-level = <11>;
2872d5ce3fbSHector Martin			clock-latency-ns = <41000>;
2882d5ce3fbSHector Martin		};
2892d5ce3fbSHector Martin		opp12 {
2902d5ce3fbSHector Martin			opp-hz = /bits/ 64 <2988000000>;
2912d5ce3fbSHector Martin			opp-level = <12>;
2922d5ce3fbSHector Martin			clock-latency-ns = <42000>;
2932d5ce3fbSHector Martin		};
2942d5ce3fbSHector Martin		opp13 {
2952d5ce3fbSHector Martin			opp-hz = /bits/ 64 <3096000000>;
2962d5ce3fbSHector Martin			opp-level = <13>;
2972d5ce3fbSHector Martin			clock-latency-ns = <44000>;
2982d5ce3fbSHector Martin		};
2992d5ce3fbSHector Martin		opp14 {
3002d5ce3fbSHector Martin			opp-hz = /bits/ 64 <3204000000>;
3012d5ce3fbSHector Martin			opp-level = <14>;
3022d5ce3fbSHector Martin			clock-latency-ns = <46000>;
3032d5ce3fbSHector Martin		};
3042d5ce3fbSHector Martin		/* Not available until CPU deep sleep is implemented */
3052d5ce3fbSHector Martin#if 0
3062d5ce3fbSHector Martin		opp15 {
3072d5ce3fbSHector Martin			opp-hz = /bits/ 64 <3324000000>;
3082d5ce3fbSHector Martin			opp-level = <15>;
3092d5ce3fbSHector Martin			clock-latency-ns = <62000>;
3102d5ce3fbSHector Martin			turbo-mode;
3112d5ce3fbSHector Martin		};
3122d5ce3fbSHector Martin		opp16 {
3132d5ce3fbSHector Martin			opp-hz = /bits/ 64 <3408000000>;
3142d5ce3fbSHector Martin			opp-level = <16>;
3152d5ce3fbSHector Martin			clock-latency-ns = <62000>;
3162d5ce3fbSHector Martin			turbo-mode;
3172d5ce3fbSHector Martin		};
3182d5ce3fbSHector Martin		opp17 {
3192d5ce3fbSHector Martin			opp-hz = /bits/ 64 <3504000000>;
3202d5ce3fbSHector Martin			opp-level = <17>;
3212d5ce3fbSHector Martin			clock-latency-ns = <62000>;
3222d5ce3fbSHector Martin			turbo-mode;
3232d5ce3fbSHector Martin		};
3242d5ce3fbSHector Martin#endif
3252d5ce3fbSHector Martin	};
3262d5ce3fbSHector Martin
3272d5ce3fbSHector Martin	timer {
3282d5ce3fbSHector Martin		compatible = "arm,armv8-timer";
3292d5ce3fbSHector Martin		interrupt-parent = <&aic>;
3302d5ce3fbSHector Martin		interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
3312d5ce3fbSHector Martin		interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>,
3322d5ce3fbSHector Martin			     <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>,
3332d5ce3fbSHector Martin			     <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>,
3342d5ce3fbSHector Martin			     <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>;
3352d5ce3fbSHector Martin	};
3362d5ce3fbSHector Martin
3372d5ce3fbSHector Martin	pmu-e {
3382d5ce3fbSHector Martin		compatible = "apple,blizzard-pmu";
3392d5ce3fbSHector Martin		interrupt-parent = <&aic>;
3402d5ce3fbSHector Martin		interrupts = <AIC_FIQ AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>;
3412d5ce3fbSHector Martin	};
3422d5ce3fbSHector Martin
3432d5ce3fbSHector Martin	pmu-p {
3442d5ce3fbSHector Martin		compatible = "apple,avalanche-pmu";
3452d5ce3fbSHector Martin		interrupt-parent = <&aic>;
3462d5ce3fbSHector Martin		interrupts = <AIC_FIQ AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>;
3472d5ce3fbSHector Martin	};
3482d5ce3fbSHector Martin
3492d5ce3fbSHector Martin	clkref: clock-ref {
3502d5ce3fbSHector Martin		compatible = "fixed-clock";
3512d5ce3fbSHector Martin		#clock-cells = <0>;
3522d5ce3fbSHector Martin		clock-frequency = <24000000>;
3532d5ce3fbSHector Martin		clock-output-names = "clkref";
3542d5ce3fbSHector Martin	};
3552d5ce3fbSHector Martin
3560a6d561cSJanne Grunau	clk_200m: clock-200m {
3570a6d561cSJanne Grunau		compatible = "fixed-clock";
3580a6d561cSJanne Grunau		#clock-cells = <0>;
3590a6d561cSJanne Grunau		clock-frequency = <200000000>;
3600a6d561cSJanne Grunau		clock-output-names = "clk_200m";
3610a6d561cSJanne Grunau	};
3620a6d561cSJanne Grunau
3632d5ce3fbSHector Martin	/*
3642d5ce3fbSHector Martin	 * This is a fabulated representation of the input clock
3652d5ce3fbSHector Martin	 * to NCO since we don't know the true clock tree.
3662d5ce3fbSHector Martin	 */
3672d5ce3fbSHector Martin	nco_clkref: clock-ref-nco {
3682d5ce3fbSHector Martin		compatible = "fixed-clock";
3692d5ce3fbSHector Martin		#clock-cells = <0>;
3702d5ce3fbSHector Martin		clock-output-names = "nco_ref";
3712d5ce3fbSHector Martin	};
3722d5ce3fbSHector Martin
373*76f3ffebSSasha Finkelstein	reserved-memory {
374*76f3ffebSSasha Finkelstein		#address-cells = <2>;
375*76f3ffebSSasha Finkelstein		#size-cells = <2>;
376*76f3ffebSSasha Finkelstein		ranges;
377*76f3ffebSSasha Finkelstein
378*76f3ffebSSasha Finkelstein		gpu_globals: globals {
379*76f3ffebSSasha Finkelstein			status = "disabled";
380*76f3ffebSSasha Finkelstein		};
381*76f3ffebSSasha Finkelstein
382*76f3ffebSSasha Finkelstein		gpu_hw_cal_a: hw-cal-a {
383*76f3ffebSSasha Finkelstein			status = "disabled";
384*76f3ffebSSasha Finkelstein		};
385*76f3ffebSSasha Finkelstein
386*76f3ffebSSasha Finkelstein		gpu_hw_cal_b: hw-cal-b {
387*76f3ffebSSasha Finkelstein			status = "disabled";
388*76f3ffebSSasha Finkelstein		};
389*76f3ffebSSasha Finkelstein
390*76f3ffebSSasha Finkelstein		uat_handoff: uat-handoff {
391*76f3ffebSSasha Finkelstein			status = "disabled";
392*76f3ffebSSasha Finkelstein		};
393*76f3ffebSSasha Finkelstein
394*76f3ffebSSasha Finkelstein		uat_pagetables: uat-pagetables {
395*76f3ffebSSasha Finkelstein			status = "disabled";
396*76f3ffebSSasha Finkelstein		};
397*76f3ffebSSasha Finkelstein
398*76f3ffebSSasha Finkelstein		uat_ttbs: uat-ttbs {
399*76f3ffebSSasha Finkelstein			status = "disabled";
400*76f3ffebSSasha Finkelstein		};
401*76f3ffebSSasha Finkelstein	};
402*76f3ffebSSasha Finkelstein
4032d5ce3fbSHector Martin	soc {
4042d5ce3fbSHector Martin		compatible = "simple-bus";
4052d5ce3fbSHector Martin		#address-cells = <2>;
4062d5ce3fbSHector Martin		#size-cells = <2>;
4072d5ce3fbSHector Martin
4082d5ce3fbSHector Martin		ranges;
4092d5ce3fbSHector Martin		nonposted-mmio;
4102d5ce3fbSHector Martin
411*76f3ffebSSasha Finkelstein		gpu: gpu@206400000 {
412*76f3ffebSSasha Finkelstein			compatible = "apple,agx-g14g";
413*76f3ffebSSasha Finkelstein			reg = <0x2 0x6400000 0 0x40000>,
414*76f3ffebSSasha Finkelstein				<0x2 0x4000000 0 0x1000000>;
415*76f3ffebSSasha Finkelstein			reg-names = "asc", "sgx";
416*76f3ffebSSasha Finkelstein			mboxes = <&agx_mbox>;
417*76f3ffebSSasha Finkelstein			power-domains = <&ps_gfx>;
418*76f3ffebSSasha Finkelstein			memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>,
419*76f3ffebSSasha Finkelstein					<&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>;
420*76f3ffebSSasha Finkelstein			memory-region-names = "ttbs", "pagetables", "handoff",
421*76f3ffebSSasha Finkelstein					      "hw-cal-a", "hw-cal-b", "globals";
422*76f3ffebSSasha Finkelstein
423*76f3ffebSSasha Finkelstein			apple,firmware-abi = <0 0 0>;
424*76f3ffebSSasha Finkelstein		};
425*76f3ffebSSasha Finkelstein
426*76f3ffebSSasha Finkelstein		agx_mbox: mbox@206408000 {
427*76f3ffebSSasha Finkelstein			compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4";
428*76f3ffebSSasha Finkelstein			reg = <0x2 0x6408000 0x0 0x4000>;
429*76f3ffebSSasha Finkelstein			interrupt-parent = <&aic>;
430*76f3ffebSSasha Finkelstein			interrupts = <AIC_IRQ 709 IRQ_TYPE_LEVEL_HIGH>,
431*76f3ffebSSasha Finkelstein				<AIC_IRQ 710 IRQ_TYPE_LEVEL_HIGH>,
432*76f3ffebSSasha Finkelstein				<AIC_IRQ 711 IRQ_TYPE_LEVEL_HIGH>,
433*76f3ffebSSasha Finkelstein				<AIC_IRQ 712 IRQ_TYPE_LEVEL_HIGH>;
434*76f3ffebSSasha Finkelstein			interrupt-names = "send-empty", "send-not-empty",
435*76f3ffebSSasha Finkelstein				"recv-empty", "recv-not-empty";
436*76f3ffebSSasha Finkelstein			#mbox-cells = <0>;
437*76f3ffebSSasha Finkelstein		};
438*76f3ffebSSasha Finkelstein
4392d5ce3fbSHector Martin		cpufreq_e: cpufreq@210e20000 {
4402d5ce3fbSHector Martin			compatible = "apple,t8112-cluster-cpufreq", "apple,cluster-cpufreq";
4412d5ce3fbSHector Martin			reg = <0x2 0x10e20000 0 0x1000>;
4422d5ce3fbSHector Martin			#performance-domain-cells = <0>;
4432d5ce3fbSHector Martin		};
4442d5ce3fbSHector Martin
4452d5ce3fbSHector Martin		cpufreq_p: cpufreq@211e20000 {
4462d5ce3fbSHector Martin			compatible = "apple,t8112-cluster-cpufreq", "apple,cluster-cpufreq";
4472d5ce3fbSHector Martin			reg = <0x2 0x11e20000 0 0x1000>;
4482d5ce3fbSHector Martin			#performance-domain-cells = <0>;
4492d5ce3fbSHector Martin		};
4502d5ce3fbSHector Martin
4517275e795SSasha Finkelstein		display_dfr: display-pipe@228200000 {
4527275e795SSasha Finkelstein			compatible = "apple,t8112-display-pipe", "apple,h7-display-pipe";
4537275e795SSasha Finkelstein			reg = <0x2 0x28200000 0x0 0xc000>,
4547275e795SSasha Finkelstein			      <0x2 0x28400000 0x0 0x4000>;
4557275e795SSasha Finkelstein			reg-names = "be", "fe";
4567275e795SSasha Finkelstein			power-domains = <&ps_dispdfr_fe>, <&ps_dispdfr_be>;
4577275e795SSasha Finkelstein			interrupt-parent = <&aic>;
4587275e795SSasha Finkelstein			interrupts = <AIC_IRQ 614 IRQ_TYPE_LEVEL_HIGH>,
4597275e795SSasha Finkelstein				     <AIC_IRQ 618 IRQ_TYPE_LEVEL_HIGH>;
4607275e795SSasha Finkelstein			interrupt-names = "be", "fe";
4617275e795SSasha Finkelstein			iommus = <&displaydfr_dart 0>;
4627275e795SSasha Finkelstein			status = "disabled";
4637275e795SSasha Finkelstein
4647275e795SSasha Finkelstein			port {
4657275e795SSasha Finkelstein				dfr_adp_out_mipi: endpoint {
4667275e795SSasha Finkelstein					remote-endpoint = <&dfr_mipi_in_adp>;
4677275e795SSasha Finkelstein				};
4687275e795SSasha Finkelstein			};
4697275e795SSasha Finkelstein		};
4707275e795SSasha Finkelstein
4717275e795SSasha Finkelstein		displaydfr_dart: iommu@228304000 {
4727275e795SSasha Finkelstein			compatible = "apple,t8110-dart";
4737275e795SSasha Finkelstein			reg = <0x2 0x28304000 0x0 0x4000>;
4747275e795SSasha Finkelstein			interrupt-parent = <&aic>;
4757275e795SSasha Finkelstein			interrupts = <AIC_IRQ 616 IRQ_TYPE_LEVEL_HIGH>;
4767275e795SSasha Finkelstein			#iommu-cells = <1>;
4777275e795SSasha Finkelstein			power-domains = <&ps_dispdfr_fe>;
4787275e795SSasha Finkelstein			status = "disabled";
4797275e795SSasha Finkelstein		};
4807275e795SSasha Finkelstein
4817275e795SSasha Finkelstein		displaydfr_mipi: dsi@228600000 {
4827275e795SSasha Finkelstein			compatible = "apple,t8112-display-pipe-mipi", "apple,h7-display-pipe-mipi";
4837275e795SSasha Finkelstein			reg = <0x2 0x28600000 0x0 0x100000>;
4847275e795SSasha Finkelstein			power-domains = <&ps_mipi_dsi>;
4857275e795SSasha Finkelstein			status = "disabled";
4867275e795SSasha Finkelstein
4877275e795SSasha Finkelstein			ports {
4887275e795SSasha Finkelstein				#address-cells = <1>;
4897275e795SSasha Finkelstein				#size-cells = <0>;
4907275e795SSasha Finkelstein
4917275e795SSasha Finkelstein				dfr_mipi_in: port@0 {
4927275e795SSasha Finkelstein					reg = <0>;
4937275e795SSasha Finkelstein					#address-cells = <1>;
4947275e795SSasha Finkelstein					#size-cells = <0>;
4957275e795SSasha Finkelstein
4967275e795SSasha Finkelstein					dfr_mipi_in_adp: endpoint@0 {
4977275e795SSasha Finkelstein						reg = <0>;
4987275e795SSasha Finkelstein						remote-endpoint = <&dfr_adp_out_mipi>;
4997275e795SSasha Finkelstein					};
5007275e795SSasha Finkelstein				};
5017275e795SSasha Finkelstein
5027275e795SSasha Finkelstein				dfr_mipi_out: port@1 {
5037275e795SSasha Finkelstein					reg = <1>;
5047275e795SSasha Finkelstein					#address-cells = <1>;
5057275e795SSasha Finkelstein					#size-cells = <0>;
5067275e795SSasha Finkelstein				};
5077275e795SSasha Finkelstein			};
5087275e795SSasha Finkelstein		};
5097275e795SSasha Finkelstein
5102d5ce3fbSHector Martin		sio_dart: iommu@235004000 {
5112d5ce3fbSHector Martin			compatible = "apple,t8110-dart";
5122d5ce3fbSHector Martin			reg = <0x2 0x35004000 0x0 0x4000>;
5132d5ce3fbSHector Martin			interrupt-parent = <&aic>;
5142d5ce3fbSHector Martin			interrupts = <AIC_IRQ 769 IRQ_TYPE_LEVEL_HIGH>;
5152d5ce3fbSHector Martin			#iommu-cells = <1>;
5162d5ce3fbSHector Martin			power-domains = <&ps_sio_cpu>;
5172d5ce3fbSHector Martin		};
5182d5ce3fbSHector Martin
5192d5ce3fbSHector Martin		i2c0: i2c@235010000 {
5202d5ce3fbSHector Martin			compatible = "apple,t8112-i2c", "apple,i2c";
5212d5ce3fbSHector Martin			reg = <0x2 0x35010000 0x0 0x4000>;
5222d5ce3fbSHector Martin			clocks = <&clkref>;
5232d5ce3fbSHector Martin			interrupt-parent = <&aic>;
5242d5ce3fbSHector Martin			interrupts = <AIC_IRQ 761 IRQ_TYPE_LEVEL_HIGH>;
5252d5ce3fbSHector Martin			pinctrl-0 = <&i2c0_pins>;
5262d5ce3fbSHector Martin			pinctrl-names = "default";
5272d5ce3fbSHector Martin			#address-cells = <0x1>;
5282d5ce3fbSHector Martin			#size-cells = <0x0>;
5292d5ce3fbSHector Martin			power-domains = <&ps_i2c0>;
5302d5ce3fbSHector Martin			status = "disabled";
5312d5ce3fbSHector Martin		};
5322d5ce3fbSHector Martin
5332d5ce3fbSHector Martin		i2c1: i2c@235014000 {
5342d5ce3fbSHector Martin			compatible = "apple,t8112-i2c", "apple,i2c";
5352d5ce3fbSHector Martin			reg = <0x2 0x35014000 0x0 0x4000>;
5362d5ce3fbSHector Martin			clocks = <&clkref>;
5372d5ce3fbSHector Martin			interrupt-parent = <&aic>;
5382d5ce3fbSHector Martin			interrupts = <AIC_IRQ 762 IRQ_TYPE_LEVEL_HIGH>;
5392d5ce3fbSHector Martin			pinctrl-0 = <&i2c1_pins>;
5402d5ce3fbSHector Martin			pinctrl-names = "default";
5412d5ce3fbSHector Martin			#address-cells = <0x1>;
5422d5ce3fbSHector Martin			#size-cells = <0x0>;
5432d5ce3fbSHector Martin			power-domains = <&ps_i2c1>;
5442d5ce3fbSHector Martin			status = "disabled";
5452d5ce3fbSHector Martin		};
5462d5ce3fbSHector Martin
5472d5ce3fbSHector Martin		i2c2: i2c@235018000 {
5482d5ce3fbSHector Martin			compatible = "apple,t8112-i2c", "apple,i2c";
5492d5ce3fbSHector Martin			reg = <0x2 0x35018000 0x0 0x4000>;
5502d5ce3fbSHector Martin			clocks = <&clkref>;
5512d5ce3fbSHector Martin			interrupt-parent = <&aic>;
5522d5ce3fbSHector Martin			interrupts = <AIC_IRQ 763 IRQ_TYPE_LEVEL_HIGH>;
5532d5ce3fbSHector Martin			pinctrl-0 = <&i2c2_pins>;
5542d5ce3fbSHector Martin			pinctrl-names = "default";
5552d5ce3fbSHector Martin			#address-cells = <0x1>;
5562d5ce3fbSHector Martin			#size-cells = <0x0>;
5572d5ce3fbSHector Martin			power-domains = <&ps_i2c2>;
5582d5ce3fbSHector Martin			status = "disabled";
5592d5ce3fbSHector Martin		};
5602d5ce3fbSHector Martin
5612d5ce3fbSHector Martin		i2c3: i2c@23501c000 {
5622d5ce3fbSHector Martin			compatible = "apple,t8112-i2c", "apple,i2c";
5632d5ce3fbSHector Martin			reg = <0x2 0x3501c000 0x0 0x4000>;
5642d5ce3fbSHector Martin			clocks = <&clkref>;
5652d5ce3fbSHector Martin			interrupt-parent = <&aic>;
5662d5ce3fbSHector Martin			interrupts = <AIC_IRQ 764 IRQ_TYPE_LEVEL_HIGH>;
5672d5ce3fbSHector Martin			pinctrl-0 = <&i2c3_pins>;
5682d5ce3fbSHector Martin			pinctrl-names = "default";
5692d5ce3fbSHector Martin			#address-cells = <0x1>;
5702d5ce3fbSHector Martin			#size-cells = <0x0>;
5712d5ce3fbSHector Martin			power-domains = <&ps_i2c3>;
5722d5ce3fbSHector Martin			status = "disabled";
5732d5ce3fbSHector Martin		};
5742d5ce3fbSHector Martin
5752d5ce3fbSHector Martin		i2c4: i2c@235020000 {
5762d5ce3fbSHector Martin			compatible = "apple,t8112-i2c", "apple,i2c";
5772d5ce3fbSHector Martin			reg = <0x2 0x35020000 0x0 0x4000>;
5782d5ce3fbSHector Martin			clocks = <&clkref>;
5792d5ce3fbSHector Martin			interrupt-parent = <&aic>;
5802d5ce3fbSHector Martin			interrupts = <AIC_IRQ 765 IRQ_TYPE_LEVEL_HIGH>;
5812d5ce3fbSHector Martin			pinctrl-0 = <&i2c4_pins>;
5822d5ce3fbSHector Martin			pinctrl-names = "default";
5832d5ce3fbSHector Martin			#address-cells = <0x1>;
5842d5ce3fbSHector Martin			#size-cells = <0x0>;
5852d5ce3fbSHector Martin			power-domains = <&ps_i2c4>;
5862d5ce3fbSHector Martin			status = "disabled";
5872d5ce3fbSHector Martin		};
5882d5ce3fbSHector Martin
58950aa09acSSasha Finkelstein		fpwm1: pwm@235044000 {
59050aa09acSSasha Finkelstein			compatible = "apple,t8112-fpwm", "apple,s5l-fpwm";
59150aa09acSSasha Finkelstein			reg = <0x2 0x35044000 0x0 0x4000>;
59250aa09acSSasha Finkelstein			power-domains = <&ps_fpwm1>;
59350aa09acSSasha Finkelstein			clocks = <&clkref>;
59450aa09acSSasha Finkelstein			#pwm-cells = <2>;
59550aa09acSSasha Finkelstein			status = "disabled";
59650aa09acSSasha Finkelstein		};
59750aa09acSSasha Finkelstein
5980a6d561cSJanne Grunau		spi1: spi@235104000 {
5990a6d561cSJanne Grunau			compatible = "apple,t8112-spi", "apple,spi";
6000a6d561cSJanne Grunau			reg = <0x2 0x35104000 0x0 0x4000>;
6010a6d561cSJanne Grunau			interrupt-parent = <&aic>;
6020a6d561cSJanne Grunau			interrupts = <AIC_IRQ 749 IRQ_TYPE_LEVEL_HIGH>;
6030a6d561cSJanne Grunau			clocks = <&clk_200m>;
6040a6d561cSJanne Grunau			pinctrl-0 = <&spi1_pins>;
6050a6d561cSJanne Grunau			pinctrl-names = "default";
6060a6d561cSJanne Grunau			power-domains = <&ps_spi1>;
6070a6d561cSJanne Grunau			#address-cells = <1>;
6080a6d561cSJanne Grunau			#size-cells = <0>;
6090a6d561cSJanne Grunau			status = "disabled";
6100a6d561cSJanne Grunau		};
6110a6d561cSJanne Grunau
6120a6d561cSJanne Grunau		spi3: spi@23510c000 {
6130a6d561cSJanne Grunau			compatible = "apple,t8112-spi", "apple,spi";
6140a6d561cSJanne Grunau			reg = <0x2 0x3510c000 0x0 0x4000>;
6150a6d561cSJanne Grunau			interrupt-parent = <&aic>;
6160a6d561cSJanne Grunau			interrupts = <AIC_IRQ 751 IRQ_TYPE_LEVEL_HIGH>;
6170a6d561cSJanne Grunau			clocks = <&clkref>;
6180a6d561cSJanne Grunau			pinctrl-0 = <&spi3_pins>;
6190a6d561cSJanne Grunau			pinctrl-names = "default";
6200a6d561cSJanne Grunau			power-domains = <&ps_spi3>;
6210a6d561cSJanne Grunau			#address-cells = <1>;
6220a6d561cSJanne Grunau			#size-cells = <0>;
62344db68deSSasha Finkelstein			status = "disabled"; /* only used in J493 */
6240a6d561cSJanne Grunau		};
6250a6d561cSJanne Grunau
6262d5ce3fbSHector Martin		serial0: serial@235200000 {
6272d5ce3fbSHector Martin			compatible = "apple,s5l-uart";
6282d5ce3fbSHector Martin			reg = <0x2 0x35200000 0x0 0x1000>;
6292d5ce3fbSHector Martin			reg-io-width = <4>;
6302d5ce3fbSHector Martin			interrupt-parent = <&aic>;
6312d5ce3fbSHector Martin			interrupts = <AIC_IRQ 739 IRQ_TYPE_LEVEL_HIGH>;
6322d5ce3fbSHector Martin			/*
6332d5ce3fbSHector Martin			 * TODO: figure out the clocking properly, there may
6342d5ce3fbSHector Martin			 * be a third selectable clock.
6352d5ce3fbSHector Martin			 */
6362d5ce3fbSHector Martin			clocks = <&clkref>, <&clkref>;
6372d5ce3fbSHector Martin			clock-names = "uart", "clk_uart_baud0";
6382d5ce3fbSHector Martin			power-domains = <&ps_uart0>;
6392d5ce3fbSHector Martin			status = "disabled";
6402d5ce3fbSHector Martin		};
6412d5ce3fbSHector Martin
6422d5ce3fbSHector Martin		serial2: serial@235208000 {
6432d5ce3fbSHector Martin			compatible = "apple,s5l-uart";
6442d5ce3fbSHector Martin			reg = <0x2 0x35208000 0x0 0x1000>;
6452d5ce3fbSHector Martin			reg-io-width = <4>;
6462d5ce3fbSHector Martin			interrupt-parent = <&aic>;
6472d5ce3fbSHector Martin			interrupts = <AIC_IRQ 741 IRQ_TYPE_LEVEL_HIGH>;
6482d5ce3fbSHector Martin			clocks = <&clkref>, <&clkref>;
6492d5ce3fbSHector Martin			clock-names = "uart", "clk_uart_baud0";
6502d5ce3fbSHector Martin			power-domains = <&ps_uart2>;
6512d5ce3fbSHector Martin			status = "disabled";
6522d5ce3fbSHector Martin		};
6532d5ce3fbSHector Martin
6542d5ce3fbSHector Martin		admac: dma-controller@238200000 {
6552d5ce3fbSHector Martin			compatible = "apple,t8112-admac", "apple,admac";
6562d5ce3fbSHector Martin			reg = <0x2 0x38200000 0x0 0x34000>;
6572d5ce3fbSHector Martin			dma-channels = <24>;
6582d5ce3fbSHector Martin			interrupts-extended = <0>,
6592d5ce3fbSHector Martin					      <&aic AIC_IRQ 760 IRQ_TYPE_LEVEL_HIGH>,
6602d5ce3fbSHector Martin					      <0>,
6612d5ce3fbSHector Martin					      <0>;
6622d5ce3fbSHector Martin			#dma-cells = <1>;
6632d5ce3fbSHector Martin			iommus = <&sio_dart 2>;
6642d5ce3fbSHector Martin			power-domains = <&ps_sio_adma>;
6652d5ce3fbSHector Martin			resets = <&ps_audio_p>;
6662d5ce3fbSHector Martin		};
6672d5ce3fbSHector Martin
6682d5ce3fbSHector Martin		mca: i2s@238400000 {
6692d5ce3fbSHector Martin			compatible = "apple,t8112-mca", "apple,mca";
6702d5ce3fbSHector Martin			reg = <0x2 0x38400000 0x0 0x18000>,
6712d5ce3fbSHector Martin			      <0x2 0x38300000 0x0 0x30000>;
6722d5ce3fbSHector Martin
6732d5ce3fbSHector Martin			interrupt-parent = <&aic>;
6742d5ce3fbSHector Martin			interrupts = <AIC_IRQ 753 IRQ_TYPE_LEVEL_HIGH>,
6752d5ce3fbSHector Martin				     <AIC_IRQ 754 IRQ_TYPE_LEVEL_HIGH>,
6762d5ce3fbSHector Martin				     <AIC_IRQ 755 IRQ_TYPE_LEVEL_HIGH>,
6772d5ce3fbSHector Martin				     <AIC_IRQ 756 IRQ_TYPE_LEVEL_HIGH>,
6782d5ce3fbSHector Martin				     <AIC_IRQ 757 IRQ_TYPE_LEVEL_HIGH>,
6792d5ce3fbSHector Martin				     <AIC_IRQ 758 IRQ_TYPE_LEVEL_HIGH>;
6802d5ce3fbSHector Martin
6812d5ce3fbSHector Martin			resets = <&ps_audio_p>;
6822d5ce3fbSHector Martin			clocks = <&nco 0>, <&nco 1>, <&nco 2>,
6832d5ce3fbSHector Martin				 <&nco 3>, <&nco 4>, <&nco 4>;
6842d5ce3fbSHector Martin			power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
6852d5ce3fbSHector Martin					<&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>;
6862d5ce3fbSHector Martin			dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
6872d5ce3fbSHector Martin			       <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
6882d5ce3fbSHector Martin			       <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
6892d5ce3fbSHector Martin			       <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>,
6902d5ce3fbSHector Martin			       <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>,
6912d5ce3fbSHector Martin			       <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>;
6922d5ce3fbSHector Martin			dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
6932d5ce3fbSHector Martin				    "tx1a", "rx1a", "tx1b", "rx1b",
6942d5ce3fbSHector Martin				    "tx2a", "rx2a", "tx2b", "rx2b",
6952d5ce3fbSHector Martin				    "tx3a", "rx3a", "tx3b", "rx3b",
6962d5ce3fbSHector Martin				    "tx4a", "rx4a", "tx4b", "rx4b",
6972d5ce3fbSHector Martin				    "tx5a", "rx5a", "tx5b", "rx5b";
6982d5ce3fbSHector Martin
6992d5ce3fbSHector Martin			#sound-dai-cells = <1>;
7002d5ce3fbSHector Martin		};
7012d5ce3fbSHector Martin
7022d5ce3fbSHector Martin		nco: clock-controller@23b044000 {
7032d5ce3fbSHector Martin			compatible = "apple,t8112-nco", "apple,nco";
7042d5ce3fbSHector Martin			reg = <0x2 0x3b044000 0x0 0x14000>;
7052d5ce3fbSHector Martin			clocks = <&nco_clkref>;
7062d5ce3fbSHector Martin			#clock-cells = <1>;
7072d5ce3fbSHector Martin		};
7082d5ce3fbSHector Martin
7092d5ce3fbSHector Martin		aic: interrupt-controller@23b0c0000 {
7102d5ce3fbSHector Martin			compatible = "apple,t8112-aic", "apple,aic2";
7112d5ce3fbSHector Martin			#interrupt-cells = <3>;
7122d5ce3fbSHector Martin			interrupt-controller;
7132d5ce3fbSHector Martin			reg = <0x2 0x3b0c0000 0x0 0x8000>,
7142d5ce3fbSHector Martin				<0x2 0x3b0c8000 0x0 0x4>;
7152d5ce3fbSHector Martin			reg-names = "core", "event";
7162d5ce3fbSHector Martin			power-domains = <&ps_aic>;
7172d5ce3fbSHector Martin
7182d5ce3fbSHector Martin			affinities {
7192d5ce3fbSHector Martin				e-core-pmu-affinity {
7202d5ce3fbSHector Martin					apple,fiq-index = <AIC_CPU_PMU_E>;
7212d5ce3fbSHector Martin					cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>;
7222d5ce3fbSHector Martin				};
7232d5ce3fbSHector Martin
7242d5ce3fbSHector Martin				p-core-pmu-affinity {
7252d5ce3fbSHector Martin					apple,fiq-index = <AIC_CPU_PMU_P>;
7262d5ce3fbSHector Martin					cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>;
7272d5ce3fbSHector Martin				};
7282d5ce3fbSHector Martin			};
7292d5ce3fbSHector Martin		};
7302d5ce3fbSHector Martin
7312d5ce3fbSHector Martin		pmgr: power-management@23b700000 {
7322d5ce3fbSHector Martin			compatible = "apple,t8112-pmgr", "apple,pmgr", "syscon", "simple-mfd";
7332d5ce3fbSHector Martin			#address-cells = <1>;
7342d5ce3fbSHector Martin			#size-cells = <1>;
7352d5ce3fbSHector Martin			reg = <0x2 0x3b700000 0 0x14000>;
7362d5ce3fbSHector Martin			/* child nodes are added in t8103-pmgr.dtsi */
7372d5ce3fbSHector Martin		};
7382d5ce3fbSHector Martin
7392d5ce3fbSHector Martin		pinctrl_ap: pinctrl@23c100000 {
7402d5ce3fbSHector Martin			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
7412d5ce3fbSHector Martin			reg = <0x2 0x3c100000 0x0 0x100000>;
7422d5ce3fbSHector Martin			power-domains = <&ps_gpio>;
7432d5ce3fbSHector Martin
7442d5ce3fbSHector Martin			gpio-controller;
7452d5ce3fbSHector Martin			#gpio-cells = <2>;
7462d5ce3fbSHector Martin			gpio-ranges = <&pinctrl_ap 0 0 213>;
7472d5ce3fbSHector Martin			apple,npins = <213>;
7482d5ce3fbSHector Martin
7492d5ce3fbSHector Martin			interrupt-controller;
7502d5ce3fbSHector Martin			#interrupt-cells = <2>;
7512d5ce3fbSHector Martin			interrupt-parent = <&aic>;
7522d5ce3fbSHector Martin			interrupts = <AIC_IRQ 199 IRQ_TYPE_LEVEL_HIGH>,
7532d5ce3fbSHector Martin				     <AIC_IRQ 200 IRQ_TYPE_LEVEL_HIGH>,
7542d5ce3fbSHector Martin				     <AIC_IRQ 201 IRQ_TYPE_LEVEL_HIGH>,
7552d5ce3fbSHector Martin				     <AIC_IRQ 202 IRQ_TYPE_LEVEL_HIGH>,
7562d5ce3fbSHector Martin				     <AIC_IRQ 203 IRQ_TYPE_LEVEL_HIGH>,
7572d5ce3fbSHector Martin				     <AIC_IRQ 204 IRQ_TYPE_LEVEL_HIGH>,
7582d5ce3fbSHector Martin				     <AIC_IRQ 205 IRQ_TYPE_LEVEL_HIGH>;
7592d5ce3fbSHector Martin
7602d5ce3fbSHector Martin			i2c0_pins: i2c0-pins {
7612d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(111, 1)>,
7622d5ce3fbSHector Martin					 <APPLE_PINMUX(110, 1)>;
7632d5ce3fbSHector Martin			};
7642d5ce3fbSHector Martin
7652d5ce3fbSHector Martin			i2c1_pins: i2c1-pins {
7662d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(113, 1)>,
7672d5ce3fbSHector Martin					 <APPLE_PINMUX(112, 1)>;
7682d5ce3fbSHector Martin			};
7692d5ce3fbSHector Martin
7702d5ce3fbSHector Martin			i2c2_pins: i2c2-pins {
7712d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(87, 1)>,
7722d5ce3fbSHector Martin					 <APPLE_PINMUX(86, 1)>;
7732d5ce3fbSHector Martin			};
7742d5ce3fbSHector Martin
7752d5ce3fbSHector Martin			i2c3_pins: i2c3-pins {
7762d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(54, 1)>,
7772d5ce3fbSHector Martin					 <APPLE_PINMUX(53, 1)>;
7782d5ce3fbSHector Martin			};
7792d5ce3fbSHector Martin
7802d5ce3fbSHector Martin			i2c4_pins: i2c4-pins {
7812d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(131, 1)>,
7822d5ce3fbSHector Martin					 <APPLE_PINMUX(130, 1)>;
7832d5ce3fbSHector Martin			};
7842d5ce3fbSHector Martin
7850a6d561cSJanne Grunau			spi1_pins: spi1-pins {
7862d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(46, 1)>,
7872d5ce3fbSHector Martin					<APPLE_PINMUX(47, 1)>,
7882d5ce3fbSHector Martin					<APPLE_PINMUX(48, 1)>,
7892d5ce3fbSHector Martin					<APPLE_PINMUX(49, 1)>;
7902d5ce3fbSHector Martin			};
7912d5ce3fbSHector Martin
7920a6d561cSJanne Grunau			spi3_pins: spi3-pins {
7930a6d561cSJanne Grunau				pinmux = <APPLE_PINMUX(93, 1)>,
7940a6d561cSJanne Grunau					<APPLE_PINMUX(94, 1)>,
7950a6d561cSJanne Grunau					<APPLE_PINMUX(95, 1)>,
7960a6d561cSJanne Grunau					<APPLE_PINMUX(96, 1)>;
7970a6d561cSJanne Grunau			};
7980a6d561cSJanne Grunau
7992d5ce3fbSHector Martin			pcie_pins: pcie-pins {
8002d5ce3fbSHector Martin				pinmux = <APPLE_PINMUX(162, 1)>,
8012d5ce3fbSHector Martin					 <APPLE_PINMUX(163, 1)>,
8022d5ce3fbSHector Martin					 <APPLE_PINMUX(164, 1)>;
8032d5ce3fbSHector Martin				// TODO: 1 more CLKREQs
8042d5ce3fbSHector Martin			};
8052d5ce3fbSHector Martin		};
8062d5ce3fbSHector Martin
8072d5ce3fbSHector Martin		pinctrl_nub: pinctrl@23d1f0000 {
8082d5ce3fbSHector Martin			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
8092d5ce3fbSHector Martin			reg = <0x2 0x3d1f0000 0x0 0x4000>;
8102d5ce3fbSHector Martin			power-domains = <&ps_nub_gpio>;
8112d5ce3fbSHector Martin
8122d5ce3fbSHector Martin			gpio-controller;
8132d5ce3fbSHector Martin			#gpio-cells = <2>;
8142d5ce3fbSHector Martin			gpio-ranges = <&pinctrl_nub 0 0 24>;
8152d5ce3fbSHector Martin			apple,npins = <24>;
8162d5ce3fbSHector Martin
8172d5ce3fbSHector Martin			interrupt-controller;
8182d5ce3fbSHector Martin			#interrupt-cells = <2>;
8192d5ce3fbSHector Martin			interrupt-parent = <&aic>;
8202d5ce3fbSHector Martin			interrupts = <AIC_IRQ 371 IRQ_TYPE_LEVEL_HIGH>,
8212d5ce3fbSHector Martin				     <AIC_IRQ 372 IRQ_TYPE_LEVEL_HIGH>,
8222d5ce3fbSHector Martin				     <AIC_IRQ 373 IRQ_TYPE_LEVEL_HIGH>,
8232d5ce3fbSHector Martin				     <AIC_IRQ 374 IRQ_TYPE_LEVEL_HIGH>,
8242d5ce3fbSHector Martin				     <AIC_IRQ 375 IRQ_TYPE_LEVEL_HIGH>,
8252d5ce3fbSHector Martin				     <AIC_IRQ 376 IRQ_TYPE_LEVEL_HIGH>,
8262d5ce3fbSHector Martin				     <AIC_IRQ 377 IRQ_TYPE_LEVEL_HIGH>;
8272d5ce3fbSHector Martin		};
8282d5ce3fbSHector Martin
8292d5ce3fbSHector Martin		pmgr_mini: power-management@23d280000 {
8302d5ce3fbSHector Martin			compatible = "apple,t8112-pmgr", "apple,pmgr", "syscon", "simple-mfd";
8312d5ce3fbSHector Martin			#address-cells = <1>;
8322d5ce3fbSHector Martin			#size-cells = <1>;
8332d5ce3fbSHector Martin			reg = <0x2 0x3d280000 0 0x4000>;
8342d5ce3fbSHector Martin			/* child nodes are added in t8103-pmgr.dtsi */
8352d5ce3fbSHector Martin		};
8362d5ce3fbSHector Martin
8372d5ce3fbSHector Martin		wdt: watchdog@23d2b0000 {
8382d5ce3fbSHector Martin			compatible = "apple,t8112-wdt", "apple,wdt";
8392d5ce3fbSHector Martin			reg = <0x2 0x3d2b0000 0x0 0x4000>;
8402d5ce3fbSHector Martin			clocks = <&clkref>;
8412d5ce3fbSHector Martin			interrupt-parent = <&aic>;
8422d5ce3fbSHector Martin			interrupts = <AIC_IRQ 379 IRQ_TYPE_LEVEL_HIGH>;
8432d5ce3fbSHector Martin		};
8442d5ce3fbSHector Martin
8452e0e70c9SSasha Finkelstein		nub_spmi: spmi@23d714000 {
8462e0e70c9SSasha Finkelstein			compatible = "apple,t8112-spmi", "apple,spmi";
8472e0e70c9SSasha Finkelstein			reg = <0x2 0x3d714000 0x0 0x100>;
8482e0e70c9SSasha Finkelstein			#address-cells = <2>;
8492e0e70c9SSasha Finkelstein			#size-cells = <0>;
850d8bf8208SHector Martin
851d8bf8208SHector Martin			pmic1: pmic@e {
852d8bf8208SHector Martin				compatible = "apple,stowe-pmic", "apple,spmi-nvmem";
853d8bf8208SHector Martin				reg = <0xe SPMI_USID>;
854d8bf8208SHector Martin
855d8bf8208SHector Martin				nvmem-layout {
856d8bf8208SHector Martin					compatible = "fixed-layout";
857d8bf8208SHector Martin					#address-cells = <1>;
858d8bf8208SHector Martin					#size-cells = <1>;
859d8bf8208SHector Martin
860d8bf8208SHector Martin					fault_shadow: fault-shadow@867b {
861d8bf8208SHector Martin						reg = <0x867b 0x10>;
862d8bf8208SHector Martin					};
863d8bf8208SHector Martin
864d8bf8208SHector Martin					socd: socd@8b00 {
865d8bf8208SHector Martin						reg = <0x8b00 0x400>;
866d8bf8208SHector Martin					};
867d8bf8208SHector Martin
868d8bf8208SHector Martin					boot_stage: boot-stage@f701 {
869d8bf8208SHector Martin						reg = <0xf701 0x1>;
870d8bf8208SHector Martin					};
871d8bf8208SHector Martin
8726aaf36bbSSven Peter					boot_error_count: boot-error-count@f702,0 {
873d8bf8208SHector Martin						reg = <0xf702 0x1>;
874d8bf8208SHector Martin						bits = <0 4>;
875d8bf8208SHector Martin					};
876d8bf8208SHector Martin
8776aaf36bbSSven Peter					panic_count: panic-count@f702,4 {
878d8bf8208SHector Martin						reg = <0xf702 0x1>;
879d8bf8208SHector Martin						bits = <4 4>;
880d8bf8208SHector Martin					};
881d8bf8208SHector Martin
882d8bf8208SHector Martin					boot_error_stage: boot-error-stage@f703 {
883d8bf8208SHector Martin						reg = <0xf703 0x1>;
884d8bf8208SHector Martin					};
885d8bf8208SHector Martin
8866aaf36bbSSven Peter					shutdown_flag: shutdown-flag@f70f,3 {
887d8bf8208SHector Martin						reg = <0xf70f 0x1>;
888d8bf8208SHector Martin						bits = <3 1>;
889d8bf8208SHector Martin					};
890d8bf8208SHector Martin
891d8bf8208SHector Martin					pm_setting: pm-setting@f801 {
892d8bf8208SHector Martin						reg = <0xf801 0x1>;
893d8bf8208SHector Martin					};
894d8bf8208SHector Martin
895d8bf8208SHector Martin					rtc_offset: rtc-offset@f900 {
896d8bf8208SHector Martin						reg = <0xf900 0x6>;
897d8bf8208SHector Martin					};
898d8bf8208SHector Martin				};
899d8bf8208SHector Martin			};
9002e0e70c9SSasha Finkelstein		};
9012e0e70c9SSasha Finkelstein
9022d5ce3fbSHector Martin		pinctrl_smc: pinctrl@23e820000 {
9032d5ce3fbSHector Martin			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
9042d5ce3fbSHector Martin			reg = <0x2 0x3e820000 0x0 0x4000>;
9052d5ce3fbSHector Martin
9062d5ce3fbSHector Martin			gpio-controller;
9072d5ce3fbSHector Martin			#gpio-cells = <2>;
9082d5ce3fbSHector Martin			gpio-ranges = <&pinctrl_smc 0 0 18>;
9092d5ce3fbSHector Martin			apple,npins = <18>;
9102d5ce3fbSHector Martin
9112d5ce3fbSHector Martin			interrupt-controller;
9122d5ce3fbSHector Martin			#interrupt-cells = <2>;
9132d5ce3fbSHector Martin			interrupt-parent = <&aic>;
9142d5ce3fbSHector Martin			interrupts = <AIC_IRQ 490 IRQ_TYPE_LEVEL_HIGH>,
9152d5ce3fbSHector Martin				     <AIC_IRQ 491 IRQ_TYPE_LEVEL_HIGH>,
9162d5ce3fbSHector Martin				     <AIC_IRQ 492 IRQ_TYPE_LEVEL_HIGH>,
9172d5ce3fbSHector Martin				     <AIC_IRQ 493 IRQ_TYPE_LEVEL_HIGH>,
9182d5ce3fbSHector Martin				     <AIC_IRQ 494 IRQ_TYPE_LEVEL_HIGH>,
9192d5ce3fbSHector Martin				     <AIC_IRQ 495 IRQ_TYPE_LEVEL_HIGH>,
9202d5ce3fbSHector Martin				     <AIC_IRQ 496 IRQ_TYPE_LEVEL_HIGH>;
9212d5ce3fbSHector Martin		};
9222d5ce3fbSHector Martin
9232d5ce3fbSHector Martin		pinctrl_aop: pinctrl@24a820000 {
9242d5ce3fbSHector Martin			compatible = "apple,t8112-pinctrl", "apple,pinctrl";
9252d5ce3fbSHector Martin			reg = <0x2 0x4a820000 0x0 0x4000>;
9262d5ce3fbSHector Martin
9272d5ce3fbSHector Martin			gpio-controller;
9282d5ce3fbSHector Martin			#gpio-cells = <2>;
9292d5ce3fbSHector Martin			gpio-ranges = <&pinctrl_aop 0 0 54>;
9302d5ce3fbSHector Martin			apple,npins = <54>;
9312d5ce3fbSHector Martin
9322d5ce3fbSHector Martin			interrupt-controller;
9332d5ce3fbSHector Martin			#interrupt-cells = <2>;
9342d5ce3fbSHector Martin			interrupt-parent = <&aic>;
9352d5ce3fbSHector Martin			interrupts = <AIC_IRQ 301 IRQ_TYPE_LEVEL_HIGH>,
9362d5ce3fbSHector Martin				     <AIC_IRQ 302 IRQ_TYPE_LEVEL_HIGH>,
9372d5ce3fbSHector Martin				     <AIC_IRQ 303 IRQ_TYPE_LEVEL_HIGH>,
9382d5ce3fbSHector Martin				     <AIC_IRQ 304 IRQ_TYPE_LEVEL_HIGH>,
9392d5ce3fbSHector Martin				     <AIC_IRQ 305 IRQ_TYPE_LEVEL_HIGH>,
9402d5ce3fbSHector Martin				     <AIC_IRQ 306 IRQ_TYPE_LEVEL_HIGH>,
9412d5ce3fbSHector Martin				     <AIC_IRQ 307 IRQ_TYPE_LEVEL_HIGH>;
9422d5ce3fbSHector Martin		};
9432d5ce3fbSHector Martin
9442d5ce3fbSHector Martin		ans_mbox: mbox@277408000 {
9452d5ce3fbSHector Martin			compatible = "apple,t8112-asc-mailbox", "apple,asc-mailbox-v4";
9462d5ce3fbSHector Martin			reg = <0x2 0x77408000 0x0 0x4000>;
9472d5ce3fbSHector Martin			interrupt-parent = <&aic>;
9482d5ce3fbSHector Martin			interrupts = <AIC_IRQ 717 IRQ_TYPE_LEVEL_HIGH>,
9492d5ce3fbSHector Martin				<AIC_IRQ 718 IRQ_TYPE_LEVEL_HIGH>,
9502d5ce3fbSHector Martin				<AIC_IRQ 719 IRQ_TYPE_LEVEL_HIGH>,
9512d5ce3fbSHector Martin				<AIC_IRQ 720 IRQ_TYPE_LEVEL_HIGH>;
9522d5ce3fbSHector Martin			interrupt-names = "send-empty", "send-not-empty",
9532d5ce3fbSHector Martin				"recv-empty", "recv-not-empty";
9542d5ce3fbSHector Martin			#mbox-cells = <0>;
9552d5ce3fbSHector Martin			power-domains = <&ps_ans>;
9562d5ce3fbSHector Martin		};
9572d5ce3fbSHector Martin
9582d5ce3fbSHector Martin		sart: sart@27bc50000 {
9592d5ce3fbSHector Martin			compatible = "apple,t8112-sart", "apple,t6000-sart";
9602d5ce3fbSHector Martin			reg = <0x2 0x7bc50000 0x0 0x10000>;
9612d5ce3fbSHector Martin			power-domains = <&ps_ans>;
9622d5ce3fbSHector Martin		};
9632d5ce3fbSHector Martin
9642d5ce3fbSHector Martin		nvme@27bcc0000 {
9652d5ce3fbSHector Martin			compatible = "apple,t8112-nvme-ans2", "apple,nvme-ans2";
9662d5ce3fbSHector Martin			reg = <0x2 0x7bcc0000 0x0 0x40000>,
9672d5ce3fbSHector Martin				<0x2 0x77400000 0x0 0x4000>;
9682d5ce3fbSHector Martin			reg-names = "nvme", "ans";
9692d5ce3fbSHector Martin			interrupt-parent = <&aic>;
9702d5ce3fbSHector Martin			interrupts = <AIC_IRQ 724 IRQ_TYPE_LEVEL_HIGH>;
9712d5ce3fbSHector Martin			mboxes = <&ans_mbox>;
9722d5ce3fbSHector Martin			apple,sart = <&sart>;
9732d5ce3fbSHector Martin			power-domains = <&ps_ans>, <&ps_apcie_st>;
9742d5ce3fbSHector Martin			power-domain-names = "ans", "apcie0";
9752d5ce3fbSHector Martin			resets = <&ps_ans>;
9762d5ce3fbSHector Martin		};
9772d5ce3fbSHector Martin
9782d5ce3fbSHector Martin		pcie0_dart: iommu@681008000 {
9792d5ce3fbSHector Martin			compatible = "apple,t8110-dart";
9802d5ce3fbSHector Martin			reg = <0x6 0x81008000 0x0 0x4000>;
9812d5ce3fbSHector Martin			#iommu-cells = <1>;
9822d5ce3fbSHector Martin			interrupt-parent = <&aic>;
9832d5ce3fbSHector Martin			interrupts = <AIC_IRQ 782 IRQ_TYPE_LEVEL_HIGH>;
9842d5ce3fbSHector Martin			power-domains = <&ps_apcie_gp>;
9852d5ce3fbSHector Martin		};
9862d5ce3fbSHector Martin
9872d5ce3fbSHector Martin		pcie1_dart: iommu@682008000 {
9882d5ce3fbSHector Martin			compatible = "apple,t8110-dart";
9892d5ce3fbSHector Martin			reg = <0x6 0x82008000 0x0 0x4000>;
9902d5ce3fbSHector Martin			#iommu-cells = <1>;
9912d5ce3fbSHector Martin			interrupt-parent = <&aic>;
9922d5ce3fbSHector Martin			interrupts = <AIC_IRQ 785 IRQ_TYPE_LEVEL_HIGH>;
9932d5ce3fbSHector Martin			power-domains = <&ps_apcie_gp>;
9942d5ce3fbSHector Martin			status = "disabled";
9952d5ce3fbSHector Martin		};
9962d5ce3fbSHector Martin
9972d5ce3fbSHector Martin		pcie2_dart: iommu@683008000 {
9982d5ce3fbSHector Martin			compatible = "apple,t8110-dart";
9992d5ce3fbSHector Martin			reg = <0x6 0x83008000 0x0 0x4000>;
10002d5ce3fbSHector Martin			#iommu-cells = <1>;
10012d5ce3fbSHector Martin			interrupt-parent = <&aic>;
10022d5ce3fbSHector Martin			interrupts = <AIC_IRQ 788 IRQ_TYPE_LEVEL_HIGH>;
10032d5ce3fbSHector Martin			power-domains = <&ps_apcie_gp>;
10042d5ce3fbSHector Martin			status = "disabled";
10052d5ce3fbSHector Martin		};
10062d5ce3fbSHector Martin
10072d5ce3fbSHector Martin		pcie3_dart: iommu@684008000 {
10082d5ce3fbSHector Martin			compatible = "apple,t8110-dart";
10092d5ce3fbSHector Martin			reg = <0x6 0x84008000 0x0 0x4000>;
10102d5ce3fbSHector Martin			#iommu-cells = <1>;
10112d5ce3fbSHector Martin			interrupt-parent = <&aic>;
10122d5ce3fbSHector Martin			interrupts = <AIC_IRQ 791 IRQ_TYPE_LEVEL_HIGH>;
10132d5ce3fbSHector Martin			power-domains = <&ps_apcie_gp>;
10142d5ce3fbSHector Martin			status = "disabled";
10152d5ce3fbSHector Martin		};
10162d5ce3fbSHector Martin
10172d5ce3fbSHector Martin		pcie0: pcie@690000000 {
10182d5ce3fbSHector Martin			compatible = "apple,t8112-pcie", "apple,pcie";
10192d5ce3fbSHector Martin			device_type = "pci";
10202d5ce3fbSHector Martin
10212d5ce3fbSHector Martin			reg = <0x6 0x90000000 0x0 0x1000000>,
10222d5ce3fbSHector Martin			      <0x6 0x80000000 0x0 0x100000>,
10232d5ce3fbSHector Martin			      <0x6 0x81000000 0x0 0x4000>,
10242d5ce3fbSHector Martin			      <0x6 0x82000000 0x0 0x4000>,
10252d5ce3fbSHector Martin			      <0x6 0x83000000 0x0 0x4000>,
10262d5ce3fbSHector Martin			      <0x6 0x84000000 0x0 0x4000>;
10272d5ce3fbSHector Martin			reg-names = "config", "rc", "port0", "port1", "port2", "port3";
10282d5ce3fbSHector Martin
10292d5ce3fbSHector Martin			interrupt-parent = <&aic>;
10302d5ce3fbSHector Martin			interrupts = <AIC_IRQ 781 IRQ_TYPE_LEVEL_HIGH>,
10312d5ce3fbSHector Martin				     <AIC_IRQ 784 IRQ_TYPE_LEVEL_HIGH>,
10322d5ce3fbSHector Martin				     <AIC_IRQ 787 IRQ_TYPE_LEVEL_HIGH>,
10332d5ce3fbSHector Martin				     <AIC_IRQ 790 IRQ_TYPE_LEVEL_HIGH>;
10342d5ce3fbSHector Martin
10352d5ce3fbSHector Martin			msi-controller;
10362d5ce3fbSHector Martin			msi-parent = <&pcie0>;
10372d5ce3fbSHector Martin			msi-ranges = <&aic AIC_IRQ 793 IRQ_TYPE_EDGE_RISING 32>;
10382d5ce3fbSHector Martin
10392d5ce3fbSHector Martin			iommu-map = <0x100 &pcie0_dart 0 1>,
10402d5ce3fbSHector Martin				    <0x200 &pcie1_dart 1 1>,
10412d5ce3fbSHector Martin				    <0x300 &pcie2_dart 2 1>,
10422d5ce3fbSHector Martin				    <0x400 &pcie3_dart 3 1>;
10432d5ce3fbSHector Martin			iommu-map-mask = <0xff00>;
10442d5ce3fbSHector Martin
10452d5ce3fbSHector Martin			bus-range = <0 4>;
10462d5ce3fbSHector Martin			#address-cells = <3>;
10472d5ce3fbSHector Martin			#size-cells = <2>;
10482d5ce3fbSHector Martin			ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>,
10492d5ce3fbSHector Martin				 <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>;
10502d5ce3fbSHector Martin
10512d5ce3fbSHector Martin			power-domains = <&ps_apcie_gp>;
10522d5ce3fbSHector Martin			pinctrl-0 = <&pcie_pins>;
10532d5ce3fbSHector Martin			pinctrl-names = "default";
10542d5ce3fbSHector Martin
10552d5ce3fbSHector Martin			port00: pci@0,0 {
10562d5ce3fbSHector Martin				device_type = "pci";
10572d5ce3fbSHector Martin				reg = <0x0 0x0 0x0 0x0 0x0>;
10582d5ce3fbSHector Martin				reset-gpios = <&pinctrl_ap 166 GPIO_ACTIVE_LOW>;
10592d5ce3fbSHector Martin
10602d5ce3fbSHector Martin				#address-cells = <3>;
10612d5ce3fbSHector Martin				#size-cells = <2>;
10622d5ce3fbSHector Martin				ranges;
10632d5ce3fbSHector Martin
10642d5ce3fbSHector Martin				interrupt-controller;
10652d5ce3fbSHector Martin				#interrupt-cells = <1>;
10662d5ce3fbSHector Martin
10672d5ce3fbSHector Martin				interrupt-map-mask = <0 0 0 7>;
10682d5ce3fbSHector Martin				interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
10692d5ce3fbSHector Martin						<0 0 0 2 &port00 0 0 0 1>,
10702d5ce3fbSHector Martin						<0 0 0 3 &port00 0 0 0 2>,
10712d5ce3fbSHector Martin						<0 0 0 4 &port00 0 0 0 3>;
10722d5ce3fbSHector Martin			};
10732d5ce3fbSHector Martin
10742d5ce3fbSHector Martin			port01: pci@1,0 {
10752d5ce3fbSHector Martin				device_type = "pci";
10762d5ce3fbSHector Martin				reg = <0x800 0x0 0x0 0x0 0x0>;
10772d5ce3fbSHector Martin				reset-gpios = <&pinctrl_ap 167 GPIO_ACTIVE_LOW>;
10782d5ce3fbSHector Martin
10792d5ce3fbSHector Martin				#address-cells = <3>;
10802d5ce3fbSHector Martin				#size-cells = <2>;
10812d5ce3fbSHector Martin				ranges;
10822d5ce3fbSHector Martin
10832d5ce3fbSHector Martin				interrupt-controller;
10842d5ce3fbSHector Martin				#interrupt-cells = <1>;
10852d5ce3fbSHector Martin
10862d5ce3fbSHector Martin				interrupt-map-mask = <0 0 0 7>;
10872d5ce3fbSHector Martin				interrupt-map = <0 0 0 1 &port01 0 0 0 0>,
10882d5ce3fbSHector Martin						<0 0 0 2 &port01 0 0 0 1>,
10892d5ce3fbSHector Martin						<0 0 0 3 &port01 0 0 0 2>,
10902d5ce3fbSHector Martin						<0 0 0 4 &port01 0 0 0 3>;
10912d5ce3fbSHector Martin
10922d5ce3fbSHector Martin				status = "disabled";
10932d5ce3fbSHector Martin			};
10942d5ce3fbSHector Martin
10952d5ce3fbSHector Martin			port02: pci@2,0 {
10962d5ce3fbSHector Martin				device_type = "pci";
10972d5ce3fbSHector Martin				reg = <0x1000 0x0 0x0 0x0 0x0>;
10982d5ce3fbSHector Martin				reset-gpios = <&pinctrl_ap 168 GPIO_ACTIVE_LOW>;
10992d5ce3fbSHector Martin
11002d5ce3fbSHector Martin				#address-cells = <3>;
11012d5ce3fbSHector Martin				#size-cells = <2>;
11022d5ce3fbSHector Martin				ranges;
11032d5ce3fbSHector Martin
11042d5ce3fbSHector Martin				interrupt-controller;
11052d5ce3fbSHector Martin				#interrupt-cells = <1>;
11062d5ce3fbSHector Martin
11072d5ce3fbSHector Martin				interrupt-map-mask = <0 0 0 7>;
11082d5ce3fbSHector Martin				interrupt-map = <0 0 0 1 &port02 0 0 0 0>,
11092d5ce3fbSHector Martin						<0 0 0 2 &port02 0 0 0 1>,
11102d5ce3fbSHector Martin						<0 0 0 3 &port02 0 0 0 2>,
11112d5ce3fbSHector Martin						<0 0 0 4 &port02 0 0 0 3>;
11122d5ce3fbSHector Martin
11132d5ce3fbSHector Martin				status = "disabled";
11142d5ce3fbSHector Martin			};
11152d5ce3fbSHector Martin
11162d5ce3fbSHector Martin			/* TODO: GPIO unknown */
11172d5ce3fbSHector Martin			port03: pci@3,0 {
11182d5ce3fbSHector Martin				device_type = "pci";
11192d5ce3fbSHector Martin				reg = <0x1800 0x0 0x0 0x0 0x0>;
11202d5ce3fbSHector Martin				//reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>;
11212d5ce3fbSHector Martin
11222d5ce3fbSHector Martin				#address-cells = <3>;
11232d5ce3fbSHector Martin				#size-cells = <2>;
11242d5ce3fbSHector Martin				ranges;
11252d5ce3fbSHector Martin
11262d5ce3fbSHector Martin				interrupt-controller;
11272d5ce3fbSHector Martin				#interrupt-cells = <1>;
11282d5ce3fbSHector Martin
11292d5ce3fbSHector Martin				interrupt-map-mask = <0 0 0 7>;
11302d5ce3fbSHector Martin				interrupt-map = <0 0 0 1 &port03 0 0 0 0>,
11312d5ce3fbSHector Martin						<0 0 0 2 &port03 0 0 0 1>,
11322d5ce3fbSHector Martin						<0 0 0 3 &port03 0 0 0 2>,
11332d5ce3fbSHector Martin						<0 0 0 4 &port03 0 0 0 3>;
11342d5ce3fbSHector Martin
11352d5ce3fbSHector Martin				status = "disabled";
11362d5ce3fbSHector Martin			};
11372d5ce3fbSHector Martin		};
11382d5ce3fbSHector Martin	};
11392d5ce3fbSHector Martin};
11402d5ce3fbSHector Martin
11412d5ce3fbSHector Martin#include "t8112-pmgr.dtsi"
1142