blob: 17ab6c4759580c28f09e6bb695e614a669f70df6 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * IPQ6018 SoC device tree source
4 *
5 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
6 */
7
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/clock/qcom,gcc-ipq6018.h>
10#include <dt-bindings/reset/qcom,gcc-ipq6018.h>
11#include <dt-bindings/clock/qcom,apss-ipq.h>
Tom Rini6bb92fc2024-05-20 09:54:58 -060012#include <dt-bindings/thermal/thermal.h>
Tom Rini53633a82024-02-29 12:33:36 -050013
14/ {
15 #address-cells = <2>;
16 #size-cells = <2>;
17 interrupt-parent = <&intc>;
18
19 clocks {
20 sleep_clk: sleep-clk {
21 compatible = "fixed-clock";
22 clock-frequency = <32000>;
23 #clock-cells = <0>;
24 };
25
26 xo: xo {
27 compatible = "fixed-clock";
28 clock-frequency = <24000000>;
29 #clock-cells = <0>;
30 };
31 };
32
33 cpus: cpus {
34 #address-cells = <1>;
35 #size-cells = <0>;
36
37 CPU0: cpu@0 {
38 device_type = "cpu";
39 compatible = "arm,cortex-a53";
40 reg = <0x0>;
41 enable-method = "psci";
42 next-level-cache = <&L2_0>;
43 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
44 clock-names = "cpu";
45 operating-points-v2 = <&cpu_opp_table>;
46 cpu-supply = <&ipq6018_s2>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060047 #cooling-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -050048 };
49
50 CPU1: cpu@1 {
51 device_type = "cpu";
52 compatible = "arm,cortex-a53";
53 enable-method = "psci";
54 reg = <0x1>;
55 next-level-cache = <&L2_0>;
56 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
57 clock-names = "cpu";
58 operating-points-v2 = <&cpu_opp_table>;
59 cpu-supply = <&ipq6018_s2>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060060 #cooling-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -050061 };
62
63 CPU2: cpu@2 {
64 device_type = "cpu";
65 compatible = "arm,cortex-a53";
66 enable-method = "psci";
67 reg = <0x2>;
68 next-level-cache = <&L2_0>;
69 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
70 clock-names = "cpu";
71 operating-points-v2 = <&cpu_opp_table>;
72 cpu-supply = <&ipq6018_s2>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060073 #cooling-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -050074 };
75
76 CPU3: cpu@3 {
77 device_type = "cpu";
78 compatible = "arm,cortex-a53";
79 enable-method = "psci";
80 reg = <0x3>;
81 next-level-cache = <&L2_0>;
82 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
83 clock-names = "cpu";
84 operating-points-v2 = <&cpu_opp_table>;
85 cpu-supply = <&ipq6018_s2>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060086 #cooling-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -050087 };
88
89 L2_0: l2-cache {
90 compatible = "cache";
91 cache-level = <2>;
92 cache-unified;
93 };
94 };
95
96 firmware {
97 scm {
98 compatible = "qcom,scm-ipq6018", "qcom,scm";
99 qcom,dload-mode = <&tcsr 0x6100>;
100 };
101 };
102
103 cpu_opp_table: opp-table-cpu {
Tom Rini93743d22024-04-01 09:08:13 -0400104 compatible = "operating-points-v2-kryo-cpu";
105 nvmem-cells = <&cpu_speed_bin>;
Tom Rini53633a82024-02-29 12:33:36 -0500106 opp-shared;
107
108 opp-864000000 {
109 opp-hz = /bits/ 64 <864000000>;
110 opp-microvolt = <725000>;
Tom Rini93743d22024-04-01 09:08:13 -0400111 opp-supported-hw = <0xf>;
Tom Rini53633a82024-02-29 12:33:36 -0500112 clock-latency-ns = <200000>;
113 };
114
115 opp-1056000000 {
116 opp-hz = /bits/ 64 <1056000000>;
117 opp-microvolt = <787500>;
Tom Rini93743d22024-04-01 09:08:13 -0400118 opp-supported-hw = <0xf>;
Tom Rini53633a82024-02-29 12:33:36 -0500119 clock-latency-ns = <200000>;
120 };
121
122 opp-1320000000 {
123 opp-hz = /bits/ 64 <1320000000>;
124 opp-microvolt = <862500>;
Tom Rini93743d22024-04-01 09:08:13 -0400125 opp-supported-hw = <0x3>;
Tom Rini53633a82024-02-29 12:33:36 -0500126 clock-latency-ns = <200000>;
127 };
128
129 opp-1440000000 {
130 opp-hz = /bits/ 64 <1440000000>;
131 opp-microvolt = <925000>;
Tom Rini93743d22024-04-01 09:08:13 -0400132 opp-supported-hw = <0x3>;
Tom Rini53633a82024-02-29 12:33:36 -0500133 clock-latency-ns = <200000>;
134 };
135
136 opp-1608000000 {
137 opp-hz = /bits/ 64 <1608000000>;
138 opp-microvolt = <987500>;
Tom Rini93743d22024-04-01 09:08:13 -0400139 opp-supported-hw = <0x1>;
Tom Rini53633a82024-02-29 12:33:36 -0500140 clock-latency-ns = <200000>;
141 };
142
143 opp-1800000000 {
144 opp-hz = /bits/ 64 <1800000000>;
145 opp-microvolt = <1062500>;
Tom Rini93743d22024-04-01 09:08:13 -0400146 opp-supported-hw = <0x1>;
Tom Rini53633a82024-02-29 12:33:36 -0500147 clock-latency-ns = <200000>;
148 };
149 };
150
151 pmuv8: pmu {
152 compatible = "arm,cortex-a53-pmu";
153 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
154 };
155
156 psci: psci {
157 compatible = "arm,psci-1.0";
158 method = "smc";
159 };
160
161 rpm: remoteproc {
162 compatible = "qcom,ipq6018-rpm-proc", "qcom,rpm-proc";
163
164 glink-edge {
165 compatible = "qcom,glink-rpm";
166 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
167 qcom,rpm-msg-ram = <&rpm_msg_ram>;
168 mboxes = <&apcs_glb 0>;
169
170 rpm_requests: rpm-requests {
171 compatible = "qcom,rpm-ipq6018";
172 qcom,glink-channels = "rpm_requests";
173
174 regulators {
175 compatible = "qcom,rpm-mp5496-regulators";
176
177 ipq6018_s2: s2 {
178 regulator-min-microvolt = <725000>;
179 regulator-max-microvolt = <1062500>;
180 regulator-always-on;
181 };
182 };
183 };
184 };
185 };
186
187 reserved-memory {
188 #address-cells = <2>;
189 #size-cells = <2>;
190 ranges;
191
192 rpm_msg_ram: memory@60000 {
193 reg = <0x0 0x00060000 0x0 0x6000>;
194 no-map;
195 };
196
197 bootloader@4a100000 {
198 reg = <0x0 0x4a100000 0x0 0x400000>;
199 no-map;
200 };
201
202 sbl@4a500000 {
203 reg = <0x0 0x4a500000 0x0 0x100000>;
204 no-map;
205 };
206
207 tz: memory@4a600000 {
208 reg = <0x0 0x4a600000 0x0 0x400000>;
209 no-map;
210 };
211
212 smem_region: memory@4aa00000 {
213 reg = <0x0 0x4aa00000 0x0 0x100000>;
214 no-map;
215 };
216
217 q6_region: memory@4ab00000 {
218 reg = <0x0 0x4ab00000 0x0 0x5500000>;
219 no-map;
220 };
221 };
222
223 smem {
224 compatible = "qcom,smem";
225 memory-region = <&smem_region>;
226 hwlocks = <&tcsr_mutex 3>;
227 };
228
229 soc: soc@0 {
230 #address-cells = <2>;
231 #size-cells = <2>;
232 ranges = <0 0 0 0 0x0 0xffffffff>;
233 dma-ranges;
234 compatible = "simple-bus";
235
236 qusb_phy_1: qusb@59000 {
237 compatible = "qcom,ipq6018-qusb2-phy";
238 reg = <0x0 0x00059000 0x0 0x180>;
239 #phy-cells = <0>;
240
241 clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
242 <&xo>;
243 clock-names = "cfg_ahb", "ref";
244
245 resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
246 status = "disabled";
247 };
248
249 ssphy_0: ssphy@78000 {
250 compatible = "qcom,ipq6018-qmp-usb3-phy";
Tom Rini93743d22024-04-01 09:08:13 -0400251 reg = <0x0 0x00078000 0x0 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -0500252
253 clocks = <&gcc GCC_USB0_AUX_CLK>,
Tom Rini93743d22024-04-01 09:08:13 -0400254 <&xo>,
255 <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
256 <&gcc GCC_USB0_PIPE_CLK>;
257 clock-names = "aux",
258 "ref",
259 "cfg_ahb",
260 "pipe";
261 clock-output-names = "gcc_usb0_pipe_clk_src";
262 #clock-cells = <0>;
263 #phy-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -0500264
265 resets = <&gcc GCC_USB0_PHY_BCR>,
266 <&gcc GCC_USB3PHY_0_PHY_BCR>;
Tom Rini93743d22024-04-01 09:08:13 -0400267 reset-names = "phy",
268 "phy_phy";
Tom Rini53633a82024-02-29 12:33:36 -0500269
Tom Rini93743d22024-04-01 09:08:13 -0400270 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -0500271 };
272
273 qusb_phy_0: qusb@79000 {
274 compatible = "qcom,ipq6018-qusb2-phy";
275 reg = <0x0 0x00079000 0x0 0x180>;
276 #phy-cells = <0>;
277
278 clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
279 <&xo>;
280 clock-names = "cfg_ahb", "ref";
281
282 resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
283 status = "disabled";
284 };
285
286 pcie_phy: phy@84000 {
287 compatible = "qcom,ipq6018-qmp-pcie-phy";
288 reg = <0x0 0x00084000 0x0 0x1000>;
289 status = "disabled";
290
291 clocks = <&gcc GCC_PCIE0_AUX_CLK>,
292 <&gcc GCC_PCIE0_AHB_CLK>,
293 <&gcc GCC_PCIE0_PIPE_CLK>;
294 clock-names = "aux",
295 "cfg_ahb",
296 "pipe";
297
298 clock-output-names = "gcc_pcie0_pipe_clk_src";
299 #clock-cells = <0>;
300
301 #phy-cells = <0>;
302
303 resets = <&gcc GCC_PCIE0_PHY_BCR>,
304 <&gcc GCC_PCIE0PHY_PHY_BCR>;
305 reset-names = "phy",
306 "common";
307 };
308
309 mdio: mdio@90000 {
310 #address-cells = <1>;
311 #size-cells = <0>;
312 compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio";
313 reg = <0x0 0x00090000 0x0 0x64>;
314 clocks = <&gcc GCC_MDIO_AHB_CLK>;
315 clock-names = "gcc_mdio_ahb_clk";
316 status = "disabled";
317 };
318
319 qfprom: efuse@a4000 {
320 compatible = "qcom,ipq6018-qfprom", "qcom,qfprom";
321 reg = <0x0 0x000a4000 0x0 0x2000>;
322 #address-cells = <1>;
323 #size-cells = <1>;
Tom Rini93743d22024-04-01 09:08:13 -0400324
325 cpu_speed_bin: cpu-speed-bin@135 {
326 reg = <0x135 0x1>;
327 bits = <7 1>;
328 };
Tom Rini53633a82024-02-29 12:33:36 -0500329 };
330
331 prng: qrng@e3000 {
332 compatible = "qcom,prng-ee";
333 reg = <0x0 0x000e3000 0x0 0x1000>;
334 clocks = <&gcc GCC_PRNG_AHB_CLK>;
335 clock-names = "core";
336 };
337
Tom Rini6bb92fc2024-05-20 09:54:58 -0600338 tsens: thermal-sensor@4a9000 {
339 compatible = "qcom,ipq6018-tsens", "qcom,ipq8074-tsens";
340 reg = <0x0 0x004a9000 0x0 0x1000>,
341 <0x0 0x004a8000 0x0 0x1000>;
342 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
343 interrupt-names = "combined";
344 #qcom,sensors = <16>;
345 #thermal-sensor-cells = <1>;
346 };
347
Tom Rini53633a82024-02-29 12:33:36 -0500348 cryptobam: dma-controller@704000 {
349 compatible = "qcom,bam-v1.7.0";
350 reg = <0x0 0x00704000 0x0 0x20000>;
351 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
352 clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
353 clock-names = "bam_clk";
354 #dma-cells = <1>;
355 qcom,ee = <1>;
356 qcom,controlled-remotely;
357 };
358
359 crypto: crypto@73a000 {
360 compatible = "qcom,crypto-v5.1";
361 reg = <0x0 0x0073a000 0x0 0x6000>;
362 clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
363 <&gcc GCC_CRYPTO_AXI_CLK>,
364 <&gcc GCC_CRYPTO_CLK>;
365 clock-names = "iface", "bus", "core";
366 dmas = <&cryptobam 2>, <&cryptobam 3>;
367 dma-names = "rx", "tx";
368 };
369
370 tlmm: pinctrl@1000000 {
371 compatible = "qcom,ipq6018-pinctrl";
372 reg = <0x0 0x01000000 0x0 0x300000>;
373 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
374 gpio-controller;
375 #gpio-cells = <2>;
376 gpio-ranges = <&tlmm 0 0 80>;
377 interrupt-controller;
378 #interrupt-cells = <2>;
379
380 serial_3_pins: serial3-state {
381 pins = "gpio44", "gpio45";
382 function = "blsp2_uart";
383 drive-strength = <8>;
384 bias-pull-down;
385 };
386
387 qpic_pins: qpic-state {
388 pins = "gpio1", "gpio3", "gpio4",
389 "gpio5", "gpio6", "gpio7",
390 "gpio8", "gpio10", "gpio11",
391 "gpio12", "gpio13", "gpio14",
392 "gpio15", "gpio17";
393 function = "qpic_pad";
394 drive-strength = <8>;
395 bias-disable;
396 };
397 };
398
399 gcc: gcc@1800000 {
400 compatible = "qcom,gcc-ipq6018";
401 reg = <0x0 0x01800000 0x0 0x80000>;
402 clocks = <&xo>, <&sleep_clk>;
403 clock-names = "xo", "sleep_clk";
404 #clock-cells = <1>;
405 #reset-cells = <1>;
406 };
407
408 tcsr_mutex: hwlock@1905000 {
409 compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex";
410 reg = <0x0 0x01905000 0x0 0x20000>;
411 #hwlock-cells = <1>;
412 };
413
414 tcsr: syscon@1937000 {
415 compatible = "qcom,tcsr-ipq6018", "syscon";
416 reg = <0x0 0x01937000 0x0 0x21000>;
417 };
418
419 usb2: usb@70f8800 {
420 compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
421 reg = <0x0 0x070f8800 0x0 0x400>;
422 #address-cells = <2>;
423 #size-cells = <2>;
424 ranges;
425 clocks = <&gcc GCC_USB1_MASTER_CLK>,
426 <&gcc GCC_USB1_SLEEP_CLK>,
427 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
428 clock-names = "core",
429 "sleep",
430 "mock_utmi";
431
432 assigned-clocks = <&gcc GCC_USB1_MASTER_CLK>,
433 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
434 assigned-clock-rates = <133330000>,
435 <24000000>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600436
437 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
438 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
439 interrupt-names = "pwr_event",
440 "qusb2_phy";
441
Tom Rini53633a82024-02-29 12:33:36 -0500442 resets = <&gcc GCC_USB1_BCR>;
443 status = "disabled";
444
445 dwc_1: usb@7000000 {
446 compatible = "snps,dwc3";
447 reg = <0x0 0x07000000 0x0 0xcd00>;
448 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
449 phys = <&qusb_phy_1>;
450 phy-names = "usb2-phy";
451 tx-fifo-resize;
452 snps,is-utmi-l1-suspend;
453 snps,hird-threshold = /bits/ 8 <0x0>;
454 snps,dis_u2_susphy_quirk;
455 snps,dis_u3_susphy_quirk;
456 dr_mode = "host";
457 };
458 };
459
460 blsp_dma: dma-controller@7884000 {
461 compatible = "qcom,bam-v1.7.0";
462 reg = <0x0 0x07884000 0x0 0x2b000>;
463 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
464 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
465 clock-names = "bam_clk";
466 #dma-cells = <1>;
467 qcom,ee = <0>;
468 };
469
Tom Rini93743d22024-04-01 09:08:13 -0400470 blsp1_uart1: serial@78af000 {
471 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
472 reg = <0x0 0x78af000 0x0 0x200>;
473 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
474 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
475 <&gcc GCC_BLSP1_AHB_CLK>;
476 clock-names = "core", "iface";
477 status = "disabled";
478 };
479
480 blsp1_uart2: serial@78b0000 {
481 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
482 reg = <0x0 0x78b0000 0x0 0x200>;
483 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
484 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
485 <&gcc GCC_BLSP1_AHB_CLK>;
486 clock-names = "core", "iface";
487 status = "disabled";
488 };
489
Tom Rini53633a82024-02-29 12:33:36 -0500490 blsp1_uart3: serial@78b1000 {
491 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
492 reg = <0x0 0x078b1000 0x0 0x200>;
493 interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
494 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
495 <&gcc GCC_BLSP1_AHB_CLK>;
496 clock-names = "core", "iface";
497 status = "disabled";
498 };
499
Tom Rini93743d22024-04-01 09:08:13 -0400500 blsp1_uart4: serial@78b2000 {
501 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
502 reg = <0x0 0x078b2000 0x0 0x200>;
503 interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
504 clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>,
505 <&gcc GCC_BLSP1_AHB_CLK>;
506 clock-names = "core", "iface";
507 status = "disabled";
508 };
509
510 blsp1_uart5: serial@78b3000 {
511 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
512 reg = <0x0 0x78b3000 0x0 0x200>;
513 interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
514 clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
515 <&gcc GCC_BLSP1_AHB_CLK>;
516 clock-names = "core", "iface";
517 status = "disabled";
518 };
519
520 blsp1_uart6: serial@78b4000 {
521 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
522 reg = <0x0 0x078b4000 0x0 0x200>;
523 interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
524 clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
525 <&gcc GCC_BLSP1_AHB_CLK>;
526 clock-names = "core", "iface";
527 status = "disabled";
528 };
529
Tom Rini53633a82024-02-29 12:33:36 -0500530 blsp1_spi1: spi@78b5000 {
531 compatible = "qcom,spi-qup-v2.2.1";
532 #address-cells = <1>;
533 #size-cells = <0>;
534 reg = <0x0 0x078b5000 0x0 0x600>;
535 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
536 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
537 <&gcc GCC_BLSP1_AHB_CLK>;
538 clock-names = "core", "iface";
539 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
540 dma-names = "tx", "rx";
541 status = "disabled";
542 };
543
544 blsp1_spi2: spi@78b6000 {
545 compatible = "qcom,spi-qup-v2.2.1";
546 #address-cells = <1>;
547 #size-cells = <0>;
548 reg = <0x0 0x078b6000 0x0 0x600>;
549 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
550 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
551 <&gcc GCC_BLSP1_AHB_CLK>;
552 clock-names = "core", "iface";
553 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
554 dma-names = "tx", "rx";
555 status = "disabled";
556 };
557
Tom Rini93743d22024-04-01 09:08:13 -0400558 blsp1_spi5: spi@78b9000 {
559 compatible = "qcom,spi-qup-v2.2.1";
560 #address-cells = <1>;
561 #size-cells = <0>;
562 reg = <0x0 0x078b9000 0x0 0x600>;
563 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
565 <&gcc GCC_BLSP1_AHB_CLK>;
566 clock-names = "core", "iface";
567 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
568 dma-names = "tx", "rx";
569 status = "disabled";
570 };
571
Tom Rini53633a82024-02-29 12:33:36 -0500572 blsp1_i2c2: i2c@78b6000 {
573 compatible = "qcom,i2c-qup-v2.2.1";
574 #address-cells = <1>;
575 #size-cells = <0>;
576 reg = <0x0 0x078b6000 0x0 0x600>;
577 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
578 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
579 <&gcc GCC_BLSP1_AHB_CLK>;
580 clock-names = "core", "iface";
581 clock-frequency = <400000>;
582 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
583 dma-names = "tx", "rx";
584 status = "disabled";
585 };
586
587 blsp1_i2c3: i2c@78b7000 {
588 compatible = "qcom,i2c-qup-v2.2.1";
589 #address-cells = <1>;
590 #size-cells = <0>;
591 reg = <0x0 0x078b7000 0x0 0x600>;
592 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
593 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
594 <&gcc GCC_BLSP1_AHB_CLK>;
595 clock-names = "core", "iface";
596 clock-frequency = <400000>;
597 dmas = <&blsp_dma 16>, <&blsp_dma 17>;
598 dma-names = "tx", "rx";
599 status = "disabled";
600 };
601
Tom Rini6bb92fc2024-05-20 09:54:58 -0600602 blsp1_i2c6: i2c@78ba000 {
603 compatible = "qcom,i2c-qup-v2.2.1";
604 #address-cells = <1>;
605 #size-cells = <0>;
606 reg = <0x0 0x078ba000 0x0 0x600>;
607 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
608 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
609 <&gcc GCC_BLSP1_AHB_CLK>;
610 clock-names = "core", "iface";
611 clock-frequency = <400000>;
612 dmas = <&blsp_dma 22>, <&blsp_dma 23>;
613 dma-names = "tx", "rx";
614 status = "disabled";
615 };
616
Tom Rini53633a82024-02-29 12:33:36 -0500617 qpic_bam: dma-controller@7984000 {
618 compatible = "qcom,bam-v1.7.0";
619 reg = <0x0 0x07984000 0x0 0x1a000>;
620 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
621 clocks = <&gcc GCC_QPIC_AHB_CLK>;
622 clock-names = "bam_clk";
623 #dma-cells = <1>;
624 qcom,ee = <0>;
625 status = "disabled";
626 };
627
628 qpic_nand: nand-controller@79b0000 {
629 compatible = "qcom,ipq6018-nand";
630 reg = <0x0 0x079b0000 0x0 0x10000>;
631 #address-cells = <1>;
632 #size-cells = <0>;
633 clocks = <&gcc GCC_QPIC_CLK>,
634 <&gcc GCC_QPIC_AHB_CLK>;
635 clock-names = "core", "aon";
636
637 dmas = <&qpic_bam 0>,
638 <&qpic_bam 1>,
639 <&qpic_bam 2>;
640 dma-names = "tx", "rx", "cmd";
641 pinctrl-0 = <&qpic_pins>;
642 pinctrl-names = "default";
643 status = "disabled";
644 };
645
646 usb3: usb@8af8800 {
647 compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
648 reg = <0x0 0x08af8800 0x0 0x400>;
649 #address-cells = <2>;
650 #size-cells = <2>;
651 ranges;
652
653 clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
654 <&gcc GCC_USB0_MASTER_CLK>,
655 <&gcc GCC_USB0_SLEEP_CLK>,
656 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
657 clock-names = "cfg_noc",
658 "core",
659 "sleep",
660 "mock_utmi";
661
662 assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
663 <&gcc GCC_USB0_MASTER_CLK>,
664 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
665 assigned-clock-rates = <133330000>,
666 <133330000>,
Tom Rini93743d22024-04-01 09:08:13 -0400667 <24000000>;
Tom Rini53633a82024-02-29 12:33:36 -0500668
Tom Rini6bb92fc2024-05-20 09:54:58 -0600669 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
670 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
671 <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
672 interrupt-names = "pwr_event",
673 "qusb2_phy",
674 "ss_phy_irq";
675
Tom Rini53633a82024-02-29 12:33:36 -0500676 resets = <&gcc GCC_USB0_BCR>;
677 status = "disabled";
678
679 dwc_0: usb@8a00000 {
680 compatible = "snps,dwc3";
681 reg = <0x0 0x08a00000 0x0 0xcd00>;
682 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400683 phys = <&qusb_phy_0>, <&ssphy_0>;
Tom Rini53633a82024-02-29 12:33:36 -0500684 phy-names = "usb2-phy", "usb3-phy";
685 clocks = <&xo>;
686 clock-names = "ref";
687 tx-fifo-resize;
688 snps,is-utmi-l1-suspend;
689 snps,hird-threshold = /bits/ 8 <0x0>;
690 snps,dis_u2_susphy_quirk;
691 snps,dis_u3_susphy_quirk;
692 dr_mode = "host";
693 };
694 };
695
696 intc: interrupt-controller@b000000 {
697 compatible = "qcom,msm-qgic2";
698 #address-cells = <2>;
699 #size-cells = <2>;
700 interrupt-controller;
701 #interrupt-cells = <3>;
702 reg = <0x0 0x0b000000 0x0 0x1000>, /*GICD*/
703 <0x0 0x0b002000 0x0 0x1000>, /*GICC*/
704 <0x0 0x0b001000 0x0 0x1000>, /*GICH*/
705 <0x0 0x0b004000 0x0 0x1000>; /*GICV*/
706 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
707 ranges = <0 0 0 0xb00a000 0 0xffd>;
708
709 v2m@0 {
710 compatible = "arm,gic-v2m-frame";
711 msi-controller;
712 reg = <0x0 0x0 0x0 0xffd>;
713 };
714 };
715
716 watchdog@b017000 {
717 compatible = "qcom,kpss-wdt";
718 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
719 reg = <0x0 0x0b017000 0x0 0x40>;
720 clocks = <&sleep_clk>;
721 timeout-sec = <10>;
722 };
723
724 apcs_glb: mailbox@b111000 {
725 compatible = "qcom,ipq6018-apcs-apps-global";
726 reg = <0x0 0x0b111000 0x0 0x1000>;
727 #clock-cells = <1>;
Tom Rini93743d22024-04-01 09:08:13 -0400728 clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
729 clock-names = "pll", "xo", "gpll0";
Tom Rini53633a82024-02-29 12:33:36 -0500730 #mbox-cells = <1>;
731 };
732
733 a53pll: clock@b116000 {
734 compatible = "qcom,ipq6018-a53pll";
735 reg = <0x0 0x0b116000 0x0 0x40>;
736 #clock-cells = <0>;
737 clocks = <&xo>;
738 clock-names = "xo";
739 };
740
741 timer@b120000 {
742 #address-cells = <1>;
743 #size-cells = <1>;
744 ranges = <0 0 0 0x10000000>;
745 compatible = "arm,armv7-timer-mem";
746 reg = <0x0 0x0b120000 0x0 0x1000>;
747
748 frame@b120000 {
749 frame-number = <0>;
750 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
751 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
752 reg = <0x0b121000 0x1000>,
753 <0x0b122000 0x1000>;
754 };
755
756 frame@b123000 {
757 frame-number = <1>;
758 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
759 reg = <0x0b123000 0x1000>;
760 status = "disabled";
761 };
762
763 frame@b124000 {
764 frame-number = <2>;
765 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
766 reg = <0x0b124000 0x1000>;
767 status = "disabled";
768 };
769
770 frame@b125000 {
771 frame-number = <3>;
772 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
773 reg = <0x0b125000 0x1000>;
774 status = "disabled";
775 };
776
777 frame@b126000 {
778 frame-number = <4>;
779 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
780 reg = <0x0b126000 0x1000>;
781 status = "disabled";
782 };
783
784 frame@b127000 {
785 frame-number = <5>;
786 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
787 reg = <0x0b127000 0x1000>;
788 status = "disabled";
789 };
790
791 frame@b128000 {
792 frame-number = <6>;
793 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
794 reg = <0x0b128000 0x1000>;
795 status = "disabled";
796 };
797 };
798
799 q6v5_wcss: remoteproc@cd00000 {
800 compatible = "qcom,ipq6018-wcss-pil";
801 reg = <0x0 0x0cd00000 0x0 0x4040>,
802 <0x0 0x004ab000 0x0 0x20>;
803 reg-names = "qdsp6",
804 "rmb";
805 interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
806 <&wcss_smp2p_in 0 0>,
807 <&wcss_smp2p_in 1 0>,
808 <&wcss_smp2p_in 2 0>,
809 <&wcss_smp2p_in 3 0>;
810 interrupt-names = "wdog",
811 "fatal",
812 "ready",
813 "handover",
814 "stop-ack";
815
816 resets = <&gcc GCC_WCSSAON_RESET>,
817 <&gcc GCC_WCSS_BCR>,
818 <&gcc GCC_WCSS_Q6_BCR>;
819
820 reset-names = "wcss_aon_reset",
821 "wcss_reset",
822 "wcss_q6_reset";
823
824 clocks = <&gcc GCC_PRNG_AHB_CLK>;
825 clock-names = "prng";
826
827 qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;
828
829 qcom,smem-states = <&wcss_smp2p_out 0>,
830 <&wcss_smp2p_out 1>;
831 qcom,smem-state-names = "shutdown",
832 "stop";
833
834 memory-region = <&q6_region>;
835
836 glink-edge {
837 interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
838 label = "rtr";
839 qcom,remote-pid = <1>;
840 mboxes = <&apcs_glb 8>;
841
842 qrtr_requests {
843 qcom,glink-channels = "IPCRTR";
844 };
845 };
846 };
847
Tom Rini93743d22024-04-01 09:08:13 -0400848 pcie0: pcie@20000000 {
Tom Rini53633a82024-02-29 12:33:36 -0500849 compatible = "qcom,pcie-ipq6018";
850 reg = <0x0 0x20000000 0x0 0xf1d>,
851 <0x0 0x20000f20 0x0 0xa8>,
852 <0x0 0x20001000 0x0 0x1000>,
853 <0x0 0x80000 0x0 0x4000>,
854 <0x0 0x20100000 0x0 0x1000>;
855 reg-names = "dbi", "elbi", "atu", "parf", "config";
856
857 device_type = "pci";
858 linux,pci-domain = <0>;
859 bus-range = <0x00 0xff>;
860 num-lanes = <1>;
861 max-link-speed = <3>;
862 #address-cells = <3>;
863 #size-cells = <2>;
864
865 phys = <&pcie_phy>;
866 phy-names = "pciephy";
867
868 ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
869 <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
870
871 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
872 interrupt-names = "msi";
873
874 #interrupt-cells = <1>;
875 interrupt-map-mask = <0 0 0 0x7>;
Tom Rini93743d22024-04-01 09:08:13 -0400876 interrupt-map = <0 0 0 1 &intc 0 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
877 <0 0 0 2 &intc 0 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
878 <0 0 0 3 &intc 0 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
879 <0 0 0 4 &intc 0 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
Tom Rini53633a82024-02-29 12:33:36 -0500880
881 clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
882 <&gcc GCC_PCIE0_AXI_M_CLK>,
883 <&gcc GCC_PCIE0_AXI_S_CLK>,
884 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
885 <&gcc PCIE0_RCHNG_CLK>;
886 clock-names = "iface",
887 "axi_m",
888 "axi_s",
889 "axi_bridge",
890 "rchng";
891
892 resets = <&gcc GCC_PCIE0_PIPE_ARES>,
893 <&gcc GCC_PCIE0_SLEEP_ARES>,
894 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
895 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
896 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
897 <&gcc GCC_PCIE0_AHB_ARES>,
898 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
899 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
900 reset-names = "pipe",
901 "sleep",
902 "sticky",
903 "axi_m",
904 "axi_s",
905 "ahb",
906 "axi_m_sticky",
907 "axi_s_sticky";
908
909 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -0600910
911 pcie@0 {
912 device_type = "pci";
913 reg = <0x0 0x0 0x0 0x0 0x0>;
914 bus-range = <0x01 0xff>;
915
916 #address-cells = <3>;
917 #size-cells = <2>;
918 ranges;
919 };
Tom Rini53633a82024-02-29 12:33:36 -0500920 };
921 };
922
Tom Rini6bb92fc2024-05-20 09:54:58 -0600923 thermal-zones {
924 nss-top-thermal {
925 polling-delay-passive = <250>;
926 polling-delay = <1000>;
927 thermal-sensors = <&tsens 4>;
928
929 trips {
930 nss-top-critical {
931 temperature = <125000>;
932 hysteresis = <1000>;
933 type = "critical";
934 };
935 };
936 };
937
938 nss-thermal {
939 polling-delay-passive = <250>;
940 polling-delay = <1000>;
941 thermal-sensors = <&tsens 5>;
942
943 trips {
944 nss-critical {
945 temperature = <125000>;
946 hysteresis = <1000>;
947 type = "critical";
948 };
949 };
950 };
951
952 wcss-phya0-thermal {
953 polling-delay-passive = <250>;
954 polling-delay = <1000>;
955 thermal-sensors = <&tsens 7>;
956
957 trips {
958 wcss-phya0-critical {
959 temperature = <125000>;
960 hysteresis = <1000>;
961 type = "critical";
962 };
963 };
964 };
965
966 wcss-phya1-thermal {
967 polling-delay-passive = <250>;
968 polling-delay = <1000>;
969 thermal-sensors = <&tsens 8>;
970
971 trips {
972 wcss-phya1-critical {
973 temperature = <125000>;
974 hysteresis = <1000>;
975 type = "critical";
976 };
977 };
978 };
979
980 cpu-thermal {
981 polling-delay-passive = <250>;
982 polling-delay = <1000>;
983 thermal-sensors = <&tsens 13>;
984
985 trips {
986 cpu-critical {
987 temperature = <125000>;
988 hysteresis = <1000>;
989 type = "critical";
990 };
991
992 cpu_alert: cpu-passive {
993 temperature = <110000>;
994 hysteresis = <1000>;
995 type = "passive";
996 };
997 };
998
999 cooling-maps {
1000 map0 {
1001 trip = <&cpu_alert>;
1002 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1003 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1004 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1005 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1006 };
1007 };
1008 };
1009
1010 lpass-thermal {
1011 polling-delay-passive = <250>;
1012 polling-delay = <1000>;
1013 thermal-sensors = <&tsens 14>;
1014
1015 trips {
1016 lpass-critical {
1017 temperature = <125000>;
1018 hysteresis = <1000>;
1019 type = "critical";
1020 };
1021 };
1022 };
1023
1024 ddrss-top-thermal {
1025 polling-delay-passive = <250>;
1026 polling-delay = <1000>;
1027 thermal-sensors = <&tsens 15>;
1028
1029 trips {
1030 ddrss-top-critical {
1031 temperature = <125000>;
1032 hysteresis = <1000>;
1033 type = "critical";
1034 };
1035 };
1036 };
1037 };
1038
Tom Rini53633a82024-02-29 12:33:36 -05001039 timer {
1040 compatible = "arm,armv8-timer";
1041 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1042 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1043 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1044 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1045 };
1046
1047 wcss: wcss-smp2p {
1048 compatible = "qcom,smp2p";
1049 qcom,smem = <435>, <428>;
1050
1051 interrupt-parent = <&intc>;
1052 interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
1053
1054 mboxes = <&apcs_glb 9>;
1055
1056 qcom,local-pid = <0>;
1057 qcom,remote-pid = <1>;
1058
1059 wcss_smp2p_out: master-kernel {
1060 qcom,entry-name = "master-kernel";
1061 #qcom,smem-state-cells = <1>;
1062 };
1063
1064 wcss_smp2p_in: slave-kernel {
1065 qcom,entry-name = "slave-kernel";
1066 interrupt-controller;
1067 #interrupt-cells = <2>;
1068 };
1069 };
1070};