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 25*3e895a64SHector Martin cpu-map { 26*3e895a64SHector Martin cluster0 { 27*3e895a64SHector Martin core0 { 28*3e895a64SHector Martin cpu = <&cpu_e0>; 29*3e895a64SHector Martin }; 30*3e895a64SHector Martin core1 { 31*3e895a64SHector Martin cpu = <&cpu_e1>; 32*3e895a64SHector Martin }; 33*3e895a64SHector Martin core2 { 34*3e895a64SHector Martin cpu = <&cpu_e2>; 35*3e895a64SHector Martin }; 36*3e895a64SHector Martin core3 { 37*3e895a64SHector Martin cpu = <&cpu_e3>; 38*3e895a64SHector Martin }; 39*3e895a64SHector Martin }; 40*3e895a64SHector Martin 41*3e895a64SHector Martin cluster1 { 42*3e895a64SHector Martin core0 { 43*3e895a64SHector Martin cpu = <&cpu_p0>; 44*3e895a64SHector Martin }; 45*3e895a64SHector Martin core1 { 46*3e895a64SHector Martin cpu = <&cpu_p1>; 47*3e895a64SHector Martin }; 48*3e895a64SHector Martin core2 { 49*3e895a64SHector Martin cpu = <&cpu_p2>; 50*3e895a64SHector Martin }; 51*3e895a64SHector Martin core3 { 52*3e895a64SHector Martin cpu = <&cpu_p3>; 53*3e895a64SHector Martin }; 54*3e895a64SHector Martin }; 55*3e895a64SHector Martin }; 56*3e895a64SHector Martin 57*3e895a64SHector 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 */ 63*3e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 64*3e895a64SHector Martin capacity-dmips-mhz = <714>; 65*3e895a64SHector Martin performance-domains = <&cpufreq_e>; 667d2d16ccSHector Martin }; 677d2d16ccSHector Martin 68*3e895a64SHector Martin cpu_e1: cpu@1 { 697d2d16ccSHector Martin compatible = "apple,icestorm"; 707d2d16ccSHector Martin device_type = "cpu"; 717d2d16ccSHector Martin reg = <0x0 0x1>; 727d2d16ccSHector Martin enable-method = "spin-table"; 737d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 74*3e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 75*3e895a64SHector Martin capacity-dmips-mhz = <714>; 76*3e895a64SHector Martin performance-domains = <&cpufreq_e>; 777d2d16ccSHector Martin }; 787d2d16ccSHector Martin 79*3e895a64SHector Martin cpu_e2: cpu@2 { 807d2d16ccSHector Martin compatible = "apple,icestorm"; 817d2d16ccSHector Martin device_type = "cpu"; 827d2d16ccSHector Martin reg = <0x0 0x2>; 837d2d16ccSHector Martin enable-method = "spin-table"; 847d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 85*3e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 86*3e895a64SHector Martin capacity-dmips-mhz = <714>; 87*3e895a64SHector Martin performance-domains = <&cpufreq_e>; 887d2d16ccSHector Martin }; 897d2d16ccSHector Martin 90*3e895a64SHector Martin cpu_e3: cpu@3 { 917d2d16ccSHector Martin compatible = "apple,icestorm"; 927d2d16ccSHector Martin device_type = "cpu"; 937d2d16ccSHector Martin reg = <0x0 0x3>; 947d2d16ccSHector Martin enable-method = "spin-table"; 957d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 96*3e895a64SHector Martin operating-points-v2 = <&ecluster_opp>; 97*3e895a64SHector Martin capacity-dmips-mhz = <714>; 98*3e895a64SHector Martin performance-domains = <&cpufreq_e>; 997d2d16ccSHector Martin }; 1007d2d16ccSHector Martin 101*3e895a64SHector Martin cpu_p0: cpu@10100 { 1027d2d16ccSHector Martin compatible = "apple,firestorm"; 1037d2d16ccSHector Martin device_type = "cpu"; 1047d2d16ccSHector Martin reg = <0x0 0x10100>; 1057d2d16ccSHector Martin enable-method = "spin-table"; 1067d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 107*3e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 108*3e895a64SHector Martin capacity-dmips-mhz = <1024>; 109*3e895a64SHector Martin performance-domains = <&cpufreq_p>; 1107d2d16ccSHector Martin }; 1117d2d16ccSHector Martin 112*3e895a64SHector Martin cpu_p1: cpu@10101 { 1137d2d16ccSHector Martin compatible = "apple,firestorm"; 1147d2d16ccSHector Martin device_type = "cpu"; 1157d2d16ccSHector Martin reg = <0x0 0x10101>; 1167d2d16ccSHector Martin enable-method = "spin-table"; 1177d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 118*3e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 119*3e895a64SHector Martin capacity-dmips-mhz = <1024>; 120*3e895a64SHector Martin performance-domains = <&cpufreq_p>; 1217d2d16ccSHector Martin }; 1227d2d16ccSHector Martin 123*3e895a64SHector Martin cpu_p2: cpu@10102 { 1247d2d16ccSHector Martin compatible = "apple,firestorm"; 1257d2d16ccSHector Martin device_type = "cpu"; 1267d2d16ccSHector Martin reg = <0x0 0x10102>; 1277d2d16ccSHector Martin enable-method = "spin-table"; 1287d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 129*3e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 130*3e895a64SHector Martin capacity-dmips-mhz = <1024>; 131*3e895a64SHector Martin performance-domains = <&cpufreq_p>; 1327d2d16ccSHector Martin }; 1337d2d16ccSHector Martin 134*3e895a64SHector Martin cpu_p3: cpu@10103 { 1357d2d16ccSHector Martin compatible = "apple,firestorm"; 1367d2d16ccSHector Martin device_type = "cpu"; 1377d2d16ccSHector Martin reg = <0x0 0x10103>; 1387d2d16ccSHector Martin enable-method = "spin-table"; 1397d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 140*3e895a64SHector Martin operating-points-v2 = <&pcluster_opp>; 141*3e895a64SHector Martin capacity-dmips-mhz = <1024>; 142*3e895a64SHector Martin performance-domains = <&cpufreq_p>; 1437d2d16ccSHector Martin }; 1447d2d16ccSHector Martin }; 1457d2d16ccSHector Martin 146*3e895a64SHector Martin ecluster_opp: opp-table-0 { 147*3e895a64SHector Martin compatible = "operating-points-v2"; 148*3e895a64SHector Martin 149*3e895a64SHector Martin opp01 { 150*3e895a64SHector Martin opp-hz = /bits/ 64 <600000000>; 151*3e895a64SHector Martin opp-level = <1>; 152*3e895a64SHector Martin clock-latency-ns = <7500>; 153*3e895a64SHector Martin }; 154*3e895a64SHector Martin opp02 { 155*3e895a64SHector Martin opp-hz = /bits/ 64 <972000000>; 156*3e895a64SHector Martin opp-level = <2>; 157*3e895a64SHector Martin clock-latency-ns = <22000>; 158*3e895a64SHector Martin }; 159*3e895a64SHector Martin opp03 { 160*3e895a64SHector Martin opp-hz = /bits/ 64 <1332000000>; 161*3e895a64SHector Martin opp-level = <3>; 162*3e895a64SHector Martin clock-latency-ns = <27000>; 163*3e895a64SHector Martin }; 164*3e895a64SHector Martin opp04 { 165*3e895a64SHector Martin opp-hz = /bits/ 64 <1704000000>; 166*3e895a64SHector Martin opp-level = <4>; 167*3e895a64SHector Martin clock-latency-ns = <33000>; 168*3e895a64SHector Martin }; 169*3e895a64SHector Martin opp05 { 170*3e895a64SHector Martin opp-hz = /bits/ 64 <2064000000>; 171*3e895a64SHector Martin opp-level = <5>; 172*3e895a64SHector Martin clock-latency-ns = <50000>; 173*3e895a64SHector Martin }; 174*3e895a64SHector Martin }; 175*3e895a64SHector Martin 176*3e895a64SHector Martin pcluster_opp: opp-table-1 { 177*3e895a64SHector Martin compatible = "operating-points-v2"; 178*3e895a64SHector Martin 179*3e895a64SHector Martin opp01 { 180*3e895a64SHector Martin opp-hz = /bits/ 64 <600000000>; 181*3e895a64SHector Martin opp-level = <1>; 182*3e895a64SHector Martin clock-latency-ns = <8000>; 183*3e895a64SHector Martin }; 184*3e895a64SHector Martin opp02 { 185*3e895a64SHector Martin opp-hz = /bits/ 64 <828000000>; 186*3e895a64SHector Martin opp-level = <2>; 187*3e895a64SHector Martin clock-latency-ns = <19000>; 188*3e895a64SHector Martin }; 189*3e895a64SHector Martin opp03 { 190*3e895a64SHector Martin opp-hz = /bits/ 64 <1056000000>; 191*3e895a64SHector Martin opp-level = <3>; 192*3e895a64SHector Martin clock-latency-ns = <21000>; 193*3e895a64SHector Martin }; 194*3e895a64SHector Martin opp04 { 195*3e895a64SHector Martin opp-hz = /bits/ 64 <1284000000>; 196*3e895a64SHector Martin opp-level = <4>; 197*3e895a64SHector Martin clock-latency-ns = <23000>; 198*3e895a64SHector Martin }; 199*3e895a64SHector Martin opp05 { 200*3e895a64SHector Martin opp-hz = /bits/ 64 <1500000000>; 201*3e895a64SHector Martin opp-level = <5>; 202*3e895a64SHector Martin clock-latency-ns = <24000>; 203*3e895a64SHector Martin }; 204*3e895a64SHector Martin opp06 { 205*3e895a64SHector Martin opp-hz = /bits/ 64 <1728000000>; 206*3e895a64SHector Martin opp-level = <6>; 207*3e895a64SHector Martin clock-latency-ns = <29000>; 208*3e895a64SHector Martin }; 209*3e895a64SHector Martin opp07 { 210*3e895a64SHector Martin opp-hz = /bits/ 64 <1956000000>; 211*3e895a64SHector Martin opp-level = <7>; 212*3e895a64SHector Martin clock-latency-ns = <31000>; 213*3e895a64SHector Martin }; 214*3e895a64SHector Martin opp08 { 215*3e895a64SHector Martin opp-hz = /bits/ 64 <2184000000>; 216*3e895a64SHector Martin opp-level = <8>; 217*3e895a64SHector Martin clock-latency-ns = <34000>; 218*3e895a64SHector Martin }; 219*3e895a64SHector Martin opp09 { 220*3e895a64SHector Martin opp-hz = /bits/ 64 <2388000000>; 221*3e895a64SHector Martin opp-level = <9>; 222*3e895a64SHector Martin clock-latency-ns = <36000>; 223*3e895a64SHector Martin }; 224*3e895a64SHector Martin opp10 { 225*3e895a64SHector Martin opp-hz = /bits/ 64 <2592000000>; 226*3e895a64SHector Martin opp-level = <10>; 227*3e895a64SHector Martin clock-latency-ns = <51000>; 228*3e895a64SHector Martin }; 229*3e895a64SHector Martin opp11 { 230*3e895a64SHector Martin opp-hz = /bits/ 64 <2772000000>; 231*3e895a64SHector Martin opp-level = <11>; 232*3e895a64SHector Martin clock-latency-ns = <54000>; 233*3e895a64SHector Martin }; 234*3e895a64SHector Martin opp12 { 235*3e895a64SHector Martin opp-hz = /bits/ 64 <2988000000>; 236*3e895a64SHector Martin opp-level = <12>; 237*3e895a64SHector Martin clock-latency-ns = <55000>; 238*3e895a64SHector Martin }; 239*3e895a64SHector Martin#if 0 240*3e895a64SHector Martin /* Not available until CPU deep sleep is implemented */ 241*3e895a64SHector Martin opp13 { 242*3e895a64SHector Martin opp-hz = /bits/ 64 <3096000000>; 243*3e895a64SHector Martin opp-level = <13>; 244*3e895a64SHector Martin clock-latency-ns = <55000>; 245*3e895a64SHector Martin turbo-mode; 246*3e895a64SHector Martin }; 247*3e895a64SHector Martin opp14 { 248*3e895a64SHector Martin opp-hz = /bits/ 64 <3144000000>; 249*3e895a64SHector Martin opp-level = <14>; 250*3e895a64SHector Martin clock-latency-ns = <56000>; 251*3e895a64SHector Martin turbo-mode; 252*3e895a64SHector Martin }; 253*3e895a64SHector Martin opp15 { 254*3e895a64SHector Martin opp-hz = /bits/ 64 <3204000000>; 255*3e895a64SHector Martin opp-level = <15>; 256*3e895a64SHector Martin clock-latency-ns = <56000>; 257*3e895a64SHector Martin turbo-mode; 258*3e895a64SHector Martin }; 259*3e895a64SHector Martin#endif 260*3e895a64SHector Martin }; 261*3e895a64SHector Martin 2627d2d16ccSHector Martin timer { 2637d2d16ccSHector Martin compatible = "arm,armv8-timer"; 2647d2d16ccSHector Martin interrupt-parent = <&aic>; 2657d2d16ccSHector Martin interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; 2667d2d16ccSHector Martin interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 2677d2d16ccSHector Martin <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, 2687d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, 2697d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; 2707d2d16ccSHector Martin }; 2717d2d16ccSHector Martin 2720f522efcSMarc Zyngier pmu-e { 2730f522efcSMarc Zyngier compatible = "apple,icestorm-pmu"; 2740f522efcSMarc Zyngier interrupt-parent = <&aic>; 2750f522efcSMarc Zyngier interrupts = <AIC_FIQ AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>; 2760f522efcSMarc Zyngier }; 2770f522efcSMarc Zyngier 2780f522efcSMarc Zyngier pmu-p { 2790f522efcSMarc Zyngier compatible = "apple,firestorm-pmu"; 2800f522efcSMarc Zyngier interrupt-parent = <&aic>; 2810f522efcSMarc Zyngier interrupts = <AIC_FIQ AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>; 2820f522efcSMarc Zyngier }; 2830f522efcSMarc Zyngier 28457337b25SHector Martin clkref: clock-ref { 2857d2d16ccSHector Martin compatible = "fixed-clock"; 2867d2d16ccSHector Martin #clock-cells = <0>; 2877d2d16ccSHector Martin clock-frequency = <24000000>; 28857337b25SHector Martin clock-output-names = "clkref"; 2897d2d16ccSHector Martin }; 2907d2d16ccSHector Martin 2918a3df85aSMartin Povišer /* 2928a3df85aSMartin Povišer * This is a fabulated representation of the input clock 2938a3df85aSMartin Povišer * to NCO since we don't know the true clock tree. 2948a3df85aSMartin Povišer */ 2958a3df85aSMartin Povišer nco_clkref: clock-ref-nco { 2968a3df85aSMartin Povišer compatible = "fixed-clock"; 2978a3df85aSMartin Povišer #clock-cells = <0>; 2988a3df85aSMartin Povišer clock-output-names = "nco_ref"; 2998a3df85aSMartin Povišer }; 3008a3df85aSMartin Povišer 3017d2d16ccSHector Martin soc { 3027d2d16ccSHector Martin compatible = "simple-bus"; 3037d2d16ccSHector Martin #address-cells = <2>; 3047d2d16ccSHector Martin #size-cells = <2>; 3057d2d16ccSHector Martin 3067d2d16ccSHector Martin ranges; 3077d2d16ccSHector Martin nonposted-mmio; 3087d2d16ccSHector Martin 309*3e895a64SHector Martin cpufreq_e: performance-controller@210e20000 { 310*3e895a64SHector Martin compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; 311*3e895a64SHector Martin reg = <0x2 0x10e20000 0 0x1000>; 312*3e895a64SHector Martin #performance-domain-cells = <0>; 313*3e895a64SHector Martin }; 314*3e895a64SHector Martin 315*3e895a64SHector Martin cpufreq_p: performance-controller@211e20000 { 316*3e895a64SHector Martin compatible = "apple,t8103-cluster-cpufreq", "apple,cluster-cpufreq"; 317*3e895a64SHector Martin reg = <0x2 0x11e20000 0 0x1000>; 318*3e895a64SHector Martin #performance-domain-cells = <0>; 319*3e895a64SHector Martin }; 320*3e895a64SHector Martin 3218a3df85aSMartin Povišer dart_sio: iommu@235004000 { 3228a3df85aSMartin Povišer compatible = "apple,t8103-dart"; 3238a3df85aSMartin Povišer reg = <0x2 0x35004000 0x0 0x4000>; 3248a3df85aSMartin Povišer interrupt-parent = <&aic>; 3258a3df85aSMartin Povišer interrupts = <AIC_IRQ 635 IRQ_TYPE_LEVEL_HIGH>; 3268a3df85aSMartin Povišer #iommu-cells = <1>; 3278a3df85aSMartin Povišer power-domains = <&ps_sio_cpu>; 3288a3df85aSMartin Povišer }; 3298a3df85aSMartin Povišer 33090458f6eSJanne Grunau i2c0: i2c@235010000 { 33190458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 33290458f6eSJanne Grunau reg = <0x2 0x35010000 0x0 0x4000>; 33357337b25SHector Martin clocks = <&clkref>; 33490458f6eSJanne Grunau interrupt-parent = <&aic>; 33590458f6eSJanne Grunau interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; 33690458f6eSJanne Grunau pinctrl-0 = <&i2c0_pins>; 33790458f6eSJanne Grunau pinctrl-names = "default"; 33890458f6eSJanne Grunau #address-cells = <0x1>; 33990458f6eSJanne Grunau #size-cells = <0x0>; 340106ba3b4SHector Martin power-domains = <&ps_i2c0>; 34190458f6eSJanne Grunau }; 34290458f6eSJanne Grunau 34390458f6eSJanne Grunau i2c1: i2c@235014000 { 34490458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 34590458f6eSJanne Grunau reg = <0x2 0x35014000 0x0 0x4000>; 34657337b25SHector Martin clocks = <&clkref>; 34790458f6eSJanne Grunau interrupt-parent = <&aic>; 34890458f6eSJanne Grunau interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; 34990458f6eSJanne Grunau pinctrl-0 = <&i2c1_pins>; 35090458f6eSJanne Grunau pinctrl-names = "default"; 35190458f6eSJanne Grunau #address-cells = <0x1>; 35290458f6eSJanne Grunau #size-cells = <0x0>; 353106ba3b4SHector Martin power-domains = <&ps_i2c1>; 35490458f6eSJanne Grunau }; 35590458f6eSJanne Grunau 35690458f6eSJanne Grunau i2c2: i2c@235018000 { 35790458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 35890458f6eSJanne Grunau reg = <0x2 0x35018000 0x0 0x4000>; 35957337b25SHector Martin clocks = <&clkref>; 36090458f6eSJanne Grunau interrupt-parent = <&aic>; 36190458f6eSJanne Grunau interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; 36290458f6eSJanne Grunau pinctrl-0 = <&i2c2_pins>; 36390458f6eSJanne Grunau pinctrl-names = "default"; 36490458f6eSJanne Grunau #address-cells = <0x1>; 36590458f6eSJanne Grunau #size-cells = <0x0>; 36690458f6eSJanne Grunau status = "disabled"; /* not used in all devices */ 367106ba3b4SHector Martin power-domains = <&ps_i2c2>; 36890458f6eSJanne Grunau }; 36990458f6eSJanne Grunau 37090458f6eSJanne Grunau i2c3: i2c@23501c000 { 37190458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 37290458f6eSJanne Grunau reg = <0x2 0x3501c000 0x0 0x4000>; 37357337b25SHector Martin clocks = <&clkref>; 37490458f6eSJanne Grunau interrupt-parent = <&aic>; 37590458f6eSJanne Grunau interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; 37690458f6eSJanne Grunau pinctrl-0 = <&i2c3_pins>; 37790458f6eSJanne Grunau pinctrl-names = "default"; 37890458f6eSJanne Grunau #address-cells = <0x1>; 37990458f6eSJanne Grunau #size-cells = <0x0>; 380106ba3b4SHector Martin power-domains = <&ps_i2c3>; 38190458f6eSJanne Grunau }; 38290458f6eSJanne Grunau 38390458f6eSJanne Grunau i2c4: i2c@235020000 { 38490458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 38590458f6eSJanne Grunau reg = <0x2 0x35020000 0x0 0x4000>; 38657337b25SHector Martin clocks = <&clkref>; 38790458f6eSJanne Grunau interrupt-parent = <&aic>; 38890458f6eSJanne Grunau interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; 38990458f6eSJanne Grunau pinctrl-0 = <&i2c4_pins>; 39090458f6eSJanne Grunau pinctrl-names = "default"; 39190458f6eSJanne Grunau #address-cells = <0x1>; 39290458f6eSJanne Grunau #size-cells = <0x0>; 393106ba3b4SHector Martin power-domains = <&ps_i2c4>; 39490458f6eSJanne Grunau status = "disabled"; /* only used in J293 */ 39590458f6eSJanne Grunau }; 39690458f6eSJanne Grunau 3977d2d16ccSHector Martin serial0: serial@235200000 { 3987d2d16ccSHector Martin compatible = "apple,s5l-uart"; 3997d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 4007d2d16ccSHector Martin reg-io-width = <4>; 4017d2d16ccSHector Martin interrupt-parent = <&aic>; 4027d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 4037d2d16ccSHector Martin /* 4047d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 4057d2d16ccSHector Martin * be a third selectable clock. 4067d2d16ccSHector Martin */ 40757337b25SHector Martin clocks = <&clkref>, <&clkref>; 4087d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 409106ba3b4SHector Martin power-domains = <&ps_uart0>; 4107d2d16ccSHector Martin status = "disabled"; 4117d2d16ccSHector Martin }; 4127d2d16ccSHector Martin 4132ba22cfeSHector Martin serial2: serial@235208000 { 4142ba22cfeSHector Martin compatible = "apple,s5l-uart"; 4152ba22cfeSHector Martin reg = <0x2 0x35208000 0x0 0x1000>; 4162ba22cfeSHector Martin reg-io-width = <4>; 4172ba22cfeSHector Martin interrupt-parent = <&aic>; 4182ba22cfeSHector Martin interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; 41957337b25SHector Martin clocks = <&clkref>, <&clkref>; 4202ba22cfeSHector Martin clock-names = "uart", "clk_uart_baud0"; 4212ba22cfeSHector Martin power-domains = <&ps_uart2>; 4227d2d16ccSHector Martin status = "disabled"; 4237d2d16ccSHector Martin }; 4247d2d16ccSHector Martin 4258a3df85aSMartin Povišer admac: dma-controller@238200000 { 4268a3df85aSMartin Povišer compatible = "apple,t8103-admac", "apple,admac"; 4278a3df85aSMartin Povišer reg = <0x2 0x38200000 0x0 0x34000>; 4288a3df85aSMartin Povišer dma-channels = <24>; 4298a3df85aSMartin Povišer interrupts-extended = <0>, 4308a3df85aSMartin Povišer <&aic AIC_IRQ 626 IRQ_TYPE_LEVEL_HIGH>, 4318a3df85aSMartin Povišer <0>, 4328a3df85aSMartin Povišer <0>; 4338a3df85aSMartin Povišer #dma-cells = <1>; 4348a3df85aSMartin Povišer iommus = <&dart_sio 2>; 4358a3df85aSMartin Povišer power-domains = <&ps_sio_adma>; 43656fed763SMartin Povišer resets = <&ps_audio_p>; 4378a3df85aSMartin Povišer }; 4388a3df85aSMartin Povišer 4398a3df85aSMartin Povišer mca: i2s@238400000 { 4408a3df85aSMartin Povišer compatible = "apple,t8103-mca", "apple,mca"; 4418a3df85aSMartin Povišer reg = <0x2 0x38400000 0x0 0x18000>, 4428a3df85aSMartin Povišer <0x2 0x38300000 0x0 0x30000>; 4438a3df85aSMartin Povišer 4448a3df85aSMartin Povišer interrupt-parent = <&aic>; 4458a3df85aSMartin Povišer interrupts = <AIC_IRQ 619 IRQ_TYPE_LEVEL_HIGH>, 4468a3df85aSMartin Povišer <AIC_IRQ 620 IRQ_TYPE_LEVEL_HIGH>, 4478a3df85aSMartin Povišer <AIC_IRQ 621 IRQ_TYPE_LEVEL_HIGH>, 4488a3df85aSMartin Povišer <AIC_IRQ 622 IRQ_TYPE_LEVEL_HIGH>, 4498a3df85aSMartin Povišer <AIC_IRQ 623 IRQ_TYPE_LEVEL_HIGH>, 4508a3df85aSMartin Povišer <AIC_IRQ 624 IRQ_TYPE_LEVEL_HIGH>; 4518a3df85aSMartin Povišer 4528a3df85aSMartin Povišer resets = <&ps_audio_p>; 4538a3df85aSMartin Povišer clocks = <&nco 0>, <&nco 1>, <&nco 2>, 4548a3df85aSMartin Povišer <&nco 3>, <&nco 4>, <&nco 4>; 4558a3df85aSMartin Povišer power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>, 4568a3df85aSMartin Povišer <&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>; 4578a3df85aSMartin Povišer dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>, 4588a3df85aSMartin Povišer <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>, 4598a3df85aSMartin Povišer <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>, 4608a3df85aSMartin Povišer <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>, 4618a3df85aSMartin Povišer <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>, 4628a3df85aSMartin Povišer <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>; 4638a3df85aSMartin Povišer dma-names = "tx0a", "rx0a", "tx0b", "rx0b", 4648a3df85aSMartin Povišer "tx1a", "rx1a", "tx1b", "rx1b", 4658a3df85aSMartin Povišer "tx2a", "rx2a", "tx2b", "rx2b", 4668a3df85aSMartin Povišer "tx3a", "rx3a", "tx3b", "rx3b", 4678a3df85aSMartin Povišer "tx4a", "rx4a", "tx4b", "rx4b", 4688a3df85aSMartin Povišer "tx5a", "rx5a", "tx5b", "rx5b"; 4698a3df85aSMartin Povišer 4708a3df85aSMartin Povišer #sound-dai-cells = <1>; 4718a3df85aSMartin Povišer }; 4728a3df85aSMartin Povišer 4738a3df85aSMartin Povišer nco: clock-controller@23b044000 { 4748a3df85aSMartin Povišer compatible = "apple,t8103-nco", "apple,nco"; 4758a3df85aSMartin Povišer reg = <0x2 0x3b044000 0x0 0x14000>; 4768a3df85aSMartin Povišer clocks = <&nco_clkref>; 4778a3df85aSMartin Povišer #clock-cells = <1>; 4788a3df85aSMartin Povišer }; 4798a3df85aSMartin Povišer 4807d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 4817d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 4827d2d16ccSHector Martin #interrupt-cells = <3>; 4837d2d16ccSHector Martin interrupt-controller; 4847d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 485106ba3b4SHector Martin power-domains = <&ps_aic>; 4861852e22bSMarc Zyngier 4871852e22bSMarc Zyngier affinities { 4881852e22bSMarc Zyngier e-core-pmu-affinity { 4891852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_E>; 490*3e895a64SHector Martin cpus = <&cpu_e0 &cpu_e1 &cpu_e2 &cpu_e3>; 4911852e22bSMarc Zyngier }; 4921852e22bSMarc Zyngier 4931852e22bSMarc Zyngier p-core-pmu-affinity { 4941852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_P>; 495*3e895a64SHector Martin cpus = <&cpu_p0 &cpu_p1 &cpu_p2 &cpu_p3>; 4961852e22bSMarc Zyngier }; 4971852e22bSMarc Zyngier }; 498106ba3b4SHector Martin }; 499106ba3b4SHector Martin 500106ba3b4SHector Martin pmgr: power-management@23b700000 { 501106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 502106ba3b4SHector Martin #address-cells = <1>; 503106ba3b4SHector Martin #size-cells = <1>; 504106ba3b4SHector Martin reg = <0x2 0x3b700000 0 0x14000>; 5057d2d16ccSHector Martin }; 5060a8282b8SMark Kettenis 5070a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 5080a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 5090a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 510106ba3b4SHector Martin power-domains = <&ps_gpio>; 5110a8282b8SMark Kettenis 5120a8282b8SMark Kettenis gpio-controller; 5130a8282b8SMark Kettenis #gpio-cells = <2>; 5140a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 5150a8282b8SMark Kettenis apple,npins = <212>; 5160a8282b8SMark Kettenis 5170a8282b8SMark Kettenis interrupt-controller; 5180668639eSJanne Grunau #interrupt-cells = <2>; 5190a8282b8SMark Kettenis interrupt-parent = <&aic>; 5200a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 5210a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 5220a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 5230a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 5240a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 5250a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 5260a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 5270a8282b8SMark Kettenis 52890458f6eSJanne Grunau i2c0_pins: i2c0-pins { 52990458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 53090458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 53190458f6eSJanne Grunau }; 53290458f6eSJanne Grunau 53390458f6eSJanne Grunau i2c1_pins: i2c1-pins { 53490458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 53590458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 53690458f6eSJanne Grunau }; 53790458f6eSJanne Grunau 53890458f6eSJanne Grunau i2c2_pins: i2c2-pins { 53990458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 54090458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 54190458f6eSJanne Grunau }; 54290458f6eSJanne Grunau 54390458f6eSJanne Grunau i2c3_pins: i2c3-pins { 54490458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 54590458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 54690458f6eSJanne Grunau }; 54790458f6eSJanne Grunau 54890458f6eSJanne Grunau i2c4_pins: i2c4-pins { 54990458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 55090458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 55190458f6eSJanne Grunau }; 55290458f6eSJanne Grunau 5530a8282b8SMark Kettenis pcie_pins: pcie-pins { 5540a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 5550a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 5560a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 5570a8282b8SMark Kettenis }; 5580a8282b8SMark Kettenis }; 5590a8282b8SMark Kettenis 5600a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 5610a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 5620a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 563106ba3b4SHector Martin power-domains = <&ps_nub_gpio>; 5640a8282b8SMark Kettenis 5650a8282b8SMark Kettenis gpio-controller; 5660a8282b8SMark Kettenis #gpio-cells = <2>; 5670a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 5680a8282b8SMark Kettenis apple,npins = <23>; 5690a8282b8SMark Kettenis 5700a8282b8SMark Kettenis interrupt-controller; 5710668639eSJanne Grunau #interrupt-cells = <2>; 5720a8282b8SMark Kettenis interrupt-parent = <&aic>; 5730a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 5740a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 5750a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 5760a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 5770a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 5780a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 5790a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 5800a8282b8SMark Kettenis }; 5810a8282b8SMark Kettenis 5828adf987cSHector Martin pmgr_mini: power-management@23d280000 { 5838adf987cSHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 5848adf987cSHector Martin #address-cells = <1>; 5858adf987cSHector Martin #size-cells = <1>; 5868adf987cSHector Martin reg = <0x2 0x3d280000 0 0x4000>; 5878adf987cSHector Martin }; 5888adf987cSHector Martin 589b4d11106SSven Peter wdt: watchdog@23d2b0000 { 590b4d11106SSven Peter compatible = "apple,t8103-wdt", "apple,wdt"; 591b4d11106SSven Peter reg = <0x2 0x3d2b0000 0x0 0x4000>; 59257337b25SHector Martin clocks = <&clkref>; 593b4d11106SSven Peter interrupt-parent = <&aic>; 594b4d11106SSven Peter interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>; 595b4d11106SSven Peter }; 596b4d11106SSven Peter 5970a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 5980a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 5990a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 6000a8282b8SMark Kettenis 6010a8282b8SMark Kettenis gpio-controller; 6020a8282b8SMark Kettenis #gpio-cells = <2>; 6030a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 6040a8282b8SMark Kettenis apple,npins = <16>; 6050a8282b8SMark Kettenis 6060a8282b8SMark Kettenis interrupt-controller; 6070668639eSJanne Grunau #interrupt-cells = <2>; 6080a8282b8SMark Kettenis interrupt-parent = <&aic>; 6090a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 6100a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 6110a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 6120a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 6130a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 6140a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 6150a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 6160a8282b8SMark Kettenis }; 617ff2a8d91SMark Kettenis 6188adf987cSHector Martin pinctrl_aop: pinctrl@24a820000 { 6198adf987cSHector Martin compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 6208adf987cSHector Martin reg = <0x2 0x4a820000 0x0 0x4000>; 6218adf987cSHector Martin 6228adf987cSHector Martin gpio-controller; 6238adf987cSHector Martin #gpio-cells = <2>; 6248adf987cSHector Martin gpio-ranges = <&pinctrl_aop 0 0 42>; 6258adf987cSHector Martin apple,npins = <42>; 6268adf987cSHector Martin 6278adf987cSHector Martin interrupt-controller; 6288adf987cSHector Martin #interrupt-cells = <2>; 6298adf987cSHector Martin interrupt-parent = <&aic>; 6308adf987cSHector Martin interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 6318adf987cSHector Martin <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 6328adf987cSHector Martin <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 6338adf987cSHector Martin <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 6348adf987cSHector Martin <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 6358adf987cSHector Martin <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 6368adf987cSHector Martin <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 6378adf987cSHector Martin }; 6388adf987cSHector Martin 6395316d73bSSven Peter ans_mbox: mbox@277408000 { 6405316d73bSSven Peter compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; 6415316d73bSSven Peter reg = <0x2 0x77408000 0x0 0x4000>; 6425316d73bSSven Peter interrupt-parent = <&aic>; 6435316d73bSSven Peter interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>, 6445316d73bSSven Peter <AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>, 6455316d73bSSven Peter <AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>, 6465316d73bSSven Peter <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>; 6475316d73bSSven Peter interrupt-names = "send-empty", "send-not-empty", 6485316d73bSSven Peter "recv-empty", "recv-not-empty"; 6495316d73bSSven Peter #mbox-cells = <0>; 6505316d73bSSven Peter power-domains = <&ps_ans2>; 6515316d73bSSven Peter }; 6525316d73bSSven Peter 6535316d73bSSven Peter sart: iommu@27bc50000 { 6545316d73bSSven Peter compatible = "apple,t8103-sart"; 6555316d73bSSven Peter reg = <0x2 0x7bc50000 0x0 0x10000>; 6565316d73bSSven Peter power-domains = <&ps_ans2>; 6575316d73bSSven Peter }; 6585316d73bSSven Peter 6595316d73bSSven Peter nvme@27bcc0000 { 6605316d73bSSven Peter compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2"; 6615316d73bSSven Peter reg = <0x2 0x7bcc0000 0x0 0x40000>, 6625316d73bSSven Peter <0x2 0x77400000 0x0 0x4000>; 6635316d73bSSven Peter reg-names = "nvme", "ans"; 6645316d73bSSven Peter interrupt-parent = <&aic>; 6655316d73bSSven Peter interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>; 6665316d73bSSven Peter mboxes = <&ans_mbox>; 6675316d73bSSven Peter apple,sart = <&sart>; 6685316d73bSSven Peter power-domains = <&ps_ans2>, <&ps_apcie_st>; 6695316d73bSSven Peter power-domain-names = "ans", "apcie0"; 6705316d73bSSven Peter resets = <&ps_ans2>; 6715316d73bSSven Peter }; 6725316d73bSSven Peter 6733c866bb7SMarc Zyngier pcie0_dart_0: dart@681008000 { 6743c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 6753c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 6763c866bb7SMarc Zyngier #iommu-cells = <1>; 6773c866bb7SMarc Zyngier interrupt-parent = <&aic>; 6783c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 679106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 6803c866bb7SMarc Zyngier }; 6813c866bb7SMarc Zyngier 6823c866bb7SMarc Zyngier pcie0_dart_1: dart@682008000 { 6833c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 6843c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 6853c866bb7SMarc Zyngier #iommu-cells = <1>; 6863c866bb7SMarc Zyngier interrupt-parent = <&aic>; 6873c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 688106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 6893c866bb7SMarc Zyngier }; 6903c866bb7SMarc Zyngier 6913c866bb7SMarc Zyngier pcie0_dart_2: dart@683008000 { 6923c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 6933c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 6943c866bb7SMarc Zyngier #iommu-cells = <1>; 6953c866bb7SMarc Zyngier interrupt-parent = <&aic>; 6963c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 697106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 6983c866bb7SMarc Zyngier }; 6993c866bb7SMarc Zyngier 700ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 701ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 702ff2a8d91SMark Kettenis device_type = "pci"; 703ff2a8d91SMark Kettenis 704ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 705ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 706ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 707ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 708ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 709ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 710ff2a8d91SMark Kettenis 711ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 712ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 713ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 714ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 715ff2a8d91SMark Kettenis 716ff2a8d91SMark Kettenis msi-controller; 717ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 718ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 719ff2a8d91SMark Kettenis 7203c866bb7SMarc Zyngier 7213c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 7223c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 7233c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 7243c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 7253c866bb7SMarc Zyngier 726ff2a8d91SMark Kettenis bus-range = <0 3>; 727ff2a8d91SMark Kettenis #address-cells = <3>; 728ff2a8d91SMark Kettenis #size-cells = <2>; 729ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 730ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 731ff2a8d91SMark Kettenis 732106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 733ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 734ff2a8d91SMark Kettenis pinctrl-names = "default"; 735ff2a8d91SMark Kettenis 736128888a6SMarc Zyngier port00: pci@0,0 { 737ff2a8d91SMark Kettenis device_type = "pci"; 738ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 7395b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>; 740ff2a8d91SMark Kettenis 741ff2a8d91SMark Kettenis #address-cells = <3>; 742ff2a8d91SMark Kettenis #size-cells = <2>; 743ff2a8d91SMark Kettenis ranges; 744128888a6SMarc Zyngier 745128888a6SMarc Zyngier interrupt-controller; 746128888a6SMarc Zyngier #interrupt-cells = <1>; 747128888a6SMarc Zyngier 748128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 749128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 750128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 751128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 752128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 753ff2a8d91SMark Kettenis }; 754ff2a8d91SMark Kettenis 755128888a6SMarc Zyngier port01: pci@1,0 { 756ff2a8d91SMark Kettenis device_type = "pci"; 757ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 7585b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>; 759ff2a8d91SMark Kettenis 760ff2a8d91SMark Kettenis #address-cells = <3>; 761ff2a8d91SMark Kettenis #size-cells = <2>; 762ff2a8d91SMark Kettenis ranges; 763128888a6SMarc Zyngier 764128888a6SMarc Zyngier interrupt-controller; 765128888a6SMarc Zyngier #interrupt-cells = <1>; 766128888a6SMarc Zyngier 767128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 768128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 769128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 770128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 771128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 772ff2a8d91SMark Kettenis }; 773ff2a8d91SMark Kettenis 774128888a6SMarc Zyngier port02: pci@2,0 { 775ff2a8d91SMark Kettenis device_type = "pci"; 776ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 7775b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 33 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 &port02 0 0 0 0>, 788128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 789128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 790128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 791ff2a8d91SMark Kettenis }; 792ff2a8d91SMark Kettenis }; 7937d2d16ccSHector Martin }; 7947d2d16ccSHector Martin}; 795106ba3b4SHector Martin 796106ba3b4SHector Martin#include "t8103-pmgr.dtsi" 797