1*67d9574cSJanne Grunau// SPDX-License-Identifier: GPL-2.0+ OR MIT 2*67d9574cSJanne Grunau/* 3*67d9574cSJanne Grunau * Devices used on die 0 on the Apple T6032 "M3 Ultra" SoC and present on 4*67d9574cSJanne Grunau * Apple T6030 ("M3 Pro") and T6031 / T6034 ("M3 Max"). 5*67d9574cSJanne Grunau * 6*67d9574cSJanne Grunau * Copyright The Asahi Linux Contributors 7*67d9574cSJanne Grunau */ 8*67d9574cSJanne Grunau 9*67d9574cSJanne Grunau aic: interrupt-controller@292400000 { 10*67d9574cSJanne Grunau compatible = "apple,t6031-aic3", "apple,t8122-aic3"; 11*67d9574cSJanne Grunau #interrupt-cells = <4>; 12*67d9574cSJanne Grunau interrupt-controller; 13*67d9574cSJanne Grunau 14*67d9574cSJanne Grunau reg = <0x00000002 0x92400000 0x00000000 0x1cc000>, 15*67d9574cSJanne Grunau <0x00000002 0x92440000 0x00000000 0x4000>; 16*67d9574cSJanne Grunau reg-names = "core", "event"; 17*67d9574cSJanne Grunau power-domains = <&ps_aic>; 18*67d9574cSJanne Grunau }; 19*67d9574cSJanne Grunau 20*67d9574cSJanne Grunau wdt: watchdog@2a02d4000 { 21*67d9574cSJanne Grunau compatible = "apple,t6031-wdt", "apple,t8103-wdt"; 22*67d9574cSJanne Grunau reg = <0x2 0xa02d4000 0x0 0x4000>; 23*67d9574cSJanne Grunau clocks = <&clkref>; 24*67d9574cSJanne Grunau interrupt-parent = <&aic>; 25*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 718 IRQ_TYPE_LEVEL_HIGH>; 26*67d9574cSJanne Grunau }; 27*67d9574cSJanne Grunau 28*67d9574cSJanne Grunau pinctrl_smc: pinctrl@2a4820000 { 29*67d9574cSJanne Grunau compatible = "apple,t6031-pinctrl", "apple,t8103-pinctrl"; 30*67d9574cSJanne Grunau reg = <0x2 0xa4820000 0x0 0x4000>; 31*67d9574cSJanne Grunau 32*67d9574cSJanne Grunau gpio-controller; 33*67d9574cSJanne Grunau #gpio-cells = <2>; 34*67d9574cSJanne Grunau gpio-ranges = <&pinctrl_smc 0 0 30>; 35*67d9574cSJanne Grunau apple,npins = <30>; 36*67d9574cSJanne Grunau 37*67d9574cSJanne Grunau interrupt-controller; 38*67d9574cSJanne Grunau #interrupt-cells = <2>; 39*67d9574cSJanne Grunau interrupt-parent = <&aic>; 40*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 904 IRQ_TYPE_LEVEL_HIGH>, 41*67d9574cSJanne Grunau <AIC_IRQ 0 905 IRQ_TYPE_LEVEL_HIGH>, 42*67d9574cSJanne Grunau <AIC_IRQ 0 906 IRQ_TYPE_LEVEL_HIGH>, 43*67d9574cSJanne Grunau <AIC_IRQ 0 907 IRQ_TYPE_LEVEL_HIGH>, 44*67d9574cSJanne Grunau <AIC_IRQ 0 908 IRQ_TYPE_LEVEL_HIGH>, 45*67d9574cSJanne Grunau <AIC_IRQ 0 909 IRQ_TYPE_LEVEL_HIGH>, 46*67d9574cSJanne Grunau <AIC_IRQ 0 910 IRQ_TYPE_LEVEL_HIGH>; 47*67d9574cSJanne Grunau }; 48*67d9574cSJanne Grunau 49*67d9574cSJanne Grunau i2c0: i2c@391010000 { 50*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 51*67d9574cSJanne Grunau reg = <0x3 0x91010000 0x0 0x4000>; 52*67d9574cSJanne Grunau clocks = <&clkref>; 53*67d9574cSJanne Grunau interrupt-parent = <&aic>; 54*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1326 IRQ_TYPE_LEVEL_HIGH>; 55*67d9574cSJanne Grunau pinctrl-0 = <&i2c0_pins>; 56*67d9574cSJanne Grunau pinctrl-names = "default"; 57*67d9574cSJanne Grunau power-domains = <&ps_i2c0>; 58*67d9574cSJanne Grunau #address-cells = <0x1>; 59*67d9574cSJanne Grunau #size-cells = <0x0>; 60*67d9574cSJanne Grunau }; 61*67d9574cSJanne Grunau 62*67d9574cSJanne Grunau i2c1: i2c@391014000 { 63*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 64*67d9574cSJanne Grunau reg = <0x3 0x91014000 0x0 0x4000>; 65*67d9574cSJanne Grunau clocks = <&clkref>; 66*67d9574cSJanne Grunau interrupt-parent = <&aic>; 67*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1327 IRQ_TYPE_LEVEL_HIGH>; 68*67d9574cSJanne Grunau pinctrl-0 = <&i2c1_pins>; 69*67d9574cSJanne Grunau pinctrl-names = "default"; 70*67d9574cSJanne Grunau power-domains = <&ps_i2c1>; 71*67d9574cSJanne Grunau #address-cells = <0x1>; 72*67d9574cSJanne Grunau #size-cells = <0x0>; 73*67d9574cSJanne Grunau status = "disabled"; 74*67d9574cSJanne Grunau }; 75*67d9574cSJanne Grunau 76*67d9574cSJanne Grunau i2c2: i2c@391018000 { 77*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 78*67d9574cSJanne Grunau reg = <0x3 0x91018000 0x0 0x4000>; 79*67d9574cSJanne Grunau clocks = <&clkref>; 80*67d9574cSJanne Grunau interrupt-parent = <&aic>; 81*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1328 IRQ_TYPE_LEVEL_HIGH>; 82*67d9574cSJanne Grunau pinctrl-0 = <&i2c2_pins>; 83*67d9574cSJanne Grunau pinctrl-names = "default"; 84*67d9574cSJanne Grunau power-domains = <&ps_i2c2>; 85*67d9574cSJanne Grunau #address-cells = <0x1>; 86*67d9574cSJanne Grunau #size-cells = <0x0>; 87*67d9574cSJanne Grunau status = "disabled"; 88*67d9574cSJanne Grunau }; 89*67d9574cSJanne Grunau 90*67d9574cSJanne Grunau i2c3: i2c@39101c000 { 91*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 92*67d9574cSJanne Grunau reg = <0x3 0x9101c000 0x0 0x4000>; 93*67d9574cSJanne Grunau clocks = <&clkref>; 94*67d9574cSJanne Grunau interrupt-parent = <&aic>; 95*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1329 IRQ_TYPE_LEVEL_HIGH>; 96*67d9574cSJanne Grunau pinctrl-0 = <&i2c3_pins>; 97*67d9574cSJanne Grunau pinctrl-names = "default"; 98*67d9574cSJanne Grunau power-domains = <&ps_i2c3>; 99*67d9574cSJanne Grunau #address-cells = <0x1>; 100*67d9574cSJanne Grunau #size-cells = <0x0>; 101*67d9574cSJanne Grunau status = "disabled"; 102*67d9574cSJanne Grunau }; 103*67d9574cSJanne Grunau 104*67d9574cSJanne Grunau i2c4: i2c@391020000 { 105*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 106*67d9574cSJanne Grunau reg = <0x3 0x91020000 0x0 0x4000>; 107*67d9574cSJanne Grunau clocks = <&clkref>; 108*67d9574cSJanne Grunau interrupt-parent = <&aic>; 109*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1330 IRQ_TYPE_LEVEL_HIGH>; 110*67d9574cSJanne Grunau pinctrl-0 = <&i2c4_pins>; 111*67d9574cSJanne Grunau pinctrl-names = "default"; 112*67d9574cSJanne Grunau power-domains = <&ps_i2c4>; 113*67d9574cSJanne Grunau #address-cells = <0x1>; 114*67d9574cSJanne Grunau #size-cells = <0x0>; 115*67d9574cSJanne Grunau status = "disabled"; 116*67d9574cSJanne Grunau }; 117*67d9574cSJanne Grunau 118*67d9574cSJanne Grunau i2c5: i2c@391024000 { 119*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 120*67d9574cSJanne Grunau reg = <0x3 0x91024000 0x0 0x4000>; 121*67d9574cSJanne Grunau clocks = <&clkref>; 122*67d9574cSJanne Grunau interrupt-parent = <&aic>; 123*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1331 IRQ_TYPE_LEVEL_HIGH>; 124*67d9574cSJanne Grunau pinctrl-0 = <&i2c5_pins>; 125*67d9574cSJanne Grunau pinctrl-names = "default"; 126*67d9574cSJanne Grunau power-domains = <&ps_i2c5>; 127*67d9574cSJanne Grunau #address-cells = <0x1>; 128*67d9574cSJanne Grunau #size-cells = <0x0>; 129*67d9574cSJanne Grunau status = "disabled"; 130*67d9574cSJanne Grunau }; 131*67d9574cSJanne Grunau 132*67d9574cSJanne Grunau i2c6: i2c@391028000 { 133*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 134*67d9574cSJanne Grunau reg = <0x3 0x91028000 0x0 0x4000>; 135*67d9574cSJanne Grunau clocks = <&clkref>; 136*67d9574cSJanne Grunau interrupt-parent = <&aic>; 137*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1332 IRQ_TYPE_LEVEL_HIGH>; 138*67d9574cSJanne Grunau pinctrl-0 = <&i2c6_pins>; 139*67d9574cSJanne Grunau pinctrl-names = "default"; 140*67d9574cSJanne Grunau power-domains = <&ps_i2c6>; 141*67d9574cSJanne Grunau #address-cells = <0x1>; 142*67d9574cSJanne Grunau #size-cells = <0x0>; 143*67d9574cSJanne Grunau status = "disabled"; 144*67d9574cSJanne Grunau }; 145*67d9574cSJanne Grunau 146*67d9574cSJanne Grunau i2c7: i2c@39102c000 { 147*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 148*67d9574cSJanne Grunau reg = <0x3 0x9102c000 0x0 0x4000>; 149*67d9574cSJanne Grunau clocks = <&clkref>; 150*67d9574cSJanne Grunau interrupt-parent = <&aic>; 151*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1333 IRQ_TYPE_LEVEL_HIGH>; 152*67d9574cSJanne Grunau pinctrl-0 = <&i2c7_pins>; 153*67d9574cSJanne Grunau pinctrl-names = "default"; 154*67d9574cSJanne Grunau power-domains = <&ps_i2c7>; 155*67d9574cSJanne Grunau #address-cells = <0x1>; 156*67d9574cSJanne Grunau #size-cells = <0x0>; 157*67d9574cSJanne Grunau status = "disabled"; 158*67d9574cSJanne Grunau }; 159*67d9574cSJanne Grunau 160*67d9574cSJanne Grunau i2c8: i2c@391030000 { 161*67d9574cSJanne Grunau compatible = "apple,t6031-i2c", "apple,t8103-i2c"; 162*67d9574cSJanne Grunau reg = <0x3 0x91030000 0x0 0x4000>; 163*67d9574cSJanne Grunau clocks = <&clkref>; 164*67d9574cSJanne Grunau interrupt-parent = <&aic>; 165*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1334 IRQ_TYPE_LEVEL_HIGH>; 166*67d9574cSJanne Grunau pinctrl-0 = <&i2c8_pins>; 167*67d9574cSJanne Grunau pinctrl-names = "default"; 168*67d9574cSJanne Grunau power-domains = <&ps_i2c8>; 169*67d9574cSJanne Grunau #address-cells = <0x1>; 170*67d9574cSJanne Grunau #size-cells = <0x0>; 171*67d9574cSJanne Grunau status = "disabled"; 172*67d9574cSJanne Grunau }; 173*67d9574cSJanne Grunau 174*67d9574cSJanne Grunau fpwm0: pwm@391040000 { 175*67d9574cSJanne Grunau compatible = "apple,t6031-fpwm", "apple,s5l-fpwm"; 176*67d9574cSJanne Grunau reg = <0x3 0x91040000 0x0 0x4000>; 177*67d9574cSJanne Grunau power-domains = <&ps_fpwm0>; 178*67d9574cSJanne Grunau clocks = <&clkref>; 179*67d9574cSJanne Grunau #pwm-cells = <2>; 180*67d9574cSJanne Grunau status = "disabled"; 181*67d9574cSJanne Grunau }; 182*67d9574cSJanne Grunau 183*67d9574cSJanne Grunau serial0: serial@391200000 { 184*67d9574cSJanne Grunau compatible = "apple,s5l-uart"; 185*67d9574cSJanne Grunau reg = <0x3 0x91200000 0x0 0x4000>; 186*67d9574cSJanne Grunau reg-io-width = <4>; 187*67d9574cSJanne Grunau interrupt-parent = <&aic>; 188*67d9574cSJanne Grunau interrupts = <AIC_IRQ 0 1303 IRQ_TYPE_LEVEL_HIGH>; 189*67d9574cSJanne Grunau /* 190*67d9574cSJanne Grunau * TODO: figure out the clocking properly, there may 191*67d9574cSJanne Grunau * be a third selectable clock. 192*67d9574cSJanne Grunau */ 193*67d9574cSJanne Grunau clocks = <&clkref>, <&clkref>; 194*67d9574cSJanne Grunau clock-names = "uart", "clk_uart_baud0"; 195*67d9574cSJanne Grunau power-domains = <&ps_uart0>; 196*67d9574cSJanne Grunau status = "disabled"; 197*67d9574cSJanne Grunau }; 198