1*c86e1f39SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c86e1f39SKrzysztof Kozlowski%YAML 1.2 3*c86e1f39SKrzysztof Kozlowski--- 4*c86e1f39SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-sdx55.yaml# 5*c86e1f39SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c86e1f39SKrzysztof Kozlowski 7*c86e1f39SKrzysztof Kozlowskititle: Qualcomm SDX55 PCI Express Root Complex 8*c86e1f39SKrzysztof Kozlowski 9*c86e1f39SKrzysztof Kozlowskimaintainers: 10*c86e1f39SKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*c86e1f39SKrzysztof Kozlowski - Manivannan Sadhasivam <mani@kernel.org> 12*c86e1f39SKrzysztof Kozlowski 13*c86e1f39SKrzysztof Kozlowskiproperties: 14*c86e1f39SKrzysztof Kozlowski compatible: 15*c86e1f39SKrzysztof Kozlowski enum: 16*c86e1f39SKrzysztof Kozlowski - qcom,pcie-sdx55 17*c86e1f39SKrzysztof Kozlowski 18*c86e1f39SKrzysztof Kozlowski reg: 19*c86e1f39SKrzysztof Kozlowski minItems: 5 20*c86e1f39SKrzysztof Kozlowski maxItems: 6 21*c86e1f39SKrzysztof Kozlowski 22*c86e1f39SKrzysztof Kozlowski reg-names: 23*c86e1f39SKrzysztof Kozlowski minItems: 5 24*c86e1f39SKrzysztof Kozlowski items: 25*c86e1f39SKrzysztof Kozlowski - const: parf 26*c86e1f39SKrzysztof Kozlowski - const: dbi 27*c86e1f39SKrzysztof Kozlowski - const: elbi 28*c86e1f39SKrzysztof Kozlowski - const: atu 29*c86e1f39SKrzysztof Kozlowski - const: config 30*c86e1f39SKrzysztof Kozlowski - const: mhi 31*c86e1f39SKrzysztof Kozlowski 32*c86e1f39SKrzysztof Kozlowski clocks: 33*c86e1f39SKrzysztof Kozlowski maxItems: 7 34*c86e1f39SKrzysztof Kozlowski 35*c86e1f39SKrzysztof Kozlowski clock-names: 36*c86e1f39SKrzysztof Kozlowski items: 37*c86e1f39SKrzysztof Kozlowski - const: pipe 38*c86e1f39SKrzysztof Kozlowski - const: aux 39*c86e1f39SKrzysztof Kozlowski - const: cfg 40*c86e1f39SKrzysztof Kozlowski - const: bus_master # Master AXI clock 41*c86e1f39SKrzysztof Kozlowski - const: bus_slave # Slave AXI clock 42*c86e1f39SKrzysztof Kozlowski - const: slave_q2a 43*c86e1f39SKrzysztof Kozlowski - const: sleep 44*c86e1f39SKrzysztof Kozlowski 45*c86e1f39SKrzysztof Kozlowski interrupts: 46*c86e1f39SKrzysztof Kozlowski maxItems: 8 47*c86e1f39SKrzysztof Kozlowski 48*c86e1f39SKrzysztof Kozlowski interrupt-names: 49*c86e1f39SKrzysztof Kozlowski items: 50*c86e1f39SKrzysztof Kozlowski - const: msi 51*c86e1f39SKrzysztof Kozlowski - const: msi2 52*c86e1f39SKrzysztof Kozlowski - const: msi3 53*c86e1f39SKrzysztof Kozlowski - const: msi4 54*c86e1f39SKrzysztof Kozlowski - const: msi5 55*c86e1f39SKrzysztof Kozlowski - const: msi6 56*c86e1f39SKrzysztof Kozlowski - const: msi7 57*c86e1f39SKrzysztof Kozlowski - const: msi8 58*c86e1f39SKrzysztof Kozlowski 59*c86e1f39SKrzysztof Kozlowski resets: 60*c86e1f39SKrzysztof Kozlowski maxItems: 1 61*c86e1f39SKrzysztof Kozlowski 62*c86e1f39SKrzysztof Kozlowski reset-names: 63*c86e1f39SKrzysztof Kozlowski items: 64*c86e1f39SKrzysztof Kozlowski - const: pci 65*c86e1f39SKrzysztof Kozlowski 66*c86e1f39SKrzysztof Kozlowskirequired: 67*c86e1f39SKrzysztof Kozlowski - power-domains 68*c86e1f39SKrzysztof Kozlowski - resets 69*c86e1f39SKrzysztof Kozlowski - reset-names 70*c86e1f39SKrzysztof Kozlowski 71*c86e1f39SKrzysztof KozlowskiallOf: 72*c86e1f39SKrzysztof Kozlowski - $ref: qcom,pcie-common.yaml# 73*c86e1f39SKrzysztof Kozlowski 74*c86e1f39SKrzysztof KozlowskiunevaluatedProperties: false 75*c86e1f39SKrzysztof Kozlowski 76*c86e1f39SKrzysztof Kozlowskiexamples: 77*c86e1f39SKrzysztof Kozlowski - | 78*c86e1f39SKrzysztof Kozlowski #include <dt-bindings/clock/qcom,gcc-sdx55.h> 79*c86e1f39SKrzysztof Kozlowski #include <dt-bindings/gpio/gpio.h> 80*c86e1f39SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 81*c86e1f39SKrzysztof Kozlowski 82*c86e1f39SKrzysztof Kozlowski pcie@1c00000 { 83*c86e1f39SKrzysztof Kozlowski compatible = "qcom,pcie-sdx55"; 84*c86e1f39SKrzysztof Kozlowski reg = <0x01c00000 0x3000>, 85*c86e1f39SKrzysztof Kozlowski <0x40000000 0xf1d>, 86*c86e1f39SKrzysztof Kozlowski <0x40000f20 0xc8>, 87*c86e1f39SKrzysztof Kozlowski <0x40001000 0x1000>, 88*c86e1f39SKrzysztof Kozlowski <0x40100000 0x100000>; 89*c86e1f39SKrzysztof Kozlowski reg-names = "parf", 90*c86e1f39SKrzysztof Kozlowski "dbi", 91*c86e1f39SKrzysztof Kozlowski "elbi", 92*c86e1f39SKrzysztof Kozlowski "atu", 93*c86e1f39SKrzysztof Kozlowski "config"; 94*c86e1f39SKrzysztof Kozlowski ranges = <0x01000000 0x0 0x00000000 0x40200000 0x0 0x100000>, 95*c86e1f39SKrzysztof Kozlowski <0x02000000 0x0 0x40300000 0x40300000 0x0 0x3fd00000>; 96*c86e1f39SKrzysztof Kozlowski 97*c86e1f39SKrzysztof Kozlowski device_type = "pci"; 98*c86e1f39SKrzysztof Kozlowski linux,pci-domain = <0>; 99*c86e1f39SKrzysztof Kozlowski bus-range = <0x00 0xff>; 100*c86e1f39SKrzysztof Kozlowski num-lanes = <1>; 101*c86e1f39SKrzysztof Kozlowski 102*c86e1f39SKrzysztof Kozlowski #address-cells = <3>; 103*c86e1f39SKrzysztof Kozlowski #size-cells = <2>; 104*c86e1f39SKrzysztof Kozlowski 105*c86e1f39SKrzysztof Kozlowski interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 106*c86e1f39SKrzysztof Kozlowski <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>, 107*c86e1f39SKrzysztof Kozlowski <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>, 108*c86e1f39SKrzysztof Kozlowski <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>, 109*c86e1f39SKrzysztof Kozlowski <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 110*c86e1f39SKrzysztof Kozlowski <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>, 111*c86e1f39SKrzysztof Kozlowski <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, 112*c86e1f39SKrzysztof Kozlowski <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>; 113*c86e1f39SKrzysztof Kozlowski interrupt-names = "msi", 114*c86e1f39SKrzysztof Kozlowski "msi2", 115*c86e1f39SKrzysztof Kozlowski "msi3", 116*c86e1f39SKrzysztof Kozlowski "msi4", 117*c86e1f39SKrzysztof Kozlowski "msi5", 118*c86e1f39SKrzysztof Kozlowski "msi6", 119*c86e1f39SKrzysztof Kozlowski "msi7", 120*c86e1f39SKrzysztof Kozlowski "msi8"; 121*c86e1f39SKrzysztof Kozlowski #interrupt-cells = <1>; 122*c86e1f39SKrzysztof Kozlowski interrupt-map-mask = <0 0 0 0x7>; 123*c86e1f39SKrzysztof Kozlowski interrupt-map = <0 0 0 1 &intc GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>, /* int_a */ 124*c86e1f39SKrzysztof Kozlowski <0 0 0 2 &intc GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>, /* int_b */ 125*c86e1f39SKrzysztof Kozlowski <0 0 0 3 &intc GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>, /* int_c */ 126*c86e1f39SKrzysztof Kozlowski <0 0 0 4 &intc GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; /* int_d */ 127*c86e1f39SKrzysztof Kozlowski 128*c86e1f39SKrzysztof Kozlowski clocks = <&gcc GCC_PCIE_PIPE_CLK>, 129*c86e1f39SKrzysztof Kozlowski <&gcc GCC_PCIE_AUX_CLK>, 130*c86e1f39SKrzysztof Kozlowski <&gcc GCC_PCIE_CFG_AHB_CLK>, 131*c86e1f39SKrzysztof Kozlowski <&gcc GCC_PCIE_MSTR_AXI_CLK>, 132*c86e1f39SKrzysztof Kozlowski <&gcc GCC_PCIE_SLV_AXI_CLK>, 133*c86e1f39SKrzysztof Kozlowski <&gcc GCC_PCIE_SLV_Q2A_AXI_CLK>, 134*c86e1f39SKrzysztof Kozlowski <&gcc GCC_PCIE_SLEEP_CLK>; 135*c86e1f39SKrzysztof Kozlowski clock-names = "pipe", 136*c86e1f39SKrzysztof Kozlowski "aux", 137*c86e1f39SKrzysztof Kozlowski "cfg", 138*c86e1f39SKrzysztof Kozlowski "bus_master", 139*c86e1f39SKrzysztof Kozlowski "bus_slave", 140*c86e1f39SKrzysztof Kozlowski "slave_q2a", 141*c86e1f39SKrzysztof Kozlowski "sleep"; 142*c86e1f39SKrzysztof Kozlowski 143*c86e1f39SKrzysztof Kozlowski assigned-clocks = <&gcc GCC_PCIE_AUX_CLK>; 144*c86e1f39SKrzysztof Kozlowski assigned-clock-rates = <19200000>; 145*c86e1f39SKrzysztof Kozlowski 146*c86e1f39SKrzysztof Kozlowski iommu-map = <0x0 &apps_smmu 0x0200 0x1>, 147*c86e1f39SKrzysztof Kozlowski <0x100 &apps_smmu 0x0201 0x1>, 148*c86e1f39SKrzysztof Kozlowski <0x200 &apps_smmu 0x0202 0x1>, 149*c86e1f39SKrzysztof Kozlowski <0x300 &apps_smmu 0x0203 0x1>, 150*c86e1f39SKrzysztof Kozlowski <0x400 &apps_smmu 0x0204 0x1>; 151*c86e1f39SKrzysztof Kozlowski 152*c86e1f39SKrzysztof Kozlowski power-domains = <&gcc PCIE_GDSC>; 153*c86e1f39SKrzysztof Kozlowski 154*c86e1f39SKrzysztof Kozlowski phys = <&pcie_phy>; 155*c86e1f39SKrzysztof Kozlowski phy-names = "pciephy"; 156*c86e1f39SKrzysztof Kozlowski 157*c86e1f39SKrzysztof Kozlowski resets = <&gcc GCC_PCIE_BCR>; 158*c86e1f39SKrzysztof Kozlowski reset-names = "pci"; 159*c86e1f39SKrzysztof Kozlowski 160*c86e1f39SKrzysztof Kozlowski perst-gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; 161*c86e1f39SKrzysztof Kozlowski wake-gpios = <&tlmm 53 GPIO_ACTIVE_HIGH>; 162*c86e1f39SKrzysztof Kozlowski 163*c86e1f39SKrzysztof Kozlowski pcie@0 { 164*c86e1f39SKrzysztof Kozlowski device_type = "pci"; 165*c86e1f39SKrzysztof Kozlowski reg = <0x0 0x0 0x0 0x0 0x0>; 166*c86e1f39SKrzysztof Kozlowski bus-range = <0x01 0xff>; 167*c86e1f39SKrzysztof Kozlowski 168*c86e1f39SKrzysztof Kozlowski #address-cells = <3>; 169*c86e1f39SKrzysztof Kozlowski #size-cells = <2>; 170*c86e1f39SKrzysztof Kozlowski ranges; 171*c86e1f39SKrzysztof Kozlowski }; 172*c86e1f39SKrzysztof Kozlowski }; 173