1*a8f20eb6SHector Martin// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*a8f20eb6SHector Martin/* 3*a8f20eb6SHector Martin * Devices used on die 0 on the Apple T6022 "M2 Ultra" SoC and present on 4*a8f20eb6SHector Martin * Apple T6020 / T6021 "M2 Pro" / "M2 Max". 5*a8f20eb6SHector Martin * 6*a8f20eb6SHector Martin * Copyright The Asahi Linux Contributors 7*a8f20eb6SHector Martin */ 8*a8f20eb6SHector Martin 9*a8f20eb6SHector Martin nco: clock-controller@28e03c000 { 10*a8f20eb6SHector Martin compatible = "apple,t6020-nco", "apple,t8103-nco"; 11*a8f20eb6SHector Martin reg = <0x2 0x8e03c000 0x0 0x14000>; 12*a8f20eb6SHector Martin clocks = <&nco_clkref>; 13*a8f20eb6SHector Martin #clock-cells = <1>; 14*a8f20eb6SHector Martin }; 15*a8f20eb6SHector Martin 16*a8f20eb6SHector Martin aic: interrupt-controller@28e100000 { 17*a8f20eb6SHector Martin compatible = "apple,t6020-aic", "apple,aic2"; 18*a8f20eb6SHector Martin #interrupt-cells = <4>; 19*a8f20eb6SHector Martin interrupt-controller; 20*a8f20eb6SHector Martin reg = <0x2 0x8e100000 0x0 0xc000>, 21*a8f20eb6SHector Martin <0x2 0x8e10c000 0x0 0x1000>; 22*a8f20eb6SHector Martin reg-names = "core", "event"; 23*a8f20eb6SHector Martin power-domains = <&ps_aic>; 24*a8f20eb6SHector Martin }; 25*a8f20eb6SHector Martin 26*a8f20eb6SHector Martin nub_spmi0: spmi@29e114000 { 27*a8f20eb6SHector Martin compatible = "apple,t6020-spmi", "apple,t8103-spmi"; 28*a8f20eb6SHector Martin reg = <0x2 0x9e114000 0x0 0x100>; 29*a8f20eb6SHector Martin #address-cells = <2>; 30*a8f20eb6SHector Martin #size-cells = <0>; 31*a8f20eb6SHector Martin 32*a8f20eb6SHector Martin pmic1: pmic@f { 33*a8f20eb6SHector Martin compatible = "apple,maverick-pmic", "apple,spmi-nvmem"; 34*a8f20eb6SHector Martin reg = <0xb SPMI_USID>; 35*a8f20eb6SHector Martin 36*a8f20eb6SHector Martin nvmem-layout { 37*a8f20eb6SHector Martin compatible = "fixed-layout"; 38*a8f20eb6SHector Martin #address-cells = <1>; 39*a8f20eb6SHector Martin #size-cells = <1>; 40*a8f20eb6SHector Martin 41*a8f20eb6SHector Martin pm_setting: pm-setting@1405 { 42*a8f20eb6SHector Martin reg = <0x1405 0x1>; 43*a8f20eb6SHector Martin }; 44*a8f20eb6SHector Martin 45*a8f20eb6SHector Martin rtc_offset: rtc-offset@1411 { 46*a8f20eb6SHector Martin reg = <0x1411 0x6>; 47*a8f20eb6SHector Martin }; 48*a8f20eb6SHector Martin 49*a8f20eb6SHector Martin boot_stage: boot-stage@6001 { 50*a8f20eb6SHector Martin reg = <0x6001 0x1>; 51*a8f20eb6SHector Martin }; 52*a8f20eb6SHector Martin 53*a8f20eb6SHector Martin boot_error_count: boot-error-count@6002,0 { 54*a8f20eb6SHector Martin reg = <0x6002 0x1>; 55*a8f20eb6SHector Martin bits = <0 4>; 56*a8f20eb6SHector Martin }; 57*a8f20eb6SHector Martin 58*a8f20eb6SHector Martin panic_count: panic-count@6002,4 { 59*a8f20eb6SHector Martin reg = <0x6002 0x1>; 60*a8f20eb6SHector Martin bits = <4 4>; 61*a8f20eb6SHector Martin }; 62*a8f20eb6SHector Martin 63*a8f20eb6SHector Martin boot_error_stage: boot-error-stage@6003 { 64*a8f20eb6SHector Martin reg = <0x6003 0x1>; 65*a8f20eb6SHector Martin }; 66*a8f20eb6SHector Martin 67*a8f20eb6SHector Martin shutdown_flag: shutdown-flag@600f,3 { 68*a8f20eb6SHector Martin reg = <0x600f 0x1>; 69*a8f20eb6SHector Martin bits = <3 1>; 70*a8f20eb6SHector Martin }; 71*a8f20eb6SHector Martin 72*a8f20eb6SHector Martin fault_shadow: fault-shadow@867b { 73*a8f20eb6SHector Martin reg = <0x867b 0x10>; 74*a8f20eb6SHector Martin }; 75*a8f20eb6SHector Martin 76*a8f20eb6SHector Martin socd: socd@8b00 { 77*a8f20eb6SHector Martin reg = <0x8b00 0x400>; 78*a8f20eb6SHector Martin }; 79*a8f20eb6SHector Martin }; 80*a8f20eb6SHector Martin }; 81*a8f20eb6SHector Martin }; 82*a8f20eb6SHector Martin 83*a8f20eb6SHector Martin wdt: watchdog@29e2c4000 { 84*a8f20eb6SHector Martin compatible = "apple,t6020-wdt", "apple,t8103-wdt"; 85*a8f20eb6SHector Martin reg = <0x2 0x9e2c4000 0x0 0x4000>; 86*a8f20eb6SHector Martin clocks = <&clkref>; 87*a8f20eb6SHector Martin interrupt-parent = <&aic>; 88*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 719 IRQ_TYPE_LEVEL_HIGH>; 89*a8f20eb6SHector Martin }; 90*a8f20eb6SHector Martin 91*a8f20eb6SHector Martin smc_mbox: mbox@2a2408000 { 92*a8f20eb6SHector Martin compatible = "apple,t6020-asc-mailbox", "apple,asc-mailbox-v4"; 93*a8f20eb6SHector Martin reg = <0x2 0xa2408000 0x0 0x4000>; 94*a8f20eb6SHector Martin interrupt-parent = <&aic>; 95*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 862 IRQ_TYPE_LEVEL_HIGH>, 96*a8f20eb6SHector Martin <AIC_IRQ 0 863 IRQ_TYPE_LEVEL_HIGH>, 97*a8f20eb6SHector Martin <AIC_IRQ 0 864 IRQ_TYPE_LEVEL_HIGH>, 98*a8f20eb6SHector Martin <AIC_IRQ 0 865 IRQ_TYPE_LEVEL_HIGH>; 99*a8f20eb6SHector Martin interrupt-names = "send-empty", "send-not-empty", 100*a8f20eb6SHector Martin "recv-empty", "recv-not-empty"; 101*a8f20eb6SHector Martin #mbox-cells = <0>; 102*a8f20eb6SHector Martin }; 103*a8f20eb6SHector Martin 104*a8f20eb6SHector Martin smc: smc@2a2400000 { 105*a8f20eb6SHector Martin compatible = "apple,t6020-smc", "apple,t8103-smc"; 106*a8f20eb6SHector Martin reg = <0x2 0xa2400000 0x0 0x4000>, 107*a8f20eb6SHector Martin <0x2 0xa3e00000 0x0 0x100000>; 108*a8f20eb6SHector Martin reg-names = "smc", "sram"; 109*a8f20eb6SHector Martin mboxes = <&smc_mbox>; 110*a8f20eb6SHector Martin 111*a8f20eb6SHector Martin smc_gpio: gpio { 112*a8f20eb6SHector Martin compatible = "apple,smc-gpio"; 113*a8f20eb6SHector Martin gpio-controller; 114*a8f20eb6SHector Martin #gpio-cells = <2>; 115*a8f20eb6SHector Martin }; 116*a8f20eb6SHector Martin 117*a8f20eb6SHector Martin smc_reboot: reboot { 118*a8f20eb6SHector Martin compatible = "apple,smc-reboot"; 119*a8f20eb6SHector Martin nvmem-cells = <&shutdown_flag>, <&boot_stage>, 120*a8f20eb6SHector Martin <&boot_error_count>, <&panic_count>; 121*a8f20eb6SHector Martin nvmem-cell-names = "shutdown_flag", "boot_stage", 122*a8f20eb6SHector Martin "boot_error_count", "panic_count"; 123*a8f20eb6SHector Martin }; 124*a8f20eb6SHector Martin }; 125*a8f20eb6SHector Martin 126*a8f20eb6SHector Martin pinctrl_smc: pinctrl@2a2820000 { 127*a8f20eb6SHector Martin compatible = "apple,t6020-pinctrl", "apple,t8103-pinctrl"; 128*a8f20eb6SHector Martin reg = <0x2 0xa2820000 0x0 0x4000>; 129*a8f20eb6SHector Martin 130*a8f20eb6SHector Martin gpio-controller; 131*a8f20eb6SHector Martin #gpio-cells = <2>; 132*a8f20eb6SHector Martin gpio-ranges = <&pinctrl_smc 0 0 30>; 133*a8f20eb6SHector Martin apple,npins = <30>; 134*a8f20eb6SHector Martin 135*a8f20eb6SHector Martin interrupt-controller; 136*a8f20eb6SHector Martin #interrupt-cells = <2>; 137*a8f20eb6SHector Martin interrupt-parent = <&aic>; 138*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 851 IRQ_TYPE_LEVEL_HIGH>, 139*a8f20eb6SHector Martin <AIC_IRQ 0 852 IRQ_TYPE_LEVEL_HIGH>, 140*a8f20eb6SHector Martin <AIC_IRQ 0 853 IRQ_TYPE_LEVEL_HIGH>, 141*a8f20eb6SHector Martin <AIC_IRQ 0 854 IRQ_TYPE_LEVEL_HIGH>, 142*a8f20eb6SHector Martin <AIC_IRQ 0 855 IRQ_TYPE_LEVEL_HIGH>, 143*a8f20eb6SHector Martin <AIC_IRQ 0 856 IRQ_TYPE_LEVEL_HIGH>, 144*a8f20eb6SHector Martin <AIC_IRQ 0 857 IRQ_TYPE_LEVEL_HIGH>; 145*a8f20eb6SHector Martin }; 146*a8f20eb6SHector Martin 147*a8f20eb6SHector Martin sio_dart: iommu@39b008000 { 148*a8f20eb6SHector Martin compatible = "apple,t6020-dart", "apple,t8110-dart"; 149*a8f20eb6SHector Martin reg = <0x3 0x9b008000 0x0 0x8000>; 150*a8f20eb6SHector Martin interrupt-parent = <&aic>; 151*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1231 IRQ_TYPE_LEVEL_HIGH>; 152*a8f20eb6SHector Martin #iommu-cells = <1>; 153*a8f20eb6SHector Martin power-domains = <&ps_sio_cpu>; 154*a8f20eb6SHector Martin }; 155*a8f20eb6SHector Martin 156*a8f20eb6SHector Martin fpwm0: pwm@39b030000 { 157*a8f20eb6SHector Martin compatible = "apple,t6020-fpwm", "apple,s5l-fpwm"; 158*a8f20eb6SHector Martin reg = <0x3 0x9b030000 0x0 0x4000>; 159*a8f20eb6SHector Martin power-domains = <&ps_fpwm0>; 160*a8f20eb6SHector Martin clocks = <&clkref>; 161*a8f20eb6SHector Martin #pwm-cells = <2>; 162*a8f20eb6SHector Martin status = "disabled"; 163*a8f20eb6SHector Martin }; 164*a8f20eb6SHector Martin 165*a8f20eb6SHector Martin i2c0: i2c@39b040000 { 166*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 167*a8f20eb6SHector Martin reg = <0x3 0x9b040000 0x0 0x4000>; 168*a8f20eb6SHector Martin clocks = <&clkref>; 169*a8f20eb6SHector Martin interrupt-parent = <&aic>; 170*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1219 IRQ_TYPE_LEVEL_HIGH>; 171*a8f20eb6SHector Martin pinctrl-0 = <&i2c0_pins>; 172*a8f20eb6SHector Martin pinctrl-names = "default"; 173*a8f20eb6SHector Martin power-domains = <&ps_i2c0>; 174*a8f20eb6SHector Martin #address-cells = <0x1>; 175*a8f20eb6SHector Martin #size-cells = <0x0>; 176*a8f20eb6SHector Martin }; 177*a8f20eb6SHector Martin 178*a8f20eb6SHector Martin i2c1: i2c@39b044000 { 179*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 180*a8f20eb6SHector Martin reg = <0x3 0x9b044000 0x0 0x4000>; 181*a8f20eb6SHector Martin clocks = <&clkref>; 182*a8f20eb6SHector Martin interrupt-parent = <&aic>; 183*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1220 IRQ_TYPE_LEVEL_HIGH>; 184*a8f20eb6SHector Martin pinctrl-0 = <&i2c1_pins>; 185*a8f20eb6SHector Martin pinctrl-names = "default"; 186*a8f20eb6SHector Martin power-domains = <&ps_i2c1>; 187*a8f20eb6SHector Martin #address-cells = <0x1>; 188*a8f20eb6SHector Martin #size-cells = <0x0>; 189*a8f20eb6SHector Martin status = "disabled"; 190*a8f20eb6SHector Martin }; 191*a8f20eb6SHector Martin 192*a8f20eb6SHector Martin i2c2: i2c@39b048000 { 193*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 194*a8f20eb6SHector Martin reg = <0x3 0x9b048000 0x0 0x4000>; 195*a8f20eb6SHector Martin clocks = <&clkref>; 196*a8f20eb6SHector Martin interrupt-parent = <&aic>; 197*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1221 IRQ_TYPE_LEVEL_HIGH>; 198*a8f20eb6SHector Martin pinctrl-0 = <&i2c2_pins>; 199*a8f20eb6SHector Martin pinctrl-names = "default"; 200*a8f20eb6SHector Martin power-domains = <&ps_i2c2>; 201*a8f20eb6SHector Martin #address-cells = <0x1>; 202*a8f20eb6SHector Martin #size-cells = <0x0>; 203*a8f20eb6SHector Martin status = "disabled"; 204*a8f20eb6SHector Martin }; 205*a8f20eb6SHector Martin 206*a8f20eb6SHector Martin i2c3: i2c@39b04c000 { 207*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 208*a8f20eb6SHector Martin reg = <0x3 0x9b04c000 0x0 0x4000>; 209*a8f20eb6SHector Martin clocks = <&clkref>; 210*a8f20eb6SHector Martin interrupt-parent = <&aic>; 211*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1222 IRQ_TYPE_LEVEL_HIGH>; 212*a8f20eb6SHector Martin pinctrl-0 = <&i2c3_pins>; 213*a8f20eb6SHector Martin pinctrl-names = "default"; 214*a8f20eb6SHector Martin power-domains = <&ps_i2c3>; 215*a8f20eb6SHector Martin #address-cells = <0x1>; 216*a8f20eb6SHector Martin #size-cells = <0x0>; 217*a8f20eb6SHector Martin status = "disabled"; 218*a8f20eb6SHector Martin }; 219*a8f20eb6SHector Martin 220*a8f20eb6SHector Martin i2c4: i2c@39b050000 { 221*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 222*a8f20eb6SHector Martin reg = <0x3 0x9b050000 0x0 0x4000>; 223*a8f20eb6SHector Martin clocks = <&clkref>; 224*a8f20eb6SHector Martin interrupt-parent = <&aic>; 225*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1223 IRQ_TYPE_LEVEL_HIGH>; 226*a8f20eb6SHector Martin pinctrl-0 = <&i2c4_pins>; 227*a8f20eb6SHector Martin pinctrl-names = "default"; 228*a8f20eb6SHector Martin power-domains = <&ps_i2c4>; 229*a8f20eb6SHector Martin #address-cells = <0x1>; 230*a8f20eb6SHector Martin #size-cells = <0x0>; 231*a8f20eb6SHector Martin status = "disabled"; 232*a8f20eb6SHector Martin }; 233*a8f20eb6SHector Martin 234*a8f20eb6SHector Martin i2c5: i2c@39b054000 { 235*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 236*a8f20eb6SHector Martin reg = <0x3 0x9b054000 0x0 0x4000>; 237*a8f20eb6SHector Martin clocks = <&clkref>; 238*a8f20eb6SHector Martin interrupt-parent = <&aic>; 239*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1224 IRQ_TYPE_LEVEL_HIGH>; 240*a8f20eb6SHector Martin pinctrl-0 = <&i2c5_pins>; 241*a8f20eb6SHector Martin pinctrl-names = "default"; 242*a8f20eb6SHector Martin power-domains = <&ps_i2c5>; 243*a8f20eb6SHector Martin #address-cells = <0x1>; 244*a8f20eb6SHector Martin #size-cells = <0x0>; 245*a8f20eb6SHector Martin status = "disabled"; 246*a8f20eb6SHector Martin }; 247*a8f20eb6SHector Martin 248*a8f20eb6SHector Martin i2c6: i2c@39b054000 { 249*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 250*a8f20eb6SHector Martin reg = <0x3 0x9b054000 0x0 0x4000>; 251*a8f20eb6SHector Martin clocks = <&clkref>; 252*a8f20eb6SHector Martin interrupt-parent = <&aic>; 253*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1225 IRQ_TYPE_LEVEL_HIGH>; 254*a8f20eb6SHector Martin pinctrl-0 = <&i2c6_pins>; 255*a8f20eb6SHector Martin pinctrl-names = "default"; 256*a8f20eb6SHector Martin power-domains = <&ps_i2c6>; 257*a8f20eb6SHector Martin #address-cells = <0x1>; 258*a8f20eb6SHector Martin #size-cells = <0x0>; 259*a8f20eb6SHector Martin status = "disabled"; 260*a8f20eb6SHector Martin }; 261*a8f20eb6SHector Martin 262*a8f20eb6SHector Martin i2c7: i2c@39b054000 { 263*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 264*a8f20eb6SHector Martin reg = <0x3 0x9b054000 0x0 0x4000>; 265*a8f20eb6SHector Martin clocks = <&clkref>; 266*a8f20eb6SHector Martin interrupt-parent = <&aic>; 267*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1226 IRQ_TYPE_LEVEL_HIGH>; 268*a8f20eb6SHector Martin pinctrl-0 = <&i2c7_pins>; 269*a8f20eb6SHector Martin pinctrl-names = "default"; 270*a8f20eb6SHector Martin power-domains = <&ps_i2c7>; 271*a8f20eb6SHector Martin #address-cells = <0x1>; 272*a8f20eb6SHector Martin #size-cells = <0x0>; 273*a8f20eb6SHector Martin status = "disabled"; 274*a8f20eb6SHector Martin }; 275*a8f20eb6SHector Martin 276*a8f20eb6SHector Martin i2c8: i2c@39b054000 { 277*a8f20eb6SHector Martin compatible = "apple,t6020-i2c", "apple,t8103-i2c"; 278*a8f20eb6SHector Martin reg = <0x3 0x9b054000 0x0 0x4000>; 279*a8f20eb6SHector Martin clocks = <&clkref>; 280*a8f20eb6SHector Martin interrupt-parent = <&aic>; 281*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1227 IRQ_TYPE_LEVEL_HIGH>; 282*a8f20eb6SHector Martin pinctrl-0 = <&i2c8_pins>; 283*a8f20eb6SHector Martin pinctrl-names = "default"; 284*a8f20eb6SHector Martin power-domains = <&ps_i2c8>; 285*a8f20eb6SHector Martin #address-cells = <0x1>; 286*a8f20eb6SHector Martin #size-cells = <0x0>; 287*a8f20eb6SHector Martin status = "disabled"; 288*a8f20eb6SHector Martin }; 289*a8f20eb6SHector Martin 290*a8f20eb6SHector Martin spi1: spi@39b104000 { 291*a8f20eb6SHector Martin compatible = "apple,t6020-spi", "apple,t8103-spi"; 292*a8f20eb6SHector Martin reg = <0x3 0x9b104000 0x0 0x4000>; 293*a8f20eb6SHector Martin interrupt-parent = <&aic>; 294*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1206 IRQ_TYPE_LEVEL_HIGH>; 295*a8f20eb6SHector Martin #address-cells = <1>; 296*a8f20eb6SHector Martin #size-cells = <0>; 297*a8f20eb6SHector Martin clocks = <&clk_200m>; 298*a8f20eb6SHector Martin pinctrl-0 = <&spi1_pins>; 299*a8f20eb6SHector Martin pinctrl-names = "default"; 300*a8f20eb6SHector Martin power-domains = <&ps_spi1>; 301*a8f20eb6SHector Martin status = "disabled"; 302*a8f20eb6SHector Martin }; 303*a8f20eb6SHector Martin 304*a8f20eb6SHector Martin spi2: spi@39b108000 { 305*a8f20eb6SHector Martin compatible = "apple,t6020-spi", "apple,t8103-spi"; 306*a8f20eb6SHector Martin reg = <0x3 0x9b108000 0x0 0x4000>; 307*a8f20eb6SHector Martin interrupt-parent = <&aic>; 308*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1207 IRQ_TYPE_LEVEL_HIGH>; 309*a8f20eb6SHector Martin #address-cells = <1>; 310*a8f20eb6SHector Martin #size-cells = <0>; 311*a8f20eb6SHector Martin clocks = <&clkref>; 312*a8f20eb6SHector Martin pinctrl-0 = <&spi2_pins>; 313*a8f20eb6SHector Martin pinctrl-names = "default"; 314*a8f20eb6SHector Martin power-domains = <&ps_spi2>; 315*a8f20eb6SHector Martin status = "disabled"; 316*a8f20eb6SHector Martin }; 317*a8f20eb6SHector Martin 318*a8f20eb6SHector Martin spi4: spi@39b110000 { 319*a8f20eb6SHector Martin compatible = "apple,t6020-spi", "apple,t8103-spi"; 320*a8f20eb6SHector Martin reg = <0x3 0x9b110000 0x0 0x4000>; 321*a8f20eb6SHector Martin interrupt-parent = <&aic>; 322*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1209 IRQ_TYPE_LEVEL_HIGH>; 323*a8f20eb6SHector Martin #address-cells = <1>; 324*a8f20eb6SHector Martin #size-cells = <0>; 325*a8f20eb6SHector Martin clocks = <&clkref>; 326*a8f20eb6SHector Martin pinctrl-0 = <&spi4_pins>; 327*a8f20eb6SHector Martin pinctrl-names = "default"; 328*a8f20eb6SHector Martin power-domains = <&ps_spi4>; 329*a8f20eb6SHector Martin status = "disabled"; 330*a8f20eb6SHector Martin }; 331*a8f20eb6SHector Martin 332*a8f20eb6SHector Martin serial0: serial@39b200000 { 333*a8f20eb6SHector Martin compatible = "apple,s5l-uart"; 334*a8f20eb6SHector Martin reg = <0x3 0x9b200000 0x0 0x4000>; 335*a8f20eb6SHector Martin reg-io-width = <4>; 336*a8f20eb6SHector Martin interrupt-parent = <&aic>; 337*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1198 IRQ_TYPE_LEVEL_HIGH>; 338*a8f20eb6SHector Martin /* 339*a8f20eb6SHector Martin * TODO: figure out the clocking properly, there may 340*a8f20eb6SHector Martin * be a third selectable clock. 341*a8f20eb6SHector Martin */ 342*a8f20eb6SHector Martin clocks = <&clkref>, <&clkref>; 343*a8f20eb6SHector Martin clock-names = "uart", "clk_uart_baud0"; 344*a8f20eb6SHector Martin power-domains = <&ps_uart0>; 345*a8f20eb6SHector Martin status = "disabled"; 346*a8f20eb6SHector Martin }; 347*a8f20eb6SHector Martin 348*a8f20eb6SHector Martin admac: dma-controller@39b400000 { 349*a8f20eb6SHector Martin compatible = "apple,t6020-admac", "apple,t8103-admac"; 350*a8f20eb6SHector Martin reg = <0x3 0x9b400000 0x0 0x34000>; 351*a8f20eb6SHector Martin #dma-cells = <1>; 352*a8f20eb6SHector Martin dma-channels = <16>; 353*a8f20eb6SHector Martin interrupts-extended = <0>, 354*a8f20eb6SHector Martin <&aic AIC_IRQ 0 1218 IRQ_TYPE_LEVEL_HIGH>, 355*a8f20eb6SHector Martin <0>, 356*a8f20eb6SHector Martin <0>; 357*a8f20eb6SHector Martin iommus = <&sio_dart 2>; 358*a8f20eb6SHector Martin power-domains = <&ps_sio_adma>; 359*a8f20eb6SHector Martin resets = <&ps_audio_p>; 360*a8f20eb6SHector Martin }; 361*a8f20eb6SHector Martin 362*a8f20eb6SHector Martin mca: mca@39b600000 { 363*a8f20eb6SHector Martin compatible = "apple,t6020-mca", "apple,t8103-mca"; 364*a8f20eb6SHector Martin reg = <0x3 0x9b600000 0x0 0x10000>, 365*a8f20eb6SHector Martin <0x3 0x9b500000 0x0 0x20000>; 366*a8f20eb6SHector Martin clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>; 367*a8f20eb6SHector Martin dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>, 368*a8f20eb6SHector Martin <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>, 369*a8f20eb6SHector Martin <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>, 370*a8f20eb6SHector Martin <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>; 371*a8f20eb6SHector Martin dma-names = "tx0a", "rx0a", "tx0b", "rx0b", 372*a8f20eb6SHector Martin "tx1a", "rx1a", "tx1b", "rx1b", 373*a8f20eb6SHector Martin "tx2a", "rx2a", "tx2b", "rx2b", 374*a8f20eb6SHector Martin "tx3a", "rx3a", "tx3b", "rx3b"; 375*a8f20eb6SHector Martin interrupt-parent = <&aic>; 376*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1211 IRQ_TYPE_LEVEL_HIGH>, 377*a8f20eb6SHector Martin <AIC_IRQ 0 1212 IRQ_TYPE_LEVEL_HIGH>, 378*a8f20eb6SHector Martin <AIC_IRQ 0 1213 IRQ_TYPE_LEVEL_HIGH>, 379*a8f20eb6SHector Martin <AIC_IRQ 0 1214 IRQ_TYPE_LEVEL_HIGH>; 380*a8f20eb6SHector Martin power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>, 381*a8f20eb6SHector Martin <&ps_mca2>, <&ps_mca3>; 382*a8f20eb6SHector Martin resets = <&ps_audio_p>; 383*a8f20eb6SHector Martin #sound-dai-cells = <1>; 384*a8f20eb6SHector Martin }; 385*a8f20eb6SHector Martin 386*a8f20eb6SHector Martin gpu: gpu@406400000 { 387*a8f20eb6SHector Martin compatible = "apple,agx-g14s"; 388*a8f20eb6SHector Martin reg = <0x4 0x6400000 0 0x40000>, 389*a8f20eb6SHector Martin <0x4 0x4000000 0 0x1000000>; 390*a8f20eb6SHector Martin reg-names = "asc", "sgx"; 391*a8f20eb6SHector Martin mboxes = <&agx_mbox>; 392*a8f20eb6SHector Martin power-domains = <&ps_gfx>; 393*a8f20eb6SHector Martin memory-region = <&uat_ttbs>, <&uat_pagetables>, <&uat_handoff>, 394*a8f20eb6SHector Martin <&gpu_hw_cal_a>, <&gpu_hw_cal_b>, <&gpu_globals>; 395*a8f20eb6SHector Martin memory-region-names = "ttbs", "pagetables", "handoff", 396*a8f20eb6SHector Martin "hw-cal-a", "hw-cal-b", "globals"; 397*a8f20eb6SHector Martin 398*a8f20eb6SHector Martin apple,firmware-abi = <0 0 0>; 399*a8f20eb6SHector Martin }; 400*a8f20eb6SHector Martin 401*a8f20eb6SHector Martin agx_mbox: mbox@406408000 { 402*a8f20eb6SHector Martin compatible = "apple,t6020-asc-mailbox", "apple,asc-mailbox-v4"; 403*a8f20eb6SHector Martin reg = <0x4 0x6408000 0x0 0x4000>; 404*a8f20eb6SHector Martin interrupt-parent = <&aic>; 405*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1143 IRQ_TYPE_LEVEL_HIGH>, 406*a8f20eb6SHector Martin <AIC_IRQ 0 1144 IRQ_TYPE_LEVEL_HIGH>, 407*a8f20eb6SHector Martin <AIC_IRQ 0 1145 IRQ_TYPE_LEVEL_HIGH>, 408*a8f20eb6SHector Martin <AIC_IRQ 0 1146 IRQ_TYPE_LEVEL_HIGH>; 409*a8f20eb6SHector Martin interrupt-names = "send-empty", "send-not-empty", 410*a8f20eb6SHector Martin "recv-empty", "recv-not-empty"; 411*a8f20eb6SHector Martin #mbox-cells = <0>; 412*a8f20eb6SHector Martin }; 413*a8f20eb6SHector Martin 414*a8f20eb6SHector Martin pcie0: pcie@580000000 { 415*a8f20eb6SHector Martin compatible = "apple,t6020-pcie"; 416*a8f20eb6SHector Martin device_type = "pci"; 417*a8f20eb6SHector Martin 418*a8f20eb6SHector Martin reg = <0x5 0x80000000 0x0 0x1000000>, /* config */ 419*a8f20eb6SHector Martin <0x5 0x91000000 0x0 0x4000>, /* rc */ 420*a8f20eb6SHector Martin <0x5 0x94008000 0x0 0x4000>, /* port0 */ 421*a8f20eb6SHector Martin <0x5 0x95008000 0x0 0x4000>, /* port1 */ 422*a8f20eb6SHector Martin <0x5 0x96008000 0x0 0x4000>, /* port2 */ 423*a8f20eb6SHector Martin <0x5 0x97008000 0x0 0x4000>, /* port3 */ 424*a8f20eb6SHector Martin <0x5 0x9e00c000 0x0 0x4000>, /* phy0 */ 425*a8f20eb6SHector Martin <0x5 0x9e010000 0x0 0x4000>, /* phy1 */ 426*a8f20eb6SHector Martin <0x5 0x9e014000 0x0 0x4000>, /* phy2 */ 427*a8f20eb6SHector Martin <0x5 0x9e018000 0x0 0x4000>; /* phy3 */ 428*a8f20eb6SHector Martin reg-names = "config", "rc", 429*a8f20eb6SHector Martin "port0", "port1", "port2", "port3", 430*a8f20eb6SHector Martin "phy0", "phy1", "phy2", "phy3"; 431*a8f20eb6SHector Martin 432*a8f20eb6SHector Martin interrupt-parent = <&aic>; 433*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1340 IRQ_TYPE_LEVEL_HIGH>, 434*a8f20eb6SHector Martin <AIC_IRQ 0 1344 IRQ_TYPE_LEVEL_HIGH>, 435*a8f20eb6SHector Martin <AIC_IRQ 0 1348 IRQ_TYPE_LEVEL_HIGH>, 436*a8f20eb6SHector Martin <AIC_IRQ 0 1352 IRQ_TYPE_LEVEL_HIGH>; 437*a8f20eb6SHector Martin 438*a8f20eb6SHector Martin msi-controller; 439*a8f20eb6SHector Martin msi-parent = <&pcie0>; 440*a8f20eb6SHector Martin msi-ranges = <&aic AIC_IRQ 0 1672 IRQ_TYPE_EDGE_RISING 32>; 441*a8f20eb6SHector Martin 442*a8f20eb6SHector Martin iommu-map = <0x100 &pcie0_dart_0 1 1>, 443*a8f20eb6SHector Martin <0x200 &pcie0_dart_1 1 1>, 444*a8f20eb6SHector Martin <0x300 &pcie0_dart_2 1 1>, 445*a8f20eb6SHector Martin <0x400 &pcie0_dart_3 1 1>; 446*a8f20eb6SHector Martin iommu-map-mask = <0xff00>; 447*a8f20eb6SHector Martin 448*a8f20eb6SHector Martin bus-range = <0 4>; 449*a8f20eb6SHector Martin #address-cells = <3>; 450*a8f20eb6SHector Martin #size-cells = <2>; 451*a8f20eb6SHector Martin ranges = <0x43000000 0x5 0xa0000000 0x5 0xa0000000 0x0 0x20000000>, 452*a8f20eb6SHector Martin <0x02000000 0x0 0xc0000000 0x5 0xc0000000 0x0 0x40000000>; 453*a8f20eb6SHector Martin 454*a8f20eb6SHector Martin power-domains = <&ps_apcie_gp_sys>; 455*a8f20eb6SHector Martin pinctrl-0 = <&pcie_pins>; 456*a8f20eb6SHector Martin pinctrl-names = "default"; 457*a8f20eb6SHector Martin 458*a8f20eb6SHector Martin port00: pci@0,0 { 459*a8f20eb6SHector Martin device_type = "pci"; 460*a8f20eb6SHector Martin reg = <0x0 0x0 0x0 0x0 0x0>; 461*a8f20eb6SHector Martin reset-gpios = <&pinctrl_ap 4 GPIO_ACTIVE_LOW>; 462*a8f20eb6SHector Martin 463*a8f20eb6SHector Martin #address-cells = <3>; 464*a8f20eb6SHector Martin #size-cells = <2>; 465*a8f20eb6SHector Martin ranges; 466*a8f20eb6SHector Martin 467*a8f20eb6SHector Martin interrupt-controller; 468*a8f20eb6SHector Martin #interrupt-cells = <1>; 469*a8f20eb6SHector Martin 470*a8f20eb6SHector Martin interrupt-map-mask = <0 0 0 7>; 471*a8f20eb6SHector Martin interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 472*a8f20eb6SHector Martin <0 0 0 2 &port00 0 0 0 1>, 473*a8f20eb6SHector Martin <0 0 0 3 &port00 0 0 0 2>, 474*a8f20eb6SHector Martin <0 0 0 4 &port00 0 0 0 3>; 475*a8f20eb6SHector Martin }; 476*a8f20eb6SHector Martin 477*a8f20eb6SHector Martin port01: pci@1,0 { 478*a8f20eb6SHector Martin device_type = "pci"; 479*a8f20eb6SHector Martin reg = <0x800 0x0 0x0 0x0 0x0>; 480*a8f20eb6SHector Martin reset-gpios = <&pinctrl_ap 5 GPIO_ACTIVE_LOW>; 481*a8f20eb6SHector Martin 482*a8f20eb6SHector Martin #address-cells = <3>; 483*a8f20eb6SHector Martin #size-cells = <2>; 484*a8f20eb6SHector Martin ranges; 485*a8f20eb6SHector Martin 486*a8f20eb6SHector Martin interrupt-controller; 487*a8f20eb6SHector Martin #interrupt-cells = <1>; 488*a8f20eb6SHector Martin 489*a8f20eb6SHector Martin interrupt-map-mask = <0 0 0 7>; 490*a8f20eb6SHector Martin interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 491*a8f20eb6SHector Martin <0 0 0 2 &port01 0 0 0 1>, 492*a8f20eb6SHector Martin <0 0 0 3 &port01 0 0 0 2>, 493*a8f20eb6SHector Martin <0 0 0 4 &port01 0 0 0 3>; 494*a8f20eb6SHector Martin status = "disabled"; 495*a8f20eb6SHector Martin }; 496*a8f20eb6SHector Martin 497*a8f20eb6SHector Martin port02: pci@2,0 { 498*a8f20eb6SHector Martin device_type = "pci"; 499*a8f20eb6SHector Martin reg = <0x1000 0x0 0x0 0x0 0x0>; 500*a8f20eb6SHector Martin reset-gpios = <&pinctrl_ap 6 GPIO_ACTIVE_LOW>; 501*a8f20eb6SHector Martin 502*a8f20eb6SHector Martin #address-cells = <3>; 503*a8f20eb6SHector Martin #size-cells = <2>; 504*a8f20eb6SHector Martin ranges; 505*a8f20eb6SHector Martin 506*a8f20eb6SHector Martin interrupt-controller; 507*a8f20eb6SHector Martin #interrupt-cells = <1>; 508*a8f20eb6SHector Martin 509*a8f20eb6SHector Martin interrupt-map-mask = <0 0 0 7>; 510*a8f20eb6SHector Martin interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 511*a8f20eb6SHector Martin <0 0 0 2 &port02 0 0 0 1>, 512*a8f20eb6SHector Martin <0 0 0 3 &port02 0 0 0 2>, 513*a8f20eb6SHector Martin <0 0 0 4 &port02 0 0 0 3>; 514*a8f20eb6SHector Martin status = "disabled"; 515*a8f20eb6SHector Martin }; 516*a8f20eb6SHector Martin 517*a8f20eb6SHector Martin port03: pci@3,0 { 518*a8f20eb6SHector Martin device_type = "pci"; 519*a8f20eb6SHector Martin reg = <0x1800 0x0 0x0 0x0 0x0>; 520*a8f20eb6SHector Martin reset-gpios = <&pinctrl_ap 7 GPIO_ACTIVE_LOW>; 521*a8f20eb6SHector Martin 522*a8f20eb6SHector Martin #address-cells = <3>; 523*a8f20eb6SHector Martin #size-cells = <2>; 524*a8f20eb6SHector Martin ranges; 525*a8f20eb6SHector Martin 526*a8f20eb6SHector Martin interrupt-controller; 527*a8f20eb6SHector Martin #interrupt-cells = <1>; 528*a8f20eb6SHector Martin 529*a8f20eb6SHector Martin interrupt-map-mask = <0 0 0 7>; 530*a8f20eb6SHector Martin interrupt-map = <0 0 0 1 &port03 0 0 0 0>, 531*a8f20eb6SHector Martin <0 0 0 2 &port03 0 0 0 1>, 532*a8f20eb6SHector Martin <0 0 0 3 &port03 0 0 0 2>, 533*a8f20eb6SHector Martin <0 0 0 4 &port03 0 0 0 3>; 534*a8f20eb6SHector Martin status = "disabled"; 535*a8f20eb6SHector Martin }; 536*a8f20eb6SHector Martin }; 537*a8f20eb6SHector Martin 538*a8f20eb6SHector Martin pcie0_dart_0: iommu@594000000 { 539*a8f20eb6SHector Martin compatible = "apple,t6020-dart", "apple,t8110-dart"; 540*a8f20eb6SHector Martin reg = <0x5 0x94000000 0x0 0x4000>; 541*a8f20eb6SHector Martin #iommu-cells = <1>; 542*a8f20eb6SHector Martin interrupt-parent = <&aic>; 543*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1341 IRQ_TYPE_LEVEL_HIGH>; 544*a8f20eb6SHector Martin power-domains = <&ps_apcie_gp_sys>; 545*a8f20eb6SHector Martin }; 546*a8f20eb6SHector Martin 547*a8f20eb6SHector Martin pcie0_dart_1: iommu@595000000 { 548*a8f20eb6SHector Martin compatible = "apple,t6020-dart", "apple,t8110-dart"; 549*a8f20eb6SHector Martin reg = <0x5 0x95000000 0x0 0x4000>; 550*a8f20eb6SHector Martin #iommu-cells = <1>; 551*a8f20eb6SHector Martin interrupt-parent = <&aic>; 552*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1345 IRQ_TYPE_LEVEL_HIGH>; 553*a8f20eb6SHector Martin power-domains = <&ps_apcie_gp_sys>; 554*a8f20eb6SHector Martin status = "disabled"; 555*a8f20eb6SHector Martin }; 556*a8f20eb6SHector Martin 557*a8f20eb6SHector Martin pcie0_dart_2: iommu@596000000 { 558*a8f20eb6SHector Martin compatible = "apple,t6020-dart", "apple,t8110-dart"; 559*a8f20eb6SHector Martin reg = <0x5 0x96000000 0x0 0x4000>; 560*a8f20eb6SHector Martin #iommu-cells = <1>; 561*a8f20eb6SHector Martin interrupt-parent = <&aic>; 562*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1349 IRQ_TYPE_LEVEL_HIGH>; 563*a8f20eb6SHector Martin power-domains = <&ps_apcie_gp_sys>; 564*a8f20eb6SHector Martin status = "disabled"; 565*a8f20eb6SHector Martin }; 566*a8f20eb6SHector Martin 567*a8f20eb6SHector Martin pcie0_dart_3: iommu@597000000 { 568*a8f20eb6SHector Martin compatible = "apple,t6020-dart", "apple,t8110-dart"; 569*a8f20eb6SHector Martin reg = <0x5 0x97000000 0x0 0x4000>; 570*a8f20eb6SHector Martin #iommu-cells = <1>; 571*a8f20eb6SHector Martin interrupt-parent = <&aic>; 572*a8f20eb6SHector Martin interrupts = <AIC_IRQ 0 1353 IRQ_TYPE_LEVEL_HIGH>; 573*a8f20eb6SHector Martin power-domains = <&ps_apcie_gp_sys>; 574*a8f20eb6SHector Martin status = "disabled"; 575*a8f20eb6SHector Martin }; 576