blob: 284a4553070faa94960d12e6b08fadf8cd2c6b06 [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
Tom Rini6b642ac2024-10-01 12:20:28 -0600366 gcc: clock-controller@1800000 {
Tom Rini53633a82024-02-29 12:33:36 -0500367 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";
Tom Rini6b642ac2024-10-01 12:20:28 -0600669 snps,parkmode-disable-ss-quirk;
Tom Rini53633a82024-02-29 12:33:36 -0500670 snps,is-utmi-l1-suspend;
671 snps,hird-threshold = /bits/ 8 <0x0>;
672 snps,dis_u2_susphy_quirk;
673 snps,dis_u3_susphy_quirk;
674 dr_mode = "host";
675 };
676 };
677
678 usb_1: usb@8cf8800 {
679 compatible = "qcom,ipq8074-dwc3", "qcom,dwc3";
680 reg = <0x08cf8800 0x400>;
681 #address-cells = <1>;
682 #size-cells = <1>;
683 ranges;
684
685 clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
686 <&gcc GCC_USB1_MASTER_CLK>,
687 <&gcc GCC_USB1_SLEEP_CLK>,
688 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
689 clock-names = "cfg_noc",
690 "core",
691 "sleep",
692 "mock_utmi";
693
694 assigned-clocks = <&gcc GCC_SYS_NOC_USB1_AXI_CLK>,
695 <&gcc GCC_USB1_MASTER_CLK>,
696 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
697 assigned-clock-rates = <133330000>,
698 <133330000>,
699 <19200000>;
700
Tom Rini6bb92fc2024-05-20 09:54:58 -0600701 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
702 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
703 <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
704 interrupt-names = "pwr_event",
705 "qusb2_phy",
706 "ss_phy_irq";
707
Tom Rini53633a82024-02-29 12:33:36 -0500708 power-domains = <&gcc USB1_GDSC>;
709
710 resets = <&gcc GCC_USB1_BCR>;
711 status = "disabled";
712
713 dwc_1: usb@8c00000 {
714 compatible = "snps,dwc3";
715 reg = <0x8c00000 0xcd00>;
716 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400717 phys = <&qusb_phy_1>, <&ssphy_1>;
Tom Rini53633a82024-02-29 12:33:36 -0500718 phy-names = "usb2-phy", "usb3-phy";
Tom Rini6b642ac2024-10-01 12:20:28 -0600719 snps,parkmode-disable-ss-quirk;
Tom Rini53633a82024-02-29 12:33:36 -0500720 snps,is-utmi-l1-suspend;
721 snps,hird-threshold = /bits/ 8 <0x0>;
722 snps,dis_u2_susphy_quirk;
723 snps,dis_u3_susphy_quirk;
724 dr_mode = "host";
725 };
726 };
727
728 intc: interrupt-controller@b000000 {
729 compatible = "qcom,msm-qgic2";
730 #address-cells = <1>;
731 #size-cells = <1>;
732 interrupt-controller;
733 #interrupt-cells = <3>;
734 reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
735 ranges = <0 0xb00a000 0xffd>;
736
737 v2m@0 {
738 compatible = "arm,gic-v2m-frame";
739 msi-controller;
740 reg = <0x0 0xffd>;
741 };
742 };
743
744 watchdog: watchdog@b017000 {
745 compatible = "qcom,kpss-wdt";
746 reg = <0xb017000 0x1000>;
747 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
748 clocks = <&sleep_clk>;
749 timeout-sec = <30>;
750 };
751
752 apcs_glb: mailbox@b111000 {
753 compatible = "qcom,ipq8074-apcs-apps-global",
754 "qcom,ipq6018-apcs-apps-global";
755 reg = <0x0b111000 0x1000>;
Tom Rini93743d22024-04-01 09:08:13 -0400756 clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
757 clock-names = "pll", "xo", "gpll0";
Tom Rini53633a82024-02-29 12:33:36 -0500758
759 #clock-cells = <1>;
760 #mbox-cells = <1>;
761 };
762
763 a53pll: clock@b116000 {
764 compatible = "qcom,ipq8074-a53pll";
765 reg = <0x0b116000 0x40>;
766 #clock-cells = <0>;
767 clocks = <&xo>;
768 clock-names = "xo";
769 };
770
771 timer@b120000 {
772 #address-cells = <1>;
773 #size-cells = <1>;
774 ranges;
775 compatible = "arm,armv7-timer-mem";
776 reg = <0x0b120000 0x1000>;
777
778 frame@b120000 {
779 frame-number = <0>;
780 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
781 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
782 reg = <0x0b121000 0x1000>,
783 <0x0b122000 0x1000>;
784 };
785
786 frame@b123000 {
787 frame-number = <1>;
788 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
789 reg = <0x0b123000 0x1000>;
790 status = "disabled";
791 };
792
793 frame@b124000 {
794 frame-number = <2>;
795 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
796 reg = <0x0b124000 0x1000>;
797 status = "disabled";
798 };
799
800 frame@b125000 {
801 frame-number = <3>;
802 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
803 reg = <0x0b125000 0x1000>;
804 status = "disabled";
805 };
806
807 frame@b126000 {
808 frame-number = <4>;
809 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
810 reg = <0x0b126000 0x1000>;
811 status = "disabled";
812 };
813
814 frame@b127000 {
815 frame-number = <5>;
816 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
817 reg = <0x0b127000 0x1000>;
818 status = "disabled";
819 };
820
821 frame@b128000 {
822 frame-number = <6>;
823 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
824 reg = <0x0b128000 0x1000>;
825 status = "disabled";
826 };
827 };
828
Tom Rini93743d22024-04-01 09:08:13 -0400829 pcie1: pcie@10000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500830 compatible = "qcom,pcie-ipq8074";
831 reg = <0x10000000 0xf1d>,
832 <0x10000f20 0xa8>,
833 <0x00088000 0x2000>,
834 <0x10100000 0x1000>;
835 reg-names = "dbi", "elbi", "parf", "config";
836 device_type = "pci";
837 linux,pci-domain = <1>;
838 bus-range = <0x00 0xff>;
839 num-lanes = <1>;
840 max-link-speed = <2>;
841 #address-cells = <3>;
842 #size-cells = <2>;
843
844 phys = <&pcie_qmp1>;
845 phy-names = "pciephy";
846
847 ranges = <0x81000000 0x0 0x00000000 0x10200000 0x0 0x10000>, /* I/O */
848 <0x82000000 0x0 0x10220000 0x10220000 0x0 0xfde0000>; /* MEM */
849
850 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
851 interrupt-names = "msi";
852 #interrupt-cells = <1>;
853 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400854 interrupt-map = <0 0 0 1 &intc 0 0 142
Tom Rini53633a82024-02-29 12:33:36 -0500855 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Tom Rini93743d22024-04-01 09:08:13 -0400856 <0 0 0 2 &intc 0 0 143
Tom Rini53633a82024-02-29 12:33:36 -0500857 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
Tom Rini93743d22024-04-01 09:08:13 -0400858 <0 0 0 3 &intc 0 0 144
Tom Rini53633a82024-02-29 12:33:36 -0500859 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
Tom Rini93743d22024-04-01 09:08:13 -0400860 <0 0 0 4 &intc 0 0 145
Tom Rini53633a82024-02-29 12:33:36 -0500861 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
862
863 clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
864 <&gcc GCC_PCIE1_AXI_M_CLK>,
865 <&gcc GCC_PCIE1_AXI_S_CLK>,
866 <&gcc GCC_PCIE1_AHB_CLK>,
867 <&gcc GCC_PCIE1_AUX_CLK>;
868 clock-names = "iface",
869 "axi_m",
870 "axi_s",
871 "ahb",
872 "aux";
873 resets = <&gcc GCC_PCIE1_PIPE_ARES>,
874 <&gcc GCC_PCIE1_SLEEP_ARES>,
875 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
876 <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
877 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
878 <&gcc GCC_PCIE1_AHB_ARES>,
879 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>;
880 reset-names = "pipe",
881 "sleep",
882 "sticky",
883 "axi_m",
884 "axi_s",
885 "ahb",
886 "axi_m_sticky";
887 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600888
889 pcie@0 {
890 device_type = "pci";
891 reg = <0x0 0x0 0x0 0x0 0x0>;
892 bus-range = <0x01 0xff>;
893
894 #address-cells = <3>;
895 #size-cells = <2>;
896 ranges;
897 };
Tom Rini53633a82024-02-29 12:33:36 -0500898 };
899
Tom Rini93743d22024-04-01 09:08:13 -0400900 pcie0: pcie@20000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500901 compatible = "qcom,pcie-ipq8074-gen3";
902 reg = <0x20000000 0xf1d>,
903 <0x20000f20 0xa8>,
904 <0x20001000 0x1000>,
905 <0x00080000 0x4000>,
906 <0x20100000 0x1000>;
907 reg-names = "dbi", "elbi", "atu", "parf", "config";
908 device_type = "pci";
909 linux,pci-domain = <0>;
910 bus-range = <0x00 0xff>;
911 num-lanes = <1>;
912 max-link-speed = <3>;
913 #address-cells = <3>;
914 #size-cells = <2>;
915
916 phys = <&pcie_qmp0>;
917 phy-names = "pciephy";
918
919 ranges = <0x81000000 0x0 0x00000000 0x20200000 0x0 0x10000>, /* I/O */
920 <0x82000000 0x0 0x20220000 0x20220000 0x0 0xfde0000>; /* MEM */
921
922 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
923 interrupt-names = "msi";
924 #interrupt-cells = <1>;
925 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400926 interrupt-map = <0 0 0 1 &intc 0 0 75
Tom Rini53633a82024-02-29 12:33:36 -0500927 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
Tom Rini93743d22024-04-01 09:08:13 -0400928 <0 0 0 2 &intc 0 0 78
Tom Rini53633a82024-02-29 12:33:36 -0500929 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
Tom Rini93743d22024-04-01 09:08:13 -0400930 <0 0 0 3 &intc 0 0 79
Tom Rini53633a82024-02-29 12:33:36 -0500931 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
Tom Rini93743d22024-04-01 09:08:13 -0400932 <0 0 0 4 &intc 0 0 83
Tom Rini53633a82024-02-29 12:33:36 -0500933 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
934
935 clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
936 <&gcc GCC_PCIE0_AXI_M_CLK>,
937 <&gcc GCC_PCIE0_AXI_S_CLK>,
938 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
939 <&gcc GCC_PCIE0_RCHNG_CLK>;
940 clock-names = "iface",
941 "axi_m",
942 "axi_s",
943 "axi_bridge",
944 "rchng";
945
946 resets = <&gcc GCC_PCIE0_PIPE_ARES>,
947 <&gcc GCC_PCIE0_SLEEP_ARES>,
948 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
949 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
950 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
951 <&gcc GCC_PCIE0_AHB_ARES>,
952 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
953 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
954 reset-names = "pipe",
955 "sleep",
956 "sticky",
957 "axi_m",
958 "axi_s",
959 "ahb",
960 "axi_m_sticky",
961 "axi_s_sticky";
962 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600963
964 pcie@0 {
965 device_type = "pci";
966 reg = <0x0 0x0 0x0 0x0 0x0>;
967 bus-range = <0x01 0xff>;
968
969 #address-cells = <3>;
970 #size-cells = <2>;
971 ranges;
972 };
Tom Rini53633a82024-02-29 12:33:36 -0500973 };
974 };
975
976 timer {
977 compatible = "arm,armv8-timer";
978 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
979 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
980 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
981 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
982 };
983
984 thermal-zones {
985 nss-top-thermal {
986 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500987
988 thermal-sensors = <&tsens 4>;
989
990 trips {
991 nss-top-crit {
992 temperature = <110000>;
993 hysteresis = <1000>;
994 type = "critical";
995 };
996 };
997 };
998
999 nss0-thermal {
1000 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001001
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>;
Tom Rini53633a82024-02-29 12:33:36 -05001015
1016 thermal-sensors = <&tsens 6>;
1017
1018 trips {
1019 nss-1-crit {
1020 temperature = <110000>;
1021 hysteresis = <1000>;
1022 type = "critical";
1023 };
1024 };
1025 };
1026
1027 wcss-phya0-thermal {
1028 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001029
1030 thermal-sensors = <&tsens 7>;
1031
1032 trips {
1033 wcss-phya0-crit {
1034 temperature = <110000>;
1035 hysteresis = <1000>;
1036 type = "critical";
1037 };
1038 };
1039 };
1040
1041 wcss-phya1-thermal {
1042 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001043
1044 thermal-sensors = <&tsens 8>;
1045
1046 trips {
1047 wcss-phya1-crit {
1048 temperature = <110000>;
1049 hysteresis = <1000>;
1050 type = "critical";
1051 };
1052 };
1053 };
1054
1055 cpu0_thermal: cpu0-thermal {
1056 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001057
1058 thermal-sensors = <&tsens 9>;
1059
1060 trips {
1061 cpu0-crit {
1062 temperature = <110000>;
1063 hysteresis = <1000>;
1064 type = "critical";
1065 };
1066 };
1067 };
1068
1069 cpu1_thermal: cpu1-thermal {
1070 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001071
1072 thermal-sensors = <&tsens 10>;
1073
1074 trips {
1075 cpu1-crit {
1076 temperature = <110000>;
1077 hysteresis = <1000>;
1078 type = "critical";
1079 };
1080 };
1081 };
1082
1083 cpu2_thermal: cpu2-thermal {
1084 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001085
1086 thermal-sensors = <&tsens 11>;
1087
1088 trips {
1089 cpu2-crit {
1090 temperature = <110000>;
1091 hysteresis = <1000>;
1092 type = "critical";
1093 };
1094 };
1095 };
1096
1097 cpu3_thermal: cpu3-thermal {
1098 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001099
1100 thermal-sensors = <&tsens 12>;
1101
1102 trips {
1103 cpu3-crit {
1104 temperature = <110000>;
1105 hysteresis = <1000>;
1106 type = "critical";
1107 };
1108 };
1109 };
1110
1111 cluster_thermal: cluster-thermal {
1112 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001113
1114 thermal-sensors = <&tsens 13>;
1115
1116 trips {
1117 cluster-crit {
1118 temperature = <110000>;
1119 hysteresis = <1000>;
1120 type = "critical";
1121 };
1122 };
1123 };
1124
1125 wcss-phyb0-thermal {
1126 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001127
1128 thermal-sensors = <&tsens 14>;
1129
1130 trips {
1131 wcss-phyb0-crit {
1132 temperature = <110000>;
1133 hysteresis = <1000>;
1134 type = "critical";
1135 };
1136 };
1137 };
1138
1139 wcss-phyb1-thermal {
1140 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -05001141
1142 thermal-sensors = <&tsens 15>;
1143
1144 trips {
1145 wcss-phyb1-crit {
1146 temperature = <110000>;
1147 hysteresis = <1000>;
1148 type = "critical";
1149 };
1150 };
1151 };
1152 };
1153};