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 257d2d16ccSHector Martin cpu0: cpu@0 { 267d2d16ccSHector Martin compatible = "apple,icestorm"; 277d2d16ccSHector Martin device_type = "cpu"; 287d2d16ccSHector Martin reg = <0x0 0x0>; 297d2d16ccSHector Martin enable-method = "spin-table"; 307d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 317d2d16ccSHector Martin }; 327d2d16ccSHector Martin 337d2d16ccSHector Martin cpu1: cpu@1 { 347d2d16ccSHector Martin compatible = "apple,icestorm"; 357d2d16ccSHector Martin device_type = "cpu"; 367d2d16ccSHector Martin reg = <0x0 0x1>; 377d2d16ccSHector Martin enable-method = "spin-table"; 387d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 397d2d16ccSHector Martin }; 407d2d16ccSHector Martin 417d2d16ccSHector Martin cpu2: cpu@2 { 427d2d16ccSHector Martin compatible = "apple,icestorm"; 437d2d16ccSHector Martin device_type = "cpu"; 447d2d16ccSHector Martin reg = <0x0 0x2>; 457d2d16ccSHector Martin enable-method = "spin-table"; 467d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 477d2d16ccSHector Martin }; 487d2d16ccSHector Martin 497d2d16ccSHector Martin cpu3: cpu@3 { 507d2d16ccSHector Martin compatible = "apple,icestorm"; 517d2d16ccSHector Martin device_type = "cpu"; 527d2d16ccSHector Martin reg = <0x0 0x3>; 537d2d16ccSHector Martin enable-method = "spin-table"; 547d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 557d2d16ccSHector Martin }; 567d2d16ccSHector Martin 577d2d16ccSHector Martin cpu4: cpu@10100 { 587d2d16ccSHector Martin compatible = "apple,firestorm"; 597d2d16ccSHector Martin device_type = "cpu"; 607d2d16ccSHector Martin reg = <0x0 0x10100>; 617d2d16ccSHector Martin enable-method = "spin-table"; 627d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 637d2d16ccSHector Martin }; 647d2d16ccSHector Martin 657d2d16ccSHector Martin cpu5: cpu@10101 { 667d2d16ccSHector Martin compatible = "apple,firestorm"; 677d2d16ccSHector Martin device_type = "cpu"; 687d2d16ccSHector Martin reg = <0x0 0x10101>; 697d2d16ccSHector Martin enable-method = "spin-table"; 707d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 717d2d16ccSHector Martin }; 727d2d16ccSHector Martin 737d2d16ccSHector Martin cpu6: cpu@10102 { 747d2d16ccSHector Martin compatible = "apple,firestorm"; 757d2d16ccSHector Martin device_type = "cpu"; 767d2d16ccSHector Martin reg = <0x0 0x10102>; 777d2d16ccSHector Martin enable-method = "spin-table"; 787d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 797d2d16ccSHector Martin }; 807d2d16ccSHector Martin 817d2d16ccSHector Martin cpu7: cpu@10103 { 827d2d16ccSHector Martin compatible = "apple,firestorm"; 837d2d16ccSHector Martin device_type = "cpu"; 847d2d16ccSHector Martin reg = <0x0 0x10103>; 857d2d16ccSHector Martin enable-method = "spin-table"; 867d2d16ccSHector Martin cpu-release-addr = <0 0>; /* To be filled by loader */ 877d2d16ccSHector Martin }; 887d2d16ccSHector Martin }; 897d2d16ccSHector Martin 907d2d16ccSHector Martin timer { 917d2d16ccSHector Martin compatible = "arm,armv8-timer"; 927d2d16ccSHector Martin interrupt-parent = <&aic>; 937d2d16ccSHector Martin interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; 947d2d16ccSHector Martin interrupts = <AIC_FIQ AIC_TMR_GUEST_PHYS IRQ_TYPE_LEVEL_HIGH>, 957d2d16ccSHector Martin <AIC_FIQ AIC_TMR_GUEST_VIRT IRQ_TYPE_LEVEL_HIGH>, 967d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_PHYS IRQ_TYPE_LEVEL_HIGH>, 977d2d16ccSHector Martin <AIC_FIQ AIC_TMR_HV_VIRT IRQ_TYPE_LEVEL_HIGH>; 987d2d16ccSHector Martin }; 997d2d16ccSHector Martin 1000f522efcSMarc Zyngier pmu-e { 1010f522efcSMarc Zyngier compatible = "apple,icestorm-pmu"; 1020f522efcSMarc Zyngier interrupt-parent = <&aic>; 1030f522efcSMarc Zyngier interrupts = <AIC_FIQ AIC_CPU_PMU_E IRQ_TYPE_LEVEL_HIGH>; 1040f522efcSMarc Zyngier }; 1050f522efcSMarc Zyngier 1060f522efcSMarc Zyngier pmu-p { 1070f522efcSMarc Zyngier compatible = "apple,firestorm-pmu"; 1080f522efcSMarc Zyngier interrupt-parent = <&aic>; 1090f522efcSMarc Zyngier interrupts = <AIC_FIQ AIC_CPU_PMU_P IRQ_TYPE_LEVEL_HIGH>; 1100f522efcSMarc Zyngier }; 1110f522efcSMarc Zyngier 11257337b25SHector Martin clkref: clock-ref { 1137d2d16ccSHector Martin compatible = "fixed-clock"; 1147d2d16ccSHector Martin #clock-cells = <0>; 1157d2d16ccSHector Martin clock-frequency = <24000000>; 11657337b25SHector Martin clock-output-names = "clkref"; 1177d2d16ccSHector Martin }; 1187d2d16ccSHector Martin 1197d2d16ccSHector Martin soc { 1207d2d16ccSHector Martin compatible = "simple-bus"; 1217d2d16ccSHector Martin #address-cells = <2>; 1227d2d16ccSHector Martin #size-cells = <2>; 1237d2d16ccSHector Martin 1247d2d16ccSHector Martin ranges; 1257d2d16ccSHector Martin nonposted-mmio; 1267d2d16ccSHector Martin 12790458f6eSJanne Grunau i2c0: i2c@235010000 { 12890458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 12990458f6eSJanne Grunau reg = <0x2 0x35010000 0x0 0x4000>; 13057337b25SHector Martin clocks = <&clkref>; 13190458f6eSJanne Grunau interrupt-parent = <&aic>; 13290458f6eSJanne Grunau interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; 13390458f6eSJanne Grunau pinctrl-0 = <&i2c0_pins>; 13490458f6eSJanne Grunau pinctrl-names = "default"; 13590458f6eSJanne Grunau #address-cells = <0x1>; 13690458f6eSJanne Grunau #size-cells = <0x0>; 137106ba3b4SHector Martin power-domains = <&ps_i2c0>; 13890458f6eSJanne Grunau }; 13990458f6eSJanne Grunau 14090458f6eSJanne Grunau i2c1: i2c@235014000 { 14190458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 14290458f6eSJanne Grunau reg = <0x2 0x35014000 0x0 0x4000>; 14357337b25SHector Martin clocks = <&clkref>; 14490458f6eSJanne Grunau interrupt-parent = <&aic>; 14590458f6eSJanne Grunau interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; 14690458f6eSJanne Grunau pinctrl-0 = <&i2c1_pins>; 14790458f6eSJanne Grunau pinctrl-names = "default"; 14890458f6eSJanne Grunau #address-cells = <0x1>; 14990458f6eSJanne Grunau #size-cells = <0x0>; 150106ba3b4SHector Martin power-domains = <&ps_i2c1>; 15190458f6eSJanne Grunau }; 15290458f6eSJanne Grunau 15390458f6eSJanne Grunau i2c2: i2c@235018000 { 15490458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 15590458f6eSJanne Grunau reg = <0x2 0x35018000 0x0 0x4000>; 15657337b25SHector Martin clocks = <&clkref>; 15790458f6eSJanne Grunau interrupt-parent = <&aic>; 15890458f6eSJanne Grunau interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; 15990458f6eSJanne Grunau pinctrl-0 = <&i2c2_pins>; 16090458f6eSJanne Grunau pinctrl-names = "default"; 16190458f6eSJanne Grunau #address-cells = <0x1>; 16290458f6eSJanne Grunau #size-cells = <0x0>; 16390458f6eSJanne Grunau status = "disabled"; /* not used in all devices */ 164106ba3b4SHector Martin power-domains = <&ps_i2c2>; 16590458f6eSJanne Grunau }; 16690458f6eSJanne Grunau 16790458f6eSJanne Grunau i2c3: i2c@23501c000 { 16890458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 16990458f6eSJanne Grunau reg = <0x2 0x3501c000 0x0 0x4000>; 17057337b25SHector Martin clocks = <&clkref>; 17190458f6eSJanne Grunau interrupt-parent = <&aic>; 17290458f6eSJanne Grunau interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; 17390458f6eSJanne Grunau pinctrl-0 = <&i2c3_pins>; 17490458f6eSJanne Grunau pinctrl-names = "default"; 17590458f6eSJanne Grunau #address-cells = <0x1>; 17690458f6eSJanne Grunau #size-cells = <0x0>; 177106ba3b4SHector Martin power-domains = <&ps_i2c3>; 17890458f6eSJanne Grunau }; 17990458f6eSJanne Grunau 18090458f6eSJanne Grunau i2c4: i2c@235020000 { 18190458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 18290458f6eSJanne Grunau reg = <0x2 0x35020000 0x0 0x4000>; 18357337b25SHector Martin clocks = <&clkref>; 18490458f6eSJanne Grunau interrupt-parent = <&aic>; 18590458f6eSJanne Grunau interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; 18690458f6eSJanne Grunau pinctrl-0 = <&i2c4_pins>; 18790458f6eSJanne Grunau pinctrl-names = "default"; 18890458f6eSJanne Grunau #address-cells = <0x1>; 18990458f6eSJanne Grunau #size-cells = <0x0>; 190106ba3b4SHector Martin power-domains = <&ps_i2c4>; 19190458f6eSJanne Grunau status = "disabled"; /* only used in J293 */ 19290458f6eSJanne Grunau }; 19390458f6eSJanne Grunau 1947d2d16ccSHector Martin serial0: serial@235200000 { 1957d2d16ccSHector Martin compatible = "apple,s5l-uart"; 1967d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 1977d2d16ccSHector Martin reg-io-width = <4>; 1987d2d16ccSHector Martin interrupt-parent = <&aic>; 1997d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 2007d2d16ccSHector Martin /* 2017d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 2027d2d16ccSHector Martin * be a third selectable clock. 2037d2d16ccSHector Martin */ 20457337b25SHector Martin clocks = <&clkref>, <&clkref>; 2057d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 206106ba3b4SHector Martin power-domains = <&ps_uart0>; 2077d2d16ccSHector Martin status = "disabled"; 2087d2d16ccSHector Martin }; 2097d2d16ccSHector Martin 2102ba22cfeSHector Martin serial2: serial@235208000 { 2112ba22cfeSHector Martin compatible = "apple,s5l-uart"; 2122ba22cfeSHector Martin reg = <0x2 0x35208000 0x0 0x1000>; 2132ba22cfeSHector Martin reg-io-width = <4>; 2142ba22cfeSHector Martin interrupt-parent = <&aic>; 2152ba22cfeSHector Martin interrupts = <AIC_IRQ 607 IRQ_TYPE_LEVEL_HIGH>; 21657337b25SHector Martin clocks = <&clkref>, <&clkref>; 2172ba22cfeSHector Martin clock-names = "uart", "clk_uart_baud0"; 2182ba22cfeSHector Martin power-domains = <&ps_uart2>; 2197d2d16ccSHector Martin status = "disabled"; 2207d2d16ccSHector Martin }; 2217d2d16ccSHector Martin 2227d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 2237d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 2247d2d16ccSHector Martin #interrupt-cells = <3>; 2257d2d16ccSHector Martin interrupt-controller; 2267d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 227106ba3b4SHector Martin power-domains = <&ps_aic>; 2281852e22bSMarc Zyngier 2291852e22bSMarc Zyngier affinities { 2301852e22bSMarc Zyngier e-core-pmu-affinity { 2311852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_E>; 2321852e22bSMarc Zyngier cpus = <&cpu0 &cpu1 &cpu2 &cpu3>; 2331852e22bSMarc Zyngier }; 2341852e22bSMarc Zyngier 2351852e22bSMarc Zyngier p-core-pmu-affinity { 2361852e22bSMarc Zyngier apple,fiq-index = <AIC_CPU_PMU_P>; 2371852e22bSMarc Zyngier cpus = <&cpu4 &cpu5 &cpu6 &cpu7>; 2381852e22bSMarc Zyngier }; 2391852e22bSMarc Zyngier }; 240106ba3b4SHector Martin }; 241106ba3b4SHector Martin 242106ba3b4SHector Martin pmgr: power-management@23b700000 { 243106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 244106ba3b4SHector Martin #address-cells = <1>; 245106ba3b4SHector Martin #size-cells = <1>; 246106ba3b4SHector Martin reg = <0x2 0x3b700000 0 0x14000>; 2477d2d16ccSHector Martin }; 2480a8282b8SMark Kettenis 2490a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 2500a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2510a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 252106ba3b4SHector Martin power-domains = <&ps_gpio>; 2530a8282b8SMark Kettenis 2540a8282b8SMark Kettenis gpio-controller; 2550a8282b8SMark Kettenis #gpio-cells = <2>; 2560a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 2570a8282b8SMark Kettenis apple,npins = <212>; 2580a8282b8SMark Kettenis 2590a8282b8SMark Kettenis interrupt-controller; 2600668639eSJanne Grunau #interrupt-cells = <2>; 2610a8282b8SMark Kettenis interrupt-parent = <&aic>; 2620a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 2630a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 2640a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 2650a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 2660a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 2670a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 2680a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 2690a8282b8SMark Kettenis 27090458f6eSJanne Grunau i2c0_pins: i2c0-pins { 27190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 27290458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 27390458f6eSJanne Grunau }; 27490458f6eSJanne Grunau 27590458f6eSJanne Grunau i2c1_pins: i2c1-pins { 27690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 27790458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 27890458f6eSJanne Grunau }; 27990458f6eSJanne Grunau 28090458f6eSJanne Grunau i2c2_pins: i2c2-pins { 28190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 28290458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 28390458f6eSJanne Grunau }; 28490458f6eSJanne Grunau 28590458f6eSJanne Grunau i2c3_pins: i2c3-pins { 28690458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 28790458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 28890458f6eSJanne Grunau }; 28990458f6eSJanne Grunau 29090458f6eSJanne Grunau i2c4_pins: i2c4-pins { 29190458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 29290458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 29390458f6eSJanne Grunau }; 29490458f6eSJanne Grunau 2950a8282b8SMark Kettenis pcie_pins: pcie-pins { 2960a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 2970a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 2980a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 2990a8282b8SMark Kettenis }; 3000a8282b8SMark Kettenis }; 3010a8282b8SMark Kettenis 3020a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 3030a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 3040a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 305106ba3b4SHector Martin power-domains = <&ps_nub_gpio>; 3060a8282b8SMark Kettenis 3070a8282b8SMark Kettenis gpio-controller; 3080a8282b8SMark Kettenis #gpio-cells = <2>; 3090a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 3100a8282b8SMark Kettenis apple,npins = <23>; 3110a8282b8SMark Kettenis 3120a8282b8SMark Kettenis interrupt-controller; 3130668639eSJanne Grunau #interrupt-cells = <2>; 3140a8282b8SMark Kettenis interrupt-parent = <&aic>; 3150a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 3160a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 3170a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 3180a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 3190a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 3200a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 3210a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 3220a8282b8SMark Kettenis }; 3230a8282b8SMark Kettenis 3248adf987cSHector Martin pmgr_mini: power-management@23d280000 { 3258adf987cSHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 3268adf987cSHector Martin #address-cells = <1>; 3278adf987cSHector Martin #size-cells = <1>; 3288adf987cSHector Martin reg = <0x2 0x3d280000 0 0x4000>; 3298adf987cSHector Martin }; 3308adf987cSHector Martin 331b4d11106SSven Peter wdt: watchdog@23d2b0000 { 332b4d11106SSven Peter compatible = "apple,t8103-wdt", "apple,wdt"; 333b4d11106SSven Peter reg = <0x2 0x3d2b0000 0x0 0x4000>; 33457337b25SHector Martin clocks = <&clkref>; 335b4d11106SSven Peter interrupt-parent = <&aic>; 336b4d11106SSven Peter interrupts = <AIC_IRQ 338 IRQ_TYPE_LEVEL_HIGH>; 337b4d11106SSven Peter }; 338b4d11106SSven Peter 3390a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 3400a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 3410a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 3420a8282b8SMark Kettenis 3430a8282b8SMark Kettenis gpio-controller; 3440a8282b8SMark Kettenis #gpio-cells = <2>; 3450a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 3460a8282b8SMark Kettenis apple,npins = <16>; 3470a8282b8SMark Kettenis 3480a8282b8SMark Kettenis interrupt-controller; 3490668639eSJanne Grunau #interrupt-cells = <2>; 3500a8282b8SMark Kettenis interrupt-parent = <&aic>; 3510a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 3520a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 3530a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 3540a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 3550a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 3560a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 3570a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 3580a8282b8SMark Kettenis }; 359ff2a8d91SMark Kettenis 3608adf987cSHector Martin pinctrl_aop: pinctrl@24a820000 { 3618adf987cSHector Martin compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 3628adf987cSHector Martin reg = <0x2 0x4a820000 0x0 0x4000>; 3638adf987cSHector Martin 3648adf987cSHector Martin gpio-controller; 3658adf987cSHector Martin #gpio-cells = <2>; 3668adf987cSHector Martin gpio-ranges = <&pinctrl_aop 0 0 42>; 3678adf987cSHector Martin apple,npins = <42>; 3688adf987cSHector Martin 3698adf987cSHector Martin interrupt-controller; 3708adf987cSHector Martin #interrupt-cells = <2>; 3718adf987cSHector Martin interrupt-parent = <&aic>; 3728adf987cSHector Martin interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 3738adf987cSHector Martin <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 3748adf987cSHector Martin <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 3758adf987cSHector Martin <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 3768adf987cSHector Martin <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 3778adf987cSHector Martin <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 3788adf987cSHector Martin <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 3798adf987cSHector Martin }; 3808adf987cSHector Martin 381*5316d73bSSven Peter ans_mbox: mbox@277408000 { 382*5316d73bSSven Peter compatible = "apple,t8103-asc-mailbox", "apple,asc-mailbox-v4"; 383*5316d73bSSven Peter reg = <0x2 0x77408000 0x0 0x4000>; 384*5316d73bSSven Peter interrupt-parent = <&aic>; 385*5316d73bSSven Peter interrupts = <AIC_IRQ 583 IRQ_TYPE_LEVEL_HIGH>, 386*5316d73bSSven Peter <AIC_IRQ 584 IRQ_TYPE_LEVEL_HIGH>, 387*5316d73bSSven Peter <AIC_IRQ 585 IRQ_TYPE_LEVEL_HIGH>, 388*5316d73bSSven Peter <AIC_IRQ 586 IRQ_TYPE_LEVEL_HIGH>; 389*5316d73bSSven Peter interrupt-names = "send-empty", "send-not-empty", 390*5316d73bSSven Peter "recv-empty", "recv-not-empty"; 391*5316d73bSSven Peter #mbox-cells = <0>; 392*5316d73bSSven Peter power-domains = <&ps_ans2>; 393*5316d73bSSven Peter }; 394*5316d73bSSven Peter 395*5316d73bSSven Peter sart: iommu@27bc50000 { 396*5316d73bSSven Peter compatible = "apple,t8103-sart"; 397*5316d73bSSven Peter reg = <0x2 0x7bc50000 0x0 0x10000>; 398*5316d73bSSven Peter power-domains = <&ps_ans2>; 399*5316d73bSSven Peter }; 400*5316d73bSSven Peter 401*5316d73bSSven Peter nvme@27bcc0000 { 402*5316d73bSSven Peter compatible = "apple,t8103-nvme-ans2", "apple,nvme-ans2"; 403*5316d73bSSven Peter reg = <0x2 0x7bcc0000 0x0 0x40000>, 404*5316d73bSSven Peter <0x2 0x77400000 0x0 0x4000>; 405*5316d73bSSven Peter reg-names = "nvme", "ans"; 406*5316d73bSSven Peter interrupt-parent = <&aic>; 407*5316d73bSSven Peter interrupts = <AIC_IRQ 590 IRQ_TYPE_LEVEL_HIGH>; 408*5316d73bSSven Peter mboxes = <&ans_mbox>; 409*5316d73bSSven Peter apple,sart = <&sart>; 410*5316d73bSSven Peter power-domains = <&ps_ans2>, <&ps_apcie_st>; 411*5316d73bSSven Peter power-domain-names = "ans", "apcie0"; 412*5316d73bSSven Peter resets = <&ps_ans2>; 413*5316d73bSSven Peter }; 414*5316d73bSSven Peter 4153c866bb7SMarc Zyngier pcie0_dart_0: dart@681008000 { 4163c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 4173c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 4183c866bb7SMarc Zyngier #iommu-cells = <1>; 4193c866bb7SMarc Zyngier interrupt-parent = <&aic>; 4203c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 421106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 4223c866bb7SMarc Zyngier }; 4233c866bb7SMarc Zyngier 4243c866bb7SMarc Zyngier pcie0_dart_1: dart@682008000 { 4253c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 4263c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 4273c866bb7SMarc Zyngier #iommu-cells = <1>; 4283c866bb7SMarc Zyngier interrupt-parent = <&aic>; 4293c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 430106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 4313c866bb7SMarc Zyngier }; 4323c866bb7SMarc Zyngier 4333c866bb7SMarc Zyngier pcie0_dart_2: dart@683008000 { 4343c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 4353c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 4363c866bb7SMarc Zyngier #iommu-cells = <1>; 4373c866bb7SMarc Zyngier interrupt-parent = <&aic>; 4383c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 439106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 4403c866bb7SMarc Zyngier }; 4413c866bb7SMarc Zyngier 442ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 443ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 444ff2a8d91SMark Kettenis device_type = "pci"; 445ff2a8d91SMark Kettenis 446ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 447ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 448ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 449ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 450ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 451ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 452ff2a8d91SMark Kettenis 453ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 454ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 455ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 456ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 457ff2a8d91SMark Kettenis 458ff2a8d91SMark Kettenis msi-controller; 459ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 460ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 461ff2a8d91SMark Kettenis 4623c866bb7SMarc Zyngier 4633c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 4643c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 4653c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 4663c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 4673c866bb7SMarc Zyngier 468ff2a8d91SMark Kettenis bus-range = <0 3>; 469ff2a8d91SMark Kettenis #address-cells = <3>; 470ff2a8d91SMark Kettenis #size-cells = <2>; 471ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 472ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 473ff2a8d91SMark Kettenis 474106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 475ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 476ff2a8d91SMark Kettenis pinctrl-names = "default"; 477ff2a8d91SMark Kettenis 478128888a6SMarc Zyngier port00: pci@0,0 { 479ff2a8d91SMark Kettenis device_type = "pci"; 480ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 4815b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 152 GPIO_ACTIVE_LOW>; 482ff2a8d91SMark Kettenis 483ff2a8d91SMark Kettenis #address-cells = <3>; 484ff2a8d91SMark Kettenis #size-cells = <2>; 485ff2a8d91SMark Kettenis ranges; 486128888a6SMarc Zyngier 487128888a6SMarc Zyngier interrupt-controller; 488128888a6SMarc Zyngier #interrupt-cells = <1>; 489128888a6SMarc Zyngier 490128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 491128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 492128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 493128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 494128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 495ff2a8d91SMark Kettenis }; 496ff2a8d91SMark Kettenis 497128888a6SMarc Zyngier port01: pci@1,0 { 498ff2a8d91SMark Kettenis device_type = "pci"; 499ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 5005b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 153 GPIO_ACTIVE_LOW>; 501ff2a8d91SMark Kettenis 502ff2a8d91SMark Kettenis #address-cells = <3>; 503ff2a8d91SMark Kettenis #size-cells = <2>; 504ff2a8d91SMark Kettenis ranges; 505128888a6SMarc Zyngier 506128888a6SMarc Zyngier interrupt-controller; 507128888a6SMarc Zyngier #interrupt-cells = <1>; 508128888a6SMarc Zyngier 509128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 510128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 511128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 512128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 513128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 514ff2a8d91SMark Kettenis }; 515ff2a8d91SMark Kettenis 516128888a6SMarc Zyngier port02: pci@2,0 { 517ff2a8d91SMark Kettenis device_type = "pci"; 518ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 5195b970dfcSMarc Zyngier reset-gpios = <&pinctrl_ap 33 GPIO_ACTIVE_LOW>; 520ff2a8d91SMark Kettenis 521ff2a8d91SMark Kettenis #address-cells = <3>; 522ff2a8d91SMark Kettenis #size-cells = <2>; 523ff2a8d91SMark Kettenis ranges; 524128888a6SMarc Zyngier 525128888a6SMarc Zyngier interrupt-controller; 526128888a6SMarc Zyngier #interrupt-cells = <1>; 527128888a6SMarc Zyngier 528128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 529128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 530128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 531128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 532128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 533ff2a8d91SMark Kettenis }; 534ff2a8d91SMark Kettenis }; 5357d2d16ccSHector Martin }; 5367d2d16ccSHector Martin}; 537106ba3b4SHector Martin 538106ba3b4SHector Martin#include "t8103-pmgr.dtsi" 539