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