xref: /linux/Documentation/devicetree/bindings/pci/qcom,pcie-ipq6018.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*06f4ac1fSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*06f4ac1fSKrzysztof Kozlowski%YAML 1.2
3*06f4ac1fSKrzysztof Kozlowski---
4*06f4ac1fSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pci/qcom,pcie-ipq6018.yaml#
5*06f4ac1fSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*06f4ac1fSKrzysztof Kozlowski
7*06f4ac1fSKrzysztof Kozlowskititle: Qualcomm IPQ6018 PCI Express Root Complex
8*06f4ac1fSKrzysztof Kozlowski
9*06f4ac1fSKrzysztof Kozlowskimaintainers:
10*06f4ac1fSKrzysztof Kozlowski  - Bjorn Andersson <andersson@kernel.org>
11*06f4ac1fSKrzysztof Kozlowski  - Manivannan Sadhasivam <mani@kernel.org>
12*06f4ac1fSKrzysztof Kozlowski
13*06f4ac1fSKrzysztof Kozlowskiproperties:
14*06f4ac1fSKrzysztof Kozlowski  compatible:
15*06f4ac1fSKrzysztof Kozlowski    enum:
16*06f4ac1fSKrzysztof Kozlowski      - qcom,pcie-ipq6018
17*06f4ac1fSKrzysztof Kozlowski      - qcom,pcie-ipq8074-gen3
18*06f4ac1fSKrzysztof Kozlowski
19*06f4ac1fSKrzysztof Kozlowski  reg:
20*06f4ac1fSKrzysztof Kozlowski    minItems: 5
21*06f4ac1fSKrzysztof Kozlowski    maxItems: 6
22*06f4ac1fSKrzysztof Kozlowski
23*06f4ac1fSKrzysztof Kozlowski  reg-names:
24*06f4ac1fSKrzysztof Kozlowski    minItems: 5
25*06f4ac1fSKrzysztof Kozlowski    items:
26*06f4ac1fSKrzysztof Kozlowski      - const: dbi
27*06f4ac1fSKrzysztof Kozlowski      - const: elbi
28*06f4ac1fSKrzysztof Kozlowski      - const: atu
29*06f4ac1fSKrzysztof Kozlowski      - const: parf
30*06f4ac1fSKrzysztof Kozlowski      - const: config
31*06f4ac1fSKrzysztof Kozlowski      - const: mhi
32*06f4ac1fSKrzysztof Kozlowski
33*06f4ac1fSKrzysztof Kozlowski  clocks:
34*06f4ac1fSKrzysztof Kozlowski    maxItems: 5
35*06f4ac1fSKrzysztof Kozlowski
36*06f4ac1fSKrzysztof Kozlowski  clock-names:
37*06f4ac1fSKrzysztof Kozlowski    items:
38*06f4ac1fSKrzysztof Kozlowski      - const: iface # PCIe to SysNOC BIU clock
39*06f4ac1fSKrzysztof Kozlowski      - const: axi_m # AXI Master clock
40*06f4ac1fSKrzysztof Kozlowski      - const: axi_s # AXI Slave clock
41*06f4ac1fSKrzysztof Kozlowski      - const: axi_bridge
42*06f4ac1fSKrzysztof Kozlowski      - const: rchng
43*06f4ac1fSKrzysztof Kozlowski
44*06f4ac1fSKrzysztof Kozlowski  interrupts:
45*06f4ac1fSKrzysztof Kozlowski    maxItems: 9
46*06f4ac1fSKrzysztof Kozlowski
47*06f4ac1fSKrzysztof Kozlowski  interrupt-names:
48*06f4ac1fSKrzysztof Kozlowski    items:
49*06f4ac1fSKrzysztof Kozlowski      - const: msi0
50*06f4ac1fSKrzysztof Kozlowski      - const: msi1
51*06f4ac1fSKrzysztof Kozlowski      - const: msi2
52*06f4ac1fSKrzysztof Kozlowski      - const: msi3
53*06f4ac1fSKrzysztof Kozlowski      - const: msi4
54*06f4ac1fSKrzysztof Kozlowski      - const: msi5
55*06f4ac1fSKrzysztof Kozlowski      - const: msi6
56*06f4ac1fSKrzysztof Kozlowski      - const: msi7
57*06f4ac1fSKrzysztof Kozlowski      - const: global
58*06f4ac1fSKrzysztof Kozlowski
59*06f4ac1fSKrzysztof Kozlowski  resets:
60*06f4ac1fSKrzysztof Kozlowski    maxItems: 8
61*06f4ac1fSKrzysztof Kozlowski
62*06f4ac1fSKrzysztof Kozlowski  reset-names:
63*06f4ac1fSKrzysztof Kozlowski    items:
64*06f4ac1fSKrzysztof Kozlowski      - const: pipe
65*06f4ac1fSKrzysztof Kozlowski      - const: sleep
66*06f4ac1fSKrzysztof Kozlowski      - const: sticky # Core sticky reset
67*06f4ac1fSKrzysztof Kozlowski      - const: axi_m # AXI master reset
68*06f4ac1fSKrzysztof Kozlowski      - const: axi_s # AXI slave reset
69*06f4ac1fSKrzysztof Kozlowski      - const: ahb
70*06f4ac1fSKrzysztof Kozlowski      - const: axi_m_sticky # AXI master sticky reset
71*06f4ac1fSKrzysztof Kozlowski      - const: axi_s_sticky # AXI slave sticky reset
72*06f4ac1fSKrzysztof Kozlowski
73*06f4ac1fSKrzysztof Kozlowskirequired:
74*06f4ac1fSKrzysztof Kozlowski  - resets
75*06f4ac1fSKrzysztof Kozlowski  - reset-names
76*06f4ac1fSKrzysztof Kozlowski
77*06f4ac1fSKrzysztof KozlowskiallOf:
78*06f4ac1fSKrzysztof Kozlowski  - $ref: qcom,pcie-common.yaml#
79*06f4ac1fSKrzysztof Kozlowski
80*06f4ac1fSKrzysztof KozlowskiunevaluatedProperties: false
81*06f4ac1fSKrzysztof Kozlowski
82*06f4ac1fSKrzysztof Kozlowskiexamples:
83*06f4ac1fSKrzysztof Kozlowski  - |
84*06f4ac1fSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,gcc-ipq6018.h>
85*06f4ac1fSKrzysztof Kozlowski    #include <dt-bindings/gpio/gpio.h>
86*06f4ac1fSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
87*06f4ac1fSKrzysztof Kozlowski    #include <dt-bindings/reset/qcom,gcc-ipq6018.h>
88*06f4ac1fSKrzysztof Kozlowski
89*06f4ac1fSKrzysztof Kozlowski    soc {
90*06f4ac1fSKrzysztof Kozlowski        #address-cells = <2>;
91*06f4ac1fSKrzysztof Kozlowski        #size-cells = <2>;
92*06f4ac1fSKrzysztof Kozlowski
93*06f4ac1fSKrzysztof Kozlowski        pcie@20000000 {
94*06f4ac1fSKrzysztof Kozlowski            compatible = "qcom,pcie-ipq6018";
95*06f4ac1fSKrzysztof Kozlowski            reg = <0x0 0x20000000 0x0 0xf1d>,
96*06f4ac1fSKrzysztof Kozlowski                  <0x0 0x20000f20 0x0 0xa8>,
97*06f4ac1fSKrzysztof Kozlowski                  <0x0 0x20001000 0x0 0x1000>,
98*06f4ac1fSKrzysztof Kozlowski                  <0x0 0x80000 0x0 0x4000>,
99*06f4ac1fSKrzysztof Kozlowski                  <0x0 0x20100000 0x0 0x1000>;
100*06f4ac1fSKrzysztof Kozlowski            reg-names = "dbi", "elbi", "atu", "parf", "config";
101*06f4ac1fSKrzysztof Kozlowski            ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
102*06f4ac1fSKrzysztof Kozlowski                     <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
103*06f4ac1fSKrzysztof Kozlowski
104*06f4ac1fSKrzysztof Kozlowski            device_type = "pci";
105*06f4ac1fSKrzysztof Kozlowski            linux,pci-domain = <0>;
106*06f4ac1fSKrzysztof Kozlowski            bus-range = <0x00 0xff>;
107*06f4ac1fSKrzysztof Kozlowski            num-lanes = <1>;
108*06f4ac1fSKrzysztof Kozlowski            max-link-speed = <3>;
109*06f4ac1fSKrzysztof Kozlowski            #address-cells = <3>;
110*06f4ac1fSKrzysztof Kozlowski            #size-cells = <2>;
111*06f4ac1fSKrzysztof Kozlowski
112*06f4ac1fSKrzysztof Kozlowski            clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
113*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_M_CLK>,
114*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_S_CLK>,
115*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
116*06f4ac1fSKrzysztof Kozlowski                     <&gcc PCIE0_RCHNG_CLK>;
117*06f4ac1fSKrzysztof Kozlowski            clock-names = "iface",
118*06f4ac1fSKrzysztof Kozlowski                          "axi_m",
119*06f4ac1fSKrzysztof Kozlowski                          "axi_s",
120*06f4ac1fSKrzysztof Kozlowski                          "axi_bridge",
121*06f4ac1fSKrzysztof Kozlowski                          "rchng";
122*06f4ac1fSKrzysztof Kozlowski
123*06f4ac1fSKrzysztof Kozlowski            interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
124*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
125*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
126*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
127*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
128*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
129*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
130*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
131*06f4ac1fSKrzysztof Kozlowski                         <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
132*06f4ac1fSKrzysztof Kozlowski            interrupt-names = "msi0",
133*06f4ac1fSKrzysztof Kozlowski                              "msi1",
134*06f4ac1fSKrzysztof Kozlowski                              "msi2",
135*06f4ac1fSKrzysztof Kozlowski                              "msi3",
136*06f4ac1fSKrzysztof Kozlowski                              "msi4",
137*06f4ac1fSKrzysztof Kozlowski                              "msi5",
138*06f4ac1fSKrzysztof Kozlowski                              "msi6",
139*06f4ac1fSKrzysztof Kozlowski                              "msi7",
140*06f4ac1fSKrzysztof Kozlowski                              "global";
141*06f4ac1fSKrzysztof Kozlowski
142*06f4ac1fSKrzysztof Kozlowski            #interrupt-cells = <1>;
143*06f4ac1fSKrzysztof Kozlowski            interrupt-map-mask = <0 0 0 0x7>;
144*06f4ac1fSKrzysztof Kozlowski            interrupt-map = <0 0 0 1 &intc 0 0 GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
145*06f4ac1fSKrzysztof Kozlowski                            <0 0 0 2 &intc 0 0 GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
146*06f4ac1fSKrzysztof Kozlowski                            <0 0 0 3 &intc 0 0 GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
147*06f4ac1fSKrzysztof Kozlowski                            <0 0 0 4 &intc 0 0 GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
148*06f4ac1fSKrzysztof Kozlowski
149*06f4ac1fSKrzysztof Kozlowski            phys = <&pcie_phy>;
150*06f4ac1fSKrzysztof Kozlowski            phy-names = "pciephy";
151*06f4ac1fSKrzysztof Kozlowski
152*06f4ac1fSKrzysztof Kozlowski            resets = <&gcc GCC_PCIE0_PIPE_ARES>,
153*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_SLEEP_ARES>,
154*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
155*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
156*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
157*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AHB_ARES>,
158*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
159*06f4ac1fSKrzysztof Kozlowski                     <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
160*06f4ac1fSKrzysztof Kozlowski            reset-names = "pipe",
161*06f4ac1fSKrzysztof Kozlowski                          "sleep",
162*06f4ac1fSKrzysztof Kozlowski                          "sticky",
163*06f4ac1fSKrzysztof Kozlowski                          "axi_m",
164*06f4ac1fSKrzysztof Kozlowski                          "axi_s",
165*06f4ac1fSKrzysztof Kozlowski                          "ahb",
166*06f4ac1fSKrzysztof Kozlowski                          "axi_m_sticky",
167*06f4ac1fSKrzysztof Kozlowski                          "axi_s_sticky";
168*06f4ac1fSKrzysztof Kozlowski
169*06f4ac1fSKrzysztof Kozlowski            pcie@0 {
170*06f4ac1fSKrzysztof Kozlowski                device_type = "pci";
171*06f4ac1fSKrzysztof Kozlowski                reg = <0x0 0x0 0x0 0x0 0x0>;
172*06f4ac1fSKrzysztof Kozlowski                bus-range = <0x01 0xff>;
173*06f4ac1fSKrzysztof Kozlowski
174*06f4ac1fSKrzysztof Kozlowski                #address-cells = <3>;
175*06f4ac1fSKrzysztof Kozlowski                #size-cells = <2>;
176*06f4ac1fSKrzysztof Kozlowski                ranges;
177*06f4ac1fSKrzysztof Kozlowski            };
178*06f4ac1fSKrzysztof Kozlowski        };
179*06f4ac1fSKrzysztof Kozlowski    };
180