1*7366e193SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7366e193SKrzysztof Kozlowski%YAML 1.2 3*7366e193SKrzysztof Kozlowski--- 4*7366e193SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq5018.yaml# 5*7366e193SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*7366e193SKrzysztof Kozlowski 7*7366e193SKrzysztof Kozlowskititle: Qualcomm IPQ5018 PCI Express Root Complex 8*7366e193SKrzysztof Kozlowski 9*7366e193SKrzysztof Kozlowskimaintainers: 10*7366e193SKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*7366e193SKrzysztof Kozlowski - Manivannan Sadhasivam <mani@kernel.org> 12*7366e193SKrzysztof Kozlowski 13*7366e193SKrzysztof Kozlowskiproperties: 14*7366e193SKrzysztof Kozlowski compatible: 15*7366e193SKrzysztof Kozlowski enum: 16*7366e193SKrzysztof Kozlowski - qcom,pcie-ipq5018 17*7366e193SKrzysztof Kozlowski 18*7366e193SKrzysztof Kozlowski reg: 19*7366e193SKrzysztof Kozlowski minItems: 5 20*7366e193SKrzysztof Kozlowski maxItems: 6 21*7366e193SKrzysztof Kozlowski 22*7366e193SKrzysztof Kozlowski reg-names: 23*7366e193SKrzysztof Kozlowski minItems: 5 24*7366e193SKrzysztof Kozlowski items: 25*7366e193SKrzysztof Kozlowski - const: dbi 26*7366e193SKrzysztof Kozlowski - const: elbi 27*7366e193SKrzysztof Kozlowski - const: atu 28*7366e193SKrzysztof Kozlowski - const: parf 29*7366e193SKrzysztof Kozlowski - const: config 30*7366e193SKrzysztof Kozlowski - const: mhi 31*7366e193SKrzysztof Kozlowski 32*7366e193SKrzysztof Kozlowski clocks: 33*7366e193SKrzysztof Kozlowski maxItems: 6 34*7366e193SKrzysztof Kozlowski 35*7366e193SKrzysztof Kozlowski clock-names: 36*7366e193SKrzysztof Kozlowski items: 37*7366e193SKrzysztof Kozlowski - const: iface # PCIe to SysNOC BIU clock 38*7366e193SKrzysztof Kozlowski - const: axi_m # AXI Master clock 39*7366e193SKrzysztof Kozlowski - const: axi_s # AXI Slave clock 40*7366e193SKrzysztof Kozlowski - const: ahb 41*7366e193SKrzysztof Kozlowski - const: aux 42*7366e193SKrzysztof Kozlowski - const: axi_bridge 43*7366e193SKrzysztof Kozlowski 44*7366e193SKrzysztof Kozlowski interrupts: 45*7366e193SKrzysztof Kozlowski maxItems: 9 46*7366e193SKrzysztof Kozlowski 47*7366e193SKrzysztof Kozlowski interrupt-names: 48*7366e193SKrzysztof Kozlowski items: 49*7366e193SKrzysztof Kozlowski - const: msi0 50*7366e193SKrzysztof Kozlowski - const: msi1 51*7366e193SKrzysztof Kozlowski - const: msi2 52*7366e193SKrzysztof Kozlowski - const: msi3 53*7366e193SKrzysztof Kozlowski - const: msi4 54*7366e193SKrzysztof Kozlowski - const: msi5 55*7366e193SKrzysztof Kozlowski - const: msi6 56*7366e193SKrzysztof Kozlowski - const: msi7 57*7366e193SKrzysztof Kozlowski - const: global 58*7366e193SKrzysztof Kozlowski 59*7366e193SKrzysztof Kozlowski resets: 60*7366e193SKrzysztof Kozlowski maxItems: 8 61*7366e193SKrzysztof Kozlowski 62*7366e193SKrzysztof Kozlowski reset-names: 63*7366e193SKrzysztof Kozlowski items: 64*7366e193SKrzysztof Kozlowski - const: pipe 65*7366e193SKrzysztof Kozlowski - const: sleep 66*7366e193SKrzysztof Kozlowski - const: sticky # Core sticky reset 67*7366e193SKrzysztof Kozlowski - const: axi_m # AXI master reset 68*7366e193SKrzysztof Kozlowski - const: axi_s # AXI slave reset 69*7366e193SKrzysztof Kozlowski - const: ahb 70*7366e193SKrzysztof Kozlowski - const: axi_m_sticky # AXI master sticky reset 71*7366e193SKrzysztof Kozlowski - const: axi_s_sticky # AXI slave sticky reset 72*7366e193SKrzysztof Kozlowski 73*7366e193SKrzysztof Kozlowskirequired: 74*7366e193SKrzysztof Kozlowski - resets 75*7366e193SKrzysztof Kozlowski - reset-names 76*7366e193SKrzysztof Kozlowski 77*7366e193SKrzysztof KozlowskiallOf: 78*7366e193SKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 79*7366e193SKrzysztof Kozlowski 80*7366e193SKrzysztof KozlowskiunevaluatedProperties: false 81*7366e193SKrzysztof Kozlowski 82*7366e193SKrzysztof Kozlowskiexamples: 83*7366e193SKrzysztof Kozlowski - | 84*7366e193SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-ipq5018.h> 85*7366e193SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 86*7366e193SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 87*7366e193SKrzysztof Kozlowski #include <dt-bindings/reset/qcom,gcc-ipq5018.h> 88*7366e193SKrzysztof Kozlowski 89*7366e193SKrzysztof Kozlowski pcie@a0000000 { 90*7366e193SKrzysztof Kozlowski compatible = "qcom,pcie-ipq5018"; 91*7366e193SKrzysztof Kozlowski reg = <0xa0000000 0xf1d>, 92*7366e193SKrzysztof Kozlowski <0xa0000f20 0xa8>, 93*7366e193SKrzysztof Kozlowski <0xa0001000 0x1000>, 94*7366e193SKrzysztof Kozlowski <0x00080000 0x3000>, 95*7366e193SKrzysztof Kozlowski <0xa0100000 0x1000>, 96*7366e193SKrzysztof Kozlowski <0x00083000 0x1000>; 97*7366e193SKrzysztof Kozlowski reg-names = "dbi", 98*7366e193SKrzysztof Kozlowski "elbi", 99*7366e193SKrzysztof Kozlowski "atu", 100*7366e193SKrzysztof Kozlowski "parf", 101*7366e193SKrzysztof Kozlowski "config", 102*7366e193SKrzysztof Kozlowski "mhi"; 103*7366e193SKrzysztof Kozlowski ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>, 104*7366e193SKrzysztof Kozlowski <0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>; 105*7366e193SKrzysztof Kozlowski 106*7366e193SKrzysztof Kozlowski device_type = "pci"; 107*7366e193SKrzysztof Kozlowski linux,pci-domain = <0>; 108*7366e193SKrzysztof Kozlowski bus-range = <0x00 0xff>; 109*7366e193SKrzysztof Kozlowski num-lanes = <2>; 110*7366e193SKrzysztof Kozlowski #address-cells = <3>; 111*7366e193SKrzysztof Kozlowski #size-cells = <2>; 112*7366e193SKrzysztof Kozlowski 113*7366e193SKrzysztof Kozlowski /* The controller supports Gen3, but the connected PHY is Gen2-capable */ 114*7366e193SKrzysztof Kozlowski max-link-speed = <2>; 115*7366e193SKrzysztof Kozlowski 116*7366e193SKrzysztof Kozlowski clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>, 117*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_M_CLK>, 118*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_S_CLK>, 119*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AHB_CLK>, 120*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AUX_CLK>, 121*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>; 122*7366e193SKrzysztof Kozlowski clock-names = "iface", 123*7366e193SKrzysztof Kozlowski "axi_m", 124*7366e193SKrzysztof Kozlowski "axi_s", 125*7366e193SKrzysztof Kozlowski "ahb", 126*7366e193SKrzysztof Kozlowski "aux", 127*7366e193SKrzysztof Kozlowski "axi_bridge"; 128*7366e193SKrzysztof Kozlowski 129*7366e193SKrzysztof Kozlowski msi-map = <0x0 &v2m0 0x0 0xff8>; 130*7366e193SKrzysztof Kozlowski 131*7366e193SKrzysztof Kozlowski interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>, 132*7366e193SKrzysztof Kozlowski <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>, 133*7366e193SKrzysztof Kozlowski <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 134*7366e193SKrzysztof Kozlowski <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>, 135*7366e193SKrzysztof Kozlowski <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>, 136*7366e193SKrzysztof Kozlowski <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>, 137*7366e193SKrzysztof Kozlowski <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 138*7366e193SKrzysztof Kozlowski <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 139*7366e193SKrzysztof Kozlowski <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 140*7366e193SKrzysztof Kozlowski interrupt-names = "msi0", 141*7366e193SKrzysztof Kozlowski "msi1", 142*7366e193SKrzysztof Kozlowski "msi2", 143*7366e193SKrzysztof Kozlowski "msi3", 144*7366e193SKrzysztof Kozlowski "msi4", 145*7366e193SKrzysztof Kozlowski "msi5", 146*7366e193SKrzysztof Kozlowski "msi6", 147*7366e193SKrzysztof Kozlowski "msi7", 148*7366e193SKrzysztof Kozlowski "global"; 149*7366e193SKrzysztof Kozlowski 150*7366e193SKrzysztof Kozlowski #interrupt-cells = <1>; 151*7366e193SKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 152*7366e193SKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc 0 GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, 153*7366e193SKrzysztof Kozlowski <0 0 0 2 &intc 0 GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, 154*7366e193SKrzysztof Kozlowski <0 0 0 3 &intc 0 GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, 155*7366e193SKrzysztof Kozlowski <0 0 0 4 &intc 0 GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 156*7366e193SKrzysztof Kozlowski 157*7366e193SKrzysztof Kozlowski phys = <&pcie0_phy>; 158*7366e193SKrzysztof Kozlowski phy-names = "pciephy"; 159*7366e193SKrzysztof Kozlowski 160*7366e193SKrzysztof Kozlowski resets = <&gcc GCC_PCIE0_PIPE_ARES>, 161*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_SLEEP_ARES>, 162*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_CORE_STICKY_ARES>, 163*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_MASTER_ARES>, 164*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_SLAVE_ARES>, 165*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AHB_ARES>, 166*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>, 167*7366e193SKrzysztof Kozlowski <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>; 168*7366e193SKrzysztof Kozlowski reset-names = "pipe", 169*7366e193SKrzysztof Kozlowski "sleep", 170*7366e193SKrzysztof Kozlowski "sticky", 171*7366e193SKrzysztof Kozlowski "axi_m", 172*7366e193SKrzysztof Kozlowski "axi_s", 173*7366e193SKrzysztof Kozlowski "ahb", 174*7366e193SKrzysztof Kozlowski "axi_m_sticky", 175*7366e193SKrzysztof Kozlowski "axi_s_sticky"; 176*7366e193SKrzysztof Kozlowski 177*7366e193SKrzysztof Kozlowski perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>; 178*7366e193SKrzysztof Kozlowski wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>; 179*7366e193SKrzysztof Kozlowski 180*7366e193SKrzysztof Kozlowski pcie@0 { 181*7366e193SKrzysztof Kozlowski device_type = "pci"; 182*7366e193SKrzysztof Kozlowski reg = <0x0 0x0 0x0 0x0 0x0>; 183*7366e193SKrzysztof Kozlowski bus-range = <0x01 0xff>; 184*7366e193SKrzysztof Kozlowski 185*7366e193SKrzysztof Kozlowski #address-cells = <3>; 186*7366e193SKrzysztof Kozlowski #size-cells = <2>; 187*7366e193SKrzysztof Kozlowski ranges; 188*7366e193SKrzysztof Kozlowski }; 189*7366e193SKrzysztof Kozlowski }; 190