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