1*c80dc812SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c80dc812SKrzysztof Kozlowski%YAML 1.2 3*c80dc812SKrzysztof Kozlowski--- 4*c80dc812SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-sdm845.yaml# 5*c80dc812SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c80dc812SKrzysztof Kozlowski 7*c80dc812SKrzysztof Kozlowskititle: Qualcomm SDM845 PCI Express Root Complex 8*c80dc812SKrzysztof Kozlowski 9*c80dc812SKrzysztof Kozlowskimaintainers: 10*c80dc812SKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*c80dc812SKrzysztof Kozlowski - Manivannan Sadhasivam <mani@kernel.org> 12*c80dc812SKrzysztof Kozlowski 13*c80dc812SKrzysztof Kozlowskiproperties: 14*c80dc812SKrzysztof Kozlowski compatible: 15*c80dc812SKrzysztof Kozlowski enum: 16*c80dc812SKrzysztof Kozlowski - qcom,pcie-sdm845 17*c80dc812SKrzysztof Kozlowski 18*c80dc812SKrzysztof Kozlowski reg: 19*c80dc812SKrzysztof Kozlowski minItems: 4 20*c80dc812SKrzysztof Kozlowski maxItems: 5 21*c80dc812SKrzysztof Kozlowski 22*c80dc812SKrzysztof Kozlowski reg-names: 23*c80dc812SKrzysztof Kozlowski minItems: 4 24*c80dc812SKrzysztof Kozlowski items: 25*c80dc812SKrzysztof Kozlowski - const: parf 26*c80dc812SKrzysztof Kozlowski - const: dbi 27*c80dc812SKrzysztof Kozlowski - const: elbi 28*c80dc812SKrzysztof Kozlowski - const: config 29*c80dc812SKrzysztof Kozlowski - const: mhi 30*c80dc812SKrzysztof Kozlowski 31*c80dc812SKrzysztof Kozlowski clocks: 32*c80dc812SKrzysztof Kozlowski minItems: 7 33*c80dc812SKrzysztof Kozlowski maxItems: 8 34*c80dc812SKrzysztof Kozlowski 35*c80dc812SKrzysztof Kozlowski clock-names: 36*c80dc812SKrzysztof Kozlowski minItems: 7 37*c80dc812SKrzysztof Kozlowski items: 38*c80dc812SKrzysztof Kozlowski - const: pipe 39*c80dc812SKrzysztof Kozlowski - const: aux 40*c80dc812SKrzysztof Kozlowski - const: cfg 41*c80dc812SKrzysztof Kozlowski - const: bus_master # Master AXI clock 42*c80dc812SKrzysztof Kozlowski - const: bus_slave # Slave AXI clock 43*c80dc812SKrzysztof Kozlowski - const: slave_q2a 44*c80dc812SKrzysztof Kozlowski - enum: [ ref, tbu ] 45*c80dc812SKrzysztof Kozlowski - const: tbu 46*c80dc812SKrzysztof Kozlowski 47*c80dc812SKrzysztof Kozlowski interrupts: 48*c80dc812SKrzysztof Kozlowski minItems: 8 49*c80dc812SKrzysztof Kozlowski maxItems: 9 50*c80dc812SKrzysztof Kozlowski 51*c80dc812SKrzysztof Kozlowski interrupt-names: 52*c80dc812SKrzysztof Kozlowski minItems: 8 53*c80dc812SKrzysztof Kozlowski items: 54*c80dc812SKrzysztof Kozlowski - const: msi0 55*c80dc812SKrzysztof Kozlowski - const: msi1 56*c80dc812SKrzysztof Kozlowski - const: msi2 57*c80dc812SKrzysztof Kozlowski - const: msi3 58*c80dc812SKrzysztof Kozlowski - const: msi4 59*c80dc812SKrzysztof Kozlowski - const: msi5 60*c80dc812SKrzysztof Kozlowski - const: msi6 61*c80dc812SKrzysztof Kozlowski - const: msi7 62*c80dc812SKrzysztof Kozlowski - const: global 63*c80dc812SKrzysztof Kozlowski 64*c80dc812SKrzysztof Kozlowski resets: 65*c80dc812SKrzysztof Kozlowski maxItems: 1 66*c80dc812SKrzysztof Kozlowski 67*c80dc812SKrzysztof Kozlowski reset-names: 68*c80dc812SKrzysztof Kozlowski items: 69*c80dc812SKrzysztof Kozlowski - const: pci 70*c80dc812SKrzysztof Kozlowski 71*c80dc812SKrzysztof Kozlowskirequired: 72*c80dc812SKrzysztof Kozlowski - power-domains 73*c80dc812SKrzysztof Kozlowski - resets 74*c80dc812SKrzysztof Kozlowski - reset-names 75*c80dc812SKrzysztof Kozlowski 76*c80dc812SKrzysztof KozlowskiallOf: 77*c80dc812SKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 78*c80dc812SKrzysztof Kozlowski 79*c80dc812SKrzysztof KozlowskiunevaluatedProperties: false 80*c80dc812SKrzysztof Kozlowski 81*c80dc812SKrzysztof Kozlowskiexamples: 82*c80dc812SKrzysztof Kozlowski - | 83*c80dc812SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sdm845.h> 84*c80dc812SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 85*c80dc812SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 86*c80dc812SKrzysztof Kozlowski 87*c80dc812SKrzysztof Kozlowski soc { 88*c80dc812SKrzysztof Kozlowski #address-cells = <2>; 89*c80dc812SKrzysztof Kozlowski #size-cells = <2>; 90*c80dc812SKrzysztof Kozlowski 91*c80dc812SKrzysztof Kozlowski pcie@1c00000 { 92*c80dc812SKrzysztof Kozlowski compatible = "qcom,pcie-sdm845"; 93*c80dc812SKrzysztof Kozlowski reg = <0x0 0x01c00000 0x0 0x2000>, 94*c80dc812SKrzysztof Kozlowski <0x0 0x60000000 0x0 0xf1d>, 95*c80dc812SKrzysztof Kozlowski <0x0 0x60000f20 0x0 0xa8>, 96*c80dc812SKrzysztof Kozlowski <0x0 0x60100000 0x0 0x100000>, 97*c80dc812SKrzysztof Kozlowski <0x0 0x01c07000 0x0 0x1000>; 98*c80dc812SKrzysztof Kozlowski reg-names = "parf", "dbi", "elbi", "config", "mhi"; 99*c80dc812SKrzysztof Kozlowski ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>, 100*c80dc812SKrzysztof Kozlowski <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0xd00000>; 101*c80dc812SKrzysztof Kozlowski 102*c80dc812SKrzysztof Kozlowski device_type = "pci"; 103*c80dc812SKrzysztof Kozlowski linux,pci-domain = <0>; 104*c80dc812SKrzysztof Kozlowski bus-range = <0x00 0xff>; 105*c80dc812SKrzysztof Kozlowski num-lanes = <1>; 106*c80dc812SKrzysztof Kozlowski 107*c80dc812SKrzysztof Kozlowski #address-cells = <3>; 108*c80dc812SKrzysztof Kozlowski #size-cells = <2>; 109*c80dc812SKrzysztof Kozlowski 110*c80dc812SKrzysztof Kozlowski clocks = <&gcc GCC_PCIE_0_PIPE_CLK>, 111*c80dc812SKrzysztof Kozlowski <&gcc GCC_PCIE_0_AUX_CLK>, 112*c80dc812SKrzysztof Kozlowski <&gcc GCC_PCIE_0_CFG_AHB_CLK>, 113*c80dc812SKrzysztof Kozlowski <&gcc GCC_PCIE_0_MSTR_AXI_CLK>, 114*c80dc812SKrzysztof Kozlowski <&gcc GCC_PCIE_0_SLV_AXI_CLK>, 115*c80dc812SKrzysztof Kozlowski <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>, 116*c80dc812SKrzysztof Kozlowski <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>; 117*c80dc812SKrzysztof Kozlowski clock-names = "pipe", 118*c80dc812SKrzysztof Kozlowski "aux", 119*c80dc812SKrzysztof Kozlowski "cfg", 120*c80dc812SKrzysztof Kozlowski "bus_master", 121*c80dc812SKrzysztof Kozlowski "bus_slave", 122*c80dc812SKrzysztof Kozlowski "slave_q2a", 123*c80dc812SKrzysztof Kozlowski "tbu"; 124*c80dc812SKrzysztof Kozlowski 125*c80dc812SKrzysztof Kozlowski interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, 126*c80dc812SKrzysztof Kozlowski <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, 127*c80dc812SKrzysztof Kozlowski <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, 128*c80dc812SKrzysztof Kozlowski <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>, 129*c80dc812SKrzysztof Kozlowski <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 130*c80dc812SKrzysztof Kozlowski <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 131*c80dc812SKrzysztof Kozlowski <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>, 132*c80dc812SKrzysztof Kozlowski <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 133*c80dc812SKrzysztof Kozlowski <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; 134*c80dc812SKrzysztof Kozlowski interrupt-names = "msi0", 135*c80dc812SKrzysztof Kozlowski "msi1", 136*c80dc812SKrzysztof Kozlowski "msi2", 137*c80dc812SKrzysztof Kozlowski "msi3", 138*c80dc812SKrzysztof Kozlowski "msi4", 139*c80dc812SKrzysztof Kozlowski "msi5", 140*c80dc812SKrzysztof Kozlowski "msi6", 141*c80dc812SKrzysztof Kozlowski "msi7", 142*c80dc812SKrzysztof Kozlowski "global"; 143*c80dc812SKrzysztof Kozlowski #interrupt-cells = <1>; 144*c80dc812SKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 145*c80dc812SKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 146*c80dc812SKrzysztof Kozlowski <0 0 0 2 &intc 0 0 GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 147*c80dc812SKrzysztof Kozlowski <0 0 0 3 &intc 0 0 GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 148*c80dc812SKrzysztof Kozlowski <0 0 0 4 &intc 0 0 GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 149*c80dc812SKrzysztof Kozlowski 150*c80dc812SKrzysztof Kozlowski iommu-map = <0x0 &apps_smmu 0x1c10 0x1>, 151*c80dc812SKrzysztof Kozlowski <0x100 &apps_smmu 0x1c11 0x1>, 152*c80dc812SKrzysztof Kozlowski <0x200 &apps_smmu 0x1c12 0x1>, 153*c80dc812SKrzysztof Kozlowski <0x300 &apps_smmu 0x1c13 0x1>, 154*c80dc812SKrzysztof Kozlowski <0x400 &apps_smmu 0x1c14 0x1>, 155*c80dc812SKrzysztof Kozlowski <0x500 &apps_smmu 0x1c15 0x1>, 156*c80dc812SKrzysztof Kozlowski <0x600 &apps_smmu 0x1c16 0x1>, 157*c80dc812SKrzysztof Kozlowski <0x700 &apps_smmu 0x1c17 0x1>, 158*c80dc812SKrzysztof Kozlowski <0x800 &apps_smmu 0x1c18 0x1>, 159*c80dc812SKrzysztof Kozlowski <0x900 &apps_smmu 0x1c19 0x1>, 160*c80dc812SKrzysztof Kozlowski <0xa00 &apps_smmu 0x1c1a 0x1>, 161*c80dc812SKrzysztof Kozlowski <0xb00 &apps_smmu 0x1c1b 0x1>, 162*c80dc812SKrzysztof Kozlowski <0xc00 &apps_smmu 0x1c1c 0x1>, 163*c80dc812SKrzysztof Kozlowski <0xd00 &apps_smmu 0x1c1d 0x1>, 164*c80dc812SKrzysztof Kozlowski <0xe00 &apps_smmu 0x1c1e 0x1>, 165*c80dc812SKrzysztof Kozlowski <0xf00 &apps_smmu 0x1c1f 0x1>; 166*c80dc812SKrzysztof Kozlowski 167*c80dc812SKrzysztof Kozlowski power-domains = <&gcc PCIE_0_GDSC>; 168*c80dc812SKrzysztof Kozlowski 169*c80dc812SKrzysztof Kozlowski phys = <&pcie0_phy>; 170*c80dc812SKrzysztof Kozlowski phy-names = "pciephy"; 171*c80dc812SKrzysztof Kozlowski 172*c80dc812SKrzysztof Kozlowski resets = <&gcc GCC_PCIE_0_BCR>; 173*c80dc812SKrzysztof Kozlowski reset-names = "pci"; 174*c80dc812SKrzysztof Kozlowski 175*c80dc812SKrzysztof Kozlowski perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; 176*c80dc812SKrzysztof Kozlowski wake-gpios = <&tlmm 134 GPIO_ACTIVE_HIGH>; 177*c80dc812SKrzysztof Kozlowski 178*c80dc812SKrzysztof Kozlowski vddpe-3v3-supply = <&pcie0_3p3v_dual>; 179*c80dc812SKrzysztof Kozlowski 180*c80dc812SKrzysztof Kozlowski pcie@0 { 181*c80dc812SKrzysztof Kozlowski device_type = "pci"; 182*c80dc812SKrzysztof Kozlowski reg = <0x0 0x0 0x0 0x0 0x0>; 183*c80dc812SKrzysztof Kozlowski bus-range = <0x01 0xff>; 184*c80dc812SKrzysztof Kozlowski 185*c80dc812SKrzysztof Kozlowski #address-cells = <3>; 186*c80dc812SKrzysztof Kozlowski #size-cells = <2>; 187*c80dc812SKrzysztof Kozlowski ranges; 188*c80dc812SKrzysztof Kozlowski }; 189*c80dc812SKrzysztof Kozlowski }; 190*c80dc812SKrzysztof Kozlowski }; 191