1*d7c7c051SMayank Rana# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*d7c7c051SMayank Rana%YAML 1.2 3*d7c7c051SMayank Rana--- 4*d7c7c051SMayank Rana$id: http://devicetree.org/schemas/pci/qcom,pcie-sa8255p.yaml# 5*d7c7c051SMayank Rana$schema: http://devicetree.org/meta-schemas/core.yaml# 6*d7c7c051SMayank Rana 7*d7c7c051SMayank Ranatitle: Qualcomm SA8255p based firmware managed and ECAM compliant PCIe Root Complex 8*d7c7c051SMayank Rana 9*d7c7c051SMayank Ranamaintainers: 10*d7c7c051SMayank Rana - Bjorn Andersson <andersson@kernel.org> 11*d7c7c051SMayank Rana - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 12*d7c7c051SMayank Rana 13*d7c7c051SMayank Ranadescription: 14*d7c7c051SMayank Rana Qualcomm SA8255p SoC PCIe root complex controller is based on the Synopsys 15*d7c7c051SMayank Rana DesignWare PCIe IP which is managed by firmware, and configured in ECAM mode. 16*d7c7c051SMayank Rana 17*d7c7c051SMayank Ranaproperties: 18*d7c7c051SMayank Rana compatible: 19*d7c7c051SMayank Rana const: qcom,pcie-sa8255p 20*d7c7c051SMayank Rana 21*d7c7c051SMayank Rana reg: 22*d7c7c051SMayank Rana description: 23*d7c7c051SMayank Rana The base address and size of the ECAM area for accessing PCI 24*d7c7c051SMayank Rana Configuration Space, as accessed from the parent bus. The base 25*d7c7c051SMayank Rana address corresponds to the first bus in the "bus-range" property. If 26*d7c7c051SMayank Rana no "bus-range" is specified, this will be bus 0 (the default). 27*d7c7c051SMayank Rana maxItems: 1 28*d7c7c051SMayank Rana 29*d7c7c051SMayank Rana ranges: 30*d7c7c051SMayank Rana description: 31*d7c7c051SMayank Rana As described in IEEE Std 1275-1994, but must provide at least a 32*d7c7c051SMayank Rana definition of non-prefetchable memory. One or both of prefetchable Memory 33*d7c7c051SMayank Rana may also be provided. 34*d7c7c051SMayank Rana minItems: 1 35*d7c7c051SMayank Rana maxItems: 2 36*d7c7c051SMayank Rana 37*d7c7c051SMayank Rana interrupts: 38*d7c7c051SMayank Rana minItems: 8 39*d7c7c051SMayank Rana maxItems: 8 40*d7c7c051SMayank Rana 41*d7c7c051SMayank Rana interrupt-names: 42*d7c7c051SMayank Rana items: 43*d7c7c051SMayank Rana - const: msi0 44*d7c7c051SMayank Rana - const: msi1 45*d7c7c051SMayank Rana - const: msi2 46*d7c7c051SMayank Rana - const: msi3 47*d7c7c051SMayank Rana - const: msi4 48*d7c7c051SMayank Rana - const: msi5 49*d7c7c051SMayank Rana - const: msi6 50*d7c7c051SMayank Rana - const: msi7 51*d7c7c051SMayank Rana 52*d7c7c051SMayank Rana power-domains: 53*d7c7c051SMayank Rana maxItems: 1 54*d7c7c051SMayank Rana 55*d7c7c051SMayank Rana dma-coherent: true 56*d7c7c051SMayank Rana iommu-map: true 57*d7c7c051SMayank Rana 58*d7c7c051SMayank Ranarequired: 59*d7c7c051SMayank Rana - compatible 60*d7c7c051SMayank Rana - reg 61*d7c7c051SMayank Rana - ranges 62*d7c7c051SMayank Rana - power-domains 63*d7c7c051SMayank Rana - interrupts 64*d7c7c051SMayank Rana - interrupt-names 65*d7c7c051SMayank Rana 66*d7c7c051SMayank RanaallOf: 67*d7c7c051SMayank Rana - $ref: /schemas/pci/pci-host-bridge.yaml# 68*d7c7c051SMayank Rana 69*d7c7c051SMayank RanaunevaluatedProperties: false 70*d7c7c051SMayank Rana 71*d7c7c051SMayank Ranaexamples: 72*d7c7c051SMayank Rana - | 73*d7c7c051SMayank Rana #include <dt-bindings/interrupt-controller/arm-gic.h> 74*d7c7c051SMayank Rana 75*d7c7c051SMayank Rana soc { 76*d7c7c051SMayank Rana #address-cells = <2>; 77*d7c7c051SMayank Rana #size-cells = <2>; 78*d7c7c051SMayank Rana 79*d7c7c051SMayank Rana pci@1c00000 { 80*d7c7c051SMayank Rana compatible = "qcom,pcie-sa8255p"; 81*d7c7c051SMayank Rana reg = <0x4 0x00000000 0 0x10000000>; 82*d7c7c051SMayank Rana device_type = "pci"; 83*d7c7c051SMayank Rana #address-cells = <3>; 84*d7c7c051SMayank Rana #size-cells = <2>; 85*d7c7c051SMayank Rana ranges = <0x02000000 0x0 0x40100000 0x0 0x40100000 0x0 0x1ff00000>, 86*d7c7c051SMayank Rana <0x43000000 0x4 0x10100000 0x4 0x10100000 0x0 0x40000000>; 87*d7c7c051SMayank Rana bus-range = <0x00 0xff>; 88*d7c7c051SMayank Rana dma-coherent; 89*d7c7c051SMayank Rana linux,pci-domain = <0>; 90*d7c7c051SMayank Rana power-domains = <&scmi5_pd 0>; 91*d7c7c051SMayank Rana iommu-map = <0x0 &pcie_smmu 0x0000 0x1>, 92*d7c7c051SMayank Rana <0x100 &pcie_smmu 0x0001 0x1>; 93*d7c7c051SMayank Rana interrupt-parent = <&intc>; 94*d7c7c051SMayank Rana interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>, 95*d7c7c051SMayank Rana <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>, 96*d7c7c051SMayank Rana <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>, 97*d7c7c051SMayank Rana <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>, 98*d7c7c051SMayank Rana <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>, 99*d7c7c051SMayank Rana <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>, 100*d7c7c051SMayank Rana <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, 101*d7c7c051SMayank Rana <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; 102*d7c7c051SMayank Rana interrupt-names = "msi0", "msi1", "msi2", "msi3", 103*d7c7c051SMayank Rana "msi4", "msi5", "msi6", "msi7"; 104*d7c7c051SMayank Rana 105*d7c7c051SMayank Rana #interrupt-cells = <1>; 106*d7c7c051SMayank Rana interrupt-map-mask = <0 0 0 0x7>; 107*d7c7c051SMayank Rana interrupt-map = <0 0 0 1 &intc GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>, 108*d7c7c051SMayank Rana <0 0 0 2 &intc GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, 109*d7c7c051SMayank Rana <0 0 0 3 &intc GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, 110*d7c7c051SMayank Rana <0 0 0 4 &intc GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 111*d7c7c051SMayank Rana 112*d7c7c051SMayank Rana pcie@0 { 113*d7c7c051SMayank Rana device_type = "pci"; 114*d7c7c051SMayank Rana reg = <0x0 0x0 0x0 0x0 0x0>; 115*d7c7c051SMayank Rana bus-range = <0x01 0xff>; 116*d7c7c051SMayank Rana 117*d7c7c051SMayank Rana #address-cells = <3>; 118*d7c7c051SMayank Rana #size-cells = <2>; 119*d7c7c051SMayank Rana ranges; 120*d7c7c051SMayank Rana }; 121*d7c7c051SMayank Rana }; 122*d7c7c051SMayank Rana }; 123