1*5e8bf1c1SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*5e8bf1c1SKrzysztof Kozlowski%YAML 1.2 3*5e8bf1c1SKrzysztof Kozlowski--- 4*5e8bf1c1SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq9574.yaml# 5*5e8bf1c1SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*5e8bf1c1SKrzysztof Kozlowski 7*5e8bf1c1SKrzysztof Kozlowskititle: Qualcomm IPQ9574 PCI Express Root Complex 8*5e8bf1c1SKrzysztof Kozlowski 9*5e8bf1c1SKrzysztof Kozlowskimaintainers: 10*5e8bf1c1SKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*5e8bf1c1SKrzysztof Kozlowski - Manivannan Sadhasivam <mani@kernel.org> 12*5e8bf1c1SKrzysztof Kozlowski 13*5e8bf1c1SKrzysztof Kozlowskiproperties: 14*5e8bf1c1SKrzysztof Kozlowski compatible: 15*5e8bf1c1SKrzysztof Kozlowski oneOf: 16*5e8bf1c1SKrzysztof Kozlowski - enum: 17*5e8bf1c1SKrzysztof Kozlowski - qcom,pcie-ipq9574 18*5e8bf1c1SKrzysztof Kozlowski - items: 19*5e8bf1c1SKrzysztof Kozlowski - enum: 20*5e8bf1c1SKrzysztof Kozlowski - qcom,pcie-ipq5332 21*5e8bf1c1SKrzysztof Kozlowski - qcom,pcie-ipq5424 22*5e8bf1c1SKrzysztof Kozlowski - const: qcom,pcie-ipq9574 23*5e8bf1c1SKrzysztof Kozlowski 24*5e8bf1c1SKrzysztof Kozlowski reg: 25*5e8bf1c1SKrzysztof Kozlowski maxItems: 6 26*5e8bf1c1SKrzysztof Kozlowski 27*5e8bf1c1SKrzysztof Kozlowski reg-names: 28*5e8bf1c1SKrzysztof Kozlowski items: 29*5e8bf1c1SKrzysztof Kozlowski - const: dbi 30*5e8bf1c1SKrzysztof Kozlowski - const: elbi 31*5e8bf1c1SKrzysztof Kozlowski - const: atu 32*5e8bf1c1SKrzysztof Kozlowski - const: parf 33*5e8bf1c1SKrzysztof Kozlowski - const: config 34*5e8bf1c1SKrzysztof Kozlowski - const: mhi 35*5e8bf1c1SKrzysztof Kozlowski 36*5e8bf1c1SKrzysztof Kozlowski clocks: 37*5e8bf1c1SKrzysztof Kozlowski maxItems: 6 38*5e8bf1c1SKrzysztof Kozlowski 39*5e8bf1c1SKrzysztof Kozlowski clock-names: 40*5e8bf1c1SKrzysztof Kozlowski items: 41*5e8bf1c1SKrzysztof Kozlowski - const: axi_m # AXI Master clock 42*5e8bf1c1SKrzysztof Kozlowski - const: axi_s # AXI Slave clock 43*5e8bf1c1SKrzysztof Kozlowski - const: axi_bridge 44*5e8bf1c1SKrzysztof Kozlowski - const: rchng 45*5e8bf1c1SKrzysztof Kozlowski - const: ahb 46*5e8bf1c1SKrzysztof Kozlowski - const: aux 47*5e8bf1c1SKrzysztof Kozlowski 48*5e8bf1c1SKrzysztof Kozlowski interrupts: 49*5e8bf1c1SKrzysztof Kozlowski minItems: 8 50*5e8bf1c1SKrzysztof Kozlowski maxItems: 9 51*5e8bf1c1SKrzysztof Kozlowski 52*5e8bf1c1SKrzysztof Kozlowski interrupt-names: 53*5e8bf1c1SKrzysztof Kozlowski minItems: 8 54*5e8bf1c1SKrzysztof Kozlowski items: 55*5e8bf1c1SKrzysztof Kozlowski - const: msi0 56*5e8bf1c1SKrzysztof Kozlowski - const: msi1 57*5e8bf1c1SKrzysztof Kozlowski - const: msi2 58*5e8bf1c1SKrzysztof Kozlowski - const: msi3 59*5e8bf1c1SKrzysztof Kozlowski - const: msi4 60*5e8bf1c1SKrzysztof Kozlowski - const: msi5 61*5e8bf1c1SKrzysztof Kozlowski - const: msi6 62*5e8bf1c1SKrzysztof Kozlowski - const: msi7 63*5e8bf1c1SKrzysztof Kozlowski - const: global 64*5e8bf1c1SKrzysztof Kozlowski 65*5e8bf1c1SKrzysztof Kozlowski resets: 66*5e8bf1c1SKrzysztof Kozlowski maxItems: 8 67*5e8bf1c1SKrzysztof Kozlowski 68*5e8bf1c1SKrzysztof Kozlowski reset-names: 69*5e8bf1c1SKrzysztof Kozlowski items: 70*5e8bf1c1SKrzysztof Kozlowski - const: pipe 71*5e8bf1c1SKrzysztof Kozlowski - const: sticky # Core sticky reset 72*5e8bf1c1SKrzysztof Kozlowski - const: axi_s_sticky # AXI Slave Sticky reset 73*5e8bf1c1SKrzysztof Kozlowski - const: axi_s # AXI slave reset 74*5e8bf1c1SKrzysztof Kozlowski - const: axi_m_sticky # AXI Master Sticky reset 75*5e8bf1c1SKrzysztof Kozlowski - const: axi_m # AXI master reset 76*5e8bf1c1SKrzysztof Kozlowski - const: aux 77*5e8bf1c1SKrzysztof Kozlowski - const: ahb 78*5e8bf1c1SKrzysztof Kozlowski 79*5e8bf1c1SKrzysztof Kozlowskirequired: 80*5e8bf1c1SKrzysztof Kozlowski - resets 81*5e8bf1c1SKrzysztof Kozlowski - reset-names 82*5e8bf1c1SKrzysztof Kozlowski 83*5e8bf1c1SKrzysztof KozlowskiallOf: 84*5e8bf1c1SKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 85*5e8bf1c1SKrzysztof Kozlowski 86*5e8bf1c1SKrzysztof KozlowskiunevaluatedProperties: false 87*5e8bf1c1SKrzysztof Kozlowski 88*5e8bf1c1SKrzysztof Kozlowskiexamples: 89*5e8bf1c1SKrzysztof Kozlowski - | 90*5e8bf1c1SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,ipq9574-gcc.h> 91*5e8bf1c1SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 92*5e8bf1c1SKrzysztof Kozlowski #include <dt-bindings/interconnect/qcom,ipq9574.h> 93*5e8bf1c1SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 94*5e8bf1c1SKrzysztof Kozlowski #include <dt-bindings/reset/qcom,ipq9574-gcc.h> 95*5e8bf1c1SKrzysztof Kozlowski 96*5e8bf1c1SKrzysztof Kozlowski pcie@10000000 { 97*5e8bf1c1SKrzysztof Kozlowski compatible = "qcom,pcie-ipq9574"; 98*5e8bf1c1SKrzysztof Kozlowski reg = <0x10000000 0xf1d>, 99*5e8bf1c1SKrzysztof Kozlowski <0x10000f20 0xa8>, 100*5e8bf1c1SKrzysztof Kozlowski <0x10001000 0x1000>, 101*5e8bf1c1SKrzysztof Kozlowski <0x000f8000 0x4000>, 102*5e8bf1c1SKrzysztof Kozlowski <0x10100000 0x1000>, 103*5e8bf1c1SKrzysztof Kozlowski <0x000fe000 0x1000>; 104*5e8bf1c1SKrzysztof Kozlowski reg-names = "dbi", 105*5e8bf1c1SKrzysztof Kozlowski "elbi", 106*5e8bf1c1SKrzysztof Kozlowski "atu", 107*5e8bf1c1SKrzysztof Kozlowski "parf", 108*5e8bf1c1SKrzysztof Kozlowski "config", 109*5e8bf1c1SKrzysztof Kozlowski "mhi"; 110*5e8bf1c1SKrzysztof Kozlowski ranges = <0x01000000 0x0 0x00000000 0x10200000 0x0 0x100000>, 111*5e8bf1c1SKrzysztof Kozlowski <0x02000000 0x0 0x10300000 0x10300000 0x0 0x7d00000>; 112*5e8bf1c1SKrzysztof Kozlowski 113*5e8bf1c1SKrzysztof Kozlowski device_type = "pci"; 114*5e8bf1c1SKrzysztof Kozlowski linux,pci-domain = <1>; 115*5e8bf1c1SKrzysztof Kozlowski bus-range = <0x00 0xff>; 116*5e8bf1c1SKrzysztof Kozlowski num-lanes = <1>; 117*5e8bf1c1SKrzysztof Kozlowski #address-cells = <3>; 118*5e8bf1c1SKrzysztof Kozlowski #size-cells = <2>; 119*5e8bf1c1SKrzysztof Kozlowski 120*5e8bf1c1SKrzysztof Kozlowski clocks = <&gcc GCC_PCIE1_AXI_M_CLK>, 121*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AXI_S_CLK>, 122*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>, 123*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_RCHNG_CLK>, 124*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AHB_CLK>, 125*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AUX_CLK>; 126*5e8bf1c1SKrzysztof Kozlowski clock-names = "axi_m", 127*5e8bf1c1SKrzysztof Kozlowski "axi_s", 128*5e8bf1c1SKrzysztof Kozlowski "axi_bridge", 129*5e8bf1c1SKrzysztof Kozlowski "rchng", 130*5e8bf1c1SKrzysztof Kozlowski "ahb", 131*5e8bf1c1SKrzysztof Kozlowski "aux"; 132*5e8bf1c1SKrzysztof Kozlowski 133*5e8bf1c1SKrzysztof Kozlowski interconnects = <&gcc MASTER_ANOC_PCIE1 &gcc SLAVE_ANOC_PCIE1>, 134*5e8bf1c1SKrzysztof Kozlowski <&gcc MASTER_SNOC_PCIE1 &gcc SLAVE_SNOC_PCIE1>; 135*5e8bf1c1SKrzysztof Kozlowski interconnect-names = "pcie-mem", "cpu-pcie"; 136*5e8bf1c1SKrzysztof Kozlowski 137*5e8bf1c1SKrzysztof Kozlowski interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, 138*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, 139*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, 140*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, 141*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, 142*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>, 143*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 144*5e8bf1c1SKrzysztof Kozlowski <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 145*5e8bf1c1SKrzysztof Kozlowski interrupt-names = "msi0", 146*5e8bf1c1SKrzysztof Kozlowski "msi1", 147*5e8bf1c1SKrzysztof Kozlowski "msi2", 148*5e8bf1c1SKrzysztof Kozlowski "msi3", 149*5e8bf1c1SKrzysztof Kozlowski "msi4", 150*5e8bf1c1SKrzysztof Kozlowski "msi5", 151*5e8bf1c1SKrzysztof Kozlowski "msi6", 152*5e8bf1c1SKrzysztof Kozlowski "msi7"; 153*5e8bf1c1SKrzysztof Kozlowski 154*5e8bf1c1SKrzysztof Kozlowski #interrupt-cells = <1>; 155*5e8bf1c1SKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 156*5e8bf1c1SKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc 0 GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>, 157*5e8bf1c1SKrzysztof Kozlowski <0 0 0 2 &intc 0 GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, 158*5e8bf1c1SKrzysztof Kozlowski <0 0 0 3 &intc 0 GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>, 159*5e8bf1c1SKrzysztof Kozlowski <0 0 0 4 &intc 0 GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>; 160*5e8bf1c1SKrzysztof Kozlowski 161*5e8bf1c1SKrzysztof Kozlowski resets = <&gcc GCC_PCIE1_PIPE_ARES>, 162*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_CORE_STICKY_ARES>, 163*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AXI_S_STICKY_ARES>, 164*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AXI_S_ARES>, 165*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AXI_M_STICKY_ARES>, 166*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AXI_M_ARES>, 167*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AUX_ARES>, 168*5e8bf1c1SKrzysztof Kozlowski <&gcc GCC_PCIE1_AHB_ARES>; 169*5e8bf1c1SKrzysztof Kozlowski reset-names = "pipe", 170*5e8bf1c1SKrzysztof Kozlowski "sticky", 171*5e8bf1c1SKrzysztof Kozlowski "axi_s_sticky", 172*5e8bf1c1SKrzysztof Kozlowski "axi_s", 173*5e8bf1c1SKrzysztof Kozlowski "axi_m_sticky", 174*5e8bf1c1SKrzysztof Kozlowski "axi_m", 175*5e8bf1c1SKrzysztof Kozlowski "aux", 176*5e8bf1c1SKrzysztof Kozlowski "ahb"; 177*5e8bf1c1SKrzysztof Kozlowski 178*5e8bf1c1SKrzysztof Kozlowski phys = <&pcie1_phy>; 179*5e8bf1c1SKrzysztof Kozlowski phy-names = "pciephy"; 180*5e8bf1c1SKrzysztof Kozlowski 181*5e8bf1c1SKrzysztof Kozlowski perst-gpios = <&tlmm 26 GPIO_ACTIVE_LOW>; 182*5e8bf1c1SKrzysztof Kozlowski wake-gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; 183*5e8bf1c1SKrzysztof Kozlowski }; 184