17d2d16ccSHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT 27d2d16ccSHector Martin/* 37d2d16ccSHector Martin * Apple T8103 "M1" SoC 47d2d16ccSHector Martin * 57d2d16ccSHector Martin * Other names: H13G, "Tonga" 67d2d16ccSHector Martin * 77d2d16ccSHector Martin * Copyright The Asahi Linux Contributors 87d2d16ccSHector Martin */ 97d2d16ccSHector Martin 105b970dfcSMarc Zyngier#include <dt-bindings/gpio/gpio.h> 117d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h> 127d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/irq.h> 130a8282b8SMark Kettenis#include <dt-bindings/pinctrl/apple.h> 147d2d16ccSHector Martin 157d2d16ccSHector Martin/ { 167d2d16ccSHector Martin compatible = "apple,t8103", "apple,arm-platform"; 177d2d16ccSHector Martin 187d2d16ccSHector Martin #address-cells = <2>; 197d2d16ccSHector Martin #size-cells = <2>; 207d2d16ccSHector Martin 217d2d16ccSHector Martin cpus { 227d2d16ccSHector Martin #address-cells = <2>; 237d2d16ccSHector Martin #size-cells = <0>; 247d2d16ccSHector Martin 253e895a64SHector Martin cpu-map { 263e895a64SHector Martin cluster0 { 273e895a64SHector Martin core0 { 283e895a64SHector Martin cpu = <&cpu_e0>; 293e895a64SHector Martin }; 303e895a64SHector Martin core1 { 313e895a64SHector Martin cpu = <&cpu_e1>; 323e895a64SHector Martin }; 333e895a64SHector Martin core2 { 343e895a64SHector Martin cpu = <&cpu_e2>; 353e895a64SHector Martin }; 363e895a64SHector Martin core3 { 373e895a64SHector Martin cpu = <&cpu_e3>; 383e895a64SHector Martin }; 393e895a64SHector Martin }; 403e895a64SHector Martin 413e895a64SHector Martin cluster1 { 423e895a64SHector Martin core0 { 433e895a64SHector Martin cpu = <&cpu_p0>; 443e895a64SHector Martin }; 453e895a64SHector Martin core1 { 463e895a64SHector Martin cpu = <&cpu_p1>; 473e895a64SHector Martin }; 483e895a64SHector Martin core2 { 493e895a64SHector Martin cpu = <&cpu_p2>; 503e895a64SHector Martin }; 513e895a64SHector Martin core3 { 523e895a64SHector Martin cpu = <&cpu_p3>; 533e895a64SHector Martin }; 543e895a64SHector Martin }; 553e895a64SHector Martin }; 563e895a64SHector Martin 573e895a64SHector Martin cpu_e0: cpu@0 { 587d2d16ccSHector Martin compatible = "apple,icestorm"; 597d2d16ccSHector Martin device_type = "cpu"; 607d2d16ccSHector Martin reg = <0x0 0x0>; 617d2d16ccSHector Martin enable-method = "spin-table"; 627d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 633e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 643e895a64SHector Martin capacity-dmips-mhz = <714>; 653e895a64SHector Martin performance-domains = <&cpufreq_e>; 66*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 67*9ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 68*9ecb7a4bSJanne Grunau d-cache-size = <0x10000>; 697d2d16ccSHector Martin }; 707d2d16ccSHector Martin 713e895a64SHector Martin cpu_e1: cpu@1 { 727d2d16ccSHector Martin compatible = "apple,icestorm"; 737d2d16ccSHector Martin device_type = "cpu"; 747d2d16ccSHector Martin reg = <0x0 0x1>; 757d2d16ccSHector Martin enable-method = "spin-table"; 767d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 773e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 783e895a64SHector Martin capacity-dmips-mhz = <714>; 793e895a64SHector Martin performance-domains = <&cpufreq_e>; 80*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 81*9ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 82*9ecb7a4bSJanne Grunau d-cache-size = <0x10000>; 837d2d16ccSHector Martin }; 847d2d16ccSHector Martin 853e895a64SHector Martin cpu_e2: cpu@2 { 867d2d16ccSHector Martin compatible = "apple,icestorm"; 877d2d16ccSHector Martin device_type = "cpu"; 887d2d16ccSHector Martin reg = <0x0 0x2>; 897d2d16ccSHector Martin enable-method = "spin-table"; 907d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 913e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 923e895a64SHector Martin capacity-dmips-mhz = <714>; 933e895a64SHector Martin performance-domains = <&cpufreq_e>; 94*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 95*9ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 96*9ecb7a4bSJanne Grunau d-cache-size = <0x10000>; 977d2d16ccSHector Martin }; 987d2d16ccSHector Martin 993e895a64SHector Martin cpu_e3: cpu@3 { 1007d2d16ccSHector Martin compatible = "apple,icestorm"; 1017d2d16ccSHector Martin device_type = "cpu"; 1027d2d16ccSHector Martin reg = <0x0 0x3>; 1037d2d16ccSHector Martin enable-method = "spin-table"; 1047d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 1053e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 1063e895a64SHector Martin capacity-dmips-mhz = <714>; 1073e895a64SHector Martin performance-domains = <&cpufreq_e>; 108*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 109*9ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 110*9ecb7a4bSJanne Grunau d-cache-size = <0x10000>; 1117d2d16ccSHector Martin }; 1127d2d16ccSHector Martin 1133e895a64SHector Martin cpu_p0: cpu@10100 { 1147d2d16ccSHector Martin compatible = "apple,firestorm"; 1157d2d16ccSHector Martin device_type = "cpu"; 1167d2d16ccSHector Martin reg = <0x0 0x10100>; 1177d2d16ccSHector Martin enable-method = "spin-table"; 1187d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 1193e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 1203e895a64SHector Martin capacity-dmips-mhz = <1024>; 1213e895a64SHector Martin performance-domains = <&cpufreq_p>; 122*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 123*9ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 124*9ecb7a4bSJanne Grunau d-cache-size = <0x20000>; 1257d2d16ccSHector Martin }; 1267d2d16ccSHector Martin 1273e895a64SHector Martin cpu_p1: cpu@10101 { 1287d2d16ccSHector Martin compatible = "apple,firestorm"; 1297d2d16ccSHector Martin device_type = "cpu"; 1307d2d16ccSHector Martin reg = <0x0 0x10101>; 1317d2d16ccSHector Martin enable-method = "spin-table"; 1327d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 1333e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 1343e895a64SHector Martin capacity-dmips-mhz = <1024>; 1353e895a64SHector Martin performance-domains = <&cpufreq_p>; 136*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 137*9ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 138*9ecb7a4bSJanne Grunau d-cache-size = <0x20000>; 1397d2d16ccSHector Martin }; 1407d2d16ccSHector Martin 1413e895a64SHector Martin cpu_p2: cpu@10102 { 1427d2d16ccSHector Martin compatible = "apple,firestorm"; 1437d2d16ccSHector Martin device_type = "cpu"; 1447d2d16ccSHector Martin reg = <0x0 0x10102>; 1457d2d16ccSHector Martin enable-method = "spin-table"; 1467d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 1473e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 1483e895a64SHector Martin capacity-dmips-mhz = <1024>; 1493e895a64SHector Martin performance-domains = <&cpufreq_p>; 150*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 151*9ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 152*9ecb7a4bSJanne Grunau d-cache-size = <0x20000>; 1537d2d16ccSHector Martin }; 1547d2d16ccSHector Martin 1553e895a64SHector Martin cpu_p3: cpu@10103 { 1567d2d16ccSHector Martin compatible = "apple,firestorm"; 1577d2d16ccSHector Martin device_type = "cpu"; 1587d2d16ccSHector Martin reg = <0x0 0x10103>; 1597d2d16ccSHector Martin enable-method = "spin-table"; 1607d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 1613e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 1623e895a64SHector Martin capacity-dmips-mhz = <1024>; 1633e895a64SHector Martin performance-domains = <&cpufreq_p>; 164*9ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 165*9ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 166*9ecb7a4bSJanne Grunau d-cache-size = <0x20000>; 167*9ecb7a4bSJanne Grunau }; 168*9ecb7a4bSJanne Grunau 169*9ecb7a4bSJanne Grunau l2_cache_0: l2-cache-0 { 170*9ecb7a4bSJanne Grunau compatible = "cache"; 171*9ecb7a4bSJanne Grunau cache-level = <2>; 172*9ecb7a4bSJanne Grunau cache-unified; 173*9ecb7a4bSJanne Grunau cache-size = <0x400000>; 174*9ecb7a4bSJanne Grunau }; 175*9ecb7a4bSJanne Grunau 176*9ecb7a4bSJanne Grunau l2_cache_1: l2-cache-1 { 177*9ecb7a4bSJanne Grunau compatible = "cache"; 178*9ecb7a4bSJanne Grunau cache-level = <2>; 179*9ecb7a4bSJanne Grunau cache-unified; 180*9ecb7a4bSJanne Grunau cache-size = <0xc00000>; 1817d2d16ccSHector Martin }; 1827d2d16ccSHector Martin }; 1837d2d16ccSHector Martin 1843e895a64SHector Martin ecluster_opp: opp-table-0 { 1853e895a64SHector Martin compatible = "operating-points-v2"; 1863e895a64SHector Martin 1873e895a64SHector Martin opp01 { 1883e895a64SHector Martin opp-hz = /bits/ 64 <600000000>; 1893e895a64SHector Martin opp-level = <1>; 1903e895a64SHector Martin clock-latency-ns = <7500>; 1913e895a64SHector Martin }; 1923e895a64SHector Martin opp02 { 1933e895a64SHector Martin opp-hz = /bits/ 64 <972000000>; 1943e895a64SHector Martin opp-level = <2>; 1953e895a64SHector Martin clock-latency-ns = <22000>; 1963e895a64SHector Martin }; 1973e895a64SHector Martin opp03 { 1983e895a64SHector Martin opp-hz = /bits/ 64 <1332000000>; 1993e895a64SHector Martin opp-level = <3>; 2003e895a64SHector Martin clock-latency-ns = <27000>; 2013e895a64SHector Martin }; 2023e895a64SHector Martin opp04 { 2033e895a64SHector Martin opp-hz = /bits/ 64 <1704000000>; 2043e895a64SHector Martin opp-level = <4>; 2053e895a64SHector Martin clock-latency-ns = <33000>; 2063e895a64SHector Martin }; 2073e895a64SHector Martin opp05 { 2083e895a64SHector Martin opp-hz = /bits/ 64 <2064000000>; 2093e895a64SHector Martin opp-level = <5>; 2103e895a64SHector Martin clock-latency-ns = <50000>; 2113e895a64SHector Martin }; 2123e895a64SHector Martin }; 2133e895a64SHector Martin 2143e895a64SHector Martin pcluster_opp: opp-table-1 { 2153e895a64SHector Martin compatible = "operating-points-v2"; 2163e895a64SHector Martin 2173e895a64SHector Martin opp01 { 2183e895a64SHector Martin opp-hz = /bits/ 64 <600000000>; 2193e895a64SHector Martin opp-level = <1>; 2203e895a64SHector Martin clock-latency-ns = <8000>; 2213e895a64SHector Martin }; 2223e895a64SHector Martin opp02 { 2233e895a64SHector Martin opp-hz = /bits/ 64 <828000000>; 2243e895a64SHector Martin opp-level = <2>; 2253e895a64SHector Martin clock-latency-ns = <19000>; 2263e895a64SHector Martin }; 2273e895a64SHector Martin opp03 { 2283e895a64SHector Martin opp-hz = /bits/ 64 <1056000000>; 2293e895a64SHector Martin opp-level = <3>; 2303e895a64SHector Martin clock-latency-ns = <21000>; 2313e895a64SHector Martin }; 2323e895a64SHector Martin opp04 { 2333e895a64SHector Martin opp-hz = /bits/ 64 <1284000000>; 2343e895a64SHector Martin opp-level = <4>; 2353e895a64SHector Martin clock-latency-ns = <23000>; 2363e895a64SHector Martin }; 2373e895a64SHector Martin opp05 { 2383e895a64SHector Martin opp-hz = /bits/ 64 <1500000000>; 2393e895a64SHector Martin opp-level = <5>; 2403e895a64SHector Martin clock-latency-ns = <24000>; 2413e895a64SHector Martin }; 2423e895a64SHector Martin opp06 { 2433e895a64SHector Martin opp-hz = /bits/ 64 <1728000000>; 2443e895a64SHector Martin opp-level = <6>; 2453e895a64SHector Martin clock-latency-ns = <29000>; 2463e895a64SHector Martin }; 2473e895a64SHector Martin opp07 { 2483e895a64SHector Martin opp-hz = /bits/ 64 <1956000000>; 2493e895a64SHector Martin opp-level = <7>; 2503e895a64SHector Martin clock-latency-ns = <31000>; 2513e895a64SHector Martin }; 2523e895a64SHector Martin opp08 { 2533e895a64SHector Martin opp-hz = /bits/ 64 <2184000000>; 2543e895a64SHector Martin opp-level = <8>; 2553e895a64SHector Martin clock-latency-ns = <34000>; 2563e895a64SHector Martin }; 2573e895a64SHector Martin opp09 { 2583e895a64SHector Martin opp-hz = /bits/ 64 <2388000000>; 2593e895a64SHector Martin opp-level = <9>; 2603e895a64SHector Martin clock-latency-ns = <36000>; 2613e895a64SHector Martin }; 2623e895a64SHector Martin opp10 { 2633e895a64SHector Martin opp-hz = /bits/ 64 <2592000000>; 2643e895a64SHector Martin opp-level = <10>; 2653e895a64SHector Martin clock-latency-ns = <51000>; 2663e895a64SHector Martin }; 2673e895a64SHector Martin opp11 { 2683e895a64SHector Martin opp-hz = /bits/ 64 <2772000000>; 2693e895a64SHector Martin opp-level = <11>; 2703e895a64SHector Martin clock-latency-ns = <54000>; 2713e895a64SHector Martin }; 2723e895a64SHector Martin opp12 { 2733e895a64SHector Martin opp-hz = /bits/ 64 <2988000000>; 2743e895a64SHector Martin opp-level = <12>; 2753e895a64SHector Martin clock-latency-ns = <55000>; 2763e895a64SHector Martin }; 2773e895a64SHector Martin#if 0 2783e895a64SHector Martin /* Not available until CPU deep sleep is implemented */ 2793e895a64SHector Martin opp13 { 2803e895a64SHector Martin opp-hz = /bits/ 64 <3096000000>; 2813e895a64SHector Martin opp-level = <13>; 2823e895a64SHector Martin clock-latency-ns = <55000>; 2833e895a64SHector Martin turbo-mode; 2843e895a64SHector Martin }; 2853e895a64SHector Martin opp14 { 2863e895a64SHector Martin opp-hz = /bits/ 64 <3144000000>; 2873e895a64SHector Martin opp-level = <14>; 2883e895a64SHector Martin clock-latency-ns = <56000>; 2893e895a64SHector Martin turbo-mode; 2903e895a64SHector Martin }; 2913e895a64SHector Martin opp15 { 2923e895a64SHector Martin opp-hz = /bits/ 64 <3204000000>; 2933e895a64SHector Martin opp-level = <15>; 2943e895a64SHector Martin clock-latency-ns = <56000>; 2953e895a64SHector Martin turbo-mode; 2963e895a64SHector Martin }; 2973e895a64SHector Martin#endif 2983e895a64SHector Martin }; 2993e895a64SHector Martin 3007d2d16ccSHector Martin timer { 3017d2d16ccSHector Martin compatible = "arm,armv8-timer"; 3027d2d16ccSHector Martin interrupt-parent = <&aic>; 3037d2d16ccSHector Martin interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; 3047d2d16ccSHector Martin interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 3057d2d16ccSHector Martin <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, 3067d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, 3077d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; 3087d2d16ccSHector Martin }; 3097d2d16ccSHector Martin 3100f522efcSMarc Zyngier pmu-e { 3110f522efcSMarc Zyngier compatible = "apple,icestorm-pmu"; 3120f522efcSMarc Zyngier interrupt-parent = <&aic>; 3130f522efcSMarc Zyngier interrupts = <AIC_FIQ AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>; 3140f522efcSMarc Zyngier }; 3150f522efcSMarc Zyngier 3160f522efcSMarc Zyngier pmu-p { 3170f522efcSMarc Zyngier compatible = "apple,firestorm-pmu"; 3180f522efcSMarc Zyngier interrupt-parent = <&aic>; 3190f522efcSMarc Zyngier interrupts = <AIC_FIQ AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>; 3200f522efcSMarc Zyngier }; 3210f522efcSMarc Zyngier 32257337b25SHector Martin clkref: clock-ref { 3237d2d16ccSHector Martin compatible = "fixed-clock"; 3247d2d16ccSHector Martin #clock-cells = <0>; 3257d2d16ccSHector Martin clock-frequency = <24000000>; 32657337b25SHector Martin clock-output-names = "clkref"; 3277d2d16ccSHector Martin }; 3287d2d16ccSHector Martin 3298a3df85aSMartin Povišer /* 3308a3df85aSMartin Povišer * This is a fabulated representation of the input clock 3318a3df85aSMartin Povišer * to NCO since we don't know the true clock tree. 3328a3df85aSMartin Povišer */ 3338a3df85aSMartin Povišer nco_clkref: clock-ref-nco { 3348a3df85aSMartin Povišer compatible = "fixed-clock"; 3358a3df85aSMartin Povišer #clock-cells = <0>; 3368a3df85aSMartin Povišer clock-output-names = "nco_ref"; 3378a3df85aSMartin Povišer }; 3388a3df85aSMartin Povišer 3397d2d16ccSHector Martin soc { 3407d2d16ccSHector Martin compatible = "simple-bus"; 3417d2d16ccSHector Martin #address-cells = <2>; 3427d2d16ccSHector Martin #size-cells = <2>; 3437d2d16ccSHector Martin 3447d2d16ccSHector Martin ranges; 3457d2d16ccSHector Martin nonposted-mmio; 3467d2d16ccSHector Martin 3473e895a64SHector Martin cpufreq_e: performance-controller@210e20000 { 3483e895a64SHector Martin compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; 3493e895a64SHector Martin reg = <0x2 0x10e20000 0 0x1000>; 3503e895a64SHector Martin #performance-domain-cells = <0>; 3513e895a64SHector Martin }; 3523e895a64SHector Martin 3533e895a64SHector Martin cpufreq_p: performance-controller@211e20000 { 3543e895a64SHector Martin compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; 3553e895a64SHector Martin reg = <0x2 0x11e20000 0 0x1000>; 3563e895a64SHector Martin #performance-domain-cells = <0>; 3573e895a64SHector Martin }; 3583e895a64SHector Martin 35963bf0b66SHector Martin sio_dart: iommu@235004000 { 3608a3df85aSMartin Povišer compatible = "apple,t8103-dart"; 3618a3df85aSMartin Povišer reg = <0x2 0x35004000 0x0 0x4000>; 3628a3df85aSMartin Povišer interrupt-parent = <&aic>; 3638a3df85aSMartin Povišer interrupts = <AIC_IRQ 635 IRQ_TYPE_LEVEL_HIGH>; 3648a3df85aSMartin Povišer #iommu-cells = <1>; 3658a3df85aSMartin Povišer power-domains = <&ps_sio_cpu>; 3668a3df85aSMartin Povišer }; 3678a3df85aSMartin Povišer 36890458f6eSJanne Grunau i2c0: i2c@235010000 { 36990458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 37090458f6eSJanne Grunau reg = <0x2 0x35010000 0x0 0x4000>; 37157337b25SHector Martin clocks = <&clkref>; 37290458f6eSJanne Grunau interrupt-parent = <&aic>; 37390458f6eSJanne Grunau interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; 37490458f6eSJanne Grunau pinctrl-0 = <&i2c0_pins>; 37590458f6eSJanne Grunau pinctrl-names = "default"; 37690458f6eSJanne Grunau #address-cells = <0x1>; 37790458f6eSJanne Grunau #size-cells = <0x0>; 378106ba3b4SHector Martin power-domains = <&ps_i2c0>; 37990458f6eSJanne Grunau }; 38090458f6eSJanne Grunau 38190458f6eSJanne Grunau i2c1: i2c@235014000 { 38290458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 38390458f6eSJanne Grunau reg = <0x2 0x35014000 0x0 0x4000>; 38457337b25SHector Martin clocks = <&clkref>; 38590458f6eSJanne Grunau interrupt-parent = <&aic>; 38690458f6eSJanne Grunau interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; 38790458f6eSJanne Grunau pinctrl-0 = <&i2c1_pins>; 38890458f6eSJanne Grunau pinctrl-names = "default"; 38990458f6eSJanne Grunau #address-cells = <0x1>; 39090458f6eSJanne Grunau #size-cells = <0x0>; 391106ba3b4SHector Martin power-domains = <&ps_i2c1>; 39290458f6eSJanne Grunau }; 39390458f6eSJanne Grunau 39490458f6eSJanne Grunau i2c2: i2c@235018000 { 39590458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 39690458f6eSJanne Grunau reg = <0x2 0x35018000 0x0 0x4000>; 39757337b25SHector Martin clocks = <&clkref>; 39890458f6eSJanne Grunau interrupt-parent = <&aic>; 39990458f6eSJanne Grunau interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; 40090458f6eSJanne Grunau pinctrl-0 = <&i2c2_pins>; 40190458f6eSJanne Grunau pinctrl-names = "default"; 40290458f6eSJanne Grunau #address-cells = <0x1>; 40390458f6eSJanne Grunau #size-cells = <0x0>; 40490458f6eSJanne Grunau status = "disabled"; /* not used in all devices */ 405106ba3b4SHector Martin power-domains = <&ps_i2c2>; 40690458f6eSJanne Grunau }; 40790458f6eSJanne Grunau 40890458f6eSJanne Grunau i2c3: i2c@23501c000 { 40990458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 41090458f6eSJanne Grunau reg = <0x2 0x3501c000 0x0 0x4000>; 41157337b25SHector Martin clocks = <&clkref>; 41290458f6eSJanne Grunau interrupt-parent = <&aic>; 41390458f6eSJanne Grunau interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; 41490458f6eSJanne Grunau pinctrl-0 = <&i2c3_pins>; 41590458f6eSJanne Grunau pinctrl-names = "default"; 41690458f6eSJanne Grunau #address-cells = <0x1>; 41790458f6eSJanne Grunau #size-cells = <0x0>; 418106ba3b4SHector Martin power-domains = <&ps_i2c3>; 41990458f6eSJanne Grunau }; 42090458f6eSJanne Grunau 42190458f6eSJanne Grunau i2c4: i2c@235020000 { 42290458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 42390458f6eSJanne Grunau reg = <0x2 0x35020000 0x0 0x4000>; 42457337b25SHector Martin clocks = <&clkref>; 42590458f6eSJanne Grunau interrupt-parent = <&aic>; 42690458f6eSJanne Grunau interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; 42790458f6eSJanne Grunau pinctrl-0 = <&i2c4_pins>; 42890458f6eSJanne Grunau pinctrl-names = "default"; 42990458f6eSJanne Grunau #address-cells = <0x1>; 43090458f6eSJanne Grunau #size-cells = <0x0>; 431106ba3b4SHector Martin power-domains = <&ps_i2c4>; 43290458f6eSJanne Grunau status = "disabled"; /* only used in J293 */ 43390458f6eSJanne Grunau }; 43490458f6eSJanne Grunau 4357d2d16ccSHector Martin serial0: serial@235200000 { 4367d2d16ccSHector Martin compatible = "apple,s5l-uart"; 4377d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 4387d2d16ccSHector Martin reg-io-width = <4>; 4397d2d16ccSHector Martin interrupt-parent = <&aic>; 4407d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 4417d2d16ccSHector Martin /* 4427d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 4437d2d16ccSHector Martin * be a third selectable clock. 4447d2d16ccSHector Martin */ 44557337b25SHector Martin clocks = <&clkref>, <&clkref>; 4467d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 447106ba3b4SHector Martin power-domains = <&ps_uart0>; 4487d2d16ccSHector Martin status = "disabled"; 4497d2d16ccSHector Martin }; 4507d2d16ccSHector Martin 4512ba22cfeSHector Martin serial2: serial@235208000 { 4522ba22cfeSHector Martin compatible = "apple,s5l-uart"; 4532ba22cfeSHector Martin reg = <0x2 0x35208000 0x0 0x1000>; 4542ba22cfeSHector Martin reg-io-width = <4>; 4552ba22cfeSHector Martin interrupt-parent = <&aic>; 4562ba22cfeSHector Martin interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; 45757337b25SHector Martin clocks = <&clkref>, <&clkref>; 4582ba22cfeSHector Martin clock-names = "uart", "clk_uart_baud0"; 4592ba22cfeSHector Martin power-domains = <&ps_uart2>; 4607d2d16ccSHector Martin status = "disabled"; 4617d2d16ccSHector Martin }; 4627d2d16ccSHector Martin 4638a3df85aSMartin Povišer admac: dma-controller@238200000 { 4648a3df85aSMartin Povišer compatible = "apple,t8103-admac", "apple,admac"; 4658a3df85aSMartin Povišer reg = <0x2 0x38200000 0x0 0x34000>; 4668a3df85aSMartin Povišer dma-channels = <24>; 4678a3df85aSMartin Povišer interrupts-extended = <0>, 4688a3df85aSMartin Povišer <&aic AIC_IRQ 626 IRQ_TYPE_LEVEL_HIGH>, 4698a3df85aSMartin Povišer <0>, 4708a3df85aSMartin Povišer <0>; 4718a3df85aSMartin Povišer #dma-cells = <1>; 47263bf0b66SHector Martin iommus = <&sio_dart 2>; 4738a3df85aSMartin Povišer power-domains = <&ps_sio_adma>; 47456fed763SMartin Povišer resets = <&ps_audio_p>; 4758a3df85aSMartin Povišer }; 4768a3df85aSMartin Povišer 4778a3df85aSMartin Povišer mca: i2s@238400000 { 4788a3df85aSMartin Povišer compatible = "apple,t8103-mca", "apple,mca"; 4798a3df85aSMartin Povišer reg = <0x2 0x38400000 0x0 0x18000>, 4808a3df85aSMartin Povišer <0x2 0x38300000 0x0 0x30000>; 4818a3df85aSMartin Povišer 4828a3df85aSMartin Povišer interrupt-parent = <&aic>; 4838a3df85aSMartin Povišer interrupts = <AIC_IRQ 619 IRQ_TYPE_LEVEL_HIGH>, 4848a3df85aSMartin Povišer <AIC_IRQ 620 IRQ_TYPE_LEVEL_HIGH>, 4858a3df85aSMartin Povišer <AIC_IRQ 621 IRQ_TYPE_LEVEL_HIGH>, 4868a3df85aSMartin Povišer <AIC_IRQ 622 IRQ_TYPE_LEVEL_HIGH>, 4878a3df85aSMartin Povišer <AIC_IRQ 623 IRQ_TYPE_LEVEL_HIGH>, 4888a3df85aSMartin Povišer <AIC_IRQ 624 IRQ_TYPE_LEVEL_HIGH>; 4898a3df85aSMartin Povišer 4908a3df85aSMartin Povišer resets = <&ps_audio_p>; 4918a3df85aSMartin Povišer clocks = <&nco 0>, <&nco 1>, <&nco 2>, 4928a3df85aSMartin Povišer <&nco 3>, <&nco 4>, <&nco 4>; 4938a3df85aSMartin Povišer power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>, 4948a3df85aSMartin Povišer <&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>; 4958a3df85aSMartin Povišer dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>, 4968a3df85aSMartin Povišer <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>, 4978a3df85aSMartin Povišer <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>, 4988a3df85aSMartin Povišer <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>, 4998a3df85aSMartin Povišer <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>, 5008a3df85aSMartin Povišer <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>; 5018a3df85aSMartin Povišer dma-names = "tx0a", "rx0a", "tx0b", "rx0b", 5028a3df85aSMartin Povišer "tx1a", "rx1a", "tx1b", "rx1b", 5038a3df85aSMartin Povišer "tx2a", "rx2a", "tx2b", "rx2b", 5048a3df85aSMartin Povišer "tx3a", "rx3a", "tx3b", "rx3b", 5058a3df85aSMartin Povišer "tx4a", "rx4a", "tx4b", "rx4b", 5068a3df85aSMartin Povišer "tx5a", "rx5a", "tx5b", "rx5b"; 5078a3df85aSMartin Povišer 5088a3df85aSMartin Povišer #sound-dai-cells = <1>; 5098a3df85aSMartin Povišer }; 5108a3df85aSMartin Povišer 5118a3df85aSMartin Povišer nco: clock-controller@23b044000 { 5128a3df85aSMartin Povišer compatible = "apple,t8103-nco", "apple,nco"; 5138a3df85aSMartin Povišer reg = <0x2 0x3b044000 0x0 0x14000>; 5148a3df85aSMartin Povišer clocks = <&nco_clkref>; 5158a3df85aSMartin Povišer #clock-cells = <1>; 5168a3df85aSMartin Povišer }; 5178a3df85aSMartin Povišer 5187d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 5197d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 5207d2d16ccSHector Martin #interrupt-cells = <3>; 5217d2d16ccSHector Martin interrupt-controller; 5227d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 523106ba3b4SHector Martin power-domains = <&ps_aic>; 5241852e22bSMarc Zyngier 5251852e22bSMarc Zyngier affinities { 5261852e22bSMarc Zyngier e-core-pmu-affinity { 5271852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_E>; 5283e895a64SHector Martin cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>; 5291852e22bSMarc Zyngier }; 5301852e22bSMarc Zyngier 5311852e22bSMarc Zyngier p-core-pmu-affinity { 5321852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_P>; 5333e895a64SHector Martin cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>; 5341852e22bSMarc Zyngier }; 5351852e22bSMarc Zyngier }; 536106ba3b4SHector Martin }; 537106ba3b4SHector Martin 538106ba3b4SHector Martin pmgr: power-management@23b700000 { 539106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 540106ba3b4SHector Martin #address-cells = <1>; 541106ba3b4SHector Martin #size-cells = <1>; 542106ba3b4SHector Martin reg = <0x2 0x3b700000 0 0x14000>; 5437d2d16ccSHector Martin }; 5440a8282b8SMark Kettenis 5450a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 5460a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 5470a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 548106ba3b4SHector Martin power-domains = <&ps_gpio>; 5490a8282b8SMark Kettenis 5500a8282b8SMark Kettenis gpio-controller; 5510a8282b8SMark Kettenis #gpio-cells = <2>; 5520a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 5530a8282b8SMark Kettenis apple,npins = <212>; 5540a8282b8SMark Kettenis 5550a8282b8SMark Kettenis interrupt-controller; 5560668639eSJanne Grunau #interrupt-cells = <2>; 5570a8282b8SMark Kettenis interrupt-parent = <&aic>; 5580a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 5590a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 5600a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 5610a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 5620a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 5630a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 5640a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 5650a8282b8SMark Kettenis 56690458f6eSJanne Grunau i2c0_pins: i2c0-pins { 56790458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 56890458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 56990458f6eSJanne Grunau }; 57090458f6eSJanne Grunau 57190458f6eSJanne Grunau i2c1_pins: i2c1-pins { 57290458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 57390458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 57490458f6eSJanne Grunau }; 57590458f6eSJanne Grunau 57690458f6eSJanne Grunau i2c2_pins: i2c2-pins { 57790458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 57890458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 57990458f6eSJanne Grunau }; 58090458f6eSJanne Grunau 58190458f6eSJanne Grunau i2c3_pins: i2c3-pins { 58290458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 58390458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 58490458f6eSJanne Grunau }; 58590458f6eSJanne Grunau 58690458f6eSJanne Grunau i2c4_pins: i2c4-pins { 58790458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 58890458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 58990458f6eSJanne Grunau }; 59090458f6eSJanne Grunau 5910a8282b8SMark Kettenis pcie_pins: pcie-pins { 5920a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 5930a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 5940a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 5950a8282b8SMark Kettenis }; 5960a8282b8SMark Kettenis }; 5970a8282b8SMark Kettenis 5980a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 5990a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6000a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 601106ba3b4SHector Martin power-domains = <&ps_nub_gpio>; 6020a8282b8SMark Kettenis 6030a8282b8SMark Kettenis gpio-controller; 6040a8282b8SMark Kettenis #gpio-cells = <2>; 6050a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 6060a8282b8SMark Kettenis apple,npins = <23>; 6070a8282b8SMark Kettenis 6080a8282b8SMark Kettenis interrupt-controller; 6090668639eSJanne Grunau #interrupt-cells = <2>; 6100a8282b8SMark Kettenis interrupt-parent = <&aic>; 6110a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 6120a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 6130a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 6140a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 6150a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 6160a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 6170a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 6180a8282b8SMark Kettenis }; 6190a8282b8SMark Kettenis 6208adf987cSHector Martin pmgr_mini: power-management@23d280000 { 6218adf987cSHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 6228adf987cSHector Martin #address-cells = <1>; 6238adf987cSHector Martin #size-cells = <1>; 6248adf987cSHector Martin reg = <0x2 0x3d280000 0 0x4000>; 6258adf987cSHector Martin }; 6268adf987cSHector Martin 627b4d11106SSven Peter wdt: watchdog@23d2b0000 { 628b4d11106SSven Peter compatible = "apple,t8103-wdt", "apple,wdt"; 629b4d11106SSven Peter reg = <0x2 0x3d2b0000 0x0 0x4000>; 63057337b25SHector Martin clocks = <&clkref>; 631b4d11106SSven Peter interrupt-parent = <&aic>; 632b4d11106SSven Peter interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>; 633b4d11106SSven Peter }; 634b4d11106SSven Peter 6350a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 6360a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6370a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 6380a8282b8SMark Kettenis 6390a8282b8SMark Kettenis gpio-controller; 6400a8282b8SMark Kettenis #gpio-cells = <2>; 6410a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 6420a8282b8SMark Kettenis apple,npins = <16>; 6430a8282b8SMark Kettenis 6440a8282b8SMark Kettenis interrupt-controller; 6450668639eSJanne Grunau #interrupt-cells = <2>; 6460a8282b8SMark Kettenis interrupt-parent = <&aic>; 6470a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 6480a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 6490a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 6500a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 6510a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 6520a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 6530a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 6540a8282b8SMark Kettenis }; 655ff2a8d91SMark Kettenis 6568adf987cSHector Martin pinctrl_aop: pinctrl@24a820000 { 6578adf987cSHector Martin compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6588adf987cSHector Martin reg = <0x2 0x4a820000 0x0 0x4000>; 6598adf987cSHector Martin 6608adf987cSHector Martin gpio-controller; 6618adf987cSHector Martin #gpio-cells = <2>; 6628adf987cSHector Martin gpio-ranges = <&pinctrl_aop 0 0 42>; 6638adf987cSHector Martin apple,npins = <42>; 6648adf987cSHector Martin 6658adf987cSHector Martin interrupt-controller; 6668adf987cSHector Martin #interrupt-cells = <2>; 6678adf987cSHector Martin interrupt-parent = <&aic>; 6688adf987cSHector Martin interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 6698adf987cSHector Martin <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 6708adf987cSHector Martin <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 6718adf987cSHector Martin <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 6728adf987cSHector Martin <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 6738adf987cSHector Martin <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 6748adf987cSHector Martin <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 6758adf987cSHector Martin }; 6768adf987cSHector Martin 6775316d73bSSven Peter ans_mbox: mbox@277408000 { 6785316d73bSSven Peter compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; 6795316d73bSSven Peter reg = <0x2 0x77408000 0x0 0x4000>; 6805316d73bSSven Peter interrupt-parent = <&aic>; 6815316d73bSSven Peter interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>, 6825316d73bSSven Peter <AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>, 6835316d73bSSven Peter <AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>, 6845316d73bSSven Peter <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>; 6855316d73bSSven Peter interrupt-names = "send-empty", "send-not-empty", 6865316d73bSSven Peter "recv-empty", "recv-not-empty"; 6875316d73bSSven Peter #mbox-cells = <0>; 6885316d73bSSven Peter power-domains = <&ps_ans2>; 6895316d73bSSven Peter }; 6905316d73bSSven Peter 6915316d73bSSven Peter sart: iommu@27bc50000 { 6925316d73bSSven Peter compatible = "apple,t8103-sart"; 6935316d73bSSven Peter reg = <0x2 0x7bc50000 0x0 0x10000>; 6945316d73bSSven Peter power-domains = <&ps_ans2>; 6955316d73bSSven Peter }; 6965316d73bSSven Peter 6975316d73bSSven Peter nvme@27bcc0000 { 6985316d73bSSven Peter compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2"; 6995316d73bSSven Peter reg = <0x2 0x7bcc0000 0x0 0x40000>, 7005316d73bSSven Peter <0x2 0x77400000 0x0 0x4000>; 7015316d73bSSven Peter reg-names = "nvme", "ans"; 7025316d73bSSven Peter interrupt-parent = <&aic>; 7035316d73bSSven Peter interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>; 7045316d73bSSven Peter mboxes = <&ans_mbox>; 7055316d73bSSven Peter apple,sart = <&sart>; 7065316d73bSSven Peter power-domains = <&ps_ans2>, <&ps_apcie_st>; 7075316d73bSSven Peter power-domain-names = "ans", "apcie0"; 7085316d73bSSven Peter resets = <&ps_ans2>; 7095316d73bSSven Peter }; 7105316d73bSSven Peter 71156d32c51SJanne Grunau pcie0_dart_0: iommu@681008000 { 7123c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 7133c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 7143c866bb7SMarc Zyngier #iommu-cells = <1>; 7153c866bb7SMarc Zyngier interrupt-parent = <&aic>; 7163c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 717106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 7183c866bb7SMarc Zyngier }; 7193c866bb7SMarc Zyngier 72056d32c51SJanne Grunau pcie0_dart_1: iommu@682008000 { 7213c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 7223c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 7233c866bb7SMarc Zyngier #iommu-cells = <1>; 7243c866bb7SMarc Zyngier interrupt-parent = <&aic>; 7253c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 726106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 7273c866bb7SMarc Zyngier }; 7283c866bb7SMarc Zyngier 72956d32c51SJanne Grunau pcie0_dart_2: iommu@683008000 { 7303c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 7313c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 7323c866bb7SMarc Zyngier #iommu-cells = <1>; 7333c866bb7SMarc Zyngier interrupt-parent = <&aic>; 7343c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 735106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 7363c866bb7SMarc Zyngier }; 7373c866bb7SMarc Zyngier 738ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 739ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 740ff2a8d91SMark Kettenis device_type = "pci"; 741ff2a8d91SMark Kettenis 742ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 743ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 744ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 745ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 746ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 747ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 748ff2a8d91SMark Kettenis 749ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 750ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 751ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 752ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 753ff2a8d91SMark Kettenis 754ff2a8d91SMark Kettenis msi-controller; 755ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 756ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 757ff2a8d91SMark Kettenis 7583c866bb7SMarc Zyngier 7593c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 7603c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 7613c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 7623c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 7633c866bb7SMarc Zyngier 764ff2a8d91SMark Kettenis bus-range = <0 3>; 765ff2a8d91SMark Kettenis #address-cells = <3>; 766ff2a8d91SMark Kettenis #size-cells = <2>; 767ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 768ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 769ff2a8d91SMark Kettenis 770106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 771ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 772ff2a8d91SMark Kettenis pinctrl-names = "default"; 773ff2a8d91SMark Kettenis 774128888a6SMarc Zyngier port00: pci@0,0 { 775ff2a8d91SMark Kettenis device_type = "pci"; 776ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 7775b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>; 778ff2a8d91SMark Kettenis 779ff2a8d91SMark Kettenis #address-cells = <3>; 780ff2a8d91SMark Kettenis #size-cells = <2>; 781ff2a8d91SMark Kettenis ranges; 782128888a6SMarc Zyngier 783128888a6SMarc Zyngier interrupt-controller; 784128888a6SMarc Zyngier #interrupt-cells = <1>; 785128888a6SMarc Zyngier 786128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 787128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 788128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 789128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 790128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 791ff2a8d91SMark Kettenis }; 792ff2a8d91SMark Kettenis 793128888a6SMarc Zyngier port01: pci@1,0 { 794ff2a8d91SMark Kettenis device_type = "pci"; 795ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 7965b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>; 797ff2a8d91SMark Kettenis 798ff2a8d91SMark Kettenis #address-cells = <3>; 799ff2a8d91SMark Kettenis #size-cells = <2>; 800ff2a8d91SMark Kettenis ranges; 801128888a6SMarc Zyngier 802128888a6SMarc Zyngier interrupt-controller; 803128888a6SMarc Zyngier #interrupt-cells = <1>; 804128888a6SMarc Zyngier 805128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 806128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 807128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 808128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 809128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 810ff2a8d91SMark Kettenis }; 811ff2a8d91SMark Kettenis 812128888a6SMarc Zyngier port02: pci@2,0 { 813ff2a8d91SMark Kettenis device_type = "pci"; 814ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 8155b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>; 816ff2a8d91SMark Kettenis 817ff2a8d91SMark Kettenis #address-cells = <3>; 818ff2a8d91SMark Kettenis #size-cells = <2>; 819ff2a8d91SMark Kettenis ranges; 820128888a6SMarc Zyngier 821128888a6SMarc Zyngier interrupt-controller; 822128888a6SMarc Zyngier #interrupt-cells = <1>; 823128888a6SMarc Zyngier 824128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 825128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 826128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 827128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 828128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 829ff2a8d91SMark Kettenis }; 830ff2a8d91SMark Kettenis }; 8317d2d16ccSHector Martin }; 8327d2d16ccSHector Martin}; 833106ba3b4SHector Martin 834106ba3b4SHector Martin#include "t8103-pmgr.dtsi" 835