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 107d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/apple-aic.h> 117d2d16ccSHector Martin#include <dt-bindings/interrupt-controller/irq.h> 120a8282b8SMark Kettenis#include <dt-bindings/pinctrl/apple.h> 137d2d16ccSHector Martin 147d2d16ccSHector Martin/ { 157d2d16ccSHector Martin compatible = "apple,t8103", "apple,arm-platform"; 167d2d16ccSHector Martin 177d2d16ccSHector Martin #address-cells = <2>; 187d2d16ccSHector Martin #size-cells = <2>; 197d2d16ccSHector Martin 207d2d16ccSHector Martin cpus { 217d2d16ccSHector Martin #address-cells = <2>; 227d2d16ccSHector Martin #size-cells = <0>; 237d2d16ccSHector Martin 247d2d16ccSHector Martin cpu0: cpu@0 { 257d2d16ccSHector Martin compatible = "apple,icestorm"; 267d2d16ccSHector Martin device_type = "cpu"; 277d2d16ccSHector Martin reg = <0x0 0x0>; 287d2d16ccSHector Martin enable-method = "spin-table"; 297d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 307d2d16ccSHector Martin }; 317d2d16ccSHector Martin 327d2d16ccSHector Martin cpu1: cpu@1 { 337d2d16ccSHector Martin compatible = "apple,icestorm"; 347d2d16ccSHector Martin device_type = "cpu"; 357d2d16ccSHector Martin reg = <0x0 0x1>; 367d2d16ccSHector Martin enable-method = "spin-table"; 377d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 387d2d16ccSHector Martin }; 397d2d16ccSHector Martin 407d2d16ccSHector Martin cpu2: cpu@2 { 417d2d16ccSHector Martin compatible = "apple,icestorm"; 427d2d16ccSHector Martin device_type = "cpu"; 437d2d16ccSHector Martin reg = <0x0 0x2>; 447d2d16ccSHector Martin enable-method = "spin-table"; 457d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 467d2d16ccSHector Martin }; 477d2d16ccSHector Martin 487d2d16ccSHector Martin cpu3: cpu@3 { 497d2d16ccSHector Martin compatible = "apple,icestorm"; 507d2d16ccSHector Martin device_type = "cpu"; 517d2d16ccSHector Martin reg = <0x0 0x3>; 527d2d16ccSHector Martin enable-method = "spin-table"; 537d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 547d2d16ccSHector Martin }; 557d2d16ccSHector Martin 567d2d16ccSHector Martin cpu4: cpu@10100 { 577d2d16ccSHector Martin compatible = "apple,firestorm"; 587d2d16ccSHector Martin device_type = "cpu"; 597d2d16ccSHector Martin reg = <0x0 0x10100>; 607d2d16ccSHector Martin enable-method = "spin-table"; 617d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 627d2d16ccSHector Martin }; 637d2d16ccSHector Martin 647d2d16ccSHector Martin cpu5: cpu@10101 { 657d2d16ccSHector Martin compatible = "apple,firestorm"; 667d2d16ccSHector Martin device_type = "cpu"; 677d2d16ccSHector Martin reg = <0x0 0x10101>; 687d2d16ccSHector Martin enable-method = "spin-table"; 697d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 707d2d16ccSHector Martin }; 717d2d16ccSHector Martin 727d2d16ccSHector Martin cpu6: cpu@10102 { 737d2d16ccSHector Martin compatible = "apple,firestorm"; 747d2d16ccSHector Martin device_type = "cpu"; 757d2d16ccSHector Martin reg = <0x0 0x10102>; 767d2d16ccSHector Martin enable-method = "spin-table"; 777d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 787d2d16ccSHector Martin }; 797d2d16ccSHector Martin 807d2d16ccSHector Martin cpu7: cpu@10103 { 817d2d16ccSHector Martin compatible = "apple,firestorm"; 827d2d16ccSHector Martin device_type = "cpu"; 837d2d16ccSHector Martin reg = <0x0 0x10103>; 847d2d16ccSHector Martin enable-method = "spin-table"; 857d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 867d2d16ccSHector Martin }; 877d2d16ccSHector Martin }; 887d2d16ccSHector Martin 897d2d16ccSHector Martin timer { 907d2d16ccSHector Martin compatible = "arm,armv8-timer"; 917d2d16ccSHector Martin interrupt-parent = <&aic>; 927d2d16ccSHector Martin interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; 937d2d16ccSHector Martin interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 947d2d16ccSHector Martin <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, 957d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, 967d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; 977d2d16ccSHector Martin }; 987d2d16ccSHector Martin 9957337b25SHector Martin clkref: clock-ref { 1007d2d16ccSHector Martin compatible = "fixed-clock"; 1017d2d16ccSHector Martin #clock-cells = <0>; 1027d2d16ccSHector Martin clock-frequency = <24000000>; 10357337b25SHector Martin clock-output-names = "clkref"; 1047d2d16ccSHector Martin }; 1057d2d16ccSHector Martin 1067d2d16ccSHector Martin soc { 1077d2d16ccSHector Martin compatible = "simple-bus"; 1087d2d16ccSHector Martin #address-cells = <2>; 1097d2d16ccSHector Martin #size-cells = <2>; 1107d2d16ccSHector Martin 1117d2d16ccSHector Martin ranges; 1127d2d16ccSHector Martin nonposted-mmio; 1137d2d16ccSHector Martin 11490458f6eSJanne Grunau i2c0: i2c@235010000 { 11590458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 11690458f6eSJanne Grunau reg = <0x2 0x35010000 0x0 0x4000>; 11757337b25SHector Martin clocks = <&clkref>; 11890458f6eSJanne Grunau interrupt-parent = <&aic>; 11990458f6eSJanne Grunau interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; 12090458f6eSJanne Grunau pinctrl-0 = <&i2c0_pins>; 12190458f6eSJanne Grunau pinctrl-names = "default"; 12290458f6eSJanne Grunau #address-cells = <0x1>; 12390458f6eSJanne Grunau #size-cells = <0x0>; 124106ba3b4SHector Martin power-domains = <&ps_i2c0>; 12590458f6eSJanne Grunau }; 12690458f6eSJanne Grunau 12790458f6eSJanne Grunau i2c1: i2c@235014000 { 12890458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 12990458f6eSJanne Grunau reg = <0x2 0x35014000 0x0 0x4000>; 13057337b25SHector Martin clocks = <&clkref>; 13190458f6eSJanne Grunau interrupt-parent = <&aic>; 13290458f6eSJanne Grunau interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; 13390458f6eSJanne Grunau pinctrl-0 = <&i2c1_pins>; 13490458f6eSJanne Grunau pinctrl-names = "default"; 13590458f6eSJanne Grunau #address-cells = <0x1>; 13690458f6eSJanne Grunau #size-cells = <0x0>; 137106ba3b4SHector Martin power-domains = <&ps_i2c1>; 13890458f6eSJanne Grunau }; 13990458f6eSJanne Grunau 14090458f6eSJanne Grunau i2c2: i2c@235018000 { 14190458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 14290458f6eSJanne Grunau reg = <0x2 0x35018000 0x0 0x4000>; 14357337b25SHector Martin clocks = <&clkref>; 14490458f6eSJanne Grunau interrupt-parent = <&aic>; 14590458f6eSJanne Grunau interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; 14690458f6eSJanne Grunau pinctrl-0 = <&i2c2_pins>; 14790458f6eSJanne Grunau pinctrl-names = "default"; 14890458f6eSJanne Grunau #address-cells = <0x1>; 14990458f6eSJanne Grunau #size-cells = <0x0>; 15090458f6eSJanne Grunau status = "disabled"; /* not used in all devices */ 151106ba3b4SHector Martin power-domains = <&ps_i2c2>; 15290458f6eSJanne Grunau }; 15390458f6eSJanne Grunau 15490458f6eSJanne Grunau i2c3: i2c@23501c000 { 15590458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 15690458f6eSJanne Grunau reg = <0x2 0x3501c000 0x0 0x4000>; 15757337b25SHector Martin clocks = <&clkref>; 15890458f6eSJanne Grunau interrupt-parent = <&aic>; 15990458f6eSJanne Grunau interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; 16090458f6eSJanne Grunau pinctrl-0 = <&i2c3_pins>; 16190458f6eSJanne Grunau pinctrl-names = "default"; 16290458f6eSJanne Grunau #address-cells = <0x1>; 16390458f6eSJanne Grunau #size-cells = <0x0>; 164106ba3b4SHector Martin power-domains = <&ps_i2c3>; 16590458f6eSJanne Grunau }; 16690458f6eSJanne Grunau 16790458f6eSJanne Grunau i2c4: i2c@235020000 { 16890458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 16990458f6eSJanne Grunau reg = <0x2 0x35020000 0x0 0x4000>; 17057337b25SHector Martin clocks = <&clkref>; 17190458f6eSJanne Grunau interrupt-parent = <&aic>; 17290458f6eSJanne Grunau interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; 17390458f6eSJanne Grunau pinctrl-0 = <&i2c4_pins>; 17490458f6eSJanne Grunau pinctrl-names = "default"; 17590458f6eSJanne Grunau #address-cells = <0x1>; 17690458f6eSJanne Grunau #size-cells = <0x0>; 177106ba3b4SHector Martin power-domains = <&ps_i2c4>; 17890458f6eSJanne Grunau status = "disabled"; /* only used in J293 */ 17990458f6eSJanne Grunau }; 18090458f6eSJanne Grunau 1817d2d16ccSHector Martin serial0: serial@235200000 { 1827d2d16ccSHector Martin compatible = "apple,s5l-uart"; 1837d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 1847d2d16ccSHector Martin reg-io-width = <4>; 1857d2d16ccSHector Martin interrupt-parent = <&aic>; 1867d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 1877d2d16ccSHector Martin /* 1887d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 1897d2d16ccSHector Martin * be a third selectable clock. 1907d2d16ccSHector Martin */ 19157337b25SHector Martin clocks = <&clkref>, <&clkref>; 1927d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 193106ba3b4SHector Martin power-domains = <&ps_uart0>; 1947d2d16ccSHector Martin status = "disabled"; 1957d2d16ccSHector Martin }; 1967d2d16ccSHector Martin 1972ba22cfeSHector Martin serial2: serial@235208000 { 1982ba22cfeSHector Martin compatible = "apple,s5l-uart"; 1992ba22cfeSHector Martin reg = <0x2 0x35208000 0x0 0x1000>; 2002ba22cfeSHector Martin reg-io-width = <4>; 2012ba22cfeSHector Martin interrupt-parent = <&aic>; 2022ba22cfeSHector Martin interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; 20357337b25SHector Martin clocks = <&clkref>, <&clkref>; 2042ba22cfeSHector Martin clock-names = "uart", "clk_uart_baud0"; 2052ba22cfeSHector Martin power-domains = <&ps_uart2>; 2062ba22cfeSHector Martin status = "disabled"; 2072ba22cfeSHector Martin }; 2082ba22cfeSHector Martin 2097d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 2107d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 2117d2d16ccSHector Martin #interrupt-cells = <3>; 2127d2d16ccSHector Martin interrupt-controller; 2137d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 214106ba3b4SHector Martin power-domains = <&ps_aic>; 215106ba3b4SHector Martin }; 216106ba3b4SHector Martin 217106ba3b4SHector Martin pmgr: power-management@23b700000 { 218106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 219106ba3b4SHector Martin #address-cells = <1>; 220106ba3b4SHector Martin #size-cells = <1>; 221106ba3b4SHector Martin reg = <0x2 0x3b700000 0 0x14000>; 2227d2d16ccSHector Martin }; 2230a8282b8SMark Kettenis 2240a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 2250a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2260a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 227106ba3b4SHector Martin power-domains = <&ps_gpio>; 2280a8282b8SMark Kettenis 2290a8282b8SMark Kettenis gpio-controller; 2300a8282b8SMark Kettenis #gpio-cells = <2>; 2310a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 2320a8282b8SMark Kettenis apple,npins = <212>; 2330a8282b8SMark Kettenis 2340a8282b8SMark Kettenis interrupt-controller; 2350668639eSJanne Grunau #interrupt-cells = <2>; 2360a8282b8SMark Kettenis interrupt-parent = <&aic>; 2370a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 2380a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 2390a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 2400a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 2410a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 2420a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 2430a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 2440a8282b8SMark Kettenis 24590458f6eSJanne Grunau i2c0_pins: i2c0-pins { 24690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 24790458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 24890458f6eSJanne Grunau }; 24990458f6eSJanne Grunau 25090458f6eSJanne Grunau i2c1_pins: i2c1-pins { 25190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 25290458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 25390458f6eSJanne Grunau }; 25490458f6eSJanne Grunau 25590458f6eSJanne Grunau i2c2_pins: i2c2-pins { 25690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 25790458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 25890458f6eSJanne Grunau }; 25990458f6eSJanne Grunau 26090458f6eSJanne Grunau i2c3_pins: i2c3-pins { 26190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 26290458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 26390458f6eSJanne Grunau }; 26490458f6eSJanne Grunau 26590458f6eSJanne Grunau i2c4_pins: i2c4-pins { 26690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 26790458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 26890458f6eSJanne Grunau }; 26990458f6eSJanne Grunau 2700a8282b8SMark Kettenis pcie_pins: pcie-pins { 2710a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 2720a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 2730a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 2740a8282b8SMark Kettenis }; 2750a8282b8SMark Kettenis }; 2760a8282b8SMark Kettenis 2770a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 2780a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2790a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 280106ba3b4SHector Martin power-domains = <&ps_nub_gpio>; 2810a8282b8SMark Kettenis 2820a8282b8SMark Kettenis gpio-controller; 2830a8282b8SMark Kettenis #gpio-cells = <2>; 2840a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 2850a8282b8SMark Kettenis apple,npins = <23>; 2860a8282b8SMark Kettenis 2870a8282b8SMark Kettenis interrupt-controller; 2880668639eSJanne Grunau #interrupt-cells = <2>; 2890a8282b8SMark Kettenis interrupt-parent = <&aic>; 2900a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 2910a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 2920a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 2930a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 2940a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 2950a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 2960a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 2970a8282b8SMark Kettenis }; 2980a8282b8SMark Kettenis 299*8adf987cSHector Martin pmgr_mini: power-management@23d280000 { 300*8adf987cSHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 301*8adf987cSHector Martin #address-cells = <1>; 302*8adf987cSHector Martin #size-cells = <1>; 303*8adf987cSHector Martin reg = <0x2 0x3d280000 0 0x4000>; 304*8adf987cSHector Martin }; 305*8adf987cSHector Martin 306b4d11106SSven Peter wdt: watchdog@23d2b0000 { 307b4d11106SSven Peter compatible = "apple,t8103-wdt", "apple,wdt"; 308b4d11106SSven Peter reg = <0x2 0x3d2b0000 0x0 0x4000>; 30957337b25SHector Martin clocks = <&clkref>; 310b4d11106SSven Peter interrupt-parent = <&aic>; 311b4d11106SSven Peter interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>; 312b4d11106SSven Peter }; 313b4d11106SSven Peter 3140a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 3150a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 3160a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 3170a8282b8SMark Kettenis 3180a8282b8SMark Kettenis gpio-controller; 3190a8282b8SMark Kettenis #gpio-cells = <2>; 3200a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 3210a8282b8SMark Kettenis apple,npins = <16>; 3220a8282b8SMark Kettenis 3230a8282b8SMark Kettenis interrupt-controller; 3240668639eSJanne Grunau #interrupt-cells = <2>; 3250a8282b8SMark Kettenis interrupt-parent = <&aic>; 3260a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 3270a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 3280a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 3290a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 3300a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 3310a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 3320a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 3330a8282b8SMark Kettenis }; 334ff2a8d91SMark Kettenis 335*8adf987cSHector Martin pinctrl_aop: pinctrl@24a820000 { 336*8adf987cSHector Martin compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 337*8adf987cSHector Martin reg = <0x2 0x4a820000 0x0 0x4000>; 338*8adf987cSHector Martin 339*8adf987cSHector Martin gpio-controller; 340*8adf987cSHector Martin #gpio-cells = <2>; 341*8adf987cSHector Martin gpio-ranges = <&pinctrl_aop 0 0 42>; 342*8adf987cSHector Martin apple,npins = <42>; 343*8adf987cSHector Martin 344*8adf987cSHector Martin interrupt-controller; 345*8adf987cSHector Martin #interrupt-cells = <2>; 346*8adf987cSHector Martin interrupt-parent = <&aic>; 347*8adf987cSHector Martin interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 348*8adf987cSHector Martin <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 349*8adf987cSHector Martin <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 350*8adf987cSHector Martin <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 351*8adf987cSHector Martin <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 352*8adf987cSHector Martin <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 353*8adf987cSHector Martin <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 354*8adf987cSHector Martin }; 355*8adf987cSHector Martin 3563c866bb7SMarc Zyngier pcie0_dart_0: dart@681008000 { 3573c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3583c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 3593c866bb7SMarc Zyngier #iommu-cells = <1>; 3603c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3613c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 362106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 3633c866bb7SMarc Zyngier }; 3643c866bb7SMarc Zyngier 3653c866bb7SMarc Zyngier pcie0_dart_1: dart@682008000 { 3663c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3673c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 3683c866bb7SMarc Zyngier #iommu-cells = <1>; 3693c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3703c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 371106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 3723c866bb7SMarc Zyngier }; 3733c866bb7SMarc Zyngier 3743c866bb7SMarc Zyngier pcie0_dart_2: dart@683008000 { 3753c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3763c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 3773c866bb7SMarc Zyngier #iommu-cells = <1>; 3783c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3793c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 380106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 3813c866bb7SMarc Zyngier }; 3823c866bb7SMarc Zyngier 383ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 384ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 385ff2a8d91SMark Kettenis device_type = "pci"; 386ff2a8d91SMark Kettenis 387ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 388ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 389ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 390ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 391ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 392ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 393ff2a8d91SMark Kettenis 394ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 395ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 396ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 397ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 398ff2a8d91SMark Kettenis 399ff2a8d91SMark Kettenis msi-controller; 400ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 401ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 402ff2a8d91SMark Kettenis 4033c866bb7SMarc Zyngier 4043c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 4053c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 4063c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 4073c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 4083c866bb7SMarc Zyngier 409ff2a8d91SMark Kettenis bus-range = <0 3>; 410ff2a8d91SMark Kettenis #address-cells = <3>; 411ff2a8d91SMark Kettenis #size-cells = <2>; 412ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 413ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 414ff2a8d91SMark Kettenis 415106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 416ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 417ff2a8d91SMark Kettenis pinctrl-names = "default"; 418ff2a8d91SMark Kettenis 419128888a6SMarc Zyngier port00: pci@0,0 { 420ff2a8d91SMark Kettenis device_type = "pci"; 421ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 422ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 152 0>; 423ff2a8d91SMark Kettenis 424ff2a8d91SMark Kettenis #address-cells = <3>; 425ff2a8d91SMark Kettenis #size-cells = <2>; 426ff2a8d91SMark Kettenis ranges; 427128888a6SMarc Zyngier 428128888a6SMarc Zyngier interrupt-controller; 429128888a6SMarc Zyngier #interrupt-cells = <1>; 430128888a6SMarc Zyngier 431128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 432128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 433128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 434128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 435128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 436ff2a8d91SMark Kettenis }; 437ff2a8d91SMark Kettenis 438128888a6SMarc Zyngier port01: pci@1,0 { 439ff2a8d91SMark Kettenis device_type = "pci"; 440ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 441ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 153 0>; 442ff2a8d91SMark Kettenis 443ff2a8d91SMark Kettenis #address-cells = <3>; 444ff2a8d91SMark Kettenis #size-cells = <2>; 445ff2a8d91SMark Kettenis ranges; 446128888a6SMarc Zyngier 447128888a6SMarc Zyngier interrupt-controller; 448128888a6SMarc Zyngier #interrupt-cells = <1>; 449128888a6SMarc Zyngier 450128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 451128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 452128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 453128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 454128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 455ff2a8d91SMark Kettenis }; 456ff2a8d91SMark Kettenis 457128888a6SMarc Zyngier port02: pci@2,0 { 458ff2a8d91SMark Kettenis device_type = "pci"; 459ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 460ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 33 0>; 461ff2a8d91SMark Kettenis 462ff2a8d91SMark Kettenis #address-cells = <3>; 463ff2a8d91SMark Kettenis #size-cells = <2>; 464ff2a8d91SMark Kettenis ranges; 465128888a6SMarc Zyngier 466128888a6SMarc Zyngier interrupt-controller; 467128888a6SMarc Zyngier #interrupt-cells = <1>; 468128888a6SMarc Zyngier 469128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 470128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 471128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 472128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 473128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 474ff2a8d91SMark Kettenis }; 475ff2a8d91SMark Kettenis }; 4767d2d16ccSHector Martin }; 4777d2d16ccSHector Martin}; 478106ba3b4SHector Martin 479106ba3b4SHector Martin#include "t8103-pmgr.dtsi" 480