1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
3 * IPQ9574 SoC device tree source
5 * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved.
6 * Copyright (c) 2023, Qualcomm Innovation Center, Inc. All rights reserved.
9 #include <dt-bindings/clock/qcom,apss-ipq.h>
10 #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
12 #include <dt-bindings/reset/qcom,ipq9574-gcc.h>
15 interrupt-parent = <&intc>;
20 sleep_clk: sleep-clk {
21 compatible = "fixed-clock";
25 xo_board_clk: xo-board-clk {
26 compatible = "fixed-clock";
37 compatible = "arm,cortex-a73";
39 enable-method = "psci";
40 next-level-cache = <&L2_0>;
41 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
43 operating-points-v2 = <&cpu_opp_table>;
44 cpu-supply = <&ipq9574_s1>;
49 compatible = "arm,cortex-a73";
51 enable-method = "psci";
52 next-level-cache = <&L2_0>;
53 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
55 operating-points-v2 = <&cpu_opp_table>;
56 cpu-supply = <&ipq9574_s1>;
61 compatible = "arm,cortex-a73";
63 enable-method = "psci";
64 next-level-cache = <&L2_0>;
65 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
67 operating-points-v2 = <&cpu_opp_table>;
68 cpu-supply = <&ipq9574_s1>;
73 compatible = "arm,cortex-a73";
75 enable-method = "psci";
76 next-level-cache = <&L2_0>;
77 clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
79 operating-points-v2 = <&cpu_opp_table>;
80 cpu-supply = <&ipq9574_s1>;
92 compatible = "qcom,scm-ipq9574", "qcom,scm";
93 qcom,dload-mode = <&tcsr 0x6100>;
98 device_type = "memory";
99 /* We expect the bootloader to fill in the size */
100 reg = <0x0 0x40000000 0x0 0x0>;
103 cpu_opp_table: opp-table-cpu {
104 compatible = "operating-points-v2";
108 opp-hz = /bits/ 64 <936000000>;
109 opp-microvolt = <725000>;
110 clock-latency-ns = <200000>;
114 opp-hz = /bits/ 64 <1104000000>;
115 opp-microvolt = <787500>;
116 clock-latency-ns = <200000>;
120 opp-hz = /bits/ 64 <1416000000>;
121 opp-microvolt = <862500>;
122 clock-latency-ns = <200000>;
126 opp-hz = /bits/ 64 <1488000000>;
127 opp-microvolt = <925000>;
128 clock-latency-ns = <200000>;
132 opp-hz = /bits/ 64 <1800000000>;
133 opp-microvolt = <987500>;
134 clock-latency-ns = <200000>;
138 opp-hz = /bits/ 64 <2208000000>;
139 opp-microvolt = <1062500>;
140 clock-latency-ns = <200000>;
145 compatible = "arm,cortex-a73-pmu";
146 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
150 compatible = "arm,psci-1.0";
155 #address-cells = <2>;
159 bootloader@4a100000 {
160 reg = <0x0 0x4a100000 0x0 0x400000>;
165 reg = <0x0 0x4a500000 0x0 0x100000>;
169 tz_region: tz@4a600000 {
170 reg = <0x0 0x4a600000 0x0 0x400000>;
175 compatible = "qcom,smem";
176 reg = <0x0 0x4aa00000 0x0 0x100000>;
177 hwlocks = <&tcsr_mutex 0>;
183 compatible = "qcom,glink-rpm";
184 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
185 qcom,rpm-msg-ram = <&rpm_msg_ram>;
186 mboxes = <&apcs_glb 0>;
188 rpm_requests: rpm-requests {
189 compatible = "qcom,rpm-ipq9574";
190 qcom,glink-channels = "rpm_requests";
195 compatible = "simple-bus";
196 #address-cells = <1>;
198 ranges = <0 0 0 0xffffffff>;
200 rpm_msg_ram: sram@60000 {
201 compatible = "qcom,rpm-msg-ram";
202 reg = <0x00060000 0x6000>;
206 compatible = "qcom,prng-ee";
207 reg = <0x000e3000 0x1000>;
208 clocks = <&gcc GCC_PRNG_AHB_CLK>;
209 clock-names = "core";
212 qfprom: efuse@a4000 {
213 compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
214 reg = <0x000a4000 0x5a1>;
215 #address-cells = <1>;
219 cryptobam: dma-controller@704000 {
220 compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
221 reg = <0x00704000 0x20000>;
222 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
225 qcom,controlled-remotely;
228 crypto: crypto@73a000 {
229 compatible = "qcom,ipq9574-qce", "qcom,ipq4019-qce", "qcom,qce";
230 reg = <0x0073a000 0x6000>;
231 clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
232 <&gcc GCC_CRYPTO_AXI_CLK>,
233 <&gcc GCC_CRYPTO_CLK>;
234 clock-names = "iface", "bus", "core";
235 dmas = <&cryptobam 2>, <&cryptobam 3>;
236 dma-names = "rx", "tx";
239 tsens: thermal-sensor@4a9000 {
240 compatible = "qcom,ipq9574-tsens", "qcom,ipq8074-tsens";
241 reg = <0x004a9000 0x1000>,
243 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
244 interrupt-names = "combined";
245 #qcom,sensors = <16>;
246 #thermal-sensor-cells = <1>;
249 tlmm: pinctrl@1000000 {
250 compatible = "qcom,ipq9574-tlmm";
251 reg = <0x01000000 0x300000>;
252 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
255 gpio-ranges = <&tlmm 0 0 65>;
256 interrupt-controller;
257 #interrupt-cells = <2>;
259 uart2_pins: uart2-state {
260 pins = "gpio34", "gpio35";
261 function = "blsp2_uart";
262 drive-strength = <8>;
267 gcc: clock-controller@1800000 {
268 compatible = "qcom,ipq9574-gcc";
269 reg = <0x01800000 0x80000>;
270 clocks = <&xo_board_clk>,
280 #power-domain-cells = <1>;
283 tcsr_mutex: hwlock@1905000 {
284 compatible = "qcom,tcsr-mutex";
285 reg = <0x01905000 0x20000>;
289 tcsr: syscon@1937000 {
290 compatible = "qcom,tcsr-ipq9574", "syscon";
291 reg = <0x01937000 0x21000>;
294 sdhc_1: mmc@7804000 {
295 compatible = "qcom,ipq9574-sdhci", "qcom,sdhci-msm-v5";
296 reg = <0x07804000 0x1000>, <0x07805000 0x1000>;
297 reg-names = "hc", "cqhci";
299 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
300 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
301 interrupt-names = "hc_irq", "pwr_irq";
303 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
304 <&gcc GCC_SDCC1_APPS_CLK>,
306 clock-names = "iface", "core", "xo";
311 blsp_dma: dma-controller@7884000 {
312 compatible = "qcom,bam-v1.7.0";
313 reg = <0x07884000 0x2b000>;
314 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
315 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
316 clock-names = "bam_clk";
321 blsp1_uart0: serial@78af000 {
322 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
323 reg = <0x078af000 0x200>;
324 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
325 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
326 <&gcc GCC_BLSP1_AHB_CLK>;
327 clock-names = "core", "iface";
331 blsp1_uart1: serial@78b0000 {
332 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
333 reg = <0x078b0000 0x200>;
334 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
335 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
336 <&gcc GCC_BLSP1_AHB_CLK>;
337 clock-names = "core", "iface";
341 blsp1_uart2: serial@78b1000 {
342 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
343 reg = <0x078b1000 0x200>;
344 interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
345 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
346 <&gcc GCC_BLSP1_AHB_CLK>;
347 clock-names = "core", "iface";
351 blsp1_uart3: serial@78b2000 {
352 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
353 reg = <0x078b2000 0x200>;
354 interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
355 clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>,
356 <&gcc GCC_BLSP1_AHB_CLK>;
357 clock-names = "core", "iface";
361 blsp1_uart4: serial@78b3000 {
362 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
363 reg = <0x078b3000 0x200>;
364 interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
365 clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
366 <&gcc GCC_BLSP1_AHB_CLK>;
367 clock-names = "core", "iface";
371 blsp1_uart5: serial@78b4000 {
372 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
373 reg = <0x078b4000 0x200>;
374 interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
375 clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
376 <&gcc GCC_BLSP1_AHB_CLK>;
377 clock-names = "core", "iface";
381 blsp1_spi0: spi@78b5000 {
382 compatible = "qcom,spi-qup-v2.2.1";
383 reg = <0x078b5000 0x600>;
384 #address-cells = <1>;
386 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
387 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
388 <&gcc GCC_BLSP1_AHB_CLK>;
389 clock-names = "core", "iface";
390 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
391 dma-names = "tx", "rx";
395 blsp1_i2c1: i2c@78b6000 {
396 compatible = "qcom,i2c-qup-v2.2.1";
397 reg = <0x078b6000 0x600>;
398 #address-cells = <1>;
400 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
402 <&gcc GCC_BLSP1_AHB_CLK>;
403 clock-names = "core", "iface";
404 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
405 dma-names = "tx", "rx";
409 blsp1_spi1: spi@78b6000 {
410 compatible = "qcom,spi-qup-v2.2.1";
411 reg = <0x078b6000 0x600>;
412 #address-cells = <1>;
414 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
415 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
416 <&gcc GCC_BLSP1_AHB_CLK>;
417 clock-names = "core", "iface";
418 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
419 dma-names = "tx", "rx";
423 blsp1_i2c2: i2c@78b7000 {
424 compatible = "qcom,i2c-qup-v2.2.1";
425 reg = <0x078b7000 0x600>;
426 #address-cells = <1>;
428 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
429 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
430 <&gcc GCC_BLSP1_AHB_CLK>;
431 clock-names = "core", "iface";
432 dmas = <&blsp_dma 16>, <&blsp_dma 17>;
433 dma-names = "tx", "rx";
437 blsp1_spi2: spi@78b7000 {
438 compatible = "qcom,spi-qup-v2.2.1";
439 reg = <0x078b7000 0x600>;
440 #address-cells = <1>;
442 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
444 <&gcc GCC_BLSP1_AHB_CLK>;
445 clock-names = "core", "iface";
446 dmas = <&blsp_dma 16>, <&blsp_dma 17>;
447 dma-names = "tx", "rx";
451 blsp1_i2c3: i2c@78b8000 {
452 compatible = "qcom,i2c-qup-v2.2.1";
453 reg = <0x078b8000 0x600>;
454 #address-cells = <1>;
456 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
457 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
458 <&gcc GCC_BLSP1_AHB_CLK>;
459 clock-names = "core", "iface";
460 dmas = <&blsp_dma 18>, <&blsp_dma 19>;
461 dma-names = "tx", "rx";
465 blsp1_spi3: spi@78b8000 {
466 compatible = "qcom,spi-qup-v2.2.1";
467 reg = <0x078b8000 0x600>;
468 #address-cells = <1>;
470 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
471 spi-max-frequency = <50000000>;
472 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
473 <&gcc GCC_BLSP1_AHB_CLK>;
474 clock-names = "core", "iface";
475 dmas = <&blsp_dma 18>, <&blsp_dma 19>;
476 dma-names = "tx", "rx";
480 blsp1_i2c4: i2c@78b9000 {
481 compatible = "qcom,i2c-qup-v2.2.1";
482 reg = <0x078b9000 0x600>;
483 #address-cells = <1>;
485 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
486 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
487 <&gcc GCC_BLSP1_AHB_CLK>;
488 clock-names = "core", "iface";
489 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
490 dma-names = "tx", "rx";
494 blsp1_spi4: spi@78b9000 {
495 compatible = "qcom,spi-qup-v2.2.1";
496 reg = <0x078b9000 0x600>;
497 #address-cells = <1>;
499 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
500 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
501 <&gcc GCC_BLSP1_AHB_CLK>;
502 clock-names = "core", "iface";
503 dmas = <&blsp_dma 20>, <&blsp_dma 21>;
504 dma-names = "tx", "rx";
508 intc: interrupt-controller@b000000 {
509 compatible = "qcom,msm-qgic2";
510 reg = <0x0b000000 0x1000>, /* GICD */
511 <0x0b002000 0x2000>, /* GICC */
512 <0x0b001000 0x1000>, /* GICH */
513 <0x0b004000 0x2000>; /* GICV */
514 #address-cells = <1>;
516 interrupt-controller;
517 #interrupt-cells = <3>;
518 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
519 ranges = <0 0x0b00c000 0x3000>;
522 compatible = "arm,gic-v2m-frame";
523 reg = <0x00000000 0xffd>;
528 compatible = "arm,gic-v2m-frame";
529 reg = <0x00001000 0xffd>;
534 compatible = "arm,gic-v2m-frame";
535 reg = <0x00002000 0xffd>;
540 watchdog: watchdog@b017000 {
541 compatible = "qcom,apss-wdt-ipq9574", "qcom,kpss-wdt";
542 reg = <0x0b017000 0x1000>;
543 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
544 clocks = <&sleep_clk>;
548 apcs_glb: mailbox@b111000 {
549 compatible = "qcom,ipq9574-apcs-apps-global",
550 "qcom,ipq6018-apcs-apps-global";
551 reg = <0x0b111000 0x1000>;
553 clocks = <&a73pll>, <&xo_board_clk>;
554 clock-names = "pll", "xo";
558 a73pll: clock@b116000 {
559 compatible = "qcom,ipq9574-a73pll";
560 reg = <0x0b116000 0x40>;
562 clocks = <&xo_board_clk>;
567 compatible = "arm,armv7-timer-mem";
568 reg = <0x0b120000 0x1000>;
569 #address-cells = <1>;
574 reg = <0x0b121000 0x1000>,
577 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
578 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
582 reg = <0x0b123000 0x1000>;
584 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
589 reg = <0x0b124000 0x1000>;
591 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
596 reg = <0x0b125000 0x1000>;
598 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
603 reg = <0x0b126000 0x1000>;
605 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
610 reg = <0x0b127000 0x1000>;
612 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
617 reg = <0x0b128000 0x1000>;
619 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
627 polling-delay-passive = <0>;
629 thermal-sensors = <&tsens 3>;
633 temperature = <125000>;
641 polling-delay-passive = <0>;
643 thermal-sensors = <&tsens 4>;
647 temperature = <125000>;
655 polling-delay-passive = <0>;
657 thermal-sensors = <&tsens 5>;
661 temperature = <125000>;
669 polling-delay-passive = <0>;
671 thermal-sensors = <&tsens 6>;
675 temperature = <125000>;
683 polling-delay-passive = <0>;
685 thermal-sensors = <&tsens 7>;
689 temperature = <125000>;
697 polling-delay-passive = <0>;
699 thermal-sensors = <&tsens 8>;
703 temperature = <125000>;
711 polling-delay-passive = <0>;
713 thermal-sensors = <&tsens 9>;
717 temperature = <125000>;
725 polling-delay-passive = <0>;
727 thermal-sensors = <&tsens 10>;
731 temperature = <120000>;
732 hysteresis = <10000>;
737 temperature = <110000>;
745 polling-delay-passive = <0>;
747 thermal-sensors = <&tsens 11>;
751 temperature = <120000>;
752 hysteresis = <10000>;
757 temperature = <110000>;
765 polling-delay-passive = <0>;
767 thermal-sensors = <&tsens 12>;
771 temperature = <120000>;
772 hysteresis = <10000>;
777 temperature = <110000>;
785 polling-delay-passive = <0>;
787 thermal-sensors = <&tsens 13>;
791 temperature = <120000>;
792 hysteresis = <10000>;
797 temperature = <110000>;
805 polling-delay-passive = <0>;
807 thermal-sensors = <&tsens 14>;
811 temperature = <125000>;
819 polling-delay-passive = <0>;
821 thermal-sensors = <&tsens 15>;
825 temperature = <125000>;
834 compatible = "arm,armv8-timer";
835 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
836 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
837 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
838 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;