1 * Qualcomm PCI express root complex
5 Value type: <stringlist>
6 Definition: Value should contain
7 - "qcom,pcie-ipq8064" for ipq8064
8 - "qcom,pcie-ipq8064-v2" for ipq8064 rev 2 or ipq8065
9 - "qcom,pcie-apq8064" for apq8064
10 - "qcom,pcie-apq8084" for apq8084
11 - "qcom,pcie-msm8996" for msm8996 or apq8096
12 - "qcom,pcie-ipq4019" for ipq4019
13 - "qcom,pcie-ipq8074" for ipq8074
14 - "qcom,pcie-qcs404" for qcs404
15 - "qcom,pcie-sdm845" for sdm845
19 Value type: <prop-encoded-array>
20 Definition: Register ranges as listed in the reg-names property
24 Value type: <stringlist>
25 Definition: Must include the following entries
26 - "parf" Qualcomm specific registers
27 - "dbi" DesignWare PCIe registers
28 - "elbi" External local bus interface registers
29 - "config" PCIe configuration space
34 Definition: Should be "pci". As specified in designware-pcie.txt
39 Definition: Should be 3. As specified in designware-pcie.txt
44 Definition: Should be 2. As specified in designware-pcie.txt
48 Value type: <prop-encoded-array>
49 Definition: As specified in designware-pcie.txt
53 Value type: <prop-encoded-array>
54 Definition: MSI interrupt
58 Value type: <stringlist>
59 Definition: Should contain "msi"
64 Definition: Should be 1. As specified in designware-pcie.txt
68 Value type: <prop-encoded-array>
69 Definition: As specified in designware-pcie.txt
73 Value type: <prop-encoded-array>
74 Definition: As specified in designware-pcie.txt
78 Value type: <prop-encoded-array>
79 Definition: List of phandle and clock specifier pairs as listed
80 in clock-names property
84 Value type: <stringlist>
85 Definition: Should contain the following entries
86 - "iface" Configuration AHB clock
89 Usage: required for ipq/apq8064
90 Value type: <stringlist>
91 Definition: Should contain the following entries
92 - "core" Clocks the pcie hw block
93 - "phy" Clocks the pcie PHY block
94 - "aux" Clocks the pcie AUX block
95 - "ref" Clocks the pcie ref block
97 Usage: required for apq8084/ipq4019
98 Value type: <stringlist>
99 Definition: Should contain the following entries
100 - "aux" Auxiliary (AUX) clock
101 - "bus_master" Master AXI clock
102 - "bus_slave" Slave AXI clock
105 Usage: required for msm8996/apq8096
106 Value type: <stringlist>
107 Definition: Should contain the following entries
108 - "pipe" Pipe Clock driving internal logic
109 - "aux" Auxiliary (AUX) clock
110 - "cfg" Configuration clock
111 - "bus_master" Master AXI clock
112 - "bus_slave" Slave AXI clock
115 Usage: required for ipq8074
116 Value type: <stringlist>
117 Definition: Should contain the following entries
118 - "iface" PCIe to SysNOC BIU clock
119 - "axi_m" AXI Master clock
120 - "axi_s" AXI Slave clock
122 - "aux" Auxiliary clock
125 Usage: required for qcs404
126 Value type: <stringlist>
127 Definition: Should contain the following entries
129 - "aux" Auxiliary clock
130 - "master_bus" AXI Master clock
131 - "slave_bus" AXI Slave clock
134 Usage: required for sdm845
135 Value type: <stringlist>
136 Definition: Should contain the following entries
137 - "aux" Auxiliary clock
138 - "cfg" Configuration clock
139 - "bus_master" Master AXI clock
140 - "bus_slave" Slave AXI clock
141 - "slave_q2a" Slave Q2A clock
142 - "tbu" PCIe TBU clock
147 Value type: <prop-encoded-array>
148 Definition: List of phandle and reset specifier pairs as listed
149 in reset-names property
152 Usage: required for ipq/apq8064
153 Value type: <stringlist>
154 Definition: Should contain the following entries
162 Usage: required for apq8084
163 Value type: <stringlist>
164 Definition: Should contain the following entries
168 Usage: required for ipq/apq8064
169 Value type: <stringlist>
170 Definition: Should contain the following entries
171 - "axi_m" AXI master reset
172 - "axi_s" AXI slave reset
174 - "axi_m_vmid" VMID reset
175 - "axi_s_xpu" XPU reset
178 - "axi_m_sticky" AXI sticky reset
179 - "pipe_sticky" PIPE sticky reset
182 - "phy_ahb" PHY AHB reset
186 Usage: required for ipq8074
187 Value type: <stringlist>
188 Definition: Should contain the following entries
190 - "sleep" Sleep reset
191 - "sticky" Core Sticky reset
192 - "axi_m" AXI Master reset
193 - "axi_s" AXI Slave reset
195 - "axi_m_sticky" AXI Master Sticky reset
198 Usage: required for qcs404
199 Value type: <stringlist>
200 Definition: Should contain the following entries
201 - "axi_m" AXI Master reset
202 - "axi_s" AXI Slave reset
203 - "axi_m_sticky" AXI Master Sticky reset
204 - "pipe_sticky" PIPE sticky reset
209 Usage: required for sdm845
210 Value type: <stringlist>
211 Definition: Should contain the following entries
212 - "pci" PCIe core reset
215 Usage: required for apq8084 and msm8996/apq8096
216 Value type: <prop-encoded-array>
217 Definition: A phandle and power domain specifier pair to the
218 power domain which is responsible for collapsing
219 and restoring power to the peripheral
223 Value type: <phandle>
224 Definition: A phandle to the core analog power supply
227 Usage: required for ipq/apq8064
228 Value type: <phandle>
229 Definition: A phandle to the analog power supply for PHY
231 - vdda_refclk-supply:
232 Usage: required for ipq/apq8064
233 Value type: <phandle>
234 Definition: A phandle to the analog power supply for IC which generates
238 Value type: <phandle>
239 Definition: A phandle to the PCIe endpoint power supply
242 Usage: required for apq8084 and qcs404
243 Value type: <phandle>
244 Definition: List of phandle(s) as listed in phy-names property
247 Usage: required for apq8084 and qcs404
248 Value type: <stringlist>
249 Definition: Should contain "pciephy"
253 Value type: <prop-encoded-array>
254 Definition: List of phandle and GPIO specifier pairs. Should contain
255 - "perst-gpios" PCIe endpoint reset signal line
256 - "wake-gpios" PCIe endpoint wake signal line
258 * Example for ipq/apq8064
260 compatible = "qcom,pcie-apq8064", "qcom,pcie-ipq8064", "snps,dw-pcie";
261 reg = <0x1b500000 0x1000
264 0x0ff00000 0x100000>;
265 reg-names = "dbi", "elbi", "parf", "config";
267 linux,pci-domain = <0>;
268 bus-range = <0x00 0xff>;
270 #address-cells = <3>;
272 ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000 /* I/O */
273 0x82000000 0 0 0x08000000 0 0x07e00000>; /* memory */
274 interrupts = <GIC_SPI 238 IRQ_TYPE_NONE>;
275 interrupt-names = "msi";
276 #interrupt-cells = <1>;
277 interrupt-map-mask = <0 0 0 0x7>;
278 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
279 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
280 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
281 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
282 clocks = <&gcc PCIE_A_CLK>,
286 <&gcc PCIE_ALT_REF_CLK>;
287 clock-names = "core", "iface", "phy", "aux", "ref";
288 resets = <&gcc PCIE_ACLK_RESET>,
289 <&gcc PCIE_HCLK_RESET>,
290 <&gcc PCIE_POR_RESET>,
291 <&gcc PCIE_PCI_RESET>,
292 <&gcc PCIE_PHY_RESET>,
293 <&gcc PCIE_EXT_RESET>;
294 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
295 pinctrl-0 = <&pcie_pins_default>;
296 pinctrl-names = "default";
299 * Example for apq8084
301 compatible = "qcom,pcie-apq8084", "snps,dw-pcie";
302 reg = <0xfc520000 0x2000>,
306 reg-names = "parf", "dbi", "elbi", "config";
308 linux,pci-domain = <0>;
309 bus-range = <0x00 0xff>;
311 #address-cells = <3>;
313 ranges = <0x81000000 0 0 0xff200000 0 0x00100000 /* I/O */
314 0x82000000 0 0x00300000 0xff300000 0 0x00d00000>; /* memory */
315 interrupts = <GIC_SPI 243 IRQ_TYPE_NONE>;
316 interrupt-names = "msi";
317 #interrupt-cells = <1>;
318 interrupt-map-mask = <0 0 0 0x7>;
319 interrupt-map = <0 0 0 1 &intc 0 244 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
320 <0 0 0 2 &intc 0 245 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
321 <0 0 0 3 &intc 0 247 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
322 <0 0 0 4 &intc 0 248 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
323 clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
324 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
325 <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
326 <&gcc GCC_PCIE_0_AUX_CLK>;
327 clock-names = "iface", "master_bus", "slave_bus", "aux";
328 resets = <&gcc GCC_PCIE_0_BCR>;
329 reset-names = "core";
330 power-domains = <&gcc PCIE0_GDSC>;
331 vdda-supply = <&pma8084_l3>;
333 phy-names = "pciephy";
334 perst-gpio = <&tlmm 70 GPIO_ACTIVE_LOW>;
335 pinctrl-0 = <&pcie0_pins_default>;
336 pinctrl-names = "default";