xref: /linux/Documentation/devicetree/bindings/pci/qcom,pcie-sa8255p.yaml (revision 0bd0a41a5120f78685a132834865b0a631b9026a)
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