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 114*90458f6eSJanne Grunau i2c0: i2c@235010000 { 115*90458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 116*90458f6eSJanne Grunau reg = <0x2 0x35010000 0x0 0x4000>; 117*90458f6eSJanne Grunau clocks = <&clk24>; 118*90458f6eSJanne Grunau interrupt-parent = <&aic>; 119*90458f6eSJanne Grunau interrupts = <AIC_IRQ 627 IRQ_TYPE_LEVEL_HIGH>; 120*90458f6eSJanne Grunau pinctrl-0 = <&i2c0_pins>; 121*90458f6eSJanne Grunau pinctrl-names = "default"; 122*90458f6eSJanne Grunau #address-cells = <0x1>; 123*90458f6eSJanne Grunau #size-cells = <0x0>; 124*90458f6eSJanne Grunau }; 125*90458f6eSJanne Grunau 126*90458f6eSJanne Grunau i2c1: i2c@235014000 { 127*90458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 128*90458f6eSJanne Grunau reg = <0x2 0x35014000 0x0 0x4000>; 129*90458f6eSJanne Grunau clocks = <&clk24>; 130*90458f6eSJanne Grunau interrupt-parent = <&aic>; 131*90458f6eSJanne Grunau interrupts = <AIC_IRQ 628 IRQ_TYPE_LEVEL_HIGH>; 132*90458f6eSJanne Grunau pinctrl-0 = <&i2c1_pins>; 133*90458f6eSJanne Grunau pinctrl-names = "default"; 134*90458f6eSJanne Grunau #address-cells = <0x1>; 135*90458f6eSJanne Grunau #size-cells = <0x0>; 136*90458f6eSJanne Grunau }; 137*90458f6eSJanne Grunau 138*90458f6eSJanne Grunau i2c2: i2c@235018000 { 139*90458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 140*90458f6eSJanne Grunau reg = <0x2 0x35018000 0x0 0x4000>; 141*90458f6eSJanne Grunau clocks = <&clk24>; 142*90458f6eSJanne Grunau interrupt-parent = <&aic>; 143*90458f6eSJanne Grunau interrupts = <AIC_IRQ 629 IRQ_TYPE_LEVEL_HIGH>; 144*90458f6eSJanne Grunau pinctrl-0 = <&i2c2_pins>; 145*90458f6eSJanne Grunau pinctrl-names = "default"; 146*90458f6eSJanne Grunau #address-cells = <0x1>; 147*90458f6eSJanne Grunau #size-cells = <0x0>; 148*90458f6eSJanne Grunau status = "disabled"; /* not used in all devices */ 149*90458f6eSJanne Grunau }; 150*90458f6eSJanne Grunau 151*90458f6eSJanne Grunau i2c3: i2c@23501c000 { 152*90458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 153*90458f6eSJanne Grunau reg = <0x2 0x3501c000 0x0 0x4000>; 154*90458f6eSJanne Grunau clocks = <&clk24>; 155*90458f6eSJanne Grunau interrupt-parent = <&aic>; 156*90458f6eSJanne Grunau interrupts = <AIC_IRQ 630 IRQ_TYPE_LEVEL_HIGH>; 157*90458f6eSJanne Grunau pinctrl-0 = <&i2c3_pins>; 158*90458f6eSJanne Grunau pinctrl-names = "default"; 159*90458f6eSJanne Grunau #address-cells = <0x1>; 160*90458f6eSJanne Grunau #size-cells = <0x0>; 161*90458f6eSJanne Grunau }; 162*90458f6eSJanne Grunau 163*90458f6eSJanne Grunau i2c4: i2c@235020000 { 164*90458f6eSJanne Grunau compatible = "apple,t8103-i2c", "apple,i2c"; 165*90458f6eSJanne Grunau reg = <0x2 0x35020000 0x0 0x4000>; 166*90458f6eSJanne Grunau clocks = <&clk24>; 167*90458f6eSJanne Grunau interrupt-parent = <&aic>; 168*90458f6eSJanne Grunau interrupts = <AIC_IRQ 631 IRQ_TYPE_LEVEL_HIGH>; 169*90458f6eSJanne Grunau pinctrl-0 = <&i2c4_pins>; 170*90458f6eSJanne Grunau pinctrl-names = "default"; 171*90458f6eSJanne Grunau #address-cells = <0x1>; 172*90458f6eSJanne Grunau #size-cells = <0x0>; 173*90458f6eSJanne Grunau status = "disabled"; /* only used in J293 */ 174*90458f6eSJanne Grunau }; 175*90458f6eSJanne Grunau 1767d2d16ccSHector Martin serial0: serial@235200000 { 1777d2d16ccSHector Martin compatible = "apple,s5l-uart"; 1787d2d16ccSHector Martin reg = <0x2 0x35200000 0x0 0x1000>; 1797d2d16ccSHector Martin reg-io-width = <4>; 1807d2d16ccSHector Martin interrupt-parent = <&aic>; 1817d2d16ccSHector Martin interrupts = <AIC_IRQ 605 IRQ_TYPE_LEVEL_HIGH>; 1827d2d16ccSHector Martin /* 1837d2d16ccSHector Martin * TODO: figure out the clocking properly, there may 1847d2d16ccSHector Martin * be a third selectable clock. 1857d2d16ccSHector Martin */ 1867d2d16ccSHector Martin clocks = <&clk24>, <&clk24>; 1877d2d16ccSHector Martin clock-names = "uart", "clk_uart_baud0"; 1887d2d16ccSHector Martin status = "disabled"; 1897d2d16ccSHector Martin }; 1907d2d16ccSHector Martin 1917d2d16ccSHector Martin aic: interrupt-controller@23b100000 { 1927d2d16ccSHector Martin compatible = "apple,t8103-aic", "apple,aic"; 1937d2d16ccSHector Martin #interrupt-cells = <3>; 1947d2d16ccSHector Martin interrupt-controller; 1957d2d16ccSHector Martin reg = <0x2 0x3b100000 0x0 0x8000>; 1967d2d16ccSHector Martin }; 1970a8282b8SMark Kettenis 1980a8282b8SMark Kettenis pinctrl_ap: pinctrl@23c100000 { 1990a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2000a8282b8SMark Kettenis reg = <0x2 0x3c100000 0x0 0x100000>; 2010a8282b8SMark Kettenis 2020a8282b8SMark Kettenis gpio-controller; 2030a8282b8SMark Kettenis #gpio-cells = <2>; 2040a8282b8SMark Kettenis gpio-ranges = <&pinctrl_ap 0 0 212>; 2050a8282b8SMark Kettenis apple,npins = <212>; 2060a8282b8SMark Kettenis 2070a8282b8SMark Kettenis interrupt-controller; 2080668639eSJanne Grunau #interrupt-cells = <2>; 2090a8282b8SMark Kettenis interrupt-parent = <&aic>; 2100a8282b8SMark Kettenis interrupts = <AIC_IRQ 190 IRQ_TYPE_LEVEL_HIGH>, 2110a8282b8SMark Kettenis <AIC_IRQ 191 IRQ_TYPE_LEVEL_HIGH>, 2120a8282b8SMark Kettenis <AIC_IRQ 192 IRQ_TYPE_LEVEL_HIGH>, 2130a8282b8SMark Kettenis <AIC_IRQ 193 IRQ_TYPE_LEVEL_HIGH>, 2140a8282b8SMark Kettenis <AIC_IRQ 194 IRQ_TYPE_LEVEL_HIGH>, 2150a8282b8SMark Kettenis <AIC_IRQ 195 IRQ_TYPE_LEVEL_HIGH>, 2160a8282b8SMark Kettenis <AIC_IRQ 196 IRQ_TYPE_LEVEL_HIGH>; 2170a8282b8SMark Kettenis 218*90458f6eSJanne Grunau i2c0_pins: i2c0-pins { 219*90458f6eSJanne Grunau pinmux = <APPLE_PINMUX(192, 1)>, 220*90458f6eSJanne Grunau <APPLE_PINMUX(188, 1)>; 221*90458f6eSJanne Grunau }; 222*90458f6eSJanne Grunau 223*90458f6eSJanne Grunau i2c1_pins: i2c1-pins { 224*90458f6eSJanne Grunau pinmux = <APPLE_PINMUX(201, 1)>, 225*90458f6eSJanne Grunau <APPLE_PINMUX(199, 1)>; 226*90458f6eSJanne Grunau }; 227*90458f6eSJanne Grunau 228*90458f6eSJanne Grunau i2c2_pins: i2c2-pins { 229*90458f6eSJanne Grunau pinmux = <APPLE_PINMUX(163, 1)>, 230*90458f6eSJanne Grunau <APPLE_PINMUX(162, 1)>; 231*90458f6eSJanne Grunau }; 232*90458f6eSJanne Grunau 233*90458f6eSJanne Grunau i2c3_pins: i2c3-pins { 234*90458f6eSJanne Grunau pinmux = <APPLE_PINMUX(73, 1)>, 235*90458f6eSJanne Grunau <APPLE_PINMUX(72, 1)>; 236*90458f6eSJanne Grunau }; 237*90458f6eSJanne Grunau 238*90458f6eSJanne Grunau i2c4_pins: i2c4-pins { 239*90458f6eSJanne Grunau pinmux = <APPLE_PINMUX(135, 1)>, 240*90458f6eSJanne Grunau <APPLE_PINMUX(134, 1)>; 241*90458f6eSJanne Grunau }; 242*90458f6eSJanne Grunau 2430a8282b8SMark Kettenis pcie_pins: pcie-pins { 2440a8282b8SMark Kettenis pinmux = <APPLE_PINMUX(150, 1)>, 2450a8282b8SMark Kettenis <APPLE_PINMUX(151, 1)>, 2460a8282b8SMark Kettenis <APPLE_PINMUX(32, 1)>; 2470a8282b8SMark Kettenis }; 2480a8282b8SMark Kettenis }; 2490a8282b8SMark Kettenis 2500a8282b8SMark Kettenis pinctrl_aop: pinctrl@24a820000 { 2510a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2520a8282b8SMark Kettenis reg = <0x2 0x4a820000 0x0 0x4000>; 2530a8282b8SMark Kettenis 2540a8282b8SMark Kettenis gpio-controller; 2550a8282b8SMark Kettenis #gpio-cells = <2>; 2560a8282b8SMark Kettenis gpio-ranges = <&pinctrl_aop 0 0 42>; 2570a8282b8SMark Kettenis apple,npins = <42>; 2580a8282b8SMark Kettenis 2590a8282b8SMark Kettenis interrupt-controller; 2600668639eSJanne Grunau #interrupt-cells = <2>; 2610a8282b8SMark Kettenis interrupt-parent = <&aic>; 2620a8282b8SMark Kettenis interrupts = <AIC_IRQ 268 IRQ_TYPE_LEVEL_HIGH>, 2630a8282b8SMark Kettenis <AIC_IRQ 269 IRQ_TYPE_LEVEL_HIGH>, 2640a8282b8SMark Kettenis <AIC_IRQ 270 IRQ_TYPE_LEVEL_HIGH>, 2650a8282b8SMark Kettenis <AIC_IRQ 271 IRQ_TYPE_LEVEL_HIGH>, 2660a8282b8SMark Kettenis <AIC_IRQ 272 IRQ_TYPE_LEVEL_HIGH>, 2670a8282b8SMark Kettenis <AIC_IRQ 273 IRQ_TYPE_LEVEL_HIGH>, 2680a8282b8SMark Kettenis <AIC_IRQ 274 IRQ_TYPE_LEVEL_HIGH>; 2690a8282b8SMark Kettenis }; 2700a8282b8SMark Kettenis 2710a8282b8SMark Kettenis pinctrl_nub: pinctrl@23d1f0000 { 2720a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2730a8282b8SMark Kettenis reg = <0x2 0x3d1f0000 0x0 0x4000>; 2740a8282b8SMark Kettenis 2750a8282b8SMark Kettenis gpio-controller; 2760a8282b8SMark Kettenis #gpio-cells = <2>; 2770a8282b8SMark Kettenis gpio-ranges = <&pinctrl_nub 0 0 23>; 2780a8282b8SMark Kettenis apple,npins = <23>; 2790a8282b8SMark Kettenis 2800a8282b8SMark Kettenis interrupt-controller; 2810668639eSJanne Grunau #interrupt-cells = <2>; 2820a8282b8SMark Kettenis interrupt-parent = <&aic>; 2830a8282b8SMark Kettenis interrupts = <AIC_IRQ 330 IRQ_TYPE_LEVEL_HIGH>, 2840a8282b8SMark Kettenis <AIC_IRQ 331 IRQ_TYPE_LEVEL_HIGH>, 2850a8282b8SMark Kettenis <AIC_IRQ 332 IRQ_TYPE_LEVEL_HIGH>, 2860a8282b8SMark Kettenis <AIC_IRQ 333 IRQ_TYPE_LEVEL_HIGH>, 2870a8282b8SMark Kettenis <AIC_IRQ 334 IRQ_TYPE_LEVEL_HIGH>, 2880a8282b8SMark Kettenis <AIC_IRQ 335 IRQ_TYPE_LEVEL_HIGH>, 2890a8282b8SMark Kettenis <AIC_IRQ 336 IRQ_TYPE_LEVEL_HIGH>; 2900a8282b8SMark Kettenis }; 2910a8282b8SMark Kettenis 2920a8282b8SMark Kettenis pinctrl_smc: pinctrl@23e820000 { 2930a8282b8SMark Kettenis compatible = "apple,t8103-pinctrl", "apple,pinctrl"; 2940a8282b8SMark Kettenis reg = <0x2 0x3e820000 0x0 0x4000>; 2950a8282b8SMark Kettenis 2960a8282b8SMark Kettenis gpio-controller; 2970a8282b8SMark Kettenis #gpio-cells = <2>; 2980a8282b8SMark Kettenis gpio-ranges = <&pinctrl_smc 0 0 16>; 2990a8282b8SMark Kettenis apple,npins = <16>; 3000a8282b8SMark Kettenis 3010a8282b8SMark Kettenis interrupt-controller; 3020668639eSJanne Grunau #interrupt-cells = <2>; 3030a8282b8SMark Kettenis interrupt-parent = <&aic>; 3040a8282b8SMark Kettenis interrupts = <AIC_IRQ 391 IRQ_TYPE_LEVEL_HIGH>, 3050a8282b8SMark Kettenis <AIC_IRQ 392 IRQ_TYPE_LEVEL_HIGH>, 3060a8282b8SMark Kettenis <AIC_IRQ 393 IRQ_TYPE_LEVEL_HIGH>, 3070a8282b8SMark Kettenis <AIC_IRQ 394 IRQ_TYPE_LEVEL_HIGH>, 3080a8282b8SMark Kettenis <AIC_IRQ 395 IRQ_TYPE_LEVEL_HIGH>, 3090a8282b8SMark Kettenis <AIC_IRQ 396 IRQ_TYPE_LEVEL_HIGH>, 3100a8282b8SMark Kettenis <AIC_IRQ 397 IRQ_TYPE_LEVEL_HIGH>; 3110a8282b8SMark Kettenis }; 312ff2a8d91SMark Kettenis 3133c866bb7SMarc Zyngier pcie0_dart_0: dart@681008000 { 3143c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3153c866bb7SMarc Zyngier reg = <0x6 0x81008000 0x0 0x4000>; 3163c866bb7SMarc Zyngier #iommu-cells = <1>; 3173c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3183c866bb7SMarc Zyngier interrupts = <AIC_IRQ 696 IRQ_TYPE_LEVEL_HIGH>; 3193c866bb7SMarc Zyngier }; 3203c866bb7SMarc Zyngier 3213c866bb7SMarc Zyngier pcie0_dart_1: dart@682008000 { 3223c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3233c866bb7SMarc Zyngier reg = <0x6 0x82008000 0x0 0x4000>; 3243c866bb7SMarc Zyngier #iommu-cells = <1>; 3253c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3263c866bb7SMarc Zyngier interrupts = <AIC_IRQ 699 IRQ_TYPE_LEVEL_HIGH>; 3273c866bb7SMarc Zyngier }; 3283c866bb7SMarc Zyngier 3293c866bb7SMarc Zyngier pcie0_dart_2: dart@683008000 { 3303c866bb7SMarc Zyngier compatible = "apple,t8103-dart"; 3313c866bb7SMarc Zyngier reg = <0x6 0x83008000 0x0 0x4000>; 3323c866bb7SMarc Zyngier #iommu-cells = <1>; 3333c866bb7SMarc Zyngier interrupt-parent = <&aic>; 3343c866bb7SMarc Zyngier interrupts = <AIC_IRQ 702 IRQ_TYPE_LEVEL_HIGH>; 3353c866bb7SMarc Zyngier }; 3363c866bb7SMarc Zyngier 337ff2a8d91SMark Kettenis pcie0: pcie@690000000 { 338ff2a8d91SMark Kettenis compatible = "apple,t8103-pcie", "apple,pcie"; 339ff2a8d91SMark Kettenis device_type = "pci"; 340ff2a8d91SMark Kettenis 341ff2a8d91SMark Kettenis reg = <0x6 0x90000000 0x0 0x1000000>, 342ff2a8d91SMark Kettenis <0x6 0x80000000 0x0 0x100000>, 343ff2a8d91SMark Kettenis <0x6 0x81000000 0x0 0x4000>, 344ff2a8d91SMark Kettenis <0x6 0x82000000 0x0 0x4000>, 345ff2a8d91SMark Kettenis <0x6 0x83000000 0x0 0x4000>; 346ff2a8d91SMark Kettenis reg-names = "config", "rc", "port0", "port1", "port2"; 347ff2a8d91SMark Kettenis 348ff2a8d91SMark Kettenis interrupt-parent = <&aic>; 349ff2a8d91SMark Kettenis interrupts = <AIC_IRQ 695 IRQ_TYPE_LEVEL_HIGH>, 350ff2a8d91SMark Kettenis <AIC_IRQ 698 IRQ_TYPE_LEVEL_HIGH>, 351ff2a8d91SMark Kettenis <AIC_IRQ 701 IRQ_TYPE_LEVEL_HIGH>; 352ff2a8d91SMark Kettenis 353ff2a8d91SMark Kettenis msi-controller; 354ff2a8d91SMark Kettenis msi-parent = <&pcie0>; 355ff2a8d91SMark Kettenis msi-ranges = <&aic AIC_IRQ 704 IRQ_TYPE_EDGE_RISING 32>; 356ff2a8d91SMark Kettenis 3573c866bb7SMarc Zyngier 3583c866bb7SMarc Zyngier iommu-map = <0x100 &pcie0_dart_0 1 1>, 3593c866bb7SMarc Zyngier <0x200 &pcie0_dart_1 1 1>, 3603c866bb7SMarc Zyngier <0x300 &pcie0_dart_2 1 1>; 3613c866bb7SMarc Zyngier iommu-map-mask = <0xff00>; 3623c866bb7SMarc Zyngier 363ff2a8d91SMark Kettenis bus-range = <0 3>; 364ff2a8d91SMark Kettenis #address-cells = <3>; 365ff2a8d91SMark Kettenis #size-cells = <2>; 366ff2a8d91SMark Kettenis ranges = <0x43000000 0x6 0xa0000000 0x6 0xa0000000 0x0 0x20000000>, 367ff2a8d91SMark Kettenis <0x02000000 0x0 0xc0000000 0x6 0xc0000000 0x0 0x40000000>; 368ff2a8d91SMark Kettenis 369ff2a8d91SMark Kettenis pinctrl-0 = <&pcie_pins>; 370ff2a8d91SMark Kettenis pinctrl-names = "default"; 371ff2a8d91SMark Kettenis 372128888a6SMarc Zyngier port00: pci@0,0 { 373ff2a8d91SMark Kettenis device_type = "pci"; 374ff2a8d91SMark Kettenis reg = <0x0 0x0 0x0 0x0 0x0>; 375ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 152 0>; 376ff2a8d91SMark Kettenis max-link-speed = <2>; 377ff2a8d91SMark Kettenis 378ff2a8d91SMark Kettenis #address-cells = <3>; 379ff2a8d91SMark Kettenis #size-cells = <2>; 380ff2a8d91SMark Kettenis ranges; 381128888a6SMarc Zyngier 382128888a6SMarc Zyngier interrupt-controller; 383128888a6SMarc Zyngier #interrupt-cells = <1>; 384128888a6SMarc Zyngier 385128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 386128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port00 0 0 0 0>, 387128888a6SMarc Zyngier <0 0 0 2 &port00 0 0 0 1>, 388128888a6SMarc Zyngier <0 0 0 3 &port00 0 0 0 2>, 389128888a6SMarc Zyngier <0 0 0 4 &port00 0 0 0 3>; 390ff2a8d91SMark Kettenis }; 391ff2a8d91SMark Kettenis 392128888a6SMarc Zyngier port01: pci@1,0 { 393ff2a8d91SMark Kettenis device_type = "pci"; 394ff2a8d91SMark Kettenis reg = <0x800 0x0 0x0 0x0 0x0>; 395ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 153 0>; 396ff2a8d91SMark Kettenis max-link-speed = <2>; 397ff2a8d91SMark Kettenis 398ff2a8d91SMark Kettenis #address-cells = <3>; 399ff2a8d91SMark Kettenis #size-cells = <2>; 400ff2a8d91SMark Kettenis ranges; 401128888a6SMarc Zyngier 402128888a6SMarc Zyngier interrupt-controller; 403128888a6SMarc Zyngier #interrupt-cells = <1>; 404128888a6SMarc Zyngier 405128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 406128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port01 0 0 0 0>, 407128888a6SMarc Zyngier <0 0 0 2 &port01 0 0 0 1>, 408128888a6SMarc Zyngier <0 0 0 3 &port01 0 0 0 2>, 409128888a6SMarc Zyngier <0 0 0 4 &port01 0 0 0 3>; 410ff2a8d91SMark Kettenis }; 411ff2a8d91SMark Kettenis 412128888a6SMarc Zyngier port02: pci@2,0 { 413ff2a8d91SMark Kettenis device_type = "pci"; 414ff2a8d91SMark Kettenis reg = <0x1000 0x0 0x0 0x0 0x0>; 415ff2a8d91SMark Kettenis reset-gpios = <&pinctrl_ap 33 0>; 416ff2a8d91SMark Kettenis max-link-speed = <1>; 417ff2a8d91SMark Kettenis 418ff2a8d91SMark Kettenis #address-cells = <3>; 419ff2a8d91SMark Kettenis #size-cells = <2>; 420ff2a8d91SMark Kettenis ranges; 421128888a6SMarc Zyngier 422128888a6SMarc Zyngier interrupt-controller; 423128888a6SMarc Zyngier #interrupt-cells = <1>; 424128888a6SMarc Zyngier 425128888a6SMarc Zyngier interrupt-map-mask = <0 0 0 7>; 426128888a6SMarc Zyngier interrupt-map = <0 0 0 1 &port02 0 0 0 0>, 427128888a6SMarc Zyngier <0 0 0 2 &port02 0 0 0 1>, 428128888a6SMarc Zyngier <0 0 0 3 &port02 0 0 0 2>, 429128888a6SMarc Zyngier <0 0 0 4 &port02 0 0 0 3>; 430ff2a8d91SMark Kettenis }; 431ff2a8d91SMark Kettenis }; 4327d2d16ccSHector Martin }; 4337d2d16ccSHector Martin}; 434