xref: /linux/Documentation/devicetree/bindings/pci/qcom,pcie-sdm845.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*c80dc812SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c80dc812SKrzysztof Kozlowski%YAML 1.2
3*c80dc812SKrzysztof Kozlowski---
4*c80dc812SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-sdm845.yaml#
5*c80dc812SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c80dc812SKrzysztof Kozlowski
7*c80dc812SKrzysztof Kozlowskititle: Qualcomm SDM845 PCI Express Root Complex
8*c80dc812SKrzysztof Kozlowski
9*c80dc812SKrzysztof Kozlowskimaintainers:
10*c80dc812SKrzysztof Kozlowski  - Bjorn Andersson <andersson@kernel.org>
11*c80dc812SKrzysztof Kozlowski  - Manivannan Sadhasivam <mani@kernel.org>
12*c80dc812SKrzysztof Kozlowski
13*c80dc812SKrzysztof Kozlowskiproperties:
14*c80dc812SKrzysztof Kozlowski  compatible:
15*c80dc812SKrzysztof Kozlowski    enum:
16*c80dc812SKrzysztof Kozlowski      - qcom,pcie-sdm845
17*c80dc812SKrzysztof Kozlowski
18*c80dc812SKrzysztof Kozlowski  reg:
19*c80dc812SKrzysztof Kozlowski    minItems: 4
20*c80dc812SKrzysztof Kozlowski    maxItems: 5
21*c80dc812SKrzysztof Kozlowski
22*c80dc812SKrzysztof Kozlowski  reg-names:
23*c80dc812SKrzysztof Kozlowski    minItems: 4
24*c80dc812SKrzysztof Kozlowski    items:
25*c80dc812SKrzysztof Kozlowski      - const: parf
26*c80dc812SKrzysztof Kozlowski      - const: dbi
27*c80dc812SKrzysztof Kozlowski      - const: elbi
28*c80dc812SKrzysztof Kozlowski      - const: config
29*c80dc812SKrzysztof Kozlowski      - const: mhi
30*c80dc812SKrzysztof Kozlowski
31*c80dc812SKrzysztof Kozlowski  clocks:
32*c80dc812SKrzysztof Kozlowski    minItems: 7
33*c80dc812SKrzysztof Kozlowski    maxItems: 8
34*c80dc812SKrzysztof Kozlowski
35*c80dc812SKrzysztof Kozlowski  clock-names:
36*c80dc812SKrzysztof Kozlowski    minItems: 7
37*c80dc812SKrzysztof Kozlowski    items:
38*c80dc812SKrzysztof Kozlowski      - const: pipe
39*c80dc812SKrzysztof Kozlowski      - const: aux
40*c80dc812SKrzysztof Kozlowski      - const: cfg
41*c80dc812SKrzysztof Kozlowski      - const: bus_master # Master AXI clock
42*c80dc812SKrzysztof Kozlowski      - const: bus_slave # Slave AXI clock
43*c80dc812SKrzysztof Kozlowski      - const: slave_q2a
44*c80dc812SKrzysztof Kozlowski      - enum: [ ref, tbu ]
45*c80dc812SKrzysztof Kozlowski      - const: tbu
46*c80dc812SKrzysztof Kozlowski
47*c80dc812SKrzysztof Kozlowski  interrupts:
48*c80dc812SKrzysztof Kozlowski    minItems: 8
49*c80dc812SKrzysztof Kozlowski    maxItems: 9
50*c80dc812SKrzysztof Kozlowski
51*c80dc812SKrzysztof Kozlowski  interrupt-names:
52*c80dc812SKrzysztof Kozlowski    minItems: 8
53*c80dc812SKrzysztof Kozlowski    items:
54*c80dc812SKrzysztof Kozlowski      - const: msi0
55*c80dc812SKrzysztof Kozlowski      - const: msi1
56*c80dc812SKrzysztof Kozlowski      - const: msi2
57*c80dc812SKrzysztof Kozlowski      - const: msi3
58*c80dc812SKrzysztof Kozlowski      - const: msi4
59*c80dc812SKrzysztof Kozlowski      - const: msi5
60*c80dc812SKrzysztof Kozlowski      - const: msi6
61*c80dc812SKrzysztof Kozlowski      - const: msi7
62*c80dc812SKrzysztof Kozlowski      - const: global
63*c80dc812SKrzysztof Kozlowski
64*c80dc812SKrzysztof Kozlowski  resets:
65*c80dc812SKrzysztof Kozlowski    maxItems: 1
66*c80dc812SKrzysztof Kozlowski
67*c80dc812SKrzysztof Kozlowski  reset-names:
68*c80dc812SKrzysztof Kozlowski    items:
69*c80dc812SKrzysztof Kozlowski      - const: pci
70*c80dc812SKrzysztof Kozlowski
71*c80dc812SKrzysztof Kozlowskirequired:
72*c80dc812SKrzysztof Kozlowski  - power-domains
73*c80dc812SKrzysztof Kozlowski  - resets
74*c80dc812SKrzysztof Kozlowski  - reset-names
75*c80dc812SKrzysztof Kozlowski
76*c80dc812SKrzysztof KozlowskiallOf:
77*c80dc812SKrzysztof Kozlowski  - $ref: qcom,pcie-common.yaml#
78*c80dc812SKrzysztof Kozlowski
79*c80dc812SKrzysztof KozlowskiunevaluatedProperties: false
80*c80dc812SKrzysztof Kozlowski
81*c80dc812SKrzysztof Kozlowskiexamples:
82*c80dc812SKrzysztof Kozlowski  - |
83*c80dc812SKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,gcc-sdm845.h>
84*c80dc812SKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
85*c80dc812SKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
86*c80dc812SKrzysztof Kozlowski
87*c80dc812SKrzysztof Kozlowski    soc {
88*c80dc812SKrzysztof Kozlowski        #address-cells = <2>;
89*c80dc812SKrzysztof Kozlowski        #size-cells = <2>;
90*c80dc812SKrzysztof Kozlowski
91*c80dc812SKrzysztof Kozlowski        pcie@1c00000 {
92*c80dc812SKrzysztof Kozlowski            compatible = "qcom,pcie-sdm845";
93*c80dc812SKrzysztof Kozlowski            reg = <0x0 0x01c00000 0x0 0x2000>,
94*c80dc812SKrzysztof Kozlowski                  <0x0 0x60000000 0x0 0xf1d>,
95*c80dc812SKrzysztof Kozlowski                  <0x0 0x60000f20 0x0 0xa8>,
96*c80dc812SKrzysztof Kozlowski                  <0x0 0x60100000 0x0 0x100000>,
97*c80dc812SKrzysztof Kozlowski                  <0x0 0x01c07000 0x0 0x1000>;
98*c80dc812SKrzysztof Kozlowski            reg-names = "parf", "dbi", "elbi", "config", "mhi";
99*c80dc812SKrzysztof Kozlowski            ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
100*c80dc812SKrzysztof Kozlowski                     <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0xd00000>;
101*c80dc812SKrzysztof Kozlowski
102*c80dc812SKrzysztof Kozlowski            device_type = "pci";
103*c80dc812SKrzysztof Kozlowski            linux,pci-domain = <0>;
104*c80dc812SKrzysztof Kozlowski            bus-range = <0x00 0xff>;
105*c80dc812SKrzysztof Kozlowski            num-lanes = <1>;
106*c80dc812SKrzysztof Kozlowski
107*c80dc812SKrzysztof Kozlowski            #address-cells = <3>;
108*c80dc812SKrzysztof Kozlowski            #size-cells = <2>;
109*c80dc812SKrzysztof Kozlowski
110*c80dc812SKrzysztof Kozlowski            clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
111*c80dc812SKrzysztof Kozlowski                     <&gcc GCC_PCIE_0_AUX_CLK>,
112*c80dc812SKrzysztof Kozlowski                     <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
113*c80dc812SKrzysztof Kozlowski                     <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
114*c80dc812SKrzysztof Kozlowski                     <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
115*c80dc812SKrzysztof Kozlowski                     <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
116*c80dc812SKrzysztof Kozlowski                     <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
117*c80dc812SKrzysztof Kozlowski            clock-names = "pipe",
118*c80dc812SKrzysztof Kozlowski                          "aux",
119*c80dc812SKrzysztof Kozlowski                          "cfg",
120*c80dc812SKrzysztof Kozlowski                          "bus_master",
121*c80dc812SKrzysztof Kozlowski                          "bus_slave",
122*c80dc812SKrzysztof Kozlowski                          "slave_q2a",
123*c80dc812SKrzysztof Kozlowski                          "tbu";
124*c80dc812SKrzysztof Kozlowski
125*c80dc812SKrzysztof Kozlowski            interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
126*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
127*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
128*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
129*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
130*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
131*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
132*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
133*c80dc812SKrzysztof Kozlowski                         <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
134*c80dc812SKrzysztof Kozlowski            interrupt-names = "msi0",
135*c80dc812SKrzysztof Kozlowski                              "msi1",
136*c80dc812SKrzysztof Kozlowski                              "msi2",
137*c80dc812SKrzysztof Kozlowski                              "msi3",
138*c80dc812SKrzysztof Kozlowski                              "msi4",
139*c80dc812SKrzysztof Kozlowski                              "msi5",
140*c80dc812SKrzysztof Kozlowski                              "msi6",
141*c80dc812SKrzysztof Kozlowski                              "msi7",
142*c80dc812SKrzysztof Kozlowski                              "global";
143*c80dc812SKrzysztof Kozlowski            #interrupt-cells = <1>;
144*c80dc812SKrzysztof Kozlowski            interrupt-map-mask = <0 0 0 0x7>;
145*c80dc812SKrzysztof Kozlowski            interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
146*c80dc812SKrzysztof Kozlowski                            <0 0 0 2 &intc 0 0 GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
147*c80dc812SKrzysztof Kozlowski                            <0 0 0 3 &intc 0 0 GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
148*c80dc812SKrzysztof Kozlowski                            <0 0 0 4 &intc 0 0 GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
149*c80dc812SKrzysztof Kozlowski
150*c80dc812SKrzysztof Kozlowski            iommu-map = <0x0 &apps_smmu 0x1c10 0x1>,
151*c80dc812SKrzysztof Kozlowski                        <0x100 &apps_smmu 0x1c11 0x1>,
152*c80dc812SKrzysztof Kozlowski                        <0x200 &apps_smmu 0x1c12 0x1>,
153*c80dc812SKrzysztof Kozlowski                        <0x300 &apps_smmu 0x1c13 0x1>,
154*c80dc812SKrzysztof Kozlowski                        <0x400 &apps_smmu 0x1c14 0x1>,
155*c80dc812SKrzysztof Kozlowski                        <0x500 &apps_smmu 0x1c15 0x1>,
156*c80dc812SKrzysztof Kozlowski                        <0x600 &apps_smmu 0x1c16 0x1>,
157*c80dc812SKrzysztof Kozlowski                        <0x700 &apps_smmu 0x1c17 0x1>,
158*c80dc812SKrzysztof Kozlowski                        <0x800 &apps_smmu 0x1c18 0x1>,
159*c80dc812SKrzysztof Kozlowski                        <0x900 &apps_smmu 0x1c19 0x1>,
160*c80dc812SKrzysztof Kozlowski                        <0xa00 &apps_smmu 0x1c1a 0x1>,
161*c80dc812SKrzysztof Kozlowski                        <0xb00 &apps_smmu 0x1c1b 0x1>,
162*c80dc812SKrzysztof Kozlowski                        <0xc00 &apps_smmu 0x1c1c 0x1>,
163*c80dc812SKrzysztof Kozlowski                        <0xd00 &apps_smmu 0x1c1d 0x1>,
164*c80dc812SKrzysztof Kozlowski                        <0xe00 &apps_smmu 0x1c1e 0x1>,
165*c80dc812SKrzysztof Kozlowski                        <0xf00 &apps_smmu 0x1c1f 0x1>;
166*c80dc812SKrzysztof Kozlowski
167*c80dc812SKrzysztof Kozlowski            power-domains = <&gcc PCIE_0_GDSC>;
168*c80dc812SKrzysztof Kozlowski
169*c80dc812SKrzysztof Kozlowski            phys = <&pcie0_phy>;
170*c80dc812SKrzysztof Kozlowski            phy-names = "pciephy";
171*c80dc812SKrzysztof Kozlowski
172*c80dc812SKrzysztof Kozlowski            resets = <&gcc GCC_PCIE_0_BCR>;
173*c80dc812SKrzysztof Kozlowski            reset-names = "pci";
174*c80dc812SKrzysztof Kozlowski
175*c80dc812SKrzysztof Kozlowski            perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
176*c80dc812SKrzysztof Kozlowski            wake-gpios = <&tlmm 134 GPIO_ACTIVE_HIGH>;
177*c80dc812SKrzysztof Kozlowski
178*c80dc812SKrzysztof Kozlowski            vddpe-3v3-supply = <&pcie0_3p3v_dual>;
179*c80dc812SKrzysztof Kozlowski
180*c80dc812SKrzysztof Kozlowski            pcie@0 {
181*c80dc812SKrzysztof Kozlowski                device_type = "pci";
182*c80dc812SKrzysztof Kozlowski                reg = <0x0 0x0 0x0 0x0 0x0>;
183*c80dc812SKrzysztof Kozlowski                bus-range = <0x01 0xff>;
184*c80dc812SKrzysztof Kozlowski
185*c80dc812SKrzysztof Kozlowski                #address-cells = <3>;
186*c80dc812SKrzysztof Kozlowski                #size-cells = <2>;
187*c80dc812SKrzysztof Kozlowski                ranges;
188*c80dc812SKrzysztof Kozlowski            };
189*c80dc812SKrzysztof Kozlowski        };
190*c80dc812SKrzysztof Kozlowski    };
191