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>; 669ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 679ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 689ecb7a4bSJanne 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>; 809ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 819ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 829ecb7a4bSJanne 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>; 949ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 959ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 969ecb7a4bSJanne 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>; 1089ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_0>; 1099ecb7a4bSJanne Grunau i-cache-size = <0x20000>; 1109ecb7a4bSJanne 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>; 1229ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 1239ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 1249ecb7a4bSJanne 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>; 1369ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 1379ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 1389ecb7a4bSJanne 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>; 1509ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 1519ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 1529ecb7a4bSJanne 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>; 1649ecb7a4bSJanne Grunau next-level-cache = <&l2_cache_1>; 1659ecb7a4bSJanne Grunau i-cache-size = <0x30000>; 1669ecb7a4bSJanne Grunau d-cache-size = <0x20000>; 1679ecb7a4bSJanne Grunau }; 1689ecb7a4bSJanne Grunau 1699ecb7a4bSJanne Grunau l2_cache_0: l2-cache-0 { 1709ecb7a4bSJanne Grunau compatible = "cache"; 1719ecb7a4bSJanne Grunau cache-level = <2>; 1729ecb7a4bSJanne Grunau cache-unified; 1739ecb7a4bSJanne Grunau cache-size = <0x400000>; 1749ecb7a4bSJanne Grunau }; 1759ecb7a4bSJanne Grunau 1769ecb7a4bSJanne Grunau l2_cache_1: l2-cache-1 { 1779ecb7a4bSJanne Grunau compatible = "cache"; 1789ecb7a4bSJanne Grunau cache-level = <2>; 1799ecb7a4bSJanne Grunau cache-unified; 1809ecb7a4bSJanne 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 435*348981c7SSasha Finkelstein fpwm1: pwm@235044000 { 436*348981c7SSasha Finkelstein compatible = "apple,t8103-fpwm", "apple,s5l-fpwm"; 437*348981c7SSasha Finkelstein reg = <0x2 0x35044000 0x0 0x4000>; 438*348981c7SSasha Finkelstein power-domains = <&ps_fpwm1>; 439*348981c7SSasha Finkelstein clocks = <&clkref>; 440*348981c7SSasha Finkelstein #pwm-cells = <2>; 441*348981c7SSasha Finkelstein status = "disabled"; 442*348981c7SSasha Finkelstein }; 443*348981c7SSasha Finkelstein 4447d2d16ccSHector Martin serial0: serial@235200000 { 4457d2d16ccSHector Martin compatible = "apple,s5l-uart"; 4467d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 4477d2d16ccSHector Martin reg-io-width = <4>; 4487d2d16ccSHector Martin interrupt-parent = <&aic>; 4497d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 4507d2d16ccSHector Martin /* 4517d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 4527d2d16ccSHector Martin * be a third selectable clock. 4537d2d16ccSHector Martin */ 45457337b25SHector Martin clocks = <&clkref>, <&clkref>; 4557d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 456106ba3b4SHector Martin power-domains = <&ps_uart0>; 4577d2d16ccSHector Martin status = "disabled"; 4587d2d16ccSHector Martin }; 4597d2d16ccSHector Martin 4602ba22cfeSHector Martin serial2: serial@235208000 { 4612ba22cfeSHector Martin compatible = "apple,s5l-uart"; 4622ba22cfeSHector Martin reg = <0x2 0x35208000 0x0 0x1000>; 4632ba22cfeSHector Martin reg-io-width = <4>; 4642ba22cfeSHector Martin interrupt-parent = <&aic>; 4652ba22cfeSHector Martin interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; 46657337b25SHector Martin clocks = <&clkref>, <&clkref>; 4672ba22cfeSHector Martin clock-names = "uart", "clk_uart_baud0"; 4682ba22cfeSHector Martin power-domains = <&ps_uart2>; 4697d2d16ccSHector Martin status = "disabled"; 4707d2d16ccSHector Martin }; 4717d2d16ccSHector Martin 4728a3df85aSMartin Povišer admac: dma-controller@238200000 { 4738a3df85aSMartin Povišer compatible = "apple,t8103-admac", "apple,admac"; 4748a3df85aSMartin Povišer reg = <0x2 0x38200000 0x0 0x34000>; 4758a3df85aSMartin Povišer dma-channels = <24>; 4768a3df85aSMartin Povišer interrupts-extended = <0>, 4778a3df85aSMartin Povišer <&aic AIC_IRQ 626 IRQ_TYPE_LEVEL_HIGH>, 4788a3df85aSMartin Povišer <0>, 4798a3df85aSMartin Povišer <0>; 4808a3df85aSMartin Povišer #dma-cells = <1>; 48163bf0b66SHector Martin iommus = <&sio_dart 2>; 4828a3df85aSMartin Povišer power-domains = <&ps_sio_adma>; 48356fed763SMartin Povišer resets = <&ps_audio_p>; 4848a3df85aSMartin Povišer }; 4858a3df85aSMartin Povišer 4868a3df85aSMartin Povišer mca: i2s@238400000 { 4878a3df85aSMartin Povišer compatible = "apple,t8103-mca", "apple,mca"; 4888a3df85aSMartin Povišer reg = <0x2 0x38400000 0x0 0x18000>, 4898a3df85aSMartin Povišer <0x2 0x38300000 0x0 0x30000>; 4908a3df85aSMartin Povišer 4918a3df85aSMartin Povišer interrupt-parent = <&aic>; 4928a3df85aSMartin Povišer interrupts = <AIC_IRQ 619 IRQ_TYPE_LEVEL_HIGH>, 4938a3df85aSMartin Povišer <AIC_IRQ 620 IRQ_TYPE_LEVEL_HIGH>, 4948a3df85aSMartin Povišer <AIC_IRQ 621 IRQ_TYPE_LEVEL_HIGH>, 4958a3df85aSMartin Povišer <AIC_IRQ 622 IRQ_TYPE_LEVEL_HIGH>, 4968a3df85aSMartin Povišer <AIC_IRQ 623 IRQ_TYPE_LEVEL_HIGH>, 4978a3df85aSMartin Povišer <AIC_IRQ 624 IRQ_TYPE_LEVEL_HIGH>; 4988a3df85aSMartin Povišer 4998a3df85aSMartin Povišer resets = <&ps_audio_p>; 5008a3df85aSMartin Povišer clocks = <&nco 0>, <&nco 1>, <&nco 2>, 5018a3df85aSMartin Povišer <&nco 3>, <&nco 4>, <&nco 4>; 5028a3df85aSMartin Povišer power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>, 5038a3df85aSMartin Povišer <&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>; 5048a3df85aSMartin Povišer dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>, 5058a3df85aSMartin Povišer <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>, 5068a3df85aSMartin Povišer <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>, 5078a3df85aSMartin Povišer <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>, 5088a3df85aSMartin Povišer <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>, 5098a3df85aSMartin Povišer <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>; 5108a3df85aSMartin Povišer dma-names = "tx0a", "rx0a", "tx0b", "rx0b", 5118a3df85aSMartin Povišer "tx1a", "rx1a", "tx1b", "rx1b", 5128a3df85aSMartin Povišer "tx2a", "rx2a", "tx2b", "rx2b", 5138a3df85aSMartin Povišer "tx3a", "rx3a", "tx3b", "rx3b", 5148a3df85aSMartin Povišer "tx4a", "rx4a", "tx4b", "rx4b", 5158a3df85aSMartin Povišer "tx5a", "rx5a", "tx5b", "rx5b"; 5168a3df85aSMartin Povišer 5178a3df85aSMartin Povišer #sound-dai-cells = <1>; 5188a3df85aSMartin Povišer }; 5198a3df85aSMartin Povišer 5208a3df85aSMartin Povišer nco: clock-controller@23b044000 { 5218a3df85aSMartin Povišer compatible = "apple,t8103-nco", "apple,nco"; 5228a3df85aSMartin Povišer reg = <0x2 0x3b044000 0x0 0x14000>; 5238a3df85aSMartin Povišer clocks = <&nco_clkref>; 5248a3df85aSMartin Povišer #clock-cells = <1>; 5258a3df85aSMartin Povišer }; 5268a3df85aSMartin Povišer 5277d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 5287d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 5297d2d16ccSHector Martin #interrupt-cells = <3>; 5307d2d16ccSHector Martin interrupt-controller; 5317d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 532106ba3b4SHector Martin power-domains = <&ps_aic>; 5331852e22bSMarc Zyngier 5341852e22bSMarc Zyngier affinities { 5351852e22bSMarc Zyngier e-core-pmu-affinity { 5361852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_E>; 5373e895a64SHector Martin cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>; 5381852e22bSMarc Zyngier }; 5391852e22bSMarc Zyngier 5401852e22bSMarc Zyngier p-core-pmu-affinity { 5411852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_P>; 5423e895a64SHector Martin cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>; 5431852e22bSMarc Zyngier }; 5441852e22bSMarc Zyngier }; 545106ba3b4SHector Martin }; 546106ba3b4SHector Martin 547106ba3b4SHector Martin pmgr: power-management@23b700000 { 548106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 549106ba3b4SHector Martin #address-cells = <1>; 550106ba3b4SHector Martin #size-cells = <1>; 551106ba3b4SHector Martin reg = <0x2 0x3b700000 0 0x14000>; 5527d2d16ccSHector Martin }; 5530a8282b8SMark Kettenis 5540a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 5550a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 5560a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 557106ba3b4SHector Martin power-domains = <&ps_gpio>; 5580a8282b8SMark Kettenis 5590a8282b8SMark Kettenis gpio-controller; 5600a8282b8SMark Kettenis #gpio-cells = <2>; 5610a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 5620a8282b8SMark Kettenis apple,npins = <212>; 5630a8282b8SMark Kettenis 5640a8282b8SMark Kettenis interrupt-controller; 5650668639eSJanne Grunau #interrupt-cells = <2>; 5660a8282b8SMark Kettenis interrupt-parent = <&aic>; 5670a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 5680a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 5690a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 5700a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 5710a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 5720a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 5730a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 5740a8282b8SMark Kettenis 57590458f6eSJanne Grunau i2c0_pins: i2c0-pins { 57690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 57790458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 57890458f6eSJanne Grunau }; 57990458f6eSJanne Grunau 58090458f6eSJanne Grunau i2c1_pins: i2c1-pins { 58190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 58290458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 58390458f6eSJanne Grunau }; 58490458f6eSJanne Grunau 58590458f6eSJanne Grunau i2c2_pins: i2c2-pins { 58690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 58790458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 58890458f6eSJanne Grunau }; 58990458f6eSJanne Grunau 59090458f6eSJanne Grunau i2c3_pins: i2c3-pins { 59190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 59290458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 59390458f6eSJanne Grunau }; 59490458f6eSJanne Grunau 59590458f6eSJanne Grunau i2c4_pins: i2c4-pins { 59690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 59790458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 59890458f6eSJanne Grunau }; 59990458f6eSJanne Grunau 6000a8282b8SMark Kettenis pcie_pins: pcie-pins { 6010a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 6020a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 6030a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 6040a8282b8SMark Kettenis }; 6050a8282b8SMark Kettenis }; 6060a8282b8SMark Kettenis 6070a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 6080a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6090a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 610106ba3b4SHector Martin power-domains = <&ps_nub_gpio>; 6110a8282b8SMark Kettenis 6120a8282b8SMark Kettenis gpio-controller; 6130a8282b8SMark Kettenis #gpio-cells = <2>; 6140a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 6150a8282b8SMark Kettenis apple,npins = <23>; 6160a8282b8SMark Kettenis 6170a8282b8SMark Kettenis interrupt-controller; 6180668639eSJanne Grunau #interrupt-cells = <2>; 6190a8282b8SMark Kettenis interrupt-parent = <&aic>; 6200a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 6210a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 6220a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 6230a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 6240a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 6250a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 6260a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 6270a8282b8SMark Kettenis }; 6280a8282b8SMark Kettenis 6298adf987cSHector Martin pmgr_mini: power-management@23d280000 { 6308adf987cSHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 6318adf987cSHector Martin #address-cells = <1>; 6328adf987cSHector Martin #size-cells = <1>; 6338adf987cSHector Martin reg = <0x2 0x3d280000 0 0x4000>; 6348adf987cSHector Martin }; 6358adf987cSHector Martin 636b4d11106SSven Peter wdt: watchdog@23d2b0000 { 637b4d11106SSven Peter compatible = "apple,t8103-wdt", "apple,wdt"; 638b4d11106SSven Peter reg = <0x2 0x3d2b0000 0x0 0x4000>; 63957337b25SHector Martin clocks = <&clkref>; 640b4d11106SSven Peter interrupt-parent = <&aic>; 641b4d11106SSven Peter interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>; 642b4d11106SSven Peter }; 643b4d11106SSven Peter 6440a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 6450a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6460a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 6470a8282b8SMark Kettenis 6480a8282b8SMark Kettenis gpio-controller; 6490a8282b8SMark Kettenis #gpio-cells = <2>; 6500a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 6510a8282b8SMark Kettenis apple,npins = <16>; 6520a8282b8SMark Kettenis 6530a8282b8SMark Kettenis interrupt-controller; 6540668639eSJanne Grunau #interrupt-cells = <2>; 6550a8282b8SMark Kettenis interrupt-parent = <&aic>; 6560a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 6570a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 6580a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 6590a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 6600a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 6610a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 6620a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 6630a8282b8SMark Kettenis }; 664ff2a8d91SMark Kettenis 6658adf987cSHector Martin pinctrl_aop: pinctrl@24a820000 { 6668adf987cSHector Martin compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6678adf987cSHector Martin reg = <0x2 0x4a820000 0x0 0x4000>; 6688adf987cSHector Martin 6698adf987cSHector Martin gpio-controller; 6708adf987cSHector Martin #gpio-cells = <2>; 6718adf987cSHector Martin gpio-ranges = <&pinctrl_aop 0 0 42>; 6728adf987cSHector Martin apple,npins = <42>; 6738adf987cSHector Martin 6748adf987cSHector Martin interrupt-controller; 6758adf987cSHector Martin #interrupt-cells = <2>; 6768adf987cSHector Martin interrupt-parent = <&aic>; 6778adf987cSHector Martin interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 6788adf987cSHector Martin <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 6798adf987cSHector Martin <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 6808adf987cSHector Martin <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 6818adf987cSHector Martin <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 6828adf987cSHector Martin <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 6838adf987cSHector Martin <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 6848adf987cSHector Martin }; 6858adf987cSHector Martin 6865316d73bSSven Peter ans_mbox: mbox@277408000 { 6875316d73bSSven Peter compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; 6885316d73bSSven Peter reg = <0x2 0x77408000 0x0 0x4000>; 6895316d73bSSven Peter interrupt-parent = <&aic>; 6905316d73bSSven Peter interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>, 6915316d73bSSven Peter <AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>, 6925316d73bSSven Peter <AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>, 6935316d73bSSven Peter <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>; 6945316d73bSSven Peter interrupt-names = "send-empty", "send-not-empty", 6955316d73bSSven Peter "recv-empty", "recv-not-empty"; 6965316d73bSSven Peter #mbox-cells = <0>; 6975316d73bSSven Peter power-domains = <&ps_ans2>; 6985316d73bSSven Peter }; 6995316d73bSSven Peter 7005316d73bSSven Peter sart: iommu@27bc50000 { 7015316d73bSSven Peter compatible = "apple,t8103-sart"; 7025316d73bSSven Peter reg = <0x2 0x7bc50000 0x0 0x10000>; 7035316d73bSSven Peter power-domains = <&ps_ans2>; 7045316d73bSSven Peter }; 7055316d73bSSven Peter 7065316d73bSSven Peter nvme@27bcc0000 { 7075316d73bSSven Peter compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2"; 7085316d73bSSven Peter reg = <0x2 0x7bcc0000 0x0 0x40000>, 7095316d73bSSven Peter <0x2 0x77400000 0x0 0x4000>; 7105316d73bSSven Peter reg-names = "nvme", "ans"; 7115316d73bSSven Peter interrupt-parent = <&aic>; 7125316d73bSSven Peter interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>; 7135316d73bSSven Peter mboxes = <&ans_mbox>; 7145316d73bSSven Peter apple,sart = <&sart>; 7155316d73bSSven Peter power-domains = <&ps_ans2>, <&ps_apcie_st>; 7165316d73bSSven Peter power-domain-names = "ans", "apcie0"; 7175316d73bSSven Peter resets = <&ps_ans2>; 7185316d73bSSven Peter }; 7195316d73bSSven Peter 72056d32c51SJanne Grunau pcie0_dart_0: iommu@681008000 { 7213c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 7223c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 7233c866bb7SMarc Zyngier #iommu-cells = <1>; 7243c866bb7SMarc Zyngier interrupt-parent = <&aic>; 7253c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 726106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 7273c866bb7SMarc Zyngier }; 7283c866bb7SMarc Zyngier 72956d32c51SJanne Grunau pcie0_dart_1: iommu@682008000 { 7303c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 7313c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 7323c866bb7SMarc Zyngier #iommu-cells = <1>; 7333c866bb7SMarc Zyngier interrupt-parent = <&aic>; 7343c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 735106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 736a0189fdfSJanne Grunau status = "disabled"; 7373c866bb7SMarc Zyngier }; 7383c866bb7SMarc Zyngier 73956d32c51SJanne Grunau pcie0_dart_2: iommu@683008000 { 7403c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 7413c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 7423c866bb7SMarc Zyngier #iommu-cells = <1>; 7433c866bb7SMarc Zyngier interrupt-parent = <&aic>; 7443c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 745106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 746a0189fdfSJanne Grunau status = "disabled"; 7473c866bb7SMarc Zyngier }; 7483c866bb7SMarc Zyngier 749ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 750ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 751ff2a8d91SMark Kettenis device_type = "pci"; 752ff2a8d91SMark Kettenis 753ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 754ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 755ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 756ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 757ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 758ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 759ff2a8d91SMark Kettenis 760ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 761ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 762ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 763ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 764ff2a8d91SMark Kettenis 765ff2a8d91SMark Kettenis msi-controller; 766ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 767ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 768ff2a8d91SMark Kettenis 7693c866bb7SMarc Zyngier 7703c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 7713c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 7723c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 7733c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 7743c866bb7SMarc Zyngier 775ff2a8d91SMark Kettenis bus-range = <0 3>; 776ff2a8d91SMark Kettenis #address-cells = <3>; 777ff2a8d91SMark Kettenis #size-cells = <2>; 778ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 779ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 780ff2a8d91SMark Kettenis 781106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 782ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 783ff2a8d91SMark Kettenis pinctrl-names = "default"; 784ff2a8d91SMark Kettenis 785128888a6SMarc Zyngier port00: pci@0,0 { 786ff2a8d91SMark Kettenis device_type = "pci"; 787ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 7885b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>; 789ff2a8d91SMark Kettenis 790ff2a8d91SMark Kettenis #address-cells = <3>; 791ff2a8d91SMark Kettenis #size-cells = <2>; 792ff2a8d91SMark Kettenis ranges; 793128888a6SMarc Zyngier 794128888a6SMarc Zyngier interrupt-controller; 795128888a6SMarc Zyngier #interrupt-cells = <1>; 796128888a6SMarc Zyngier 797128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 798128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 799128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 800128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 801128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 802ff2a8d91SMark Kettenis }; 803ff2a8d91SMark Kettenis 804128888a6SMarc Zyngier port01: pci@1,0 { 805ff2a8d91SMark Kettenis device_type = "pci"; 806ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 8075b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>; 808ff2a8d91SMark Kettenis 809ff2a8d91SMark Kettenis #address-cells = <3>; 810ff2a8d91SMark Kettenis #size-cells = <2>; 811ff2a8d91SMark Kettenis ranges; 812128888a6SMarc Zyngier 813128888a6SMarc Zyngier interrupt-controller; 814128888a6SMarc Zyngier #interrupt-cells = <1>; 815128888a6SMarc Zyngier 816128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 817128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 818128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 819128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 820128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 821a0189fdfSJanne Grunau status = "disabled"; 822ff2a8d91SMark Kettenis }; 823ff2a8d91SMark Kettenis 824128888a6SMarc Zyngier port02: pci@2,0 { 825ff2a8d91SMark Kettenis device_type = "pci"; 826ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 8275b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>; 828ff2a8d91SMark Kettenis 829ff2a8d91SMark Kettenis #address-cells = <3>; 830ff2a8d91SMark Kettenis #size-cells = <2>; 831ff2a8d91SMark Kettenis ranges; 832128888a6SMarc Zyngier 833128888a6SMarc Zyngier interrupt-controller; 834128888a6SMarc Zyngier #interrupt-cells = <1>; 835128888a6SMarc Zyngier 836128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 837128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 838128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 839128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 840128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 841a0189fdfSJanne Grunau status = "disabled"; 842ff2a8d91SMark Kettenis }; 843ff2a8d91SMark Kettenis }; 8447d2d16ccSHector Martin }; 8457d2d16ccSHector Martin}; 846106ba3b4SHector Martin 847106ba3b4SHector Martin#include "t8103-pmgr.dtsi" 848