blob: d46e591e72b5c9bb77af2cfbc1b14a43e1664078 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * Copyright (c) 2023, Linaro Ltd
4 *
5 * Based on sm6115.dtsi and previous efforts by Shawn Guo & Loic Poulain.
6 */
7
8#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
9#include <dt-bindings/clock/qcom,rpmcc.h>
10#include <dt-bindings/dma/qcom-gpi.h>
11#include <dt-bindings/firmware/qcom,scm.h>
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/power/qcom-rpmpd.h>
15
16/ {
17 interrupt-parent = <&intc>;
18
19 #address-cells = <2>;
20 #size-cells = <2>;
21
22 chosen { };
23
24 clocks {
25 xo_board: xo-board {
26 compatible = "fixed-clock";
27 #clock-cells = <0>;
28 };
29
30 sleep_clk: sleep-clk {
31 compatible = "fixed-clock";
32 clock-frequency = <32764>;
33 #clock-cells = <0>;
34 };
35 };
36
37 cpus {
38 #address-cells = <2>;
39 #size-cells = <0>;
40
41 CPU0: cpu@0 {
42 device_type = "cpu";
43 compatible = "arm,cortex-a53";
44 reg = <0x0 0x0>;
45 clocks = <&cpufreq_hw 0>;
46 capacity-dmips-mhz = <1024>;
47 dynamic-power-coefficient = <100>;
48 enable-method = "psci";
49 next-level-cache = <&L2_0>;
50 qcom,freq-domain = <&cpufreq_hw 0>;
51 power-domains = <&CPU_PD0>;
52 power-domain-names = "psci";
53 L2_0: l2-cache {
54 compatible = "cache";
55 cache-level = <2>;
56 cache-unified;
57 };
58 };
59
60 CPU1: cpu@1 {
61 device_type = "cpu";
62 compatible = "arm,cortex-a53";
63 reg = <0x0 0x1>;
64 clocks = <&cpufreq_hw 0>;
65 capacity-dmips-mhz = <1024>;
66 dynamic-power-coefficient = <100>;
67 enable-method = "psci";
68 next-level-cache = <&L2_0>;
69 qcom,freq-domain = <&cpufreq_hw 0>;
70 power-domains = <&CPU_PD1>;
71 power-domain-names = "psci";
72 };
73
74 CPU2: cpu@2 {
75 device_type = "cpu";
76 compatible = "arm,cortex-a53";
77 reg = <0x0 0x2>;
78 clocks = <&cpufreq_hw 0>;
79 capacity-dmips-mhz = <1024>;
80 dynamic-power-coefficient = <100>;
81 enable-method = "psci";
82 next-level-cache = <&L2_0>;
83 qcom,freq-domain = <&cpufreq_hw 0>;
84 power-domains = <&CPU_PD2>;
85 power-domain-names = "psci";
86 };
87
88 CPU3: cpu@3 {
89 device_type = "cpu";
90 compatible = "arm,cortex-a53";
91 reg = <0x0 0x3>;
92 clocks = <&cpufreq_hw 0>;
93 capacity-dmips-mhz = <1024>;
94 dynamic-power-coefficient = <100>;
95 enable-method = "psci";
96 next-level-cache = <&L2_0>;
97 qcom,freq-domain = <&cpufreq_hw 0>;
98 power-domains = <&CPU_PD3>;
99 power-domain-names = "psci";
100 };
101
102 cpu-map {
103 cluster0 {
104 core0 {
105 cpu = <&CPU0>;
106 };
107
108 core1 {
109 cpu = <&CPU1>;
110 };
111
112 core2 {
113 cpu = <&CPU2>;
114 };
115
116 core3 {
117 cpu = <&CPU3>;
118 };
119 };
120 };
121
122 domain-idle-states {
123 CLUSTER_SLEEP: cluster-sleep-0 {
124 compatible = "domain-idle-state";
125 arm,psci-suspend-param = <0x41000043>;
126 entry-latency-us = <800>;
127 exit-latency-us = <2118>;
128 min-residency-us = <7376>;
129 };
130 };
131
132 idle-states {
133 entry-method = "psci";
134
135 CPU_SLEEP: cpu-sleep-0 {
136 compatible = "arm,idle-state";
137 idle-state-name = "power-collapse";
138 arm,psci-suspend-param = <0x40000003>;
139 entry-latency-us = <290>;
140 exit-latency-us = <376>;
141 min-residency-us = <1182>;
142 local-timer-stop;
143 };
144 };
145 };
146
147 firmware {
148 scm: scm {
149 compatible = "qcom,scm-qcm2290", "qcom,scm";
150 clocks = <&rpmcc RPM_SMD_CE1_CLK>;
151 clock-names = "core";
152 #reset-cells = <1>;
153 };
154 };
155
156 memory@40000000 {
157 device_type = "memory";
158 /* We expect the bootloader to fill in the size */
159 reg = <0 0x40000000 0 0>;
160 };
161
162 pmu {
163 compatible = "arm,armv8-pmuv3";
164 interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
165 };
166
167 psci {
168 compatible = "arm,psci-1.0";
169 method = "smc";
170
171 CPU_PD0: power-domain-cpu0 {
172 #power-domain-cells = <0>;
173 power-domains = <&CLUSTER_PD>;
174 domain-idle-states = <&CPU_SLEEP>;
175 };
176
177 CPU_PD1: power-domain-cpu1 {
178 #power-domain-cells = <0>;
179 power-domains = <&CLUSTER_PD>;
180 domain-idle-states = <&CPU_SLEEP>;
181 };
182
183 CPU_PD2: power-domain-cpu2 {
184 #power-domain-cells = <0>;
185 power-domains = <&CLUSTER_PD>;
186 domain-idle-states = <&CPU_SLEEP>;
187 };
188
189 CPU_PD3: power-domain-cpu3 {
190 #power-domain-cells = <0>;
191 power-domains = <&CLUSTER_PD>;
192 domain-idle-states = <&CPU_SLEEP>;
193 };
194
195 CLUSTER_PD: power-domain-cpu-cluster {
196 #power-domain-cells = <0>;
197 domain-idle-states = <&CLUSTER_SLEEP>;
198 };
199 };
200
201 rpm: remoteproc {
202 compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc";
203
204 glink-edge {
205 compatible = "qcom,glink-rpm";
206 interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
207 qcom,rpm-msg-ram = <&rpm_msg_ram>;
208 mboxes = <&apcs_glb 0>;
209
210 rpm_requests: rpm-requests {
211 compatible = "qcom,rpm-qcm2290";
212 qcom,glink-channels = "rpm_requests";
213
214 rpmcc: clock-controller {
215 compatible = "qcom,rpmcc-qcm2290", "qcom,rpmcc";
216 clocks = <&xo_board>;
217 clock-names = "xo";
218 #clock-cells = <1>;
219 };
220
221 rpmpd: power-controller {
222 compatible = "qcom,qcm2290-rpmpd";
223 #power-domain-cells = <1>;
224 operating-points-v2 = <&rpmpd_opp_table>;
225
226 rpmpd_opp_table: opp-table {
227 compatible = "operating-points-v2";
228
229 rpmpd_opp_min_svs: opp1 {
230 opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
231 };
232
233 rpmpd_opp_low_svs: opp2 {
234 opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
235 };
236
237 rpmpd_opp_svs: opp3 {
238 opp-level = <RPM_SMD_LEVEL_SVS>;
239 };
240
241 rpmpd_opp_svs_plus: opp4 {
242 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
243 };
244
245 rpmpd_opp_nom: opp5 {
246 opp-level = <RPM_SMD_LEVEL_NOM>;
247 };
248
249 rpmpd_opp_nom_plus: opp6 {
250 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
251 };
252
253 rpmpd_opp_turbo: opp7 {
254 opp-level = <RPM_SMD_LEVEL_TURBO>;
255 };
256
257 rpmpd_opp_turbo_plus: opp8 {
258 opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
259 };
260 };
261 };
262 };
263 };
264 };
265
266 reserved_memory: reserved-memory {
267 #address-cells = <2>;
268 #size-cells = <2>;
269 ranges;
270
271 hyp_mem: hyp@45700000 {
272 reg = <0x0 0x45700000 0x0 0x600000>;
273 no-map;
274 };
275
276 xbl_aop_mem: xbl-aop@45e00000 {
277 reg = <0x0 0x45e00000 0x0 0x140000>;
278 no-map;
279 };
280
281 sec_apps_mem: sec-apps@45fff000 {
282 reg = <0x0 0x45fff000 0x0 0x1000>;
283 no-map;
284 };
285
286 smem_mem: smem@46000000 {
287 compatible = "qcom,smem";
288 reg = <0x0 0x46000000 0x0 0x200000>;
289 no-map;
290
291 hwlocks = <&tcsr_mutex 3>;
292 qcom,rpm-msg-ram = <&rpm_msg_ram>;
293 };
294
295 pil_modem_mem: modem@4ab00000 {
296 reg = <0x0 0x4ab00000 0x0 0x6900000>;
297 no-map;
298 };
299
300 pil_video_mem: video@51400000 {
301 reg = <0x0 0x51400000 0x0 0x500000>;
302 no-map;
303 };
304
305 wlan_msa_mem: wlan-msa@51900000 {
306 reg = <0x0 0x51900000 0x0 0x100000>;
307 no-map;
308 };
309
310 pil_adsp_mem: adsp@51a00000 {
311 reg = <0x0 0x51a00000 0x0 0x1c00000>;
312 no-map;
313 };
314
315 pil_ipa_fw_mem: ipa-fw@53600000 {
316 reg = <0x0 0x53600000 0x0 0x10000>;
317 no-map;
318 };
319
320 pil_ipa_gsi_mem: ipa-gsi@53610000 {
321 reg = <0x0 0x53610000 0x0 0x5000>;
322 no-map;
323 };
324
325 pil_gpu_mem: zap@53615000 {
326 compatible = "shared-dma-pool";
327 reg = <0x0 0x53615000 0x0 0x2000>;
328 no-map;
329 };
330
331 cont_splash_memory: framebuffer@5c000000 {
332 reg = <0x0 0x5c000000 0x0 0x00f00000>;
333 no-map;
334 };
335
336 dfps_data_memory: dpfs-data@5cf00000 {
337 reg = <0x0 0x5cf00000 0x0 0x0100000>;
338 no-map;
339 };
340
341 removed_mem: reserved@60000000 {
342 reg = <0x0 0x60000000 0x0 0x3900000>;
343 no-map;
344 };
345
346 rmtfs_mem: memory@89b01000 {
347 compatible = "qcom,rmtfs-mem";
348 reg = <0x0 0x89b01000 0x0 0x200000>;
349 no-map;
350
351 qcom,client-id = <1>;
352 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA QCOM_SCM_VMID_NAV>;
353 };
354 };
355
356 smp2p-adsp {
357 compatible = "qcom,smp2p";
358 qcom,smem = <443>, <429>;
359
360 interrupts = <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>;
361
362 mboxes = <&apcs_glb 10>;
363
364 qcom,local-pid = <0>;
365 qcom,remote-pid = <2>;
366
367 adsp_smp2p_out: master-kernel {
368 qcom,entry-name = "master-kernel";
369 #qcom,smem-state-cells = <1>;
370 };
371
372 adsp_smp2p_in: slave-kernel {
373 qcom,entry-name = "slave-kernel";
374 interrupt-controller;
375 #interrupt-cells = <2>;
376 };
377 };
378
379 smp2p-mpss {
380 compatible = "qcom,smp2p";
381 qcom,smem = <435>, <428>;
382
383 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
384
385 mboxes = <&apcs_glb 14>;
386
387 qcom,local-pid = <0>;
388 qcom,remote-pid = <1>;
389
390 modem_smp2p_out: master-kernel {
391 qcom,entry-name = "master-kernel";
392 #qcom,smem-state-cells = <1>;
393 };
394
395 modem_smp2p_in: slave-kernel {
396 qcom,entry-name = "slave-kernel";
397 interrupt-controller;
398 #interrupt-cells = <2>;
399 };
400
401 wlan_smp2p_in: wlan-wpss-to-ap {
402 qcom,entry-name = "wlan";
403 interrupt-controller;
404 #interrupt-cells = <2>;
405 };
406 };
407
408 soc: soc@0 {
409 compatible = "simple-bus";
410 #address-cells = <2>;
411 #size-cells = <2>;
412 ranges = <0 0 0 0 0x10 0>;
413 dma-ranges = <0 0 0 0 0x10 0>;
414
415 tcsr_mutex: hwlock@340000 {
416 compatible = "qcom,tcsr-mutex";
417 reg = <0x0 0x00340000 0x0 0x20000>;
418 #hwlock-cells = <1>;
419 };
420
421 tlmm: pinctrl@500000 {
422 compatible = "qcom,qcm2290-tlmm";
423 reg = <0x0 0x00500000 0x0 0x300000>;
424 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
425 gpio-controller;
426 gpio-ranges = <&tlmm 0 0 127>;
427 #gpio-cells = <2>;
428 interrupt-controller;
429 #interrupt-cells = <2>;
430
431 qup_i2c0_default: qup-i2c0-default-state {
432 pins = "gpio0", "gpio1";
433 function = "qup0";
434 drive-strength = <2>;
435 bias-pull-up;
436 };
437
438 qup_i2c1_default: qup-i2c1-default-state {
439 pins = "gpio4", "gpio5";
440 function = "qup1";
441 drive-strength = <2>;
442 bias-pull-up;
443 };
444
445 qup_i2c2_default: qup-i2c2-default-state {
446 pins = "gpio6", "gpio7";
447 function = "qup2";
448 drive-strength = <2>;
449 bias-pull-up;
450 };
451
452 qup_i2c3_default: qup-i2c3-default-state {
453 pins = "gpio8", "gpio9";
454 function = "qup3";
455 drive-strength = <2>;
456 bias-pull-up;
457 };
458
459 qup_i2c4_default: qup-i2c4-default-state {
460 pins = "gpio12", "gpio13";
461 function = "qup4";
462 drive-strength = <2>;
463 bias-pull-up;
464 };
465
466 qup_i2c5_default: qup-i2c5-default-state {
467 pins = "gpio14", "gpio15";
468 function = "qup5";
469 drive-strength = <2>;
470 bias-pull-up;
471 };
472
473 qup_spi0_default: qup-spi0-default-state {
474 pins = "gpio0", "gpio1","gpio2", "gpio3";
475 function = "qup0";
476 drive-strength = <2>;
477 bias-pull-up;
478 };
479
480 qup_spi1_default: qup-spi1-default-state {
481 pins = "gpio4", "gpio5", "gpio69", "gpio70";
482 function = "qup1";
483 drive-strength = <2>;
484 bias-pull-up;
485 };
486
487 qup_spi2_default: qup-spi2-default-state {
488 pins = "gpio6", "gpio7", "gpio71", "gpio80";
489 function = "qup2";
490 drive-strength = <2>;
491 bias-pull-up;
492 };
493
494 qup_spi3_default: qup-spi3-default-state {
495 pins = "gpio8", "gpio9", "gpio10", "gpio11";
496 function = "qup3";
497 drive-strength = <2>;
498 bias-pull-up;
499 };
500
501 qup_spi4_default: qup-spi4-default-state {
502 pins = "gpio12", "gpio13", "gpio96", "gpio97";
503 function = "qup4";
504 drive-strength = <2>;
505 bias-pull-up;
506 };
507
508 qup_spi5_default: qup-spi5-default-state {
509 pins = "gpio14", "gpio15", "gpio16", "gpio17";
510 function = "qup5";
511 drive-strength = <2>;
512 bias-pull-up;
513 };
514
515 qup_uart0_default: qup-uart0-default-state {
516 pins = "gpio0", "gpio1", "gpio2", "gpio3";
517 function = "qup0";
518 drive-strength = <2>;
519 bias-disable;
520 };
521
522 qup_uart4_default: qup-uart4-default-state {
523 pins = "gpio12", "gpio13";
524 function = "qup4";
525 drive-strength = <2>;
526 bias-disable;
527 };
528
529 sdc1_state_on: sdc1-on-state {
530 clk-pins {
531 pins = "sdc1_clk";
532 drive-strength = <16>;
533 bias-disable;
534 };
535
536 cmd-pins {
537 pins = "sdc1_cmd";
538 drive-strength = <10>;
539 bias-pull-up;
540 };
541
542 data-pins {
543 pins = "sdc1_data";
544 drive-strength = <10>;
545 bias-pull-up;
546 };
547
548 rclk-pins {
549 pins = "sdc1_rclk";
550 bias-pull-down;
551 };
552 };
553
554 sdc1_state_off: sdc1-off-state {
555 clk-pins {
556 pins = "sdc1_clk";
557 drive-strength = <2>;
558 bias-disable;
559 };
560
561 cmd-pins {
562 pins = "sdc1_cmd";
563 drive-strength = <2>;
564 bias-pull-up;
565 };
566
567 data-pins {
568 pins = "sdc1_data";
569 drive-strength = <2>;
570 bias-pull-up;
571 };
572
573 rclk-pins {
574 pins = "sdc1_rclk";
575 bias-pull-down;
576 };
577 };
578
579 sdc2_state_on: sdc2-on-state {
580 clk-pins {
581 pins = "sdc2_clk";
582 drive-strength = <16>;
583 bias-disable;
584 };
585
586 cmd-pins {
587 pins = "sdc2_cmd";
588 drive-strength = <10>;
589 bias-pull-up;
590 };
591
592 data-pins {
593 pins = "sdc2_data";
594 drive-strength = <10>;
595 bias-pull-up;
596 };
597 };
598
599 sdc2_state_off: sdc2-off-state {
600 clk-pins {
601 pins = "sdc2_clk";
602 drive-strength = <2>;
603 bias-disable;
604 };
605
606 cmd-pins {
607 pins = "sdc2_cmd";
608 drive-strength = <2>;
609 bias-pull-up;
610 };
611
612 data-pins {
613 pins = "sdc2_data";
614 drive-strength = <2>;
615 bias-pull-up;
616 };
617 };
618 };
619
620 gcc: clock-controller@1400000 {
621 compatible = "qcom,gcc-qcm2290";
622 reg = <0x0 0x01400000 0x0 0x1f0000>;
623 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
624 clock-names = "bi_tcxo", "sleep_clk";
625 #clock-cells = <1>;
626 #reset-cells = <1>;
627 #power-domain-cells = <1>;
628 };
629
630 usb_hsphy: phy@1613000 {
631 compatible = "qcom,qcm2290-qusb2-phy";
632 reg = <0x0 0x01613000 0x0 0x180>;
633
634 clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
635 <&rpmcc RPM_SMD_XO_CLK_SRC>;
636 clock-names = "cfg_ahb", "ref";
637
638 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
639 nvmem-cells = <&qusb2_hstx_trim>;
640 #phy-cells = <0>;
641
642 status = "disabled";
643 };
644
645 usb_qmpphy: phy@1615000 {
646 compatible = "qcom,qcm2290-qmp-usb3-phy";
647 reg = <0x0 0x01615000 0x0 0x1000>;
648
649 clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
650 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
651 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
652 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
653 clock-names = "cfg_ahb",
654 "ref",
655 "com_aux",
656 "pipe";
657
658 resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
659 <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
660 reset-names = "phy",
661 "phy_phy";
662
663 #clock-cells = <0>;
664 clock-output-names = "usb3_phy_pipe_clk_src";
665
666 #phy-cells = <0>;
667
668 status = "disabled";
669 };
670
671 qfprom@1b44000 {
672 compatible = "qcom,qcm2290-qfprom", "qcom,qfprom";
673 reg = <0x0 0x01b44000 0x0 0x3000>;
674 #address-cells = <1>;
675 #size-cells = <1>;
676
677 qusb2_hstx_trim: hstx-trim@25b {
678 reg = <0x25b 0x1>;
679 bits = <1 4>;
680 };
681 };
682
683 spmi_bus: spmi@1c40000 {
684 compatible = "qcom,spmi-pmic-arb";
685 reg = <0x0 0x01c40000 0x0 0x1100>,
686 <0x0 0x01e00000 0x0 0x2000000>,
687 <0x0 0x03e00000 0x0 0x100000>,
688 <0x0 0x03f00000 0x0 0xa0000>,
689 <0x0 0x01c0a000 0x0 0x26000>;
690 reg-names = "core",
691 "chnls",
692 "obsrvr",
693 "intr",
694 "cnfg";
695 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
696 interrupt-names = "periph_irq";
697 qcom,ee = <0>;
698 qcom,channel = <0>;
699 #address-cells = <2>;
700 #size-cells = <0>;
701 interrupt-controller;
702 #interrupt-cells = <4>;
703 };
704
705 tsens0: thermal-sensor@4411000 {
706 compatible = "qcom,qcm2290-tsens", "qcom,tsens-v2";
707 reg = <0x0 0x04411000 0x0 0x1ff>,
708 <0x0 0x04410000 0x0 0x8>;
709 #qcom,sensors = <10>;
710 interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
711 <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
712 interrupt-names = "uplow", "critical";
713 #thermal-sensor-cells = <1>;
714 };
715
716 rng: rng@4453000 {
717 compatible = "qcom,prng-ee";
718 reg = <0x0 0x04453000 0x0 0x1000>;
719 clocks = <&rpmcc RPM_SMD_HWKM_CLK>;
720 clock-names = "core";
721 };
722
723 rpm_msg_ram: sram@45f0000 {
724 compatible = "qcom,rpm-msg-ram";
725 reg = <0x0 0x045f0000 0x0 0x7000>;
726 };
727
728 sram@4690000 {
729 compatible = "qcom,rpm-stats";
730 reg = <0x0 0x04690000 0x0 0x10000>;
731 };
732
733 sdhc_1: mmc@4744000 {
734 compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
735 reg = <0x0 0x04744000 0x0 0x1000>,
736 <0x0 0x04745000 0x0 0x1000>,
737 <0x0 0x04748000 0x0 0x8000>;
738 reg-names = "hc",
739 "cqhci",
740 "ice";
741
742 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
743 <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
744 interrupt-names = "hc_irq", "pwr_irq";
745
746 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
747 <&gcc GCC_SDCC1_APPS_CLK>,
748 <&rpmcc RPM_SMD_XO_CLK_SRC>,
749 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
750 clock-names = "iface",
751 "core",
752 "xo",
753 "ice";
754
755 resets = <&gcc GCC_SDCC1_BCR>;
756
757 power-domains = <&rpmpd QCM2290_VDDCX>;
758 iommus = <&apps_smmu 0xc0 0x0>;
759
760 qcom,dll-config = <0x000f642c>;
761 qcom,ddr-config = <0x80040868>;
762 bus-width = <8>;
763
764 status = "disabled";
765 };
766
767 sdhc_2: mmc@4784000 {
768 compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
769 reg = <0x0 0x04784000 0x0 0x1000>;
770 reg-names = "hc";
771
772 interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
773 <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
774 interrupt-names = "hc_irq", "pwr_irq";
775
776 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
777 <&gcc GCC_SDCC2_APPS_CLK>,
778 <&rpmcc RPM_SMD_XO_CLK_SRC>;
779 clock-names = "iface",
780 "core",
781 "xo";
782
783 resets = <&gcc GCC_SDCC2_BCR>;
784
785 power-domains = <&rpmpd QCM2290_VDDCX>;
786 operating-points-v2 = <&sdhc2_opp_table>;
787 iommus = <&apps_smmu 0xa0 0x0>;
788
789 qcom,dll-config = <0x0007642c>;
790 qcom,ddr-config = <0x80040868>;
791 bus-width = <4>;
792
793 status = "disabled";
794
795 sdhc2_opp_table: opp-table {
796 compatible = "operating-points-v2";
797
798 opp-100000000 {
799 opp-hz = /bits/ 64 <100000000>;
800 required-opps = <&rpmpd_opp_low_svs>;
801 };
802
803 opp-202000000 {
804 opp-hz = /bits/ 64 <202000000>;
805 required-opps = <&rpmpd_opp_svs_plus>;
806 };
807 };
808 };
809
810 gpi_dma0: dma-controller@4a00000 {
811 compatible = "qcom,qcm2290-gpi-dma", "qcom,sm6350-gpi-dma";
812 reg = <0x0 0x04a00000 0x0 0x60000>;
813 interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
814 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
815 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
816 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
817 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
818 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
819 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
820 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
821 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
822 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
823 dma-channels = <10>;
824 dma-channel-mask = <0x1f>;
825 iommus = <&apps_smmu 0xf6 0x0>;
826 #dma-cells = <3>;
827 status = "disabled";
828 };
829
830 qupv3_id_0: geniqup@4ac0000 {
831 compatible = "qcom,geni-se-qup";
832 reg = <0x0 0x04ac0000 0x0 0x2000>;
833 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
834 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
835 clock-names = "m-ahb", "s-ahb";
836 iommus = <&apps_smmu 0xe3 0x0>;
837 #address-cells = <2>;
838 #size-cells = <2>;
839 ranges;
840 status = "disabled";
841
842 i2c0: i2c@4a80000 {
843 compatible = "qcom,geni-i2c";
844 reg = <0x0 0x04a80000 0x0 0x4000>;
845 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
846 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
847 clock-names = "se";
848 pinctrl-0 = <&qup_i2c0_default>;
849 pinctrl-names = "default";
850 dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
851 <&gpi_dma0 1 0 QCOM_GPI_I2C>;
852 dma-names = "tx", "rx";
853 #address-cells = <1>;
854 #size-cells = <0>;
855 status = "disabled";
856 };
857
858 spi0: spi@4a80000 {
859 compatible = "qcom,geni-spi";
860 reg = <0x0 0x04a80000 0x0 0x4000>;
861 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
862 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
863 clock-names = "se";
864 pinctrl-0 = <&qup_spi0_default>;
865 pinctrl-names = "default";
866 dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
867 <&gpi_dma0 1 0 QCOM_GPI_SPI>;
868 dma-names = "tx", "rx";
869 #address-cells = <1>;
870 #size-cells = <0>;
871 status = "disabled";
872 };
873
874 uart0: serial@4a80000 {
875 compatible = "qcom,geni-uart";
876 reg = <0x0 0x04a80000 0x0 0x4000>;
877 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
878 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
879 clock-names = "se";
880 pinctrl-0 = <&qup_uart0_default>;
881 pinctrl-names = "default";
882 status = "disabled";
883 };
884
885 i2c1: i2c@4a84000 {
886 compatible = "qcom,geni-i2c";
887 reg = <0x0 0x04a84000 0x0 0x4000>;
888 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
889 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
890 clock-names = "se";
891 pinctrl-0 = <&qup_i2c1_default>;
892 pinctrl-names = "default";
893 dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
894 <&gpi_dma0 1 1 QCOM_GPI_I2C>;
895 dma-names = "tx", "rx";
896 #address-cells = <1>;
897 #size-cells = <0>;
898 status = "disabled";
899 };
900
901 spi1: spi@4a84000 {
902 compatible = "qcom,geni-spi";
903 reg = <0x0 0x04a84000 0x0 0x4000>;
904 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
905 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
906 clock-names = "se";
907 pinctrl-0 = <&qup_spi1_default>;
908 pinctrl-names = "default";
909 dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
910 <&gpi_dma0 1 1 QCOM_GPI_SPI>;
911 dma-names = "tx", "rx";
912 #address-cells = <1>;
913 #size-cells = <0>;
914 status = "disabled";
915 };
916
917 i2c2: i2c@4a88000 {
918 compatible = "qcom,geni-i2c";
919 reg = <0x0 0x04a88000 0x0 0x4000>;
920 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
921 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
922 clock-names = "se";
923 pinctrl-0 = <&qup_i2c2_default>;
924 pinctrl-names = "default";
925 dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
926 <&gpi_dma0 1 2 QCOM_GPI_I2C>;
927 dma-names = "tx", "rx";
928 #address-cells = <1>;
929 #size-cells = <0>;
930 status = "disabled";
931 };
932
933 spi2: spi@4a88000 {
934 compatible = "qcom,geni-spi";
935 reg = <0x0 0x04a88000 0x0 0x4000>;
936 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
937 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
938 clock-names = "se";
939 pinctrl-0 = <&qup_spi2_default>;
940 pinctrl-names = "default";
941 dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
942 <&gpi_dma0 1 2 QCOM_GPI_SPI>;
943 dma-names = "tx", "rx";
944 #address-cells = <1>;
945 #size-cells = <0>;
946 status = "disabled";
947 };
948
949 i2c3: i2c@4a8c000 {
950 compatible = "qcom,geni-i2c";
951 reg = <0x0 0x04a8c000 0x0 0x4000>;
952 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
953 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
954 clock-names = "se";
955 pinctrl-0 = <&qup_i2c3_default>;
956 pinctrl-names = "default";
957 dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
958 <&gpi_dma0 1 3 QCOM_GPI_I2C>;
959 dma-names = "tx", "rx";
960 #address-cells = <1>;
961 #size-cells = <0>;
962 status = "disabled";
963 };
964
965 spi3: spi@4a8c000 {
966 compatible = "qcom,geni-spi";
967 reg = <0x0 0x04a8c000 0x0 0x4000>;
968 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
969 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
970 clock-names = "se";
971 pinctrl-0 = <&qup_spi3_default>;
972 pinctrl-names = "default";
973 dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
974 <&gpi_dma0 1 3 QCOM_GPI_SPI>;
975 dma-names = "tx", "rx";
976 #address-cells = <1>;
977 #size-cells = <0>;
978 status = "disabled";
979 };
980
981 i2c4: i2c@4a90000 {
982 compatible = "qcom,geni-i2c";
983 reg = <0x0 0x04a90000 0x0 0x4000>;
984 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
985 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
986 clock-names = "se";
987 pinctrl-0 = <&qup_i2c4_default>;
988 pinctrl-names = "default";
989 dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
990 <&gpi_dma0 1 4 QCOM_GPI_I2C>;
991 dma-names = "tx", "rx";
992 #address-cells = <1>;
993 #size-cells = <0>;
994 status = "disabled";
995 };
996
997 spi4: spi@4a90000 {
998 compatible = "qcom,geni-spi";
999 reg = <0x0 0x04a90000 0x0 0x4000>;
1000 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1001 clock-names = "se";
1002 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1003 pinctrl-names = "default";
1004 pinctrl-0 = <&qup_spi4_default>;
1005 dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
1006 <&gpi_dma0 1 4 QCOM_GPI_SPI>;
1007 dma-names = "tx", "rx";
1008 #address-cells = <1>;
1009 #size-cells = <0>;
1010 status = "disabled";
1011 };
1012
1013 uart4: serial@4a90000 {
1014 compatible = "qcom,geni-uart";
1015 reg = <0x0 0x04a90000 0x0 0x4000>;
1016 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1017 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1018 clock-names = "se";
1019 pinctrl-0 = <&qup_uart4_default>;
1020 pinctrl-names = "default";
1021 status = "disabled";
1022 };
1023
1024 i2c5: i2c@4a94000 {
1025 compatible = "qcom,geni-i2c";
1026 reg = <0x0 0x04a94000 0x0 0x4000>;
1027 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1028 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1029 clock-names = "se";
1030 pinctrl-0 = <&qup_i2c5_default>;
1031 pinctrl-names = "default";
1032 dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
1033 <&gpi_dma0 1 5 QCOM_GPI_I2C>;
1034 dma-names = "tx", "rx";
1035 #address-cells = <1>;
1036 #size-cells = <0>;
1037 status = "disabled";
1038 };
1039
1040 spi5: spi@4a94000 {
1041 compatible = "qcom,geni-spi";
1042 reg = <0x0 0x04a94000 0x0 0x4000>;
1043 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1044 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1045 clock-names = "se";
1046 pinctrl-0 = <&qup_spi5_default>;
1047 pinctrl-names = "default";
1048 dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
1049 <&gpi_dma0 1 5 QCOM_GPI_SPI>;
1050 dma-names = "tx", "rx";
1051 #address-cells = <1>;
1052 #size-cells = <0>;
1053 status = "disabled";
1054 };
1055 };
1056
1057 usb: usb@4ef8800 {
1058 compatible = "qcom,qcm2290-dwc3", "qcom,dwc3";
1059 reg = <0x0 0x04ef8800 0x0 0x400>;
1060 interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
1061 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
1062 interrupt-names = "hs_phy_irq", "ss_phy_irq";
1063
1064 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1065 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1066 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
1067 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1068 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1069 <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
1070 clock-names = "cfg_noc",
1071 "core",
1072 "iface",
1073 "sleep",
1074 "mock_utmi",
1075 "xo";
1076
1077 assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1078 <&gcc GCC_USB30_PRIM_MASTER_CLK>;
1079 assigned-clock-rates = <19200000>, <133333333>;
1080
1081 resets = <&gcc GCC_USB30_PRIM_BCR>;
1082 power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
1083 wakeup-source;
1084
1085 #address-cells = <2>;
1086 #size-cells = <2>;
1087 ranges;
1088
1089 status = "disabled";
1090
1091 usb_dwc3: usb@4e00000 {
1092 compatible = "snps,dwc3";
1093 reg = <0x0 0x04e00000 0x0 0xcd00>;
1094 interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
1095 phys = <&usb_hsphy>, <&usb_qmpphy>;
1096 phy-names = "usb2-phy", "usb3-phy";
1097 iommus = <&apps_smmu 0x120 0x0>;
1098 snps,dis_u2_susphy_quirk;
1099 snps,dis_enblslpm_quirk;
1100 snps,has-lpm-erratum;
1101 snps,hird-threshold = /bits/ 8 <0x10>;
1102 snps,usb3_lpm_capable;
1103 maximum-speed = "super-speed";
1104 dr_mode = "otg";
1105 };
1106 };
1107
1108 remoteproc_mpss: remoteproc@6080000 {
1109 compatible = "qcom,qcm2290-mpss-pas", "qcom,sm6115-mpss-pas";
1110 reg = <0x0 0x06080000 0x0 0x100>;
1111
1112 interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
1113 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1114 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1115 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1116 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
1117 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
1118 interrupt-names = "wdog",
1119 "fatal",
1120 "ready",
1121 "handover",
1122 "stop-ack",
1123 "shutdown-ack";
1124
1125 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1126 clock-names = "xo";
1127
1128 power-domains = <&rpmpd QCM2290_VDDCX>;
1129
1130 memory-region = <&pil_modem_mem>;
1131
1132 qcom,smem-states = <&modem_smp2p_out 0>;
1133 qcom,smem-state-names = "stop";
1134
1135 status = "disabled";
1136
1137 glink-edge {
1138 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
1139 label = "mpss";
1140 qcom,remote-pid = <1>;
1141 mboxes = <&apcs_glb 12>;
1142 };
1143 };
1144
1145 remoteproc_adsp: remoteproc@ab00000 {
1146 compatible = "qcom,qcm2290-adsp-pas", "qcom,sm6115-adsp-pas";
1147 reg = <0x0 0x0ab00000 0x0 0x100>;
1148
1149 interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
1150 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1151 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1152 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1153 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1154 interrupt-names = "wdog",
1155 "fatal",
1156 "ready",
1157 "handover",
1158 "stop-ack";
1159
1160 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1161 clock-names = "xo";
1162
1163 power-domains = <&rpmpd QCM2290_VDD_LPI_CX>,
1164 <&rpmpd QCM2290_VDD_LPI_MX>;
1165
1166 memory-region = <&pil_adsp_mem>;
1167
1168 qcom,smem-states = <&adsp_smp2p_out 0>;
1169 qcom,smem-state-names = "stop";
1170
1171 status = "disabled";
1172
1173 glink-edge {
1174 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
1175 label = "lpass";
1176 qcom,remote-pid = <2>;
1177 mboxes = <&apcs_glb 8>;
1178 };
1179 };
1180
1181 apps_smmu: iommu@c600000 {
1182 compatible = "qcom,qcm2290-smmu-500", "qcom,smmu-500", "arm,mmu-500";
1183 reg = <0x0 0x0c600000 0x0 0x80000>;
1184 #iommu-cells = <2>;
1185 #global-interrupts = <1>;
1186
1187 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
1188 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
1189 <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1190 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
1191 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
1192 <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
1193 <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
1194 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
1195 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
1196 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1197 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1198 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1199 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1200 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1201 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1202 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1203 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1204 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1205 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1206 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1207 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1208 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1209 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1210 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1211 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1212 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1213 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1214 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1215 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1216 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1217 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1218 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1219 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1220 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
1221 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1222 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
1223 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
1224 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1225 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1226 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1227 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
1228 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
1229 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
1230 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
1231 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
1232 <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
1233 <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
1234 <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
1235 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1236 <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1237 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
1238 <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
1239 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
1240 <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
1241 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
1242 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
1243 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
1244 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
1245 <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
1246 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1247 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1248 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
1249 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
1250 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
1251 <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
1252 };
1253
1254 wifi: wifi@c800000 {
1255 compatible = "qcom,wcn3990-wifi";
1256 reg = <0x0 0x0c800000 0x0 0x800000>;
1257 reg-names = "membase";
1258 memory-region = <&wlan_msa_mem>;
1259 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
1260 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
1261 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
1262 <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
1263 <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
1264 <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>,
1265 <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>,
1266 <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>,
1267 <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
1268 <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
1269 <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
1270 <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
1271 iommus = <&apps_smmu 0x1a0 0x1>;
1272 qcom,msa-fixed-perm;
1273 status = "disabled";
1274 };
1275
1276 watchdog@f017000 {
1277 compatible = "qcom,apss-wdt-qcm2290", "qcom,kpss-wdt";
1278 reg = <0x0 0x0f017000 0x0 0x1000>;
1279 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
1280 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1281 clocks = <&sleep_clk>;
1282 };
1283
1284 apcs_glb: mailbox@f111000 {
1285 compatible = "qcom,qcm2290-apcs-hmss-global";
1286 reg = <0x0 0x0f111000 0x0 0x1000>;
1287 #mbox-cells = <1>;
1288 };
1289
1290 timer@f120000 {
1291 compatible = "arm,armv7-timer-mem";
1292 reg = <0x0 0x0f120000 0x0 0x1000>;
1293 #address-cells = <1>;
1294 #size-cells = <1>;
1295 ranges = <0 0x0 0x0f121000 0x8000>;
1296
1297 frame@0 {
1298 reg = <0x0 0x1000>,
1299 <0x1000 0x1000>;
1300 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1301 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1302 frame-number = <0>;
1303 };
1304
1305 frame@2000 {
1306 reg = <0x2000 0x1000>;
1307 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1308 frame-number = <1>;
1309 status = "disabled";
1310 };
1311
1312 frame@3000 {
1313 reg = <0x3000 0x1000>;
1314 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1315 frame-number = <2>;
1316 status = "disabled";
1317 };
1318
1319 frame@4000 {
1320 reg = <0x4000 0x1000>;
1321 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1322 frame-number = <3>;
1323 status = "disabled";
1324 };
1325
1326 frame@5000 {
1327 reg = <0x5000 0x1000>;
1328 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1329 frame-number = <4>;
1330 status = "disabled";
1331 };
1332
1333 frame@6000 {
1334 reg = <0x6000 0x1000>;
1335 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1336 frame-number = <5>;
1337 status = "disabled";
1338 };
1339
1340 frame@7000 {
1341 reg = <0x7000 0x1000>;
1342 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1343 frame-number = <6>;
1344 status = "disabled";
1345 };
1346 };
1347
1348 intc: interrupt-controller@f200000 {
1349 compatible = "arm,gic-v3";
1350 reg = <0x0 0x0f200000 0x0 0x10000>,
1351 <0x0 0x0f300000 0x0 0x100000>;
1352 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1353 #interrupt-cells = <3>;
1354 interrupt-controller;
1355 interrupt-parent = <&intc>;
1356 #redistributor-regions = <1>;
1357 redistributor-stride = <0x0 0x20000>;
1358 };
1359
1360 cpufreq_hw: cpufreq@f521000 {
1361 compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw";
1362 reg = <0x0 0x0f521000 0x0 0x1000>;
1363 reg-names = "freq-domain0";
1364 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1365 interrupt-names = "dcvsh-irq-0";
1366 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
1367 clock-names = "xo", "alternate";
1368
1369 #freq-domain-cells = <1>;
1370 #clock-cells = <1>;
1371 };
1372 };
1373
1374 thermal-zones {
1375 mapss-thermal {
1376 polling-delay-passive = <0>;
1377 polling-delay = <0>;
1378
1379 thermal-sensors = <&tsens0 0>;
1380
1381 trips {
1382 mapss_alert0: trip-point0 {
1383 temperature = <90000>;
1384 hysteresis = <2000>;
1385 type = "passive";
1386 };
1387
1388 mapss_alert1: trip-point1 {
1389 temperature = <95000>;
1390 hysteresis = <2000>;
1391 type = "passive";
1392 };
1393
1394 mapss_crit: mapss-crit {
1395 temperature = <110000>;
1396 hysteresis = <1000>;
1397 type = "critical";
1398 };
1399 };
1400 };
1401
1402 video-thermal {
1403 polling-delay-passive = <0>;
1404 polling-delay = <0>;
1405
1406 thermal-sensors = <&tsens0 1>;
1407
1408 trips {
1409 video_alert0: trip-point0 {
1410 temperature = <90000>;
1411 hysteresis = <2000>;
1412 type = "passive";
1413 };
1414
1415 video_alert1: trip-point1 {
1416 temperature = <95000>;
1417 hysteresis = <2000>;
1418 type = "passive";
1419 };
1420
1421 video_crit: video-crit {
1422 temperature = <110000>;
1423 hysteresis = <1000>;
1424 type = "critical";
1425 };
1426 };
1427 };
1428
1429 wlan-thermal {
1430 polling-delay-passive = <0>;
1431 polling-delay = <0>;
1432
1433 thermal-sensors = <&tsens0 2>;
1434
1435 trips {
1436 wlan_alert0: trip-point0 {
1437 temperature = <90000>;
1438 hysteresis = <2000>;
1439 type = "passive";
1440 };
1441
1442 wlan_alert1: trip-point1 {
1443 temperature = <95000>;
1444 hysteresis = <2000>;
1445 type = "passive";
1446 };
1447
1448 wlan_crit: wlan-crit {
1449 temperature = <110000>;
1450 hysteresis = <1000>;
1451 type = "critical";
1452 };
1453 };
1454 };
1455
1456 cpuss0-thermal {
1457 polling-delay-passive = <0>;
1458 polling-delay = <0>;
1459
1460 thermal-sensors = <&tsens0 3>;
1461
1462 trips {
1463 cpuss0_alert0: trip-point0 {
1464 temperature = <90000>;
1465 hysteresis = <2000>;
1466 type = "passive";
1467 };
1468
1469 cpuss0_alert1: trip-point1 {
1470 temperature = <95000>;
1471 hysteresis = <2000>;
1472 type = "passive";
1473 };
1474
1475 cpuss0_crit: cpuss0-crit {
1476 temperature = <110000>;
1477 hysteresis = <1000>;
1478 type = "critical";
1479 };
1480 };
1481 };
1482
1483 cpuss1-thermal {
1484 polling-delay-passive = <0>;
1485 polling-delay = <0>;
1486
1487 thermal-sensors = <&tsens0 4>;
1488
1489 trips {
1490 cpuss1_alert0: trip-point0 {
1491 temperature = <90000>;
1492 hysteresis = <2000>;
1493 type = "passive";
1494 };
1495
1496 cpuss1_alert1: trip-point1 {
1497 temperature = <95000>;
1498 hysteresis = <2000>;
1499 type = "passive";
1500 };
1501
1502 cpuss1_crit: cpuss1-crit {
1503 temperature = <110000>;
1504 hysteresis = <1000>;
1505 type = "critical";
1506 };
1507 };
1508 };
1509
1510 mdm0-thermal {
1511 polling-delay-passive = <0>;
1512 polling-delay = <0>;
1513
1514 thermal-sensors = <&tsens0 5>;
1515
1516 trips {
1517 mdm0_alert0: trip-point0 {
1518 temperature = <90000>;
1519 hysteresis = <2000>;
1520 type = "passive";
1521 };
1522
1523 mdm0_alert1: trip-point1 {
1524 temperature = <95000>;
1525 hysteresis = <2000>;
1526 type = "passive";
1527 };
1528
1529 mdm0_crit: mdm0-crit {
1530 temperature = <110000>;
1531 hysteresis = <1000>;
1532 type = "critical";
1533 };
1534 };
1535 };
1536
1537 mdm1-thermal {
1538 polling-delay-passive = <0>;
1539 polling-delay = <0>;
1540
1541 thermal-sensors = <&tsens0 6>;
1542
1543 trips {
1544 mdm1_alert0: trip-point0 {
1545 temperature = <90000>;
1546 hysteresis = <2000>;
1547 type = "passive";
1548 };
1549
1550 mdm1_alert1: trip-point1 {
1551 temperature = <95000>;
1552 hysteresis = <2000>;
1553 type = "passive";
1554 };
1555
1556 mdm1_crit: mdm1-crit {
1557 temperature = <110000>;
1558 hysteresis = <1000>;
1559 type = "critical";
1560 };
1561 };
1562 };
1563
1564 gpu-thermal {
1565 polling-delay-passive = <0>;
1566 polling-delay = <0>;
1567
1568 thermal-sensors = <&tsens0 7>;
1569
1570 trips {
1571 gpu_alert0: trip-point0 {
1572 temperature = <90000>;
1573 hysteresis = <2000>;
1574 type = "passive";
1575 };
1576
1577 gpu_alert1: trip-point1 {
1578 temperature = <95000>;
1579 hysteresis = <2000>;
1580 type = "passive";
1581 };
1582
1583 gpu_crit: gpu-crit {
1584 temperature = <110000>;
1585 hysteresis = <1000>;
1586 type = "critical";
1587 };
1588 };
1589 };
1590
1591 hm-center-thermal {
1592 polling-delay-passive = <0>;
1593 polling-delay = <0>;
1594
1595 thermal-sensors = <&tsens0 8>;
1596
1597 trips {
1598 hm_center_alert0: trip-point0 {
1599 temperature = <90000>;
1600 hysteresis = <2000>;
1601 type = "passive";
1602 };
1603
1604 hm_center_alert1: trip-point1 {
1605 temperature = <95000>;
1606 hysteresis = <2000>;
1607 type = "passive";
1608 };
1609
1610 hm_center_crit: hm-center-crit {
1611 temperature = <110000>;
1612 hysteresis = <1000>;
1613 type = "critical";
1614 };
1615 };
1616 };
1617
1618 camera-thermal {
1619 polling-delay-passive = <0>;
1620 polling-delay = <0>;
1621
1622 thermal-sensors = <&tsens0 9>;
1623
1624 trips {
1625 camera_alert0: trip-point0 {
1626 temperature = <90000>;
1627 hysteresis = <2000>;
1628 type = "passive";
1629 };
1630
1631 camera_alert1: trip-point1 {
1632 temperature = <95000>;
1633 hysteresis = <2000>;
1634 type = "passive";
1635 };
1636
1637 camera_crit: camera-crit {
1638 temperature = <110000>;
1639 hysteresis = <1000>;
1640 type = "critical";
1641 };
1642 };
1643 };
1644 };
1645
1646 timer {
1647 compatible = "arm,armv8-timer";
1648 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1649 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1650 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1651 <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1652 };
1653};