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 997d2d16ccSHector Martin clk24: clock-24m { 1007d2d16ccSHector Martin compatible = "fixed-clock"; 1017d2d16ccSHector Martin #clock-cells = <0>; 1027d2d16ccSHector Martin clock-frequency = <24000000>; 1037d2d16ccSHector Martin clock-output-names = "clk24"; 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>; 11790458f6eSJanne Grunau clocks = <&clk24>; 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>; 124*106ba3b4SHector 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>; 13090458f6eSJanne Grunau clocks = <&clk24>; 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>; 137*106ba3b4SHector 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>; 14390458f6eSJanne Grunau clocks = <&clk24>; 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 */ 151*106ba3b4SHector 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>; 15790458f6eSJanne Grunau clocks = <&clk24>; 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>; 164*106ba3b4SHector 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>; 17090458f6eSJanne Grunau clocks = <&clk24>; 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>; 177*106ba3b4SHector 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 */ 1917d2d16ccSHector Martin clocks = <&clk24>, <&clk24>; 1927d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 193*106ba3b4SHector Martin power-domains = <&ps_uart0>; 1947d2d16ccSHector Martin status = "disabled"; 1957d2d16ccSHector Martin }; 1967d2d16ccSHector Martin 1977d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 1987d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 1997d2d16ccSHector Martin #interrupt-cells = <3>; 2007d2d16ccSHector Martin interrupt-controller; 2017d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 202*106ba3b4SHector Martin power-domains = <&ps_aic>; 203*106ba3b4SHector Martin }; 204*106ba3b4SHector Martin 205*106ba3b4SHector Martin pmgr: power-management@23b700000 { 206*106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 207*106ba3b4SHector Martin #address-cells = <1>; 208*106ba3b4SHector Martin #size-cells = <1>; 209*106ba3b4SHector Martin reg = <0x2 0x3b700000 0 0x14000>; 2107d2d16ccSHector Martin }; 2110a8282b8SMark Kettenis 2120a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 2130a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2140a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 215*106ba3b4SHector Martin power-domains = <&ps_gpio>; 2160a8282b8SMark Kettenis 2170a8282b8SMark Kettenis gpio-controller; 2180a8282b8SMark Kettenis #gpio-cells = <2>; 2190a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 2200a8282b8SMark Kettenis apple,npins = <212>; 2210a8282b8SMark Kettenis 2220a8282b8SMark Kettenis interrupt-controller; 2230668639eSJanne Grunau #interrupt-cells = <2>; 2240a8282b8SMark Kettenis interrupt-parent = <&aic>; 2250a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 2260a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 2270a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 2280a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 2290a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 2300a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 2310a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 2320a8282b8SMark Kettenis 23390458f6eSJanne Grunau i2c0_pins: i2c0-pins { 23490458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 23590458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 23690458f6eSJanne Grunau }; 23790458f6eSJanne Grunau 23890458f6eSJanne Grunau i2c1_pins: i2c1-pins { 23990458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 24090458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 24190458f6eSJanne Grunau }; 24290458f6eSJanne Grunau 24390458f6eSJanne Grunau i2c2_pins: i2c2-pins { 24490458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 24590458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 24690458f6eSJanne Grunau }; 24790458f6eSJanne Grunau 24890458f6eSJanne Grunau i2c3_pins: i2c3-pins { 24990458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 25090458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 25190458f6eSJanne Grunau }; 25290458f6eSJanne Grunau 25390458f6eSJanne Grunau i2c4_pins: i2c4-pins { 25490458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 25590458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 25690458f6eSJanne Grunau }; 25790458f6eSJanne Grunau 2580a8282b8SMark Kettenis pcie_pins: pcie-pins { 2590a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 2600a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 2610a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 2620a8282b8SMark Kettenis }; 2630a8282b8SMark Kettenis }; 2640a8282b8SMark Kettenis 265*106ba3b4SHector Martin pmgr_mini: power-management@23d280000 { 266*106ba3b4SHector Martin compatible = "apple,t8103-pmgr", "apple,pmgr", "syscon", "simple-mfd"; 267*106ba3b4SHector Martin #address-cells = <1>; 268*106ba3b4SHector Martin #size-cells = <1>; 269*106ba3b4SHector Martin reg = <0x2 0x3d280000 0 0x4000>; 270*106ba3b4SHector Martin }; 271*106ba3b4SHector Martin 2720a8282b8SMark Kettenis pinctrl_aop: pinctrl@24a820000 { 2730a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2740a8282b8SMark Kettenis reg = <0x2 0x4a820000 0x0 0x4000>; 2750a8282b8SMark Kettenis 2760a8282b8SMark Kettenis gpio-controller; 2770a8282b8SMark Kettenis #gpio-cells = <2>; 2780a8282b8SMark Kettenis gpio-ranges = <&pinctrl_aop 0 0 42>; 2790a8282b8SMark Kettenis apple,npins = <42>; 2800a8282b8SMark Kettenis 2810a8282b8SMark Kettenis interrupt-controller; 2820668639eSJanne Grunau #interrupt-cells = <2>; 2830a8282b8SMark Kettenis interrupt-parent = <&aic>; 2840a8282b8SMark Kettenis interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 2850a8282b8SMark Kettenis <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 2860a8282b8SMark Kettenis <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 2870a8282b8SMark Kettenis <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 2880a8282b8SMark Kettenis <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 2890a8282b8SMark Kettenis <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 2900a8282b8SMark Kettenis <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 2910a8282b8SMark Kettenis }; 2920a8282b8SMark Kettenis 2930a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 2940a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2950a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 296*106ba3b4SHector Martin power-domains = <&ps_nub_gpio>; 2970a8282b8SMark Kettenis 2980a8282b8SMark Kettenis gpio-controller; 2990a8282b8SMark Kettenis #gpio-cells = <2>; 3000a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 3010a8282b8SMark Kettenis apple,npins = <23>; 3020a8282b8SMark Kettenis 3030a8282b8SMark Kettenis interrupt-controller; 3040668639eSJanne Grunau #interrupt-cells = <2>; 3050a8282b8SMark Kettenis interrupt-parent = <&aic>; 3060a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 3070a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 3080a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 3090a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 3100a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 3110a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 3120a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 3130a8282b8SMark Kettenis }; 3140a8282b8SMark Kettenis 3150a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 3160a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 3170a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 3180a8282b8SMark Kettenis 3190a8282b8SMark Kettenis gpio-controller; 3200a8282b8SMark Kettenis #gpio-cells = <2>; 3210a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 3220a8282b8SMark Kettenis apple,npins = <16>; 3230a8282b8SMark Kettenis 3240a8282b8SMark Kettenis interrupt-controller; 3250668639eSJanne Grunau #interrupt-cells = <2>; 3260a8282b8SMark Kettenis interrupt-parent = <&aic>; 3270a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 3280a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 3290a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 3300a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 3310a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 3320a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 3330a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 3340a8282b8SMark Kettenis }; 335ff2a8d91SMark Kettenis 3363c866bb7SMarc Zyngier pcie0_dart_0: dart@681008000 { 3373c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3383c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 3393c866bb7SMarc Zyngier #iommu-cells = <1>; 3403c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3413c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 342*106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 3433c866bb7SMarc Zyngier }; 3443c866bb7SMarc Zyngier 3453c866bb7SMarc Zyngier pcie0_dart_1: dart@682008000 { 3463c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3473c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 3483c866bb7SMarc Zyngier #iommu-cells = <1>; 3493c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3503c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 351*106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 3523c866bb7SMarc Zyngier }; 3533c866bb7SMarc Zyngier 3543c866bb7SMarc Zyngier pcie0_dart_2: dart@683008000 { 3553c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3563c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 3573c866bb7SMarc Zyngier #iommu-cells = <1>; 3583c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3593c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 360*106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 3613c866bb7SMarc Zyngier }; 3623c866bb7SMarc Zyngier 363ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 364ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 365ff2a8d91SMark Kettenis device_type = "pci"; 366ff2a8d91SMark Kettenis 367ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 368ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 369ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 370ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 371ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 372ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 373ff2a8d91SMark Kettenis 374ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 375ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 376ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 377ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 378ff2a8d91SMark Kettenis 379ff2a8d91SMark Kettenis msi-controller; 380ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 381ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 382ff2a8d91SMark Kettenis 3833c866bb7SMarc Zyngier 3843c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 3853c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 3863c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 3873c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 3883c866bb7SMarc Zyngier 389ff2a8d91SMark Kettenis bus-range = <0 3>; 390ff2a8d91SMark Kettenis #address-cells = <3>; 391ff2a8d91SMark Kettenis #size-cells = <2>; 392ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 393ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 394ff2a8d91SMark Kettenis 395*106ba3b4SHector Martin power-domains = <&ps_apcie_gp>; 396ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 397ff2a8d91SMark Kettenis pinctrl-names = "default"; 398ff2a8d91SMark Kettenis 399128888a6SMarc Zyngier port00: pci@0,0 { 400ff2a8d91SMark Kettenis device_type = "pci"; 401ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 402ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 152 0>; 403ff2a8d91SMark Kettenis max-link-speed = <2>; 404ff2a8d91SMark Kettenis 405ff2a8d91SMark Kettenis #address-cells = <3>; 406ff2a8d91SMark Kettenis #size-cells = <2>; 407ff2a8d91SMark Kettenis ranges; 408128888a6SMarc Zyngier 409128888a6SMarc Zyngier interrupt-controller; 410128888a6SMarc Zyngier #interrupt-cells = <1>; 411128888a6SMarc Zyngier 412128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 413128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 414128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 415128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 416128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 417ff2a8d91SMark Kettenis }; 418ff2a8d91SMark Kettenis 419128888a6SMarc Zyngier port01: pci@1,0 { 420ff2a8d91SMark Kettenis device_type = "pci"; 421ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 422ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 153 0>; 423ff2a8d91SMark Kettenis max-link-speed = <2>; 424ff2a8d91SMark Kettenis 425ff2a8d91SMark Kettenis #address-cells = <3>; 426ff2a8d91SMark Kettenis #size-cells = <2>; 427ff2a8d91SMark Kettenis ranges; 428128888a6SMarc Zyngier 429128888a6SMarc Zyngier interrupt-controller; 430128888a6SMarc Zyngier #interrupt-cells = <1>; 431128888a6SMarc Zyngier 432128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 433128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 434128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 435128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 436128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 437ff2a8d91SMark Kettenis }; 438ff2a8d91SMark Kettenis 439128888a6SMarc Zyngier port02: pci@2,0 { 440ff2a8d91SMark Kettenis device_type = "pci"; 441ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 442ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 33 0>; 443ff2a8d91SMark Kettenis max-link-speed = <1>; 444ff2a8d91SMark Kettenis 445ff2a8d91SMark Kettenis #address-cells = <3>; 446ff2a8d91SMark Kettenis #size-cells = <2>; 447ff2a8d91SMark Kettenis ranges; 448128888a6SMarc Zyngier 449128888a6SMarc Zyngier interrupt-controller; 450128888a6SMarc Zyngier #interrupt-cells = <1>; 451128888a6SMarc Zyngier 452128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 453128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 454128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 455128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 456128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 457ff2a8d91SMark Kettenis }; 458ff2a8d91SMark Kettenis }; 4597d2d16ccSHector Martin }; 4607d2d16ccSHector Martin}; 461*106ba3b4SHector Martin 462*106ba3b4SHector Martin#include "t8103-pmgr.dtsi" 463