blob: e5b89753aa5c12ca1d9e9165c88f5044a2af2924 [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
326 i2c_0_pins: i2c-0-state {
327 pins = "gpio42", "gpio43";
328 function = "blsp1_i2c";
329 drive-strength = <8>;
330 bias-disable;
331 };
332
333 spi_0_pins: spi-0-state {
334 pins = "gpio38", "gpio39", "gpio40", "gpio41";
335 function = "blsp0_spi";
336 drive-strength = <8>;
337 bias-disable;
338 };
339
340 hsuart_pins: hsuart-state {
341 pins = "gpio46", "gpio47", "gpio48", "gpio49";
342 function = "blsp2_uart";
343 drive-strength = <8>;
344 bias-disable;
345 };
346
347 qpic_pins: qpic-state {
348 pins = "gpio1", "gpio3", "gpio4",
349 "gpio5", "gpio6", "gpio7",
350 "gpio8", "gpio10", "gpio11",
351 "gpio12", "gpio13", "gpio14",
352 "gpio15", "gpio16", "gpio17";
353 function = "qpic";
354 drive-strength = <8>;
355 bias-disable;
356 };
357 };
358
359 gcc: gcc@1800000 {
360 compatible = "qcom,gcc-ipq8074";
361 reg = <0x01800000 0x80000>;
Tom Rini93743d22024-04-01 09:08:13 -0400362 clocks = <&xo>,
363 <&sleep_clk>,
364 <&pcie_qmp0>,
365 <&pcie_qmp1>;
366 clock-names = "xo",
367 "sleep_clk",
368 "pcie0_pipe",
369 "pcie1_pipe";
Tom Rini53633a82024-02-29 12:33:36 -0500370 #clock-cells = <1>;
371 #power-domain-cells = <1>;
372 #reset-cells = <1>;
373 };
374
375 tcsr_mutex: hwlock@1905000 {
376 compatible = "qcom,tcsr-mutex";
377 reg = <0x01905000 0x20000>;
378 #hwlock-cells = <1>;
379 };
380
381 tcsr: syscon@1937000 {
382 compatible = "qcom,tcsr-ipq8074", "syscon";
383 reg = <0x01937000 0x21000>;
384 };
385
386 spmi_bus: spmi@200f000 {
387 compatible = "qcom,spmi-pmic-arb";
388 reg = <0x0200f000 0x001000>,
389 <0x02400000 0x800000>,
390 <0x02c00000 0x800000>,
391 <0x03800000 0x200000>,
392 <0x0200a000 0x000700>;
393 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
394 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
395 interrupt-names = "periph_irq";
396 qcom,ee = <0>;
397 qcom,channel = <0>;
398 #address-cells = <2>;
399 #size-cells = <0>;
400 interrupt-controller;
401 #interrupt-cells = <4>;
402 };
403
404 sdhc_1: mmc@7824900 {
Tom Rini93743d22024-04-01 09:08:13 -0400405 compatible = "qcom,ipq8074-sdhci", "qcom,sdhci-msm-v4";
Tom Rini53633a82024-02-29 12:33:36 -0500406 reg = <0x7824900 0x500>, <0x7824000 0x800>;
407 reg-names = "hc", "core";
408
409 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
410 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
411 interrupt-names = "hc_irq", "pwr_irq";
412
413 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
414 <&gcc GCC_SDCC1_APPS_CLK>,
415 <&xo>;
416 clock-names = "iface", "core", "xo";
417 resets = <&gcc GCC_SDCC1_BCR>;
418 max-frequency = <384000000>;
419 mmc-ddr-1_8v;
420 mmc-hs200-1_8v;
421 mmc-hs400-1_8v;
422 bus-width = <8>;
423
424 status = "disabled";
425 };
426
427 blsp_dma: dma-controller@7884000 {
428 compatible = "qcom,bam-v1.7.0";
429 reg = <0x07884000 0x2b000>;
430 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
432 clock-names = "bam_clk";
433 #dma-cells = <1>;
434 qcom,ee = <0>;
435 };
436
437 blsp1_uart1: serial@78af000 {
438 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
439 reg = <0x078af000 0x200>;
440 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
442 <&gcc GCC_BLSP1_AHB_CLK>;
443 clock-names = "core", "iface";
444 status = "disabled";
445 };
446
447 blsp1_uart3: serial@78b1000 {
448 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
449 reg = <0x078b1000 0x200>;
450 interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
451 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
452 <&gcc GCC_BLSP1_AHB_CLK>;
453 clock-names = "core", "iface";
454 dmas = <&blsp_dma 4>,
455 <&blsp_dma 5>;
456 dma-names = "tx", "rx";
457 pinctrl-0 = <&hsuart_pins>;
458 pinctrl-names = "default";
459 status = "disabled";
460 };
461
462 blsp1_uart5: serial@78b3000 {
463 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
464 reg = <0x078b3000 0x200>;
465 interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
466 clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
467 <&gcc GCC_BLSP1_AHB_CLK>;
468 clock-names = "core", "iface";
469 pinctrl-0 = <&serial_4_pins>;
470 pinctrl-names = "default";
471 status = "disabled";
472 };
473
474 blsp1_spi1: spi@78b5000 {
475 compatible = "qcom,spi-qup-v2.2.1";
476 #address-cells = <1>;
477 #size-cells = <0>;
478 reg = <0x078b5000 0x600>;
479 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
480 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
481 <&gcc GCC_BLSP1_AHB_CLK>;
482 clock-names = "core", "iface";
483 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
484 dma-names = "tx", "rx";
485 pinctrl-0 = <&spi_0_pins>;
486 pinctrl-names = "default";
487 status = "disabled";
488 };
489
490 blsp1_i2c2: i2c@78b6000 {
491 compatible = "qcom,i2c-qup-v2.2.1";
492 #address-cells = <1>;
493 #size-cells = <0>;
494 reg = <0x078b6000 0x600>;
495 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
496 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
497 <&gcc GCC_BLSP1_AHB_CLK>;
498 clock-names = "core", "iface";
499 clock-frequency = <400000>;
500 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
501 dma-names = "tx", "rx";
502 pinctrl-0 = <&i2c_0_pins>;
503 pinctrl-names = "default";
504 status = "disabled";
505 };
506
507 blsp1_i2c3: i2c@78b7000 {
508 compatible = "qcom,i2c-qup-v2.2.1";
509 #address-cells = <1>;
510 #size-cells = <0>;
511 reg = <0x078b7000 0x600>;
512 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
513 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
514 <&gcc GCC_BLSP1_AHB_CLK>;
515 clock-names = "core", "iface";
516 clock-frequency = <100000>;
517 dmas = <&blsp_dma 16>, <&blsp_dma 17>;
518 dma-names = "tx", "rx";
519 status = "disabled";
520 };
521
Tom Rini93743d22024-04-01 09:08:13 -0400522 blsp1_spi4: spi@78b8000 {
523 compatible = "qcom,spi-qup-v2.2.1";
524 #address-cells = <1>;
525 #size-cells = <0>;
526 reg = <0x78b8000 0x600>;
527 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
528 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
529 <&gcc GCC_BLSP1_AHB_CLK>;
530 clock-names = "core", "iface";
531 dmas = <&blsp_dma 18>, <&blsp_dma 19>;
532 dma-names = "tx", "rx";
533 status = "disabled";
534 };
535
Tom Rini53633a82024-02-29 12:33:36 -0500536 blsp1_i2c5: i2c@78b9000 {
537 compatible = "qcom,i2c-qup-v2.2.1";
538 #address-cells = <1>;
539 #size-cells = <0>;
540 reg = <0x78b9000 0x600>;
541 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
543 <&gcc GCC_BLSP1_AHB_CLK>;
544 clock-names = "core", "iface";
545 clock-frequency = <400000>;
546 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
547 dma-names = "tx", "rx";
548 status = "disabled";
549 };
550
551 blsp1_spi5: spi@78b9000 {
552 compatible = "qcom,spi-qup-v2.2.1";
553 #address-cells = <1>;
554 #size-cells = <0>;
555 reg = <0x78b9000 0x600>;
556 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
557 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
558 <&gcc GCC_BLSP1_AHB_CLK>;
559 clock-names = "core", "iface";
560 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
561 dma-names = "tx", "rx";
562 status = "disabled";
563 };
564
565 blsp1_i2c6: i2c@78ba000 {
566 compatible = "qcom,i2c-qup-v2.2.1";
567 #address-cells = <1>;
568 #size-cells = <0>;
569 reg = <0x078ba000 0x600>;
570 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
571 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
572 <&gcc GCC_BLSP1_AHB_CLK>;
573 clock-names = "core", "iface";
574 clock-frequency = <100000>;
575 dmas = <&blsp_dma 22>, <&blsp_dma 23>;
576 dma-names = "tx", "rx";
577 status = "disabled";
578 };
579
580 qpic_bam: dma-controller@7984000 {
581 compatible = "qcom,bam-v1.7.0";
582 reg = <0x07984000 0x1a000>;
583 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
584 clocks = <&gcc GCC_QPIC_AHB_CLK>;
585 clock-names = "bam_clk";
586 #dma-cells = <1>;
587 qcom,ee = <0>;
588 status = "disabled";
589 };
590
591 qpic_nand: nand-controller@79b0000 {
592 compatible = "qcom,ipq8074-nand";
593 reg = <0x079b0000 0x10000>;
594 #address-cells = <1>;
595 #size-cells = <0>;
596 clocks = <&gcc GCC_QPIC_CLK>,
597 <&gcc GCC_QPIC_AHB_CLK>;
598 clock-names = "core", "aon";
599
600 dmas = <&qpic_bam 0>,
601 <&qpic_bam 1>,
602 <&qpic_bam 2>;
603 dma-names = "tx", "rx", "cmd";
604 pinctrl-0 = <&qpic_pins>;
605 pinctrl-names = "default";
606 status = "disabled";
607 };
608
609 usb_0: usb@8af8800 {
610 compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
611 reg = <0x08af8800 0x400>;
612 #address-cells = <1>;
613 #size-cells = <1>;
614 ranges;
615
616 clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
617 <&gcc GCC_USB0_MASTER_CLK>,
618 <&gcc GCC_USB0_SLEEP_CLK>,
619 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
620 clock-names = "cfg_noc",
621 "core",
622 "sleep",
623 "mock_utmi";
624
625 assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
626 <&gcc GCC_USB0_MASTER_CLK>,
627 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
628 assigned-clock-rates = <133330000>,
629 <133330000>,
630 <19200000>;
631
Tom Rini6bb92fc2024-05-20 09:54:58 -0600632 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
633 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
634 <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
635 interrupt-names = "pwr_event",
636 "qusb2_phy",
637 "ss_phy_irq";
638
Tom Rini53633a82024-02-29 12:33:36 -0500639 power-domains = <&gcc USB0_GDSC>;
640
641 resets = <&gcc GCC_USB0_BCR>;
642 status = "disabled";
643
644 dwc_0: usb@8a00000 {
645 compatible = "snps,dwc3";
646 reg = <0x8a00000 0xcd00>;
647 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400648 phys = <&qusb_phy_0>, <&ssphy_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500649 phy-names = "usb2-phy", "usb3-phy";
650 snps,is-utmi-l1-suspend;
651 snps,hird-threshold = /bits/ 8 <0x0>;
652 snps,dis_u2_susphy_quirk;
653 snps,dis_u3_susphy_quirk;
654 dr_mode = "host";
655 };
656 };
657
658 usb_1: usb@8cf8800 {
659 compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
660 reg = <0x08cf8800 0x400>;
661 #address-cells = <1>;
662 #size-cells = <1>;
663 ranges;
664
665 clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
666 <&gcc GCC_USB1_MASTER_CLK>,
667 <&gcc GCC_USB1_SLEEP_CLK>,
668 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
669 clock-names = "cfg_noc",
670 "core",
671 "sleep",
672 "mock_utmi";
673
674 assigned-clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
675 <&gcc GCC_USB1_MASTER_CLK>,
676 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
677 assigned-clock-rates = <133330000>,
678 <133330000>,
679 <19200000>;
680
Tom Rini6bb92fc2024-05-20 09:54:58 -0600681 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
682 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
683 <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
684 interrupt-names = "pwr_event",
685 "qusb2_phy",
686 "ss_phy_irq";
687
Tom Rini53633a82024-02-29 12:33:36 -0500688 power-domains = <&gcc USB1_GDSC>;
689
690 resets = <&gcc GCC_USB1_BCR>;
691 status = "disabled";
692
693 dwc_1: usb@8c00000 {
694 compatible = "snps,dwc3";
695 reg = <0x8c00000 0xcd00>;
696 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400697 phys = <&qusb_phy_1>, <&ssphy_1>;
Tom Rini53633a82024-02-29 12:33:36 -0500698 phy-names = "usb2-phy", "usb3-phy";
699 snps,is-utmi-l1-suspend;
700 snps,hird-threshold = /bits/ 8 <0x0>;
701 snps,dis_u2_susphy_quirk;
702 snps,dis_u3_susphy_quirk;
703 dr_mode = "host";
704 };
705 };
706
707 intc: interrupt-controller@b000000 {
708 compatible = "qcom,msm-qgic2";
709 #address-cells = <1>;
710 #size-cells = <1>;
711 interrupt-controller;
712 #interrupt-cells = <3>;
713 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
714 ranges = <0 0xb00a000 0xffd>;
715
716 v2m@0 {
717 compatible = "arm,gic-v2m-frame";
718 msi-controller;
719 reg = <0x0 0xffd>;
720 };
721 };
722
723 watchdog: watchdog@b017000 {
724 compatible = "qcom,kpss-wdt";
725 reg = <0xb017000 0x1000>;
726 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
727 clocks = <&sleep_clk>;
728 timeout-sec = <30>;
729 };
730
731 apcs_glb: mailbox@b111000 {
732 compatible = "qcom,ipq8074-apcs-apps-global",
733 "qcom,ipq6018-apcs-apps-global";
734 reg = <0x0b111000 0x1000>;
Tom Rini93743d22024-04-01 09:08:13 -0400735 clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
736 clock-names = "pll", "xo", "gpll0";
Tom Rini53633a82024-02-29 12:33:36 -0500737
738 #clock-cells = <1>;
739 #mbox-cells = <1>;
740 };
741
742 a53pll: clock@b116000 {
743 compatible = "qcom,ipq8074-a53pll";
744 reg = <0x0b116000 0x40>;
745 #clock-cells = <0>;
746 clocks = <&xo>;
747 clock-names = "xo";
748 };
749
750 timer@b120000 {
751 #address-cells = <1>;
752 #size-cells = <1>;
753 ranges;
754 compatible = "arm,armv7-timer-mem";
755 reg = <0x0b120000 0x1000>;
756
757 frame@b120000 {
758 frame-number = <0>;
759 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
760 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
761 reg = <0x0b121000 0x1000>,
762 <0x0b122000 0x1000>;
763 };
764
765 frame@b123000 {
766 frame-number = <1>;
767 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
768 reg = <0x0b123000 0x1000>;
769 status = "disabled";
770 };
771
772 frame@b124000 {
773 frame-number = <2>;
774 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
775 reg = <0x0b124000 0x1000>;
776 status = "disabled";
777 };
778
779 frame@b125000 {
780 frame-number = <3>;
781 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
782 reg = <0x0b125000 0x1000>;
783 status = "disabled";
784 };
785
786 frame@b126000 {
787 frame-number = <4>;
788 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
789 reg = <0x0b126000 0x1000>;
790 status = "disabled";
791 };
792
793 frame@b127000 {
794 frame-number = <5>;
795 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
796 reg = <0x0b127000 0x1000>;
797 status = "disabled";
798 };
799
800 frame@b128000 {
801 frame-number = <6>;
802 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
803 reg = <0x0b128000 0x1000>;
804 status = "disabled";
805 };
806 };
807
Tom Rini93743d22024-04-01 09:08:13 -0400808 pcie1: pcie@10000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500809 compatible = "qcom,pcie-ipq8074";
810 reg = <0x10000000 0xf1d>,
811 <0x10000f20 0xa8>,
812 <0x00088000 0x2000>,
813 <0x10100000 0x1000>;
814 reg-names = "dbi", "elbi", "parf", "config";
815 device_type = "pci";
816 linux,pci-domain = <1>;
817 bus-range = <0x00 0xff>;
818 num-lanes = <1>;
819 max-link-speed = <2>;
820 #address-cells = <3>;
821 #size-cells = <2>;
822
823 phys = <&pcie_qmp1>;
824 phy-names = "pciephy";
825
826 ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
827 <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
828
829 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
830 interrupt-names = "msi";
831 #interrupt-cells = <1>;
832 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400833 interrupt-map = <0 0 0 1 &intc 0 0 142
Tom Rini53633a82024-02-29 12:33:36 -0500834 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Tom Rini93743d22024-04-01 09:08:13 -0400835 <0 0 0 2 &intc 0 0 143
Tom Rini53633a82024-02-29 12:33:36 -0500836 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
Tom Rini93743d22024-04-01 09:08:13 -0400837 <0 0 0 3 &intc 0 0 144
Tom Rini53633a82024-02-29 12:33:36 -0500838 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
Tom Rini93743d22024-04-01 09:08:13 -0400839 <0 0 0 4 &intc 0 0 145
Tom Rini53633a82024-02-29 12:33:36 -0500840 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
841
842 clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
843 <&gcc GCC_PCIE1_AXI_M_CLK>,
844 <&gcc GCC_PCIE1_AXI_S_CLK>,
845 <&gcc GCC_PCIE1_AHB_CLK>,
846 <&gcc GCC_PCIE1_AUX_CLK>;
847 clock-names = "iface",
848 "axi_m",
849 "axi_s",
850 "ahb",
851 "aux";
852 resets = <&gcc GCC_PCIE1_PIPE_ARES>,
853 <&gcc GCC_PCIE1_SLEEP_ARES>,
854 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
855 <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
856 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
857 <&gcc GCC_PCIE1_AHB_ARES>,
858 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>;
859 reset-names = "pipe",
860 "sleep",
861 "sticky",
862 "axi_m",
863 "axi_s",
864 "ahb",
865 "axi_m_sticky";
866 status = "disabled";
867 };
868
Tom Rini93743d22024-04-01 09:08:13 -0400869 pcie0: pcie@20000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500870 compatible = "qcom,pcie-ipq8074-gen3";
871 reg = <0x20000000 0xf1d>,
872 <0x20000f20 0xa8>,
873 <0x20001000 0x1000>,
874 <0x00080000 0x4000>,
875 <0x20100000 0x1000>;
876 reg-names = "dbi", "elbi", "atu", "parf", "config";
877 device_type = "pci";
878 linux,pci-domain = <0>;
879 bus-range = <0x00 0xff>;
880 num-lanes = <1>;
881 max-link-speed = <3>;
882 #address-cells = <3>;
883 #size-cells = <2>;
884
885 phys = <&pcie_qmp0>;
886 phy-names = "pciephy";
887
888 ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
889 <0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
890
891 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
892 interrupt-names = "msi";
893 #interrupt-cells = <1>;
894 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400895 interrupt-map = <0 0 0 1 &intc 0 0 75
Tom Rini53633a82024-02-29 12:33:36 -0500896 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Tom Rini93743d22024-04-01 09:08:13 -0400897 <0 0 0 2 &intc 0 0 78
Tom Rini53633a82024-02-29 12:33:36 -0500898 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
Tom Rini93743d22024-04-01 09:08:13 -0400899 <0 0 0 3 &intc 0 0 79
Tom Rini53633a82024-02-29 12:33:36 -0500900 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
Tom Rini93743d22024-04-01 09:08:13 -0400901 <0 0 0 4 &intc 0 0 83
Tom Rini53633a82024-02-29 12:33:36 -0500902 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
903
904 clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
905 <&gcc GCC_PCIE0_AXI_M_CLK>,
906 <&gcc GCC_PCIE0_AXI_S_CLK>,
907 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
908 <&gcc GCC_PCIE0_RCHNG_CLK>;
909 clock-names = "iface",
910 "axi_m",
911 "axi_s",
912 "axi_bridge",
913 "rchng";
914
915 resets = <&gcc GCC_PCIE0_PIPE_ARES>,
916 <&gcc GCC_PCIE0_SLEEP_ARES>,
917 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
918 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
919 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
920 <&gcc GCC_PCIE0_AHB_ARES>,
921 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
922 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
923 reset-names = "pipe",
924 "sleep",
925 "sticky",
926 "axi_m",
927 "axi_s",
928 "ahb",
929 "axi_m_sticky",
930 "axi_s_sticky";
931 status = "disabled";
932 };
933 };
934
935 timer {
936 compatible = "arm,armv8-timer";
937 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
938 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
939 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
940 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
941 };
942
943 thermal-zones {
944 nss-top-thermal {
945 polling-delay-passive = <250>;
946 polling-delay = <1000>;
947
948 thermal-sensors = <&tsens 4>;
949
950 trips {
951 nss-top-crit {
952 temperature = <110000>;
953 hysteresis = <1000>;
954 type = "critical";
955 };
956 };
957 };
958
959 nss0-thermal {
960 polling-delay-passive = <250>;
961 polling-delay = <1000>;
962
963 thermal-sensors = <&tsens 5>;
964
965 trips {
966 nss-0-crit {
967 temperature = <110000>;
968 hysteresis = <1000>;
969 type = "critical";
970 };
971 };
972 };
973
974 nss1-thermal {
975 polling-delay-passive = <250>;
976 polling-delay = <1000>;
977
978 thermal-sensors = <&tsens 6>;
979
980 trips {
981 nss-1-crit {
982 temperature = <110000>;
983 hysteresis = <1000>;
984 type = "critical";
985 };
986 };
987 };
988
989 wcss-phya0-thermal {
990 polling-delay-passive = <250>;
991 polling-delay = <1000>;
992
993 thermal-sensors = <&tsens 7>;
994
995 trips {
996 wcss-phya0-crit {
997 temperature = <110000>;
998 hysteresis = <1000>;
999 type = "critical";
1000 };
1001 };
1002 };
1003
1004 wcss-phya1-thermal {
1005 polling-delay-passive = <250>;
1006 polling-delay = <1000>;
1007
1008 thermal-sensors = <&tsens 8>;
1009
1010 trips {
1011 wcss-phya1-crit {
1012 temperature = <110000>;
1013 hysteresis = <1000>;
1014 type = "critical";
1015 };
1016 };
1017 };
1018
1019 cpu0_thermal: cpu0-thermal {
1020 polling-delay-passive = <250>;
1021 polling-delay = <1000>;
1022
1023 thermal-sensors = <&tsens 9>;
1024
1025 trips {
1026 cpu0-crit {
1027 temperature = <110000>;
1028 hysteresis = <1000>;
1029 type = "critical";
1030 };
1031 };
1032 };
1033
1034 cpu1_thermal: cpu1-thermal {
1035 polling-delay-passive = <250>;
1036 polling-delay = <1000>;
1037
1038 thermal-sensors = <&tsens 10>;
1039
1040 trips {
1041 cpu1-crit {
1042 temperature = <110000>;
1043 hysteresis = <1000>;
1044 type = "critical";
1045 };
1046 };
1047 };
1048
1049 cpu2_thermal: cpu2-thermal {
1050 polling-delay-passive = <250>;
1051 polling-delay = <1000>;
1052
1053 thermal-sensors = <&tsens 11>;
1054
1055 trips {
1056 cpu2-crit {
1057 temperature = <110000>;
1058 hysteresis = <1000>;
1059 type = "critical";
1060 };
1061 };
1062 };
1063
1064 cpu3_thermal: cpu3-thermal {
1065 polling-delay-passive = <250>;
1066 polling-delay = <1000>;
1067
1068 thermal-sensors = <&tsens 12>;
1069
1070 trips {
1071 cpu3-crit {
1072 temperature = <110000>;
1073 hysteresis = <1000>;
1074 type = "critical";
1075 };
1076 };
1077 };
1078
1079 cluster_thermal: cluster-thermal {
1080 polling-delay-passive = <250>;
1081 polling-delay = <1000>;
1082
1083 thermal-sensors = <&tsens 13>;
1084
1085 trips {
1086 cluster-crit {
1087 temperature = <110000>;
1088 hysteresis = <1000>;
1089 type = "critical";
1090 };
1091 };
1092 };
1093
1094 wcss-phyb0-thermal {
1095 polling-delay-passive = <250>;
1096 polling-delay = <1000>;
1097
1098 thermal-sensors = <&tsens 14>;
1099
1100 trips {
1101 wcss-phyb0-crit {
1102 temperature = <110000>;
1103 hysteresis = <1000>;
1104 type = "critical";
1105 };
1106 };
1107 };
1108
1109 wcss-phyb1-thermal {
1110 polling-delay-passive = <250>;
1111 polling-delay = <1000>;
1112
1113 thermal-sensors = <&tsens 15>;
1114
1115 trips {
1116 wcss-phyb1-crit {
1117 temperature = <110000>;
1118 hysteresis = <1000>;
1119 type = "critical";
1120 };
1121 };
1122 };
1123 };
1124};