1 From acb06ebe2d1f043fd597f5c33aff048ae1804293 Mon Sep 17 00:00:00 2001
2 From: devi priya <quic_devipriy@quicinc.com>
3 Date: Thu, 1 Aug 2024 11:18:01 +0530
4 Subject: [PATCH 04/22] v6.14: arm64: dts: qcom: ipq9574: Add PCIe PHYs and
7 Add PCIe0, PCIe1, PCIe2, PCIe3 (and corresponding PHY) devices
8 found on IPQ9574 platform. The PCIe0 & PCIe1 are 1-lane Gen3
9 host whereas PCIe2 & PCIe3 are 2-lane Gen3 host.
11 Signed-off-by: devi priya <quic_devipriy@quicinc.com>
12 Signed-off-by: Sricharan Ramabadhran <quic_srichara@quicinc.com>
13 Link: https://lore.kernel.org/r/20240801054803.3015572-3-quic_srichara@quicinc.com
14 Signed-off-by: Bjorn Andersson <andersson@kernel.org>
16 arch/arm64/boot/dts/qcom/ipq9574.dtsi | 420 +++++++++++++++++++++++++-
17 1 file changed, 416 insertions(+), 4 deletions(-)
19 --- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
20 +++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
22 reg = <0x00060000 0x6000>;
25 + pcie0_phy: phy@84000 {
26 + compatible = "qcom,ipq9574-qmp-gen3x1-pcie-phy";
27 + reg = <0x00084000 0x1000>;
29 + clocks = <&gcc GCC_PCIE0_AUX_CLK>,
30 + <&gcc GCC_PCIE0_AHB_CLK>,
31 + <&gcc GCC_PCIE0_PIPE_CLK>;
32 + clock-names = "aux", "cfg_ahb", "pipe";
34 + assigned-clocks = <&gcc GCC_PCIE0_AUX_CLK>;
35 + assigned-clock-rates = <20000000>;
37 + resets = <&gcc GCC_PCIE0_PHY_BCR>,
38 + <&gcc GCC_PCIE0PHY_PHY_BCR>;
39 + reset-names = "phy", "common";
42 + clock-output-names = "gcc_pcie0_pipe_clk_src";
45 + status = "disabled";
48 + pcie2_phy: phy@8c000 {
49 + compatible = "qcom,ipq9574-qmp-gen3x2-pcie-phy";
50 + reg = <0x0008c000 0x2000>;
52 + clocks = <&gcc GCC_PCIE2_AUX_CLK>,
53 + <&gcc GCC_PCIE2_AHB_CLK>,
54 + <&gcc GCC_PCIE2_PIPE_CLK>;
55 + clock-names = "aux", "cfg_ahb", "pipe";
57 + assigned-clocks = <&gcc GCC_PCIE2_AUX_CLK>;
58 + assigned-clock-rates = <20000000>;
60 + resets = <&gcc GCC_PCIE2_PHY_BCR>,
61 + <&gcc GCC_PCIE2PHY_PHY_BCR>;
62 + reset-names = "phy", "common";
65 + clock-output-names = "gcc_pcie2_pipe_clk_src";
68 + status = "disabled";
72 compatible = "qcom,prng-ee";
73 reg = <0x000e3000 0x1000>;
78 + pcie3_phy: phy@f4000 {
79 + compatible = "qcom,ipq9574-qmp-gen3x2-pcie-phy";
80 + reg = <0x000f4000 0x2000>;
82 + clocks = <&gcc GCC_PCIE3_AUX_CLK>,
83 + <&gcc GCC_PCIE3_AHB_CLK>,
84 + <&gcc GCC_PCIE3_PIPE_CLK>;
85 + clock-names = "aux", "cfg_ahb", "pipe";
87 + assigned-clocks = <&gcc GCC_PCIE3_AUX_CLK>;
88 + assigned-clock-rates = <20000000>;
90 + resets = <&gcc GCC_PCIE3_PHY_BCR>,
91 + <&gcc GCC_PCIE3PHY_PHY_BCR>;
92 + reset-names = "phy", "common";
95 + clock-output-names = "gcc_pcie3_pipe_clk_src";
98 + status = "disabled";
101 + pcie1_phy: phy@fc000 {
102 + compatible = "qcom,ipq9574-qmp-gen3x1-pcie-phy";
103 + reg = <0x000fc000 0x1000>;
105 + clocks = <&gcc GCC_PCIE1_AUX_CLK>,
106 + <&gcc GCC_PCIE1_AHB_CLK>,
107 + <&gcc GCC_PCIE1_PIPE_CLK>;
108 + clock-names = "aux", "cfg_ahb", "pipe";
110 + assigned-clocks = <&gcc GCC_PCIE1_AUX_CLK>;
111 + assigned-clock-rates = <20000000>;
113 + resets = <&gcc GCC_PCIE1_PHY_BCR>,
114 + <&gcc GCC_PCIE1PHY_PHY_BCR>;
115 + reset-names = "phy", "common";
117 + #clock-cells = <0>;
118 + clock-output-names = "gcc_pcie1_pipe_clk_src";
121 + status = "disabled";
124 qfprom: efuse@a4000 {
125 compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
126 reg = <0x000a4000 0x5a1>;
127 @@ -309,10 +401,10 @@
128 clocks = <&xo_board_clk>,
142 @@ -756,6 +848,326 @@
147 + pcie1: pcie@10000000 {
148 + compatible = "qcom,pcie-ipq9574";
149 + reg = <0x10000000 0xf1d>,
151 + <0x10001000 0x1000>,
152 + <0x000f8000 0x4000>,
153 + <0x10100000 0x1000>;
154 + reg-names = "dbi", "elbi", "atu", "parf", "config";
155 + device_type = "pci";
156 + linux,pci-domain = <1>;
157 + bus-range = <0x00 0xff>;
159 + #address-cells = <3>;
162 + ranges = <0x01000000 0x0 0x00000000 0x10200000 0x0 0x100000>,
163 + <0x02000000 0x0 0x10300000 0x10300000 0x0 0x7d00000>;
165 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
166 + <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
167 + <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
168 + <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
169 + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
170 + <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
171 + <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
172 + <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
173 + interrupt-names = "msi0",
182 + #interrupt-cells = <1>;
183 + interrupt-map-mask = <0 0 0 0x7>;
184 + interrupt-map = <0 0 0 1 &intc 0 0 35 IRQ_TYPE_LEVEL_HIGH>,
185 + <0 0 0 2 &intc 0 0 49 IRQ_TYPE_LEVEL_HIGH>,
186 + <0 0 0 3 &intc 0 0 84 IRQ_TYPE_LEVEL_HIGH>,
187 + <0 0 0 4 &intc 0 0 85 IRQ_TYPE_LEVEL_HIGH>;
189 + clocks = <&gcc GCC_PCIE1_AXI_M_CLK>,
190 + <&gcc GCC_PCIE1_AXI_S_CLK>,
191 + <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>,
192 + <&gcc GCC_PCIE1_RCHNG_CLK>,
193 + <&gcc GCC_PCIE1_AHB_CLK>,
194 + <&gcc GCC_PCIE1_AUX_CLK>;
195 + clock-names = "axi_m",
202 + resets = <&gcc GCC_PCIE1_PIPE_ARES>,
203 + <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
204 + <&gcc GCC_PCIE1_AXI_S_STICKY_ARES>,
205 + <&gcc GCC_PCIE1_AXI_S_ARES>,
206 + <&gcc GCC_PCIE1_AXI_M_STICKY_ARES>,
207 + <&gcc GCC_PCIE1_AXI_M_ARES>,
208 + <&gcc GCC_PCIE1_AUX_ARES>,
209 + <&gcc GCC_PCIE1_AHB_ARES>;
210 + reset-names = "pipe",
219 + phys = <&pcie1_phy>;
220 + phy-names = "pciephy";
221 + interconnects = <&gcc MASTER_ANOC_PCIE1 &gcc SLAVE_ANOC_PCIE1>,
222 + <&gcc MASTER_SNOC_PCIE1 &gcc SLAVE_SNOC_PCIE1>;
223 + interconnect-names = "pcie-mem", "cpu-pcie";
224 + status = "disabled";
227 + pcie3: pcie@18000000 {
228 + compatible = "qcom,pcie-ipq9574";
229 + reg = <0x18000000 0xf1d>,
231 + <0x18001000 0x1000>,
232 + <0x000f0000 0x4000>,
233 + <0x18100000 0x1000>;
234 + reg-names = "dbi", "elbi", "atu", "parf", "config";
235 + device_type = "pci";
236 + linux,pci-domain = <3>;
237 + bus-range = <0x00 0xff>;
239 + #address-cells = <3>;
242 + ranges = <0x01000000 0x0 0x00000000 0x18200000 0x0 0x100000>,
243 + <0x02000000 0x0 0x18300000 0x18300000 0x0 0x7d00000>;
245 + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
246 + <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
247 + <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
248 + <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
249 + <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
250 + <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
251 + <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
252 + <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
253 + interrupt-names = "msi0",
262 + #interrupt-cells = <1>;
263 + interrupt-map-mask = <0 0 0 0x7>;
264 + interrupt-map = <0 0 0 1 &intc 0 0 189 IRQ_TYPE_LEVEL_HIGH>,
265 + <0 0 0 2 &intc 0 0 190 IRQ_TYPE_LEVEL_HIGH>,
266 + <0 0 0 3 &intc 0 0 191 IRQ_TYPE_LEVEL_HIGH>,
267 + <0 0 0 4 &intc 0 0 192 IRQ_TYPE_LEVEL_HIGH>;
269 + clocks = <&gcc GCC_PCIE3_AXI_M_CLK>,
270 + <&gcc GCC_PCIE3_AXI_S_CLK>,
271 + <&gcc GCC_PCIE3_AXI_S_BRIDGE_CLK>,
272 + <&gcc GCC_PCIE3_RCHNG_CLK>,
273 + <&gcc GCC_PCIE3_AHB_CLK>,
274 + <&gcc GCC_PCIE3_AUX_CLK>;
275 + clock-names = "axi_m",
282 + resets = <&gcc GCC_PCIE3_PIPE_ARES>,
283 + <&gcc GCC_PCIE3_CORE_STICKY_ARES>,
284 + <&gcc GCC_PCIE3_AXI_S_STICKY_ARES>,
285 + <&gcc GCC_PCIE3_AXI_S_ARES>,
286 + <&gcc GCC_PCIE3_AXI_M_STICKY_ARES>,
287 + <&gcc GCC_PCIE3_AXI_M_ARES>,
288 + <&gcc GCC_PCIE3_AUX_ARES>,
289 + <&gcc GCC_PCIE3_AHB_ARES>;
290 + reset-names = "pipe",
299 + phys = <&pcie3_phy>;
300 + phy-names = "pciephy";
301 + interconnects = <&gcc MASTER_ANOC_PCIE3 &gcc SLAVE_ANOC_PCIE3>,
302 + <&gcc MASTER_SNOC_PCIE3 &gcc SLAVE_SNOC_PCIE3>;
303 + interconnect-names = "pcie-mem", "cpu-pcie";
304 + status = "disabled";
307 + pcie2: pcie@20000000 {
308 + compatible = "qcom,pcie-ipq9574";
309 + reg = <0x20000000 0xf1d>,
311 + <0x20001000 0x1000>,
312 + <0x00088000 0x4000>,
313 + <0x20100000 0x1000>;
314 + reg-names = "dbi", "elbi", "atu", "parf", "config";
315 + device_type = "pci";
316 + linux,pci-domain = <2>;
317 + bus-range = <0x00 0xff>;
319 + #address-cells = <3>;
322 + ranges = <0x01000000 0x0 0x00000000 0x20200000 0x0 0x100000>,
323 + <0x02000000 0x0 0x20300000 0x20300000 0x0 0x7d00000>;
325 + interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
326 + <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
327 + <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
328 + <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
329 + <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
330 + <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
331 + <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
332 + <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
333 + interrupt-names = "msi0",
342 + #interrupt-cells = <1>;
343 + interrupt-map-mask = <0 0 0 0x7>;
344 + interrupt-map = <0 0 0 1 &intc 0 0 164 IRQ_TYPE_LEVEL_HIGH>,
345 + <0 0 0 2 &intc 0 0 165 IRQ_TYPE_LEVEL_HIGH>,
346 + <0 0 0 3 &intc 0 0 186 IRQ_TYPE_LEVEL_HIGH>,
347 + <0 0 0 4 &intc 0 0 187 IRQ_TYPE_LEVEL_HIGH>;
349 + clocks = <&gcc GCC_PCIE2_AXI_M_CLK>,
350 + <&gcc GCC_PCIE2_AXI_S_CLK>,
351 + <&gcc GCC_PCIE2_AXI_S_BRIDGE_CLK>,
352 + <&gcc GCC_PCIE2_RCHNG_CLK>,
353 + <&gcc GCC_PCIE2_AHB_CLK>,
354 + <&gcc GCC_PCIE2_AUX_CLK>;
355 + clock-names = "axi_m",
362 + resets = <&gcc GCC_PCIE2_PIPE_ARES>,
363 + <&gcc GCC_PCIE2_CORE_STICKY_ARES>,
364 + <&gcc GCC_PCIE2_AXI_S_STICKY_ARES>,
365 + <&gcc GCC_PCIE2_AXI_S_ARES>,
366 + <&gcc GCC_PCIE2_AXI_M_STICKY_ARES>,
367 + <&gcc GCC_PCIE2_AXI_M_ARES>,
368 + <&gcc GCC_PCIE2_AUX_ARES>,
369 + <&gcc GCC_PCIE2_AHB_ARES>;
370 + reset-names = "pipe",
379 + phys = <&pcie2_phy>;
380 + phy-names = "pciephy";
381 + interconnects = <&gcc MASTER_ANOC_PCIE2 &gcc SLAVE_ANOC_PCIE2>,
382 + <&gcc MASTER_SNOC_PCIE2 &gcc SLAVE_SNOC_PCIE2>;
383 + interconnect-names = "pcie-mem", "cpu-pcie";
384 + status = "disabled";
387 + pcie0: pci@28000000 {
388 + compatible = "qcom,pcie-ipq9574";
389 + reg = <0x28000000 0xf1d>,
391 + <0x28001000 0x1000>,
392 + <0x00080000 0x4000>,
393 + <0x28100000 0x1000>;
394 + reg-names = "dbi", "elbi", "atu", "parf", "config";
395 + device_type = "pci";
396 + linux,pci-domain = <0>;
397 + bus-range = <0x00 0xff>;
399 + #address-cells = <3>;
402 + ranges = <0x01000000 0x0 0x00000000 0x28200000 0x0 0x100000>,
403 + <0x02000000 0x0 0x28300000 0x28300000 0x0 0x7d00000>;
404 + interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
405 + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
406 + <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
407 + <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
408 + <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
409 + <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
410 + <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
411 + <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
412 + interrupt-names = "msi0",
421 + #interrupt-cells = <1>;
422 + interrupt-map-mask = <0 0 0 0x7>;
423 + interrupt-map = <0 0 0 1 &intc 0 0 75 IRQ_TYPE_LEVEL_HIGH>,
424 + <0 0 0 2 &intc 0 0 78 IRQ_TYPE_LEVEL_HIGH>,
425 + <0 0 0 3 &intc 0 0 79 IRQ_TYPE_LEVEL_HIGH>,
426 + <0 0 0 4 &intc 0 0 83 IRQ_TYPE_LEVEL_HIGH>;
428 + clocks = <&gcc GCC_PCIE0_AXI_M_CLK>,
429 + <&gcc GCC_PCIE0_AXI_S_CLK>,
430 + <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
431 + <&gcc GCC_PCIE0_RCHNG_CLK>,
432 + <&gcc GCC_PCIE0_AHB_CLK>,
433 + <&gcc GCC_PCIE0_AUX_CLK>;
434 + clock-names = "axi_m",
441 + resets = <&gcc GCC_PCIE0_PIPE_ARES>,
442 + <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
443 + <&gcc GCC_PCIE0_AXI_S_STICKY_ARES>,
444 + <&gcc GCC_PCIE0_AXI_S_ARES>,
445 + <&gcc GCC_PCIE0_AXI_M_STICKY_ARES>,
446 + <&gcc GCC_PCIE0_AXI_M_ARES>,
447 + <&gcc GCC_PCIE0_AUX_ARES>,
448 + <&gcc GCC_PCIE0_AHB_ARES>;
449 + reset-names = "pipe",
458 + phys = <&pcie0_phy>;
459 + phy-names = "pciephy";
460 + interconnects = <&gcc MASTER_ANOC_PCIE0 &gcc SLAVE_ANOC_PCIE0>,
461 + <&gcc MASTER_SNOC_PCIE0 &gcc SLAVE_SNOC_PCIE0>;
462 + interconnect-names = "pcie-mem", "cpu-pcie";
463 + status = "disabled";