xref: /linux/Documentation/devicetree/bindings/pci/qcom,pcie-sc7280.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1756485bfSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2756485bfSKrzysztof Kozlowski%YAML 1.2
3756485bfSKrzysztof Kozlowski---
4756485bfSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-sc7280.yaml#
5756485bfSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6756485bfSKrzysztof Kozlowski
7756485bfSKrzysztof Kozlowskititle: Qualcomm SC7280 PCI Express Root Complex
8756485bfSKrzysztof Kozlowski
9756485bfSKrzysztof Kozlowskimaintainers:
10756485bfSKrzysztof Kozlowski  - Bjorn Andersson <andersson@kernel.org>
11756485bfSKrzysztof Kozlowski  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
12756485bfSKrzysztof Kozlowski
13756485bfSKrzysztof Kozlowskidescription:
14756485bfSKrzysztof Kozlowski  Qualcomm SC7280 SoC PCIe root complex controller is based on the Synopsys
15756485bfSKrzysztof Kozlowski  DesignWare PCIe IP.
16756485bfSKrzysztof Kozlowski
17756485bfSKrzysztof Kozlowskiproperties:
18756485bfSKrzysztof Kozlowski  compatible:
19756485bfSKrzysztof Kozlowski    const: qcom,pcie-sc7280
20756485bfSKrzysztof Kozlowski
21756485bfSKrzysztof Kozlowski  reg:
22756485bfSKrzysztof Kozlowski    minItems: 5
23756485bfSKrzysztof Kozlowski    maxItems: 6
24756485bfSKrzysztof Kozlowski
25756485bfSKrzysztof Kozlowski  reg-names:
26756485bfSKrzysztof Kozlowski    minItems: 5
27756485bfSKrzysztof Kozlowski    items:
28756485bfSKrzysztof Kozlowski      - const: parf # Qualcomm specific registers
29756485bfSKrzysztof Kozlowski      - const: dbi # DesignWare PCIe registers
30756485bfSKrzysztof Kozlowski      - const: elbi # External local bus interface registers
31756485bfSKrzysztof Kozlowski      - const: atu # ATU address space
32756485bfSKrzysztof Kozlowski      - const: config # PCIe configuration space
33756485bfSKrzysztof Kozlowski      - const: mhi # MHI registers
34756485bfSKrzysztof Kozlowski
35756485bfSKrzysztof Kozlowski  clocks:
36756485bfSKrzysztof Kozlowski    minItems: 13
37756485bfSKrzysztof Kozlowski    maxItems: 13
38756485bfSKrzysztof Kozlowski
39756485bfSKrzysztof Kozlowski  clock-names:
40756485bfSKrzysztof Kozlowski    items:
41756485bfSKrzysztof Kozlowski      - const: pipe # PIPE clock
42756485bfSKrzysztof Kozlowski      - const: pipe_mux # PIPE MUX
43756485bfSKrzysztof Kozlowski      - const: phy_pipe # PIPE output clock
44756485bfSKrzysztof Kozlowski      - const: ref # REFERENCE clock
45756485bfSKrzysztof Kozlowski      - const: aux # Auxiliary clock
46756485bfSKrzysztof Kozlowski      - const: cfg # Configuration clock
47756485bfSKrzysztof Kozlowski      - const: bus_master # Master AXI clock
48756485bfSKrzysztof Kozlowski      - const: bus_slave # Slave AXI clock
49756485bfSKrzysztof Kozlowski      - const: slave_q2a # Slave Q2A clock
50756485bfSKrzysztof Kozlowski      - const: tbu # PCIe TBU clock
51756485bfSKrzysztof Kozlowski      - const: ddrss_sf_tbu # PCIe SF TBU clock
52756485bfSKrzysztof Kozlowski      - const: aggre0 # Aggre NoC PCIe CENTER SF AXI clock
53756485bfSKrzysztof Kozlowski      - const: aggre1 # Aggre NoC PCIe1 AXI clock
54756485bfSKrzysztof Kozlowski
55756485bfSKrzysztof Kozlowski  interrupts:
56*364cfd8aSRayyan Ansari    minItems: 8
57*364cfd8aSRayyan Ansari    maxItems: 8
58756485bfSKrzysztof Kozlowski
59756485bfSKrzysztof Kozlowski  interrupt-names:
60756485bfSKrzysztof Kozlowski    items:
61*364cfd8aSRayyan Ansari      - const: msi0
62*364cfd8aSRayyan Ansari      - const: msi1
63*364cfd8aSRayyan Ansari      - const: msi2
64*364cfd8aSRayyan Ansari      - const: msi3
65*364cfd8aSRayyan Ansari      - const: msi4
66*364cfd8aSRayyan Ansari      - const: msi5
67*364cfd8aSRayyan Ansari      - const: msi6
68*364cfd8aSRayyan Ansari      - const: msi7
69756485bfSKrzysztof Kozlowski
70756485bfSKrzysztof Kozlowski  resets:
71756485bfSKrzysztof Kozlowski    maxItems: 1
72756485bfSKrzysztof Kozlowski
73756485bfSKrzysztof Kozlowski  reset-names:
74756485bfSKrzysztof Kozlowski    items:
75756485bfSKrzysztof Kozlowski      - const: pci
76756485bfSKrzysztof Kozlowski
77756485bfSKrzysztof KozlowskiallOf:
78756485bfSKrzysztof Kozlowski  - $ref: qcom,pcie-common.yaml#
79756485bfSKrzysztof Kozlowski
80756485bfSKrzysztof KozlowskiunevaluatedProperties: false
81756485bfSKrzysztof Kozlowski
82756485bfSKrzysztof Kozlowskiexamples:
83756485bfSKrzysztof Kozlowski  - |
84756485bfSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
85756485bfSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,rpmh.h>
86756485bfSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
87756485bfSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
88756485bfSKrzysztof Kozlowski
89756485bfSKrzysztof Kozlowski    soc {
90756485bfSKrzysztof Kozlowski        #address-cells = <2>;
91756485bfSKrzysztof Kozlowski        #size-cells = <2>;
92756485bfSKrzysztof Kozlowski
93756485bfSKrzysztof Kozlowski        pcie@1c08000 {
94756485bfSKrzysztof Kozlowski            compatible = "qcom,pcie-sc7280";
95756485bfSKrzysztof Kozlowski            reg = <0 0x01c08000 0 0x3000>,
96756485bfSKrzysztof Kozlowski                  <0 0x40000000 0 0xf1d>,
97756485bfSKrzysztof Kozlowski                  <0 0x40000f20 0 0xa8>,
98756485bfSKrzysztof Kozlowski                  <0 0x40001000 0 0x1000>,
99756485bfSKrzysztof Kozlowski                  <0 0x40100000 0 0x100000>;
100756485bfSKrzysztof Kozlowski            reg-names = "parf", "dbi", "elbi", "atu", "config";
101756485bfSKrzysztof Kozlowski            ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
102756485bfSKrzysztof Kozlowski                     <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
103756485bfSKrzysztof Kozlowski
104756485bfSKrzysztof Kozlowski            bus-range = <0x00 0xff>;
105756485bfSKrzysztof Kozlowski            device_type = "pci";
106756485bfSKrzysztof Kozlowski            linux,pci-domain = <1>;
107756485bfSKrzysztof Kozlowski            num-lanes = <2>;
108756485bfSKrzysztof Kozlowski
109756485bfSKrzysztof Kozlowski            #address-cells = <3>;
110756485bfSKrzysztof Kozlowski            #size-cells = <2>;
111756485bfSKrzysztof Kozlowski
112756485bfSKrzysztof Kozlowski            assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
113756485bfSKrzysztof Kozlowski            assigned-clock-rates = <19200000>;
114756485bfSKrzysztof Kozlowski
115756485bfSKrzysztof Kozlowski            clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
116756485bfSKrzysztof Kozlowski                     <&gcc GCC_PCIE_1_PIPE_CLK_SRC>,
117756485bfSKrzysztof Kozlowski                     <&pcie1_phy>,
118756485bfSKrzysztof Kozlowski                     <&rpmhcc RPMH_CXO_CLK>,
119756485bfSKrzysztof Kozlowski                     <&gcc GCC_PCIE_1_AUX_CLK>,
120756485bfSKrzysztof Kozlowski                     <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
121756485bfSKrzysztof Kozlowski                     <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
122756485bfSKrzysztof Kozlowski                     <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
123756485bfSKrzysztof Kozlowski                     <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
124756485bfSKrzysztof Kozlowski                     <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>,
125756485bfSKrzysztof Kozlowski                     <&gcc GCC_DDRSS_PCIE_SF_CLK>,
126756485bfSKrzysztof Kozlowski                     <&gcc GCC_AGGRE_NOC_PCIE_CENTER_SF_AXI_CLK>,
127756485bfSKrzysztof Kozlowski                     <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>;
128756485bfSKrzysztof Kozlowski
129756485bfSKrzysztof Kozlowski            clock-names = "pipe",
130756485bfSKrzysztof Kozlowski                          "pipe_mux",
131756485bfSKrzysztof Kozlowski                          "phy_pipe",
132756485bfSKrzysztof Kozlowski                          "ref",
133756485bfSKrzysztof Kozlowski                          "aux",
134756485bfSKrzysztof Kozlowski                          "cfg",
135756485bfSKrzysztof Kozlowski                          "bus_master",
136756485bfSKrzysztof Kozlowski                          "bus_slave",
137756485bfSKrzysztof Kozlowski                          "slave_q2a",
138756485bfSKrzysztof Kozlowski                          "tbu",
139756485bfSKrzysztof Kozlowski                          "ddrss_sf_tbu",
140756485bfSKrzysztof Kozlowski                          "aggre0",
141756485bfSKrzysztof Kozlowski                          "aggre1";
142756485bfSKrzysztof Kozlowski
143756485bfSKrzysztof Kozlowski            dma-coherent;
144756485bfSKrzysztof Kozlowski
145*364cfd8aSRayyan Ansari            interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
146*364cfd8aSRayyan Ansari                         <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
147*364cfd8aSRayyan Ansari                         <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
148*364cfd8aSRayyan Ansari                         <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
149*364cfd8aSRayyan Ansari                         <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
150*364cfd8aSRayyan Ansari                         <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
151*364cfd8aSRayyan Ansari                         <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
152*364cfd8aSRayyan Ansari                         <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
153*364cfd8aSRayyan Ansari            interrupt-names = "msi0", "msi1", "msi2", "msi3",
154*364cfd8aSRayyan Ansari                              "msi4", "msi5", "msi6", "msi7";
155756485bfSKrzysztof Kozlowski            #interrupt-cells = <1>;
156756485bfSKrzysztof Kozlowski            interrupt-map-mask = <0 0 0 0x7>;
157756485bfSKrzysztof Kozlowski            interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>,
158756485bfSKrzysztof Kozlowski                            <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>,
159756485bfSKrzysztof Kozlowski                            <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>,
160756485bfSKrzysztof Kozlowski                            <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>;
161756485bfSKrzysztof Kozlowski
162756485bfSKrzysztof Kozlowski            iommu-map = <0x0 &apps_smmu 0x1c80 0x1>,
163756485bfSKrzysztof Kozlowski                        <0x100 &apps_smmu 0x1c81 0x1>;
164756485bfSKrzysztof Kozlowski
165756485bfSKrzysztof Kozlowski            phys = <&pcie1_phy>;
166756485bfSKrzysztof Kozlowski            phy-names = "pciephy";
167756485bfSKrzysztof Kozlowski
168756485bfSKrzysztof Kozlowski            pinctrl-names = "default";
169756485bfSKrzysztof Kozlowski            pinctrl-0 = <&pcie1_clkreq_n>;
170756485bfSKrzysztof Kozlowski
171756485bfSKrzysztof Kozlowski            power-domains = <&gcc GCC_PCIE_1_GDSC>;
172756485bfSKrzysztof Kozlowski
173756485bfSKrzysztof Kozlowski            resets = <&gcc GCC_PCIE_1_BCR>;
174756485bfSKrzysztof Kozlowski            reset-names = "pci";
175756485bfSKrzysztof Kozlowski
176756485bfSKrzysztof Kozlowski            perst-gpios = <&tlmm 2 GPIO_ACTIVE_LOW>;
177756485bfSKrzysztof Kozlowski            vddpe-3v3-supply = <&pp3300_ssd>;
178756485bfSKrzysztof Kozlowski        };
179756485bfSKrzysztof Kozlowski    };
180