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