blob: 5d42de829e75f18c0f35479e8390c690de62b266 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
4 */
5
6#include <dt-bindings/interrupt-controller/arm-gic.h>
7#include <dt-bindings/clock/qcom,gcc-ipq8074.h>
8
9/ {
10 #address-cells = <2>;
11 #size-cells = <2>;
12
13 model = "Qualcomm Technologies, Inc. IPQ8074";
14 compatible = "qcom,ipq8074";
15 interrupt-parent = <&intc>;
16
17 clocks {
18 sleep_clk: sleep_clk {
19 compatible = "fixed-clock";
20 clock-frequency = <32768>;
21 #clock-cells = <0>;
22 };
23
24 xo: xo {
25 compatible = "fixed-clock";
26 clock-frequency = <19200000>;
27 #clock-cells = <0>;
28 };
29 };
30
31 cpus {
32 #address-cells = <1>;
33 #size-cells = <0>;
34
35 CPU0: cpu@0 {
36 device_type = "cpu";
37 compatible = "arm,cortex-a53";
38 reg = <0x0>;
39 next-level-cache = <&L2_0>;
40 enable-method = "psci";
41 };
42
43 CPU1: cpu@1 {
44 device_type = "cpu";
45 compatible = "arm,cortex-a53";
46 enable-method = "psci";
47 reg = <0x1>;
48 next-level-cache = <&L2_0>;
49 };
50
51 CPU2: cpu@2 {
52 device_type = "cpu";
53 compatible = "arm,cortex-a53";
54 enable-method = "psci";
55 reg = <0x2>;
56 next-level-cache = <&L2_0>;
57 };
58
59 CPU3: cpu@3 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a53";
62 enable-method = "psci";
63 reg = <0x3>;
64 next-level-cache = <&L2_0>;
65 };
66
67 L2_0: l2-cache {
68 compatible = "cache";
69 cache-level = <2>;
70 cache-unified;
71 };
72 };
73
74 pmu {
75 compatible = "arm,cortex-a53-pmu";
76 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
77 };
78
79 psci {
80 compatible = "arm,psci-1.0";
81 method = "smc";
82 };
83
84 reserved-memory {
85 #address-cells = <2>;
86 #size-cells = <2>;
87 ranges;
88
89 bootloader@4a600000 {
90 reg = <0x0 0x4a600000 0x0 0x400000>;
91 no-map;
92 };
93
94 sbl@4aa00000 {
95 reg = <0x0 0x4aa00000 0x0 0x100000>;
96 no-map;
97 };
98
99 smem@4ab00000 {
100 compatible = "qcom,smem";
101 reg = <0x0 0x4ab00000 0x0 0x100000>;
102 no-map;
103
104 hwlocks = <&tcsr_mutex 3>;
105 };
106
107 memory@4ac00000 {
108 reg = <0x0 0x4ac00000 0x0 0x400000>;
109 no-map;
110 };
111 };
112
113 firmware {
114 scm {
115 compatible = "qcom,scm-ipq8074", "qcom,scm";
116 qcom,dload-mode = <&tcsr 0x6100>;
117 };
118 };
119
120 soc: soc@0 {
121 #address-cells = <1>;
122 #size-cells = <1>;
123 ranges = <0 0 0 0xffffffff>;
124 compatible = "simple-bus";
125
126 ssphy_1: phy@58000 {
127 compatible = "qcom,ipq8074-qmp-usb3-phy";
Tom Rini93743d22024-04-01 09:08:13 -0400128 reg = <0x00058000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -0500129
130 clocks = <&gcc GCC_USB1_AUX_CLK>,
Tom Rini93743d22024-04-01 09:08:13 -0400131 <&xo>,
132 <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
133 <&gcc GCC_USB1_PIPE_CLK>;
134 clock-names = "aux",
135 "ref",
136 "cfg_ahb",
137 "pipe";
138 clock-output-names = "usb3phy_1_cc_pipe_clk";
139 #clock-cells = <0>;
140 #phy-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500141
142 resets = <&gcc GCC_USB1_PHY_BCR>,
Tom Rini93743d22024-04-01 09:08:13 -0400143 <&gcc GCC_USB3PHY_1_PHY_BCR>;
144 reset-names = "phy",
145 "phy_phy";
Tom Rini53633a82024-02-29 12:33:36 -0500146
Tom Rini93743d22024-04-01 09:08:13 -0400147 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500148 };
149
150 qusb_phy_1: phy@59000 {
151 compatible = "qcom,ipq8074-qusb2-phy";
152 reg = <0x00059000 0x180>;
153 #phy-cells = <0>;
154
155 clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
156 <&xo>;
157 clock-names = "cfg_ahb", "ref";
158
159 resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
160 status = "disabled";
161 };
162
163 ssphy_0: phy@78000 {
164 compatible = "qcom,ipq8074-qmp-usb3-phy";
Tom Rini93743d22024-04-01 09:08:13 -0400165 reg = <0x00078000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -0500166
167 clocks = <&gcc GCC_USB0_AUX_CLK>,
Tom Rini93743d22024-04-01 09:08:13 -0400168 <&xo>,
169 <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
170 <&gcc GCC_USB0_PIPE_CLK>;
171 clock-names = "aux",
172 "ref",
173 "cfg_ahb",
174 "pipe";
175 clock-output-names = "usb3phy_0_cc_pipe_clk";
176 #clock-cells = <0>;
177 #phy-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500178
179 resets = <&gcc GCC_USB0_PHY_BCR>,
Tom Rini93743d22024-04-01 09:08:13 -0400180 <&gcc GCC_USB3PHY_0_PHY_BCR>;
181 reset-names = "phy",
182 "phy_phy";
Tom Rini53633a82024-02-29 12:33:36 -0500183
Tom Rini93743d22024-04-01 09:08:13 -0400184 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500185 };
186
187 qusb_phy_0: phy@79000 {
188 compatible = "qcom,ipq8074-qusb2-phy";
189 reg = <0x00079000 0x180>;
190 #phy-cells = <0>;
191
192 clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
193 <&xo>;
194 clock-names = "cfg_ahb", "ref";
195
196 resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
197 status = "disabled";
198 };
199
200 pcie_qmp0: phy@84000 {
201 compatible = "qcom,ipq8074-qmp-gen3-pcie-phy";
202 reg = <0x00084000 0x1000>;
203
204 clocks = <&gcc GCC_PCIE0_AUX_CLK>,
205 <&gcc GCC_PCIE0_AHB_CLK>,
206 <&gcc GCC_PCIE0_PIPE_CLK>;
207 clock-names = "aux",
208 "cfg_ahb",
209 "pipe";
210
211 clock-output-names = "pcie20_phy0_pipe_clk";
212 #clock-cells = <0>;
213
214 #phy-cells = <0>;
215
216 resets = <&gcc GCC_PCIE0_PHY_BCR>,
217 <&gcc GCC_PCIE0PHY_PHY_BCR>;
218 reset-names = "phy",
219 "common";
220 status = "disabled";
221 };
222
223 pcie_qmp1: phy@8e000 {
224 compatible = "qcom,ipq8074-qmp-pcie-phy";
225 reg = <0x0008e000 0x1000>;
226
227 clocks = <&gcc GCC_PCIE1_AUX_CLK>,
228 <&gcc GCC_PCIE1_AHB_CLK>,
229 <&gcc GCC_PCIE1_PIPE_CLK>;
230 clock-names = "aux",
231 "cfg_ahb",
232 "pipe";
233
234 clock-output-names = "pcie20_phy1_pipe_clk";
235 #clock-cells = <0>;
236
237 #phy-cells = <0>;
238
239 resets = <&gcc GCC_PCIE1_PHY_BCR>,
240 <&gcc GCC_PCIE1PHY_PHY_BCR>;
241 reset-names = "phy",
242 "common";
243 status = "disabled";
244 };
245
246 mdio: mdio@90000 {
247 compatible = "qcom,ipq8074-mdio", "qcom,ipq4019-mdio";
248 reg = <0x00090000 0x64>;
249 #address-cells = <1>;
250 #size-cells = <0>;
251
252 clocks = <&gcc GCC_MDIO_AHB_CLK>;
253 clock-names = "gcc_mdio_ahb_clk";
254
Tom Rini6bb92fc2024-05-20 09:54:58 -0600255 clock-frequency = <6250000>;
256
Tom Rini53633a82024-02-29 12:33:36 -0500257 status = "disabled";
258 };
259
260 qfprom: efuse@a4000 {
261 compatible = "qcom,ipq8074-qfprom", "qcom,qfprom";
262 reg = <0x000a4000 0x2000>;
263 #address-cells = <1>;
264 #size-cells = <1>;
265 };
266
267 prng: rng@e3000 {
268 compatible = "qcom,prng-ee";
269 reg = <0x000e3000 0x1000>;
270 clocks = <&gcc GCC_PRNG_AHB_CLK>;
271 clock-names = "core";
272 status = "disabled";
273 };
274
275 tsens: thermal-sensor@4a9000 {
276 compatible = "qcom,ipq8074-tsens";
277 reg = <0x4a9000 0x1000>, /* TM */
278 <0x4a8000 0x1000>; /* SROT */
279 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
280 interrupt-names = "combined";
281 #qcom,sensors = <16>;
282 #thermal-sensor-cells = <1>;
283 };
284
285 cryptobam: dma-controller@704000 {
286 compatible = "qcom,bam-v1.7.0";
287 reg = <0x00704000 0x20000>;
288 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
289 clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
290 clock-names = "bam_clk";
291 #dma-cells = <1>;
292 qcom,ee = <1>;
293 qcom,controlled-remotely;
294 status = "disabled";
295 };
296
297 crypto: crypto@73a000 {
298 compatible = "qcom,crypto-v5.1";
299 reg = <0x0073a000 0x6000>;
300 clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
301 <&gcc GCC_CRYPTO_AXI_CLK>,
302 <&gcc GCC_CRYPTO_CLK>;
303 clock-names = "iface", "bus", "core";
304 dmas = <&cryptobam 2>, <&cryptobam 3>;
305 dma-names = "rx", "tx";
306 status = "disabled";
307 };
308
309 tlmm: pinctrl@1000000 {
310 compatible = "qcom,ipq8074-pinctrl";
311 reg = <0x01000000 0x300000>;
312 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
313 gpio-controller;
314 gpio-ranges = <&tlmm 0 0 70>;
315 #gpio-cells = <2>;
316 interrupt-controller;
317 #interrupt-cells = <2>;
318
319 serial_4_pins: serial4-state {
320 pins = "gpio23", "gpio24";
321 function = "blsp4_uart1";
322 drive-strength = <8>;
323 bias-disable;
324 };
325
Tom Rini762f85b2024-07-20 11:15:10 -0600326 serial_5_pins: serial5-state {
327 pins = "gpio9", "gpio16";
328 function = "blsp5_uart";
329 drive-strength = <8>;
330 bias-disable;
331 };
332
Tom Rini53633a82024-02-29 12:33:36 -0500333 i2c_0_pins: i2c-0-state {
334 pins = "gpio42", "gpio43";
335 function = "blsp1_i2c";
336 drive-strength = <8>;
337 bias-disable;
338 };
339
340 spi_0_pins: spi-0-state {
341 pins = "gpio38", "gpio39", "gpio40", "gpio41";
342 function = "blsp0_spi";
343 drive-strength = <8>;
344 bias-disable;
345 };
346
347 hsuart_pins: hsuart-state {
348 pins = "gpio46", "gpio47", "gpio48", "gpio49";
349 function = "blsp2_uart";
350 drive-strength = <8>;
351 bias-disable;
352 };
353
354 qpic_pins: qpic-state {
355 pins = "gpio1", "gpio3", "gpio4",
356 "gpio5", "gpio6", "gpio7",
357 "gpio8", "gpio10", "gpio11",
358 "gpio12", "gpio13", "gpio14",
Tom Rini762f85b2024-07-20 11:15:10 -0600359 "gpio15", "gpio17";
Tom Rini53633a82024-02-29 12:33:36 -0500360 function = "qpic";
361 drive-strength = <8>;
362 bias-disable;
363 };
364 };
365
366 gcc: gcc@1800000 {
367 compatible = "qcom,gcc-ipq8074";
368 reg = <0x01800000 0x80000>;
Tom Rini93743d22024-04-01 09:08:13 -0400369 clocks = <&xo>,
370 <&sleep_clk>,
371 <&pcie_qmp0>,
372 <&pcie_qmp1>;
373 clock-names = "xo",
374 "sleep_clk",
375 "pcie0_pipe",
376 "pcie1_pipe";
Tom Rini53633a82024-02-29 12:33:36 -0500377 #clock-cells = <1>;
378 #power-domain-cells = <1>;
379 #reset-cells = <1>;
380 };
381
382 tcsr_mutex: hwlock@1905000 {
383 compatible = "qcom,tcsr-mutex";
384 reg = <0x01905000 0x20000>;
385 #hwlock-cells = <1>;
386 };
387
388 tcsr: syscon@1937000 {
389 compatible = "qcom,tcsr-ipq8074", "syscon";
390 reg = <0x01937000 0x21000>;
391 };
392
393 spmi_bus: spmi@200f000 {
394 compatible = "qcom,spmi-pmic-arb";
395 reg = <0x0200f000 0x001000>,
396 <0x02400000 0x800000>,
397 <0x02c00000 0x800000>,
398 <0x03800000 0x200000>,
399 <0x0200a000 0x000700>;
400 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
401 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
402 interrupt-names = "periph_irq";
403 qcom,ee = <0>;
404 qcom,channel = <0>;
405 #address-cells = <2>;
406 #size-cells = <0>;
407 interrupt-controller;
408 #interrupt-cells = <4>;
409 };
410
411 sdhc_1: mmc@7824900 {
Tom Rini93743d22024-04-01 09:08:13 -0400412 compatible = "qcom,ipq8074-sdhci", "qcom,sdhci-msm-v4";
Tom Rini53633a82024-02-29 12:33:36 -0500413 reg = <0x7824900 0x500>, <0x7824000 0x800>;
414 reg-names = "hc", "core";
415
416 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
417 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
418 interrupt-names = "hc_irq", "pwr_irq";
419
420 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
421 <&gcc GCC_SDCC1_APPS_CLK>,
422 <&xo>;
423 clock-names = "iface", "core", "xo";
424 resets = <&gcc GCC_SDCC1_BCR>;
425 max-frequency = <384000000>;
426 mmc-ddr-1_8v;
427 mmc-hs200-1_8v;
428 mmc-hs400-1_8v;
429 bus-width = <8>;
430
431 status = "disabled";
432 };
433
434 blsp_dma: dma-controller@7884000 {
435 compatible = "qcom,bam-v1.7.0";
436 reg = <0x07884000 0x2b000>;
437 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
438 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
439 clock-names = "bam_clk";
440 #dma-cells = <1>;
441 qcom,ee = <0>;
442 };
443
444 blsp1_uart1: serial@78af000 {
445 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
446 reg = <0x078af000 0x200>;
447 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
448 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
449 <&gcc GCC_BLSP1_AHB_CLK>;
450 clock-names = "core", "iface";
451 status = "disabled";
452 };
453
454 blsp1_uart3: serial@78b1000 {
455 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
456 reg = <0x078b1000 0x200>;
457 interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
458 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
459 <&gcc GCC_BLSP1_AHB_CLK>;
460 clock-names = "core", "iface";
461 dmas = <&blsp_dma 4>,
462 <&blsp_dma 5>;
463 dma-names = "tx", "rx";
464 pinctrl-0 = <&hsuart_pins>;
465 pinctrl-names = "default";
466 status = "disabled";
467 };
468
469 blsp1_uart5: serial@78b3000 {
470 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
471 reg = <0x078b3000 0x200>;
472 interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
473 clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
474 <&gcc GCC_BLSP1_AHB_CLK>;
475 clock-names = "core", "iface";
476 pinctrl-0 = <&serial_4_pins>;
477 pinctrl-names = "default";
478 status = "disabled";
479 };
480
Tom Rini762f85b2024-07-20 11:15:10 -0600481 blsp1_uart6: serial@78b4000 {
482 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
483 reg = <0x078b4000 0x200>;
484 interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
485 clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
486 <&gcc GCC_BLSP1_AHB_CLK>;
487 clock-names = "core", "iface";
488 pinctrl-0 = <&serial_5_pins>;
489 pinctrl-names = "default";
490 status = "disabled";
491 };
492
Tom Rini53633a82024-02-29 12:33:36 -0500493 blsp1_spi1: spi@78b5000 {
494 compatible = "qcom,spi-qup-v2.2.1";
495 #address-cells = <1>;
496 #size-cells = <0>;
497 reg = <0x078b5000 0x600>;
498 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
499 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
500 <&gcc GCC_BLSP1_AHB_CLK>;
501 clock-names = "core", "iface";
502 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
503 dma-names = "tx", "rx";
504 pinctrl-0 = <&spi_0_pins>;
505 pinctrl-names = "default";
506 status = "disabled";
507 };
508
509 blsp1_i2c2: i2c@78b6000 {
510 compatible = "qcom,i2c-qup-v2.2.1";
511 #address-cells = <1>;
512 #size-cells = <0>;
513 reg = <0x078b6000 0x600>;
514 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
515 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
516 <&gcc GCC_BLSP1_AHB_CLK>;
517 clock-names = "core", "iface";
518 clock-frequency = <400000>;
519 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
520 dma-names = "tx", "rx";
521 pinctrl-0 = <&i2c_0_pins>;
522 pinctrl-names = "default";
523 status = "disabled";
524 };
525
526 blsp1_i2c3: i2c@78b7000 {
527 compatible = "qcom,i2c-qup-v2.2.1";
528 #address-cells = <1>;
529 #size-cells = <0>;
530 reg = <0x078b7000 0x600>;
531 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
532 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
533 <&gcc GCC_BLSP1_AHB_CLK>;
534 clock-names = "core", "iface";
535 clock-frequency = <100000>;
536 dmas = <&blsp_dma 16>, <&blsp_dma 17>;
537 dma-names = "tx", "rx";
538 status = "disabled";
539 };
540
Tom Rini93743d22024-04-01 09:08:13 -0400541 blsp1_spi4: spi@78b8000 {
542 compatible = "qcom,spi-qup-v2.2.1";
543 #address-cells = <1>;
544 #size-cells = <0>;
545 reg = <0x78b8000 0x600>;
546 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
547 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
548 <&gcc GCC_BLSP1_AHB_CLK>;
549 clock-names = "core", "iface";
550 dmas = <&blsp_dma 18>, <&blsp_dma 19>;
551 dma-names = "tx", "rx";
552 status = "disabled";
553 };
554
Tom Rini53633a82024-02-29 12:33:36 -0500555 blsp1_i2c5: i2c@78b9000 {
556 compatible = "qcom,i2c-qup-v2.2.1";
557 #address-cells = <1>;
558 #size-cells = <0>;
559 reg = <0x78b9000 0x600>;
560 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
561 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
562 <&gcc GCC_BLSP1_AHB_CLK>;
563 clock-names = "core", "iface";
564 clock-frequency = <400000>;
565 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
566 dma-names = "tx", "rx";
567 status = "disabled";
568 };
569
570 blsp1_spi5: spi@78b9000 {
571 compatible = "qcom,spi-qup-v2.2.1";
572 #address-cells = <1>;
573 #size-cells = <0>;
574 reg = <0x78b9000 0x600>;
575 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
576 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
577 <&gcc GCC_BLSP1_AHB_CLK>;
578 clock-names = "core", "iface";
579 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
580 dma-names = "tx", "rx";
581 status = "disabled";
582 };
583
584 blsp1_i2c6: i2c@78ba000 {
585 compatible = "qcom,i2c-qup-v2.2.1";
586 #address-cells = <1>;
587 #size-cells = <0>;
588 reg = <0x078ba000 0x600>;
589 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
591 <&gcc GCC_BLSP1_AHB_CLK>;
592 clock-names = "core", "iface";
593 clock-frequency = <100000>;
594 dmas = <&blsp_dma 22>, <&blsp_dma 23>;
595 dma-names = "tx", "rx";
596 status = "disabled";
597 };
598
599 qpic_bam: dma-controller@7984000 {
600 compatible = "qcom,bam-v1.7.0";
601 reg = <0x07984000 0x1a000>;
602 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
603 clocks = <&gcc GCC_QPIC_AHB_CLK>;
604 clock-names = "bam_clk";
605 #dma-cells = <1>;
606 qcom,ee = <0>;
607 status = "disabled";
608 };
609
610 qpic_nand: nand-controller@79b0000 {
611 compatible = "qcom,ipq8074-nand";
612 reg = <0x079b0000 0x10000>;
613 #address-cells = <1>;
614 #size-cells = <0>;
615 clocks = <&gcc GCC_QPIC_CLK>,
616 <&gcc GCC_QPIC_AHB_CLK>;
617 clock-names = "core", "aon";
618
619 dmas = <&qpic_bam 0>,
620 <&qpic_bam 1>,
621 <&qpic_bam 2>;
622 dma-names = "tx", "rx", "cmd";
623 pinctrl-0 = <&qpic_pins>;
624 pinctrl-names = "default";
625 status = "disabled";
626 };
627
628 usb_0: usb@8af8800 {
629 compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
630 reg = <0x08af8800 0x400>;
631 #address-cells = <1>;
632 #size-cells = <1>;
633 ranges;
634
635 clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
636 <&gcc GCC_USB0_MASTER_CLK>,
637 <&gcc GCC_USB0_SLEEP_CLK>,
638 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
639 clock-names = "cfg_noc",
640 "core",
641 "sleep",
642 "mock_utmi";
643
644 assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
645 <&gcc GCC_USB0_MASTER_CLK>,
646 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
647 assigned-clock-rates = <133330000>,
648 <133330000>,
649 <19200000>;
650
Tom Rini6bb92fc2024-05-20 09:54:58 -0600651 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
652 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
653 <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
654 interrupt-names = "pwr_event",
655 "qusb2_phy",
656 "ss_phy_irq";
657
Tom Rini53633a82024-02-29 12:33:36 -0500658 power-domains = <&gcc USB0_GDSC>;
659
660 resets = <&gcc GCC_USB0_BCR>;
661 status = "disabled";
662
663 dwc_0: usb@8a00000 {
664 compatible = "snps,dwc3";
665 reg = <0x8a00000 0xcd00>;
666 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400667 phys = <&qusb_phy_0>, <&ssphy_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500668 phy-names = "usb2-phy", "usb3-phy";
669 snps,is-utmi-l1-suspend;
670 snps,hird-threshold = /bits/ 8 <0x0>;
671 snps,dis_u2_susphy_quirk;
672 snps,dis_u3_susphy_quirk;
673 dr_mode = "host";
674 };
675 };
676
677 usb_1: usb@8cf8800 {
678 compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
679 reg = <0x08cf8800 0x400>;
680 #address-cells = <1>;
681 #size-cells = <1>;
682 ranges;
683
684 clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
685 <&gcc GCC_USB1_MASTER_CLK>,
686 <&gcc GCC_USB1_SLEEP_CLK>,
687 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
688 clock-names = "cfg_noc",
689 "core",
690 "sleep",
691 "mock_utmi";
692
693 assigned-clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
694 <&gcc GCC_USB1_MASTER_CLK>,
695 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
696 assigned-clock-rates = <133330000>,
697 <133330000>,
698 <19200000>;
699
Tom Rini6bb92fc2024-05-20 09:54:58 -0600700 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
701 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
702 <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
703 interrupt-names = "pwr_event",
704 "qusb2_phy",
705 "ss_phy_irq";
706
Tom Rini53633a82024-02-29 12:33:36 -0500707 power-domains = <&gcc USB1_GDSC>;
708
709 resets = <&gcc GCC_USB1_BCR>;
710 status = "disabled";
711
712 dwc_1: usb@8c00000 {
713 compatible = "snps,dwc3";
714 reg = <0x8c00000 0xcd00>;
715 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400716 phys = <&qusb_phy_1>, <&ssphy_1>;
Tom Rini53633a82024-02-29 12:33:36 -0500717 phy-names = "usb2-phy", "usb3-phy";
718 snps,is-utmi-l1-suspend;
719 snps,hird-threshold = /bits/ 8 <0x0>;
720 snps,dis_u2_susphy_quirk;
721 snps,dis_u3_susphy_quirk;
722 dr_mode = "host";
723 };
724 };
725
726 intc: interrupt-controller@b000000 {
727 compatible = "qcom,msm-qgic2";
728 #address-cells = <1>;
729 #size-cells = <1>;
730 interrupt-controller;
731 #interrupt-cells = <3>;
732 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
733 ranges = <0 0xb00a000 0xffd>;
734
735 v2m@0 {
736 compatible = "arm,gic-v2m-frame";
737 msi-controller;
738 reg = <0x0 0xffd>;
739 };
740 };
741
742 watchdog: watchdog@b017000 {
743 compatible = "qcom,kpss-wdt";
744 reg = <0xb017000 0x1000>;
745 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
746 clocks = <&sleep_clk>;
747 timeout-sec = <30>;
748 };
749
750 apcs_glb: mailbox@b111000 {
751 compatible = "qcom,ipq8074-apcs-apps-global",
752 "qcom,ipq6018-apcs-apps-global";
753 reg = <0x0b111000 0x1000>;
Tom Rini93743d22024-04-01 09:08:13 -0400754 clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
755 clock-names = "pll", "xo", "gpll0";
Tom Rini53633a82024-02-29 12:33:36 -0500756
757 #clock-cells = <1>;
758 #mbox-cells = <1>;
759 };
760
761 a53pll: clock@b116000 {
762 compatible = "qcom,ipq8074-a53pll";
763 reg = <0x0b116000 0x40>;
764 #clock-cells = <0>;
765 clocks = <&xo>;
766 clock-names = "xo";
767 };
768
769 timer@b120000 {
770 #address-cells = <1>;
771 #size-cells = <1>;
772 ranges;
773 compatible = "arm,armv7-timer-mem";
774 reg = <0x0b120000 0x1000>;
775
776 frame@b120000 {
777 frame-number = <0>;
778 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
779 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
780 reg = <0x0b121000 0x1000>,
781 <0x0b122000 0x1000>;
782 };
783
784 frame@b123000 {
785 frame-number = <1>;
786 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
787 reg = <0x0b123000 0x1000>;
788 status = "disabled";
789 };
790
791 frame@b124000 {
792 frame-number = <2>;
793 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
794 reg = <0x0b124000 0x1000>;
795 status = "disabled";
796 };
797
798 frame@b125000 {
799 frame-number = <3>;
800 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
801 reg = <0x0b125000 0x1000>;
802 status = "disabled";
803 };
804
805 frame@b126000 {
806 frame-number = <4>;
807 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
808 reg = <0x0b126000 0x1000>;
809 status = "disabled";
810 };
811
812 frame@b127000 {
813 frame-number = <5>;
814 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
815 reg = <0x0b127000 0x1000>;
816 status = "disabled";
817 };
818
819 frame@b128000 {
820 frame-number = <6>;
821 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
822 reg = <0x0b128000 0x1000>;
823 status = "disabled";
824 };
825 };
826
Tom Rini93743d22024-04-01 09:08:13 -0400827 pcie1: pcie@10000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500828 compatible = "qcom,pcie-ipq8074";
829 reg = <0x10000000 0xf1d>,
830 <0x10000f20 0xa8>,
831 <0x00088000 0x2000>,
832 <0x10100000 0x1000>;
833 reg-names = "dbi", "elbi", "parf", "config";
834 device_type = "pci";
835 linux,pci-domain = <1>;
836 bus-range = <0x00 0xff>;
837 num-lanes = <1>;
838 max-link-speed = <2>;
839 #address-cells = <3>;
840 #size-cells = <2>;
841
842 phys = <&pcie_qmp1>;
843 phy-names = "pciephy";
844
845 ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
846 <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
847
848 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
849 interrupt-names = "msi";
850 #interrupt-cells = <1>;
851 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400852 interrupt-map = <0 0 0 1 &intc 0 0 142
Tom Rini53633a82024-02-29 12:33:36 -0500853 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Tom Rini93743d22024-04-01 09:08:13 -0400854 <0 0 0 2 &intc 0 0 143
Tom Rini53633a82024-02-29 12:33:36 -0500855 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
Tom Rini93743d22024-04-01 09:08:13 -0400856 <0 0 0 3 &intc 0 0 144
Tom Rini53633a82024-02-29 12:33:36 -0500857 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
Tom Rini93743d22024-04-01 09:08:13 -0400858 <0 0 0 4 &intc 0 0 145
Tom Rini53633a82024-02-29 12:33:36 -0500859 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
860
861 clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
862 <&gcc GCC_PCIE1_AXI_M_CLK>,
863 <&gcc GCC_PCIE1_AXI_S_CLK>,
864 <&gcc GCC_PCIE1_AHB_CLK>,
865 <&gcc GCC_PCIE1_AUX_CLK>;
866 clock-names = "iface",
867 "axi_m",
868 "axi_s",
869 "ahb",
870 "aux";
871 resets = <&gcc GCC_PCIE1_PIPE_ARES>,
872 <&gcc GCC_PCIE1_SLEEP_ARES>,
873 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
874 <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
875 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
876 <&gcc GCC_PCIE1_AHB_ARES>,
877 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>;
878 reset-names = "pipe",
879 "sleep",
880 "sticky",
881 "axi_m",
882 "axi_s",
883 "ahb",
884 "axi_m_sticky";
885 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600886
887 pcie@0 {
888 device_type = "pci";
889 reg = <0x0 0x0 0x0 0x0 0x0>;
890 bus-range = <0x01 0xff>;
891
892 #address-cells = <3>;
893 #size-cells = <2>;
894 ranges;
895 };
Tom Rini53633a82024-02-29 12:33:36 -0500896 };
897
Tom Rini93743d22024-04-01 09:08:13 -0400898 pcie0: pcie@20000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500899 compatible = "qcom,pcie-ipq8074-gen3";
900 reg = <0x20000000 0xf1d>,
901 <0x20000f20 0xa8>,
902 <0x20001000 0x1000>,
903 <0x00080000 0x4000>,
904 <0x20100000 0x1000>;
905 reg-names = "dbi", "elbi", "atu", "parf", "config";
906 device_type = "pci";
907 linux,pci-domain = <0>;
908 bus-range = <0x00 0xff>;
909 num-lanes = <1>;
910 max-link-speed = <3>;
911 #address-cells = <3>;
912 #size-cells = <2>;
913
914 phys = <&pcie_qmp0>;
915 phy-names = "pciephy";
916
917 ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
918 <0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
919
920 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
921 interrupt-names = "msi";
922 #interrupt-cells = <1>;
923 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400924 interrupt-map = <0 0 0 1 &intc 0 0 75
Tom Rini53633a82024-02-29 12:33:36 -0500925 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Tom Rini93743d22024-04-01 09:08:13 -0400926 <0 0 0 2 &intc 0 0 78
Tom Rini53633a82024-02-29 12:33:36 -0500927 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
Tom Rini93743d22024-04-01 09:08:13 -0400928 <0 0 0 3 &intc 0 0 79
Tom Rini53633a82024-02-29 12:33:36 -0500929 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
Tom Rini93743d22024-04-01 09:08:13 -0400930 <0 0 0 4 &intc 0 0 83
Tom Rini53633a82024-02-29 12:33:36 -0500931 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
932
933 clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
934 <&gcc GCC_PCIE0_AXI_M_CLK>,
935 <&gcc GCC_PCIE0_AXI_S_CLK>,
936 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
937 <&gcc GCC_PCIE0_RCHNG_CLK>;
938 clock-names = "iface",
939 "axi_m",
940 "axi_s",
941 "axi_bridge",
942 "rchng";
943
944 resets = <&gcc GCC_PCIE0_PIPE_ARES>,
945 <&gcc GCC_PCIE0_SLEEP_ARES>,
946 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
947 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
948 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
949 <&gcc GCC_PCIE0_AHB_ARES>,
950 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
951 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
952 reset-names = "pipe",
953 "sleep",
954 "sticky",
955 "axi_m",
956 "axi_s",
957 "ahb",
958 "axi_m_sticky",
959 "axi_s_sticky";
960 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600961
962 pcie@0 {
963 device_type = "pci";
964 reg = <0x0 0x0 0x0 0x0 0x0>;
965 bus-range = <0x01 0xff>;
966
967 #address-cells = <3>;
968 #size-cells = <2>;
969 ranges;
970 };
Tom Rini53633a82024-02-29 12:33:36 -0500971 };
972 };
973
974 timer {
975 compatible = "arm,armv8-timer";
976 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
977 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
978 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
979 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
980 };
981
982 thermal-zones {
983 nss-top-thermal {
984 polling-delay-passive = <250>;
985 polling-delay = <1000>;
986
987 thermal-sensors = <&tsens 4>;
988
989 trips {
990 nss-top-crit {
991 temperature = <110000>;
992 hysteresis = <1000>;
993 type = "critical";
994 };
995 };
996 };
997
998 nss0-thermal {
999 polling-delay-passive = <250>;
1000 polling-delay = <1000>;
1001
1002 thermal-sensors = <&tsens 5>;
1003
1004 trips {
1005 nss-0-crit {
1006 temperature = <110000>;
1007 hysteresis = <1000>;
1008 type = "critical";
1009 };
1010 };
1011 };
1012
1013 nss1-thermal {
1014 polling-delay-passive = <250>;
1015 polling-delay = <1000>;
1016
1017 thermal-sensors = <&tsens 6>;
1018
1019 trips {
1020 nss-1-crit {
1021 temperature = <110000>;
1022 hysteresis = <1000>;
1023 type = "critical";
1024 };
1025 };
1026 };
1027
1028 wcss-phya0-thermal {
1029 polling-delay-passive = <250>;
1030 polling-delay = <1000>;
1031
1032 thermal-sensors = <&tsens 7>;
1033
1034 trips {
1035 wcss-phya0-crit {
1036 temperature = <110000>;
1037 hysteresis = <1000>;
1038 type = "critical";
1039 };
1040 };
1041 };
1042
1043 wcss-phya1-thermal {
1044 polling-delay-passive = <250>;
1045 polling-delay = <1000>;
1046
1047 thermal-sensors = <&tsens 8>;
1048
1049 trips {
1050 wcss-phya1-crit {
1051 temperature = <110000>;
1052 hysteresis = <1000>;
1053 type = "critical";
1054 };
1055 };
1056 };
1057
1058 cpu0_thermal: cpu0-thermal {
1059 polling-delay-passive = <250>;
1060 polling-delay = <1000>;
1061
1062 thermal-sensors = <&tsens 9>;
1063
1064 trips {
1065 cpu0-crit {
1066 temperature = <110000>;
1067 hysteresis = <1000>;
1068 type = "critical";
1069 };
1070 };
1071 };
1072
1073 cpu1_thermal: cpu1-thermal {
1074 polling-delay-passive = <250>;
1075 polling-delay = <1000>;
1076
1077 thermal-sensors = <&tsens 10>;
1078
1079 trips {
1080 cpu1-crit {
1081 temperature = <110000>;
1082 hysteresis = <1000>;
1083 type = "critical";
1084 };
1085 };
1086 };
1087
1088 cpu2_thermal: cpu2-thermal {
1089 polling-delay-passive = <250>;
1090 polling-delay = <1000>;
1091
1092 thermal-sensors = <&tsens 11>;
1093
1094 trips {
1095 cpu2-crit {
1096 temperature = <110000>;
1097 hysteresis = <1000>;
1098 type = "critical";
1099 };
1100 };
1101 };
1102
1103 cpu3_thermal: cpu3-thermal {
1104 polling-delay-passive = <250>;
1105 polling-delay = <1000>;
1106
1107 thermal-sensors = <&tsens 12>;
1108
1109 trips {
1110 cpu3-crit {
1111 temperature = <110000>;
1112 hysteresis = <1000>;
1113 type = "critical";
1114 };
1115 };
1116 };
1117
1118 cluster_thermal: cluster-thermal {
1119 polling-delay-passive = <250>;
1120 polling-delay = <1000>;
1121
1122 thermal-sensors = <&tsens 13>;
1123
1124 trips {
1125 cluster-crit {
1126 temperature = <110000>;
1127 hysteresis = <1000>;
1128 type = "critical";
1129 };
1130 };
1131 };
1132
1133 wcss-phyb0-thermal {
1134 polling-delay-passive = <250>;
1135 polling-delay = <1000>;
1136
1137 thermal-sensors = <&tsens 14>;
1138
1139 trips {
1140 wcss-phyb0-crit {
1141 temperature = <110000>;
1142 hysteresis = <1000>;
1143 type = "critical";
1144 };
1145 };
1146 };
1147
1148 wcss-phyb1-thermal {
1149 polling-delay-passive = <250>;
1150 polling-delay = <1000>;
1151
1152 thermal-sensors = <&tsens 15>;
1153
1154 trips {
1155 wcss-phyb1-crit {
1156 temperature = <110000>;
1157 hysteresis = <1000>;
1158 type = "critical";
1159 };
1160 };
1161 };
1162 };
1163};