blob: 0911fb08ed6327f75d6e2d627324bffef24dec22 [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
Tom Rini93743d22024-04-01 09:08:13 -04008#include <dt-bindings/clock/qcom,dispcc-qcm2290.h>
Tom Rini53633a82024-02-29 12:33:36 -05009#include <dt-bindings/clock/qcom,gcc-qcm2290.h>
10#include <dt-bindings/clock/qcom,rpmcc.h>
11#include <dt-bindings/dma/qcom-gpi.h>
12#include <dt-bindings/firmware/qcom,scm.h>
13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/interrupt-controller/arm-gic.h>
Tom Rini93743d22024-04-01 09:08:13 -040015#include <dt-bindings/interconnect/qcom,qcm2290.h>
16#include <dt-bindings/interconnect/qcom,rpm-icc.h>
Tom Rini53633a82024-02-29 12:33:36 -050017#include <dt-bindings/power/qcom-rpmpd.h>
18
19/ {
20 interrupt-parent = <&intc>;
21
22 #address-cells = <2>;
23 #size-cells = <2>;
24
25 chosen { };
26
27 clocks {
28 xo_board: xo-board {
29 compatible = "fixed-clock";
30 #clock-cells = <0>;
31 };
32
33 sleep_clk: sleep-clk {
34 compatible = "fixed-clock";
35 clock-frequency = <32764>;
36 #clock-cells = <0>;
37 };
38 };
39
40 cpus {
41 #address-cells = <2>;
42 #size-cells = <0>;
43
44 CPU0: cpu@0 {
45 device_type = "cpu";
46 compatible = "arm,cortex-a53";
47 reg = <0x0 0x0>;
48 clocks = <&cpufreq_hw 0>;
49 capacity-dmips-mhz = <1024>;
50 dynamic-power-coefficient = <100>;
51 enable-method = "psci";
52 next-level-cache = <&L2_0>;
53 qcom,freq-domain = <&cpufreq_hw 0>;
54 power-domains = <&CPU_PD0>;
55 power-domain-names = "psci";
56 L2_0: l2-cache {
57 compatible = "cache";
58 cache-level = <2>;
59 cache-unified;
60 };
61 };
62
63 CPU1: cpu@1 {
64 device_type = "cpu";
65 compatible = "arm,cortex-a53";
66 reg = <0x0 0x1>;
67 clocks = <&cpufreq_hw 0>;
68 capacity-dmips-mhz = <1024>;
69 dynamic-power-coefficient = <100>;
70 enable-method = "psci";
71 next-level-cache = <&L2_0>;
72 qcom,freq-domain = <&cpufreq_hw 0>;
73 power-domains = <&CPU_PD1>;
74 power-domain-names = "psci";
75 };
76
77 CPU2: cpu@2 {
78 device_type = "cpu";
79 compatible = "arm,cortex-a53";
80 reg = <0x0 0x2>;
81 clocks = <&cpufreq_hw 0>;
82 capacity-dmips-mhz = <1024>;
83 dynamic-power-coefficient = <100>;
84 enable-method = "psci";
85 next-level-cache = <&L2_0>;
86 qcom,freq-domain = <&cpufreq_hw 0>;
87 power-domains = <&CPU_PD2>;
88 power-domain-names = "psci";
89 };
90
91 CPU3: cpu@3 {
92 device_type = "cpu";
93 compatible = "arm,cortex-a53";
94 reg = <0x0 0x3>;
95 clocks = <&cpufreq_hw 0>;
96 capacity-dmips-mhz = <1024>;
97 dynamic-power-coefficient = <100>;
98 enable-method = "psci";
99 next-level-cache = <&L2_0>;
100 qcom,freq-domain = <&cpufreq_hw 0>;
101 power-domains = <&CPU_PD3>;
102 power-domain-names = "psci";
103 };
104
105 cpu-map {
106 cluster0 {
107 core0 {
108 cpu = <&CPU0>;
109 };
110
111 core1 {
112 cpu = <&CPU1>;
113 };
114
115 core2 {
116 cpu = <&CPU2>;
117 };
118
119 core3 {
120 cpu = <&CPU3>;
121 };
122 };
123 };
124
125 domain-idle-states {
126 CLUSTER_SLEEP: cluster-sleep-0 {
127 compatible = "domain-idle-state";
128 arm,psci-suspend-param = <0x41000043>;
129 entry-latency-us = <800>;
130 exit-latency-us = <2118>;
131 min-residency-us = <7376>;
132 };
133 };
134
135 idle-states {
136 entry-method = "psci";
137
138 CPU_SLEEP: cpu-sleep-0 {
139 compatible = "arm,idle-state";
140 idle-state-name = "power-collapse";
141 arm,psci-suspend-param = <0x40000003>;
142 entry-latency-us = <290>;
143 exit-latency-us = <376>;
144 min-residency-us = <1182>;
145 local-timer-stop;
146 };
147 };
148 };
149
150 firmware {
151 scm: scm {
152 compatible = "qcom,scm-qcm2290", "qcom,scm";
153 clocks = <&rpmcc RPM_SMD_CE1_CLK>;
154 clock-names = "core";
155 #reset-cells = <1>;
Tom Rini93743d22024-04-01 09:08:13 -0400156 interconnects = <&system_noc MASTER_CRYPTO_CORE0 RPM_ALWAYS_TAG
157 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
Tom Rini53633a82024-02-29 12:33:36 -0500158 };
159 };
160
161 memory@40000000 {
162 device_type = "memory";
163 /* We expect the bootloader to fill in the size */
164 reg = <0 0x40000000 0 0>;
165 };
166
167 pmu {
168 compatible = "arm,armv8-pmuv3";
169 interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
170 };
171
172 psci {
173 compatible = "arm,psci-1.0";
174 method = "smc";
175
176 CPU_PD0: power-domain-cpu0 {
177 #power-domain-cells = <0>;
178 power-domains = <&CLUSTER_PD>;
179 domain-idle-states = <&CPU_SLEEP>;
180 };
181
182 CPU_PD1: power-domain-cpu1 {
183 #power-domain-cells = <0>;
184 power-domains = <&CLUSTER_PD>;
185 domain-idle-states = <&CPU_SLEEP>;
186 };
187
188 CPU_PD2: power-domain-cpu2 {
189 #power-domain-cells = <0>;
190 power-domains = <&CLUSTER_PD>;
191 domain-idle-states = <&CPU_SLEEP>;
192 };
193
194 CPU_PD3: power-domain-cpu3 {
195 #power-domain-cells = <0>;
196 power-domains = <&CLUSTER_PD>;
197 domain-idle-states = <&CPU_SLEEP>;
198 };
199
200 CLUSTER_PD: power-domain-cpu-cluster {
201 #power-domain-cells = <0>;
Tom Rini93743d22024-04-01 09:08:13 -0400202 power-domains = <&mpm>;
Tom Rini53633a82024-02-29 12:33:36 -0500203 domain-idle-states = <&CLUSTER_SLEEP>;
204 };
205 };
206
207 rpm: remoteproc {
208 compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc";
209
210 glink-edge {
211 compatible = "qcom,glink-rpm";
212 interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
213 qcom,rpm-msg-ram = <&rpm_msg_ram>;
214 mboxes = <&apcs_glb 0>;
215
216 rpm_requests: rpm-requests {
217 compatible = "qcom,rpm-qcm2290";
218 qcom,glink-channels = "rpm_requests";
219
220 rpmcc: clock-controller {
221 compatible = "qcom,rpmcc-qcm2290", "qcom,rpmcc";
222 clocks = <&xo_board>;
223 clock-names = "xo";
224 #clock-cells = <1>;
225 };
226
227 rpmpd: power-controller {
228 compatible = "qcom,qcm2290-rpmpd";
229 #power-domain-cells = <1>;
230 operating-points-v2 = <&rpmpd_opp_table>;
231
232 rpmpd_opp_table: opp-table {
233 compatible = "operating-points-v2";
234
235 rpmpd_opp_min_svs: opp1 {
236 opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
237 };
238
239 rpmpd_opp_low_svs: opp2 {
240 opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
241 };
242
243 rpmpd_opp_svs: opp3 {
244 opp-level = <RPM_SMD_LEVEL_SVS>;
245 };
246
247 rpmpd_opp_svs_plus: opp4 {
248 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
249 };
250
251 rpmpd_opp_nom: opp5 {
252 opp-level = <RPM_SMD_LEVEL_NOM>;
253 };
254
255 rpmpd_opp_nom_plus: opp6 {
256 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
257 };
258
259 rpmpd_opp_turbo: opp7 {
260 opp-level = <RPM_SMD_LEVEL_TURBO>;
261 };
262
263 rpmpd_opp_turbo_plus: opp8 {
264 opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
265 };
266 };
267 };
268 };
269 };
Tom Rini93743d22024-04-01 09:08:13 -0400270
271 mpm: interrupt-controller {
272 compatible = "qcom,mpm";
273 qcom,rpm-msg-ram = <&apss_mpm>;
274 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
275 mboxes = <&apcs_glb 1>;
276 interrupt-controller;
277 #interrupt-cells = <2>;
278 #power-domain-cells = <0>;
279 interrupt-parent = <&intc>;
280 qcom,mpm-pin-count = <96>;
281 qcom,mpm-pin-map = <2 275>, /* TSENS0 uplow */
282 <5 296>, /* Soundwire master_irq */
283 <12 422>, /* DWC3 ss_phy_irq */
284 <24 79>, /* Soundwire wake_irq */
285 <86 183>, /* MPM wake, SPMI */
286 <90 260>; /* QUSB2_PHY DP+DM */
287 };
Tom Rini53633a82024-02-29 12:33:36 -0500288 };
289
290 reserved_memory: reserved-memory {
291 #address-cells = <2>;
292 #size-cells = <2>;
293 ranges;
294
295 hyp_mem: hyp@45700000 {
296 reg = <0x0 0x45700000 0x0 0x600000>;
297 no-map;
298 };
299
300 xbl_aop_mem: xbl-aop@45e00000 {
301 reg = <0x0 0x45e00000 0x0 0x140000>;
302 no-map;
303 };
304
305 sec_apps_mem: sec-apps@45fff000 {
306 reg = <0x0 0x45fff000 0x0 0x1000>;
307 no-map;
308 };
309
310 smem_mem: smem@46000000 {
311 compatible = "qcom,smem";
312 reg = <0x0 0x46000000 0x0 0x200000>;
313 no-map;
314
315 hwlocks = <&tcsr_mutex 3>;
316 qcom,rpm-msg-ram = <&rpm_msg_ram>;
317 };
318
319 pil_modem_mem: modem@4ab00000 {
320 reg = <0x0 0x4ab00000 0x0 0x6900000>;
321 no-map;
322 };
323
324 pil_video_mem: video@51400000 {
325 reg = <0x0 0x51400000 0x0 0x500000>;
326 no-map;
327 };
328
329 wlan_msa_mem: wlan-msa@51900000 {
330 reg = <0x0 0x51900000 0x0 0x100000>;
331 no-map;
332 };
333
334 pil_adsp_mem: adsp@51a00000 {
335 reg = <0x0 0x51a00000 0x0 0x1c00000>;
336 no-map;
337 };
338
339 pil_ipa_fw_mem: ipa-fw@53600000 {
340 reg = <0x0 0x53600000 0x0 0x10000>;
341 no-map;
342 };
343
344 pil_ipa_gsi_mem: ipa-gsi@53610000 {
345 reg = <0x0 0x53610000 0x0 0x5000>;
346 no-map;
347 };
348
349 pil_gpu_mem: zap@53615000 {
350 compatible = "shared-dma-pool";
351 reg = <0x0 0x53615000 0x0 0x2000>;
352 no-map;
353 };
354
355 cont_splash_memory: framebuffer@5c000000 {
356 reg = <0x0 0x5c000000 0x0 0x00f00000>;
357 no-map;
358 };
359
360 dfps_data_memory: dpfs-data@5cf00000 {
361 reg = <0x0 0x5cf00000 0x0 0x0100000>;
362 no-map;
363 };
364
365 removed_mem: reserved@60000000 {
366 reg = <0x0 0x60000000 0x0 0x3900000>;
367 no-map;
368 };
369
370 rmtfs_mem: memory@89b01000 {
371 compatible = "qcom,rmtfs-mem";
372 reg = <0x0 0x89b01000 0x0 0x200000>;
373 no-map;
374
375 qcom,client-id = <1>;
376 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA QCOM_SCM_VMID_NAV>;
377 };
378 };
379
380 smp2p-adsp {
381 compatible = "qcom,smp2p";
382 qcom,smem = <443>, <429>;
383
384 interrupts = <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>;
385
386 mboxes = <&apcs_glb 10>;
387
388 qcom,local-pid = <0>;
389 qcom,remote-pid = <2>;
390
391 adsp_smp2p_out: master-kernel {
392 qcom,entry-name = "master-kernel";
393 #qcom,smem-state-cells = <1>;
394 };
395
396 adsp_smp2p_in: slave-kernel {
397 qcom,entry-name = "slave-kernel";
398 interrupt-controller;
399 #interrupt-cells = <2>;
400 };
401 };
402
403 smp2p-mpss {
404 compatible = "qcom,smp2p";
405 qcom,smem = <435>, <428>;
406
407 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
408
409 mboxes = <&apcs_glb 14>;
410
411 qcom,local-pid = <0>;
412 qcom,remote-pid = <1>;
413
414 modem_smp2p_out: master-kernel {
415 qcom,entry-name = "master-kernel";
416 #qcom,smem-state-cells = <1>;
417 };
418
419 modem_smp2p_in: slave-kernel {
420 qcom,entry-name = "slave-kernel";
421 interrupt-controller;
422 #interrupt-cells = <2>;
423 };
424
425 wlan_smp2p_in: wlan-wpss-to-ap {
426 qcom,entry-name = "wlan";
427 interrupt-controller;
428 #interrupt-cells = <2>;
429 };
430 };
431
432 soc: soc@0 {
433 compatible = "simple-bus";
434 #address-cells = <2>;
435 #size-cells = <2>;
436 ranges = <0 0 0 0 0x10 0>;
437 dma-ranges = <0 0 0 0 0x10 0>;
438
439 tcsr_mutex: hwlock@340000 {
440 compatible = "qcom,tcsr-mutex";
441 reg = <0x0 0x00340000 0x0 0x20000>;
442 #hwlock-cells = <1>;
443 };
444
445 tlmm: pinctrl@500000 {
446 compatible = "qcom,qcm2290-tlmm";
447 reg = <0x0 0x00500000 0x0 0x300000>;
448 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
449 gpio-controller;
450 gpio-ranges = <&tlmm 0 0 127>;
Tom Rini93743d22024-04-01 09:08:13 -0400451 wakeup-parent = <&mpm>;
Tom Rini53633a82024-02-29 12:33:36 -0500452 #gpio-cells = <2>;
453 interrupt-controller;
454 #interrupt-cells = <2>;
455
456 qup_i2c0_default: qup-i2c0-default-state {
457 pins = "gpio0", "gpio1";
458 function = "qup0";
459 drive-strength = <2>;
460 bias-pull-up;
461 };
462
463 qup_i2c1_default: qup-i2c1-default-state {
464 pins = "gpio4", "gpio5";
465 function = "qup1";
466 drive-strength = <2>;
467 bias-pull-up;
468 };
469
470 qup_i2c2_default: qup-i2c2-default-state {
471 pins = "gpio6", "gpio7";
472 function = "qup2";
473 drive-strength = <2>;
474 bias-pull-up;
475 };
476
477 qup_i2c3_default: qup-i2c3-default-state {
478 pins = "gpio8", "gpio9";
479 function = "qup3";
480 drive-strength = <2>;
481 bias-pull-up;
482 };
483
484 qup_i2c4_default: qup-i2c4-default-state {
485 pins = "gpio12", "gpio13";
486 function = "qup4";
487 drive-strength = <2>;
488 bias-pull-up;
489 };
490
491 qup_i2c5_default: qup-i2c5-default-state {
492 pins = "gpio14", "gpio15";
493 function = "qup5";
494 drive-strength = <2>;
495 bias-pull-up;
496 };
497
498 qup_spi0_default: qup-spi0-default-state {
499 pins = "gpio0", "gpio1","gpio2", "gpio3";
500 function = "qup0";
501 drive-strength = <2>;
502 bias-pull-up;
503 };
504
505 qup_spi1_default: qup-spi1-default-state {
506 pins = "gpio4", "gpio5", "gpio69", "gpio70";
507 function = "qup1";
508 drive-strength = <2>;
509 bias-pull-up;
510 };
511
512 qup_spi2_default: qup-spi2-default-state {
513 pins = "gpio6", "gpio7", "gpio71", "gpio80";
514 function = "qup2";
515 drive-strength = <2>;
516 bias-pull-up;
517 };
518
519 qup_spi3_default: qup-spi3-default-state {
520 pins = "gpio8", "gpio9", "gpio10", "gpio11";
521 function = "qup3";
522 drive-strength = <2>;
523 bias-pull-up;
524 };
525
526 qup_spi4_default: qup-spi4-default-state {
527 pins = "gpio12", "gpio13", "gpio96", "gpio97";
528 function = "qup4";
529 drive-strength = <2>;
530 bias-pull-up;
531 };
532
533 qup_spi5_default: qup-spi5-default-state {
534 pins = "gpio14", "gpio15", "gpio16", "gpio17";
535 function = "qup5";
536 drive-strength = <2>;
537 bias-pull-up;
538 };
539
540 qup_uart0_default: qup-uart0-default-state {
541 pins = "gpio0", "gpio1", "gpio2", "gpio3";
542 function = "qup0";
543 drive-strength = <2>;
544 bias-disable;
545 };
546
547 qup_uart4_default: qup-uart4-default-state {
548 pins = "gpio12", "gpio13";
549 function = "qup4";
550 drive-strength = <2>;
551 bias-disable;
552 };
553
554 sdc1_state_on: sdc1-on-state {
555 clk-pins {
556 pins = "sdc1_clk";
557 drive-strength = <16>;
558 bias-disable;
559 };
560
561 cmd-pins {
562 pins = "sdc1_cmd";
563 drive-strength = <10>;
564 bias-pull-up;
565 };
566
567 data-pins {
568 pins = "sdc1_data";
569 drive-strength = <10>;
570 bias-pull-up;
571 };
572
573 rclk-pins {
574 pins = "sdc1_rclk";
575 bias-pull-down;
576 };
577 };
578
579 sdc1_state_off: sdc1-off-state {
580 clk-pins {
581 pins = "sdc1_clk";
582 drive-strength = <2>;
583 bias-disable;
584 };
585
586 cmd-pins {
587 pins = "sdc1_cmd";
588 drive-strength = <2>;
589 bias-pull-up;
590 };
591
592 data-pins {
593 pins = "sdc1_data";
594 drive-strength = <2>;
595 bias-pull-up;
596 };
597
598 rclk-pins {
599 pins = "sdc1_rclk";
600 bias-pull-down;
601 };
602 };
603
604 sdc2_state_on: sdc2-on-state {
605 clk-pins {
606 pins = "sdc2_clk";
607 drive-strength = <16>;
608 bias-disable;
609 };
610
611 cmd-pins {
612 pins = "sdc2_cmd";
613 drive-strength = <10>;
614 bias-pull-up;
615 };
616
617 data-pins {
618 pins = "sdc2_data";
619 drive-strength = <10>;
620 bias-pull-up;
621 };
622 };
623
624 sdc2_state_off: sdc2-off-state {
625 clk-pins {
626 pins = "sdc2_clk";
627 drive-strength = <2>;
628 bias-disable;
629 };
630
631 cmd-pins {
632 pins = "sdc2_cmd";
633 drive-strength = <2>;
634 bias-pull-up;
635 };
636
637 data-pins {
638 pins = "sdc2_data";
639 drive-strength = <2>;
640 bias-pull-up;
641 };
642 };
643 };
644
645 gcc: clock-controller@1400000 {
646 compatible = "qcom,gcc-qcm2290";
647 reg = <0x0 0x01400000 0x0 0x1f0000>;
648 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
649 clock-names = "bi_tcxo", "sleep_clk";
650 #clock-cells = <1>;
651 #reset-cells = <1>;
652 #power-domain-cells = <1>;
653 };
654
655 usb_hsphy: phy@1613000 {
656 compatible = "qcom,qcm2290-qusb2-phy";
657 reg = <0x0 0x01613000 0x0 0x180>;
658
659 clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
660 <&rpmcc RPM_SMD_XO_CLK_SRC>;
661 clock-names = "cfg_ahb", "ref";
662
663 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
664 nvmem-cells = <&qusb2_hstx_trim>;
665 #phy-cells = <0>;
666
667 status = "disabled";
668 };
669
670 usb_qmpphy: phy@1615000 {
671 compatible = "qcom,qcm2290-qmp-usb3-phy";
672 reg = <0x0 0x01615000 0x0 0x1000>;
673
674 clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
675 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
676 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
677 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
678 clock-names = "cfg_ahb",
679 "ref",
680 "com_aux",
681 "pipe";
682
683 resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
684 <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
685 reset-names = "phy",
686 "phy_phy";
687
688 #clock-cells = <0>;
689 clock-output-names = "usb3_phy_pipe_clk_src";
690
691 #phy-cells = <0>;
692
693 status = "disabled";
694 };
695
Tom Rini93743d22024-04-01 09:08:13 -0400696 system_noc: interconnect@1880000 {
697 compatible = "qcom,qcm2290-snoc";
698 reg = <0x0 0x01880000 0x0 0x60200>;
699 #interconnect-cells = <2>;
700
701 qup_virt: interconnect-qup {
702 compatible = "qcom,qcm2290-qup-virt";
703 #interconnect-cells = <2>;
704 };
705
706 mmnrt_virt: interconnect-mmnrt {
707 compatible = "qcom,qcm2290-mmnrt-virt";
708 #interconnect-cells = <2>;
709 };
710
711 mmrt_virt: interconnect-mmrt {
712 compatible = "qcom,qcm2290-mmrt-virt";
713 #interconnect-cells = <2>;
714 };
715 };
716
717 config_noc: interconnect@1900000 {
718 compatible = "qcom,qcm2290-cnoc";
719 reg = <0x0 0x01900000 0x0 0x8200>;
720 #interconnect-cells = <2>;
721 };
722
Tom Rini53633a82024-02-29 12:33:36 -0500723 qfprom@1b44000 {
724 compatible = "qcom,qcm2290-qfprom", "qcom,qfprom";
725 reg = <0x0 0x01b44000 0x0 0x3000>;
726 #address-cells = <1>;
727 #size-cells = <1>;
728
729 qusb2_hstx_trim: hstx-trim@25b {
730 reg = <0x25b 0x1>;
731 bits = <1 4>;
732 };
733 };
734
Tom Rini93743d22024-04-01 09:08:13 -0400735 pmu@1b8e300 {
736 compatible = "qcom,qcm2290-cpu-bwmon", "qcom,sdm845-bwmon";
737 reg = <0x0 0x01b8e300 0x0 0x600>;
738 interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
739
740 operating-points-v2 = <&cpu_bwmon_opp_table>;
741 interconnects = <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG
742 &bimc SLAVE_EBI1 RPM_ACTIVE_TAG>;
743
744 cpu_bwmon_opp_table: opp-table {
745 compatible = "operating-points-v2";
746
747 opp-0 {
748 opp-peak-kBps = <(200 * 4 * 1000)>;
749 };
750
751 opp-1 {
752 opp-peak-kBps = <(300 * 4 * 1000)>;
753 };
754
755 opp-2 {
756 opp-peak-kBps = <(451 * 4 * 1000)>;
757 };
758
759 opp-3 {
760 opp-peak-kBps = <(547 * 4 * 1000)>;
761 };
762
763 opp-4 {
764 opp-peak-kBps = <(681 * 4 * 1000)>;
765 };
766
767 opp-5 {
768 opp-peak-kBps = <(768 * 4 * 1000)>;
769 };
770
771 opp-6 {
772 opp-peak-kBps = <(1017 * 4 * 1000)>;
773 };
774
775 opp-7 {
776 opp-peak-kBps = <(1353 * 4 * 1000)>;
777 };
778
779 opp-8 {
780 opp-peak-kBps = <(1555 * 4 * 1000)>;
781 };
782
783 opp-9 {
784 opp-peak-kBps = <(1804 * 4 * 1000)>;
785 };
786 };
787 };
788
Tom Rini53633a82024-02-29 12:33:36 -0500789 spmi_bus: spmi@1c40000 {
790 compatible = "qcom,spmi-pmic-arb";
791 reg = <0x0 0x01c40000 0x0 0x1100>,
792 <0x0 0x01e00000 0x0 0x2000000>,
793 <0x0 0x03e00000 0x0 0x100000>,
794 <0x0 0x03f00000 0x0 0xa0000>,
795 <0x0 0x01c0a000 0x0 0x26000>;
796 reg-names = "core",
797 "chnls",
798 "obsrvr",
799 "intr",
800 "cnfg";
Tom Rini93743d22024-04-01 09:08:13 -0400801 interrupts-extended = <&mpm 86 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini53633a82024-02-29 12:33:36 -0500802 interrupt-names = "periph_irq";
803 qcom,ee = <0>;
804 qcom,channel = <0>;
805 #address-cells = <2>;
806 #size-cells = <0>;
807 interrupt-controller;
808 #interrupt-cells = <4>;
809 };
810
811 tsens0: thermal-sensor@4411000 {
812 compatible = "qcom,qcm2290-tsens", "qcom,tsens-v2";
813 reg = <0x0 0x04411000 0x0 0x1ff>,
814 <0x0 0x04410000 0x0 0x8>;
815 #qcom,sensors = <10>;
Tom Rini93743d22024-04-01 09:08:13 -0400816 interrupts-extended = <&mpm 2 IRQ_TYPE_LEVEL_HIGH>,
817 <&intc GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini53633a82024-02-29 12:33:36 -0500818 interrupt-names = "uplow", "critical";
819 #thermal-sensor-cells = <1>;
820 };
821
822 rng: rng@4453000 {
823 compatible = "qcom,prng-ee";
824 reg = <0x0 0x04453000 0x0 0x1000>;
825 clocks = <&rpmcc RPM_SMD_HWKM_CLK>;
826 clock-names = "core";
827 };
828
Tom Rini93743d22024-04-01 09:08:13 -0400829 bimc: interconnect@4480000 {
830 compatible = "qcom,qcm2290-bimc";
831 reg = <0x0 0x04480000 0x0 0x80000>;
832 #interconnect-cells = <2>;
833 };
834
Tom Rini53633a82024-02-29 12:33:36 -0500835 rpm_msg_ram: sram@45f0000 {
Tom Rini93743d22024-04-01 09:08:13 -0400836 compatible = "qcom,rpm-msg-ram", "mmio-sram";
Tom Rini53633a82024-02-29 12:33:36 -0500837 reg = <0x0 0x045f0000 0x0 0x7000>;
Tom Rini93743d22024-04-01 09:08:13 -0400838 #address-cells = <1>;
839 #size-cells = <1>;
840 ranges = <0 0x0 0x045f0000 0x7000>;
841
842 apss_mpm: sram@1b8 {
843 reg = <0x1b8 0x48>;
844 };
Tom Rini53633a82024-02-29 12:33:36 -0500845 };
846
847 sram@4690000 {
848 compatible = "qcom,rpm-stats";
849 reg = <0x0 0x04690000 0x0 0x10000>;
850 };
851
852 sdhc_1: mmc@4744000 {
853 compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
854 reg = <0x0 0x04744000 0x0 0x1000>,
855 <0x0 0x04745000 0x0 0x1000>,
856 <0x0 0x04748000 0x0 0x8000>;
857 reg-names = "hc",
858 "cqhci",
859 "ice";
860
861 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
862 <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
863 interrupt-names = "hc_irq", "pwr_irq";
864
865 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
866 <&gcc GCC_SDCC1_APPS_CLK>,
867 <&rpmcc RPM_SMD_XO_CLK_SRC>,
868 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
869 clock-names = "iface",
870 "core",
871 "xo",
872 "ice";
873
874 resets = <&gcc GCC_SDCC1_BCR>;
875
876 power-domains = <&rpmpd QCM2290_VDDCX>;
Tom Rini93743d22024-04-01 09:08:13 -0400877 operating-points-v2 = <&sdhc1_opp_table>;
Tom Rini53633a82024-02-29 12:33:36 -0500878 iommus = <&apps_smmu 0xc0 0x0>;
Tom Rini93743d22024-04-01 09:08:13 -0400879 interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG
880 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
881 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
882 &config_noc SLAVE_SDCC_1 RPM_ALWAYS_TAG>;
883 interconnect-names = "sdhc-ddr",
884 "cpu-sdhc";
Tom Rini53633a82024-02-29 12:33:36 -0500885
886 qcom,dll-config = <0x000f642c>;
887 qcom,ddr-config = <0x80040868>;
888 bus-width = <8>;
889
890 status = "disabled";
Tom Rini93743d22024-04-01 09:08:13 -0400891
892 sdhc1_opp_table: opp-table {
893 compatible = "operating-points-v2";
894
895 opp-100000000 {
896 opp-hz = /bits/ 64 <100000000>;
897 required-opps = <&rpmpd_opp_low_svs>;
898 opp-peak-kBps = <250000 133320>;
899 opp-avg-kBps = <102400 65000>;
900 };
901
902 opp-192000000 {
903 opp-hz = /bits/ 64 <192000000>;
904 required-opps = <&rpmpd_opp_low_svs>;
905 opp-peak-kBps = <800000 300000>;
906 opp-avg-kBps = <204800 200000>;
907 };
908
909 opp-384000000 {
910 opp-hz = /bits/ 64 <384000000>;
911 required-opps = <&rpmpd_opp_svs_plus>;
912 opp-peak-kBps = <800000 300000>;
913 opp-avg-kBps = <204800 200000>;
914 };
915 };
Tom Rini53633a82024-02-29 12:33:36 -0500916 };
917
918 sdhc_2: mmc@4784000 {
919 compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
920 reg = <0x0 0x04784000 0x0 0x1000>;
921 reg-names = "hc";
922
923 interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
924 <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
925 interrupt-names = "hc_irq", "pwr_irq";
926
927 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
928 <&gcc GCC_SDCC2_APPS_CLK>,
929 <&rpmcc RPM_SMD_XO_CLK_SRC>;
930 clock-names = "iface",
931 "core",
932 "xo";
933
934 resets = <&gcc GCC_SDCC2_BCR>;
935
936 power-domains = <&rpmpd QCM2290_VDDCX>;
937 operating-points-v2 = <&sdhc2_opp_table>;
938 iommus = <&apps_smmu 0xa0 0x0>;
Tom Rini93743d22024-04-01 09:08:13 -0400939 interconnects = <&system_noc MASTER_SDCC_2 RPM_ALWAYS_TAG
940 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
941 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
942 &config_noc SLAVE_SDCC_2 RPM_ALWAYS_TAG>;
943 interconnect-names = "sdhc-ddr",
944 "cpu-sdhc";
Tom Rini53633a82024-02-29 12:33:36 -0500945
946 qcom,dll-config = <0x0007642c>;
947 qcom,ddr-config = <0x80040868>;
948 bus-width = <4>;
949
950 status = "disabled";
951
952 sdhc2_opp_table: opp-table {
953 compatible = "operating-points-v2";
954
955 opp-100000000 {
956 opp-hz = /bits/ 64 <100000000>;
957 required-opps = <&rpmpd_opp_low_svs>;
Tom Rini93743d22024-04-01 09:08:13 -0400958 opp-peak-kBps = <250000 133320>;
959 opp-avg-kBps = <261438 150000>;
Tom Rini53633a82024-02-29 12:33:36 -0500960 };
961
962 opp-202000000 {
963 opp-hz = /bits/ 64 <202000000>;
964 required-opps = <&rpmpd_opp_svs_plus>;
Tom Rini93743d22024-04-01 09:08:13 -0400965 opp-peak-kBps = <800000 300000>;
966 opp-avg-kBps = <261438 300000>;
Tom Rini53633a82024-02-29 12:33:36 -0500967 };
968 };
969 };
970
971 gpi_dma0: dma-controller@4a00000 {
972 compatible = "qcom,qcm2290-gpi-dma", "qcom,sm6350-gpi-dma";
973 reg = <0x0 0x04a00000 0x0 0x60000>;
974 interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
975 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
976 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
977 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
978 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
979 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
980 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
981 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
982 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
983 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
984 dma-channels = <10>;
985 dma-channel-mask = <0x1f>;
986 iommus = <&apps_smmu 0xf6 0x0>;
987 #dma-cells = <3>;
988 status = "disabled";
989 };
990
991 qupv3_id_0: geniqup@4ac0000 {
992 compatible = "qcom,geni-se-qup";
993 reg = <0x0 0x04ac0000 0x0 0x2000>;
994 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
995 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
996 clock-names = "m-ahb", "s-ahb";
997 iommus = <&apps_smmu 0xe3 0x0>;
998 #address-cells = <2>;
999 #size-cells = <2>;
1000 ranges;
1001 status = "disabled";
1002
1003 i2c0: i2c@4a80000 {
1004 compatible = "qcom,geni-i2c";
1005 reg = <0x0 0x04a80000 0x0 0x4000>;
1006 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1007 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1008 clock-names = "se";
1009 pinctrl-0 = <&qup_i2c0_default>;
1010 pinctrl-names = "default";
1011 dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
1012 <&gpi_dma0 1 0 QCOM_GPI_I2C>;
1013 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001014 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1015 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1016 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1017 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1018 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1019 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1020 interconnect-names = "qup-core",
1021 "qup-config",
1022 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001023 #address-cells = <1>;
1024 #size-cells = <0>;
1025 status = "disabled";
1026 };
1027
1028 spi0: spi@4a80000 {
1029 compatible = "qcom,geni-spi";
1030 reg = <0x0 0x04a80000 0x0 0x4000>;
1031 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1032 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1033 clock-names = "se";
1034 pinctrl-0 = <&qup_spi0_default>;
1035 pinctrl-names = "default";
1036 dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
1037 <&gpi_dma0 1 0 QCOM_GPI_SPI>;
1038 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001039 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1040 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1041 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1042 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1043 interconnect-names = "qup-core",
1044 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001045 #address-cells = <1>;
1046 #size-cells = <0>;
1047 status = "disabled";
1048 };
1049
1050 uart0: serial@4a80000 {
1051 compatible = "qcom,geni-uart";
1052 reg = <0x0 0x04a80000 0x0 0x4000>;
1053 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1054 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1055 clock-names = "se";
1056 pinctrl-0 = <&qup_uart0_default>;
1057 pinctrl-names = "default";
Tom Rini93743d22024-04-01 09:08:13 -04001058 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1059 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1060 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1061 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1062 interconnect-names = "qup-core",
1063 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001064 status = "disabled";
1065 };
1066
1067 i2c1: i2c@4a84000 {
1068 compatible = "qcom,geni-i2c";
1069 reg = <0x0 0x04a84000 0x0 0x4000>;
1070 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1071 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1072 clock-names = "se";
1073 pinctrl-0 = <&qup_i2c1_default>;
1074 pinctrl-names = "default";
1075 dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
1076 <&gpi_dma0 1 1 QCOM_GPI_I2C>;
1077 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001078 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1079 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1080 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1081 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1082 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1083 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1084 interconnect-names = "qup-core",
1085 "qup-config",
1086 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001087 #address-cells = <1>;
1088 #size-cells = <0>;
1089 status = "disabled";
1090 };
1091
1092 spi1: spi@4a84000 {
1093 compatible = "qcom,geni-spi";
1094 reg = <0x0 0x04a84000 0x0 0x4000>;
1095 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1096 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1097 clock-names = "se";
1098 pinctrl-0 = <&qup_spi1_default>;
1099 pinctrl-names = "default";
1100 dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
1101 <&gpi_dma0 1 1 QCOM_GPI_SPI>;
1102 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001103 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1104 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1105 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1106 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1107 interconnect-names = "qup-core",
1108 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001109 #address-cells = <1>;
1110 #size-cells = <0>;
1111 status = "disabled";
1112 };
1113
1114 i2c2: i2c@4a88000 {
1115 compatible = "qcom,geni-i2c";
1116 reg = <0x0 0x04a88000 0x0 0x4000>;
1117 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1118 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1119 clock-names = "se";
1120 pinctrl-0 = <&qup_i2c2_default>;
1121 pinctrl-names = "default";
1122 dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
1123 <&gpi_dma0 1 2 QCOM_GPI_I2C>;
1124 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001125 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1126 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1127 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1128 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1129 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1130 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1131 interconnect-names = "qup-core",
1132 "qup-config",
1133 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001134 #address-cells = <1>;
1135 #size-cells = <0>;
1136 status = "disabled";
1137 };
1138
1139 spi2: spi@4a88000 {
1140 compatible = "qcom,geni-spi";
1141 reg = <0x0 0x04a88000 0x0 0x4000>;
1142 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1143 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1144 clock-names = "se";
1145 pinctrl-0 = <&qup_spi2_default>;
1146 pinctrl-names = "default";
1147 dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
1148 <&gpi_dma0 1 2 QCOM_GPI_SPI>;
1149 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001150 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1151 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1152 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1153 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1154 interconnect-names = "qup-core",
1155 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001156 #address-cells = <1>;
1157 #size-cells = <0>;
1158 status = "disabled";
1159 };
1160
1161 i2c3: i2c@4a8c000 {
1162 compatible = "qcom,geni-i2c";
1163 reg = <0x0 0x04a8c000 0x0 0x4000>;
1164 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1165 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1166 clock-names = "se";
1167 pinctrl-0 = <&qup_i2c3_default>;
1168 pinctrl-names = "default";
1169 dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
1170 <&gpi_dma0 1 3 QCOM_GPI_I2C>;
1171 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001172 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1173 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1174 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1175 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1176 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1177 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1178 interconnect-names = "qup-core",
1179 "qup-config",
1180 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001181 #address-cells = <1>;
1182 #size-cells = <0>;
1183 status = "disabled";
1184 };
1185
1186 spi3: spi@4a8c000 {
1187 compatible = "qcom,geni-spi";
1188 reg = <0x0 0x04a8c000 0x0 0x4000>;
1189 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1190 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1191 clock-names = "se";
1192 pinctrl-0 = <&qup_spi3_default>;
1193 pinctrl-names = "default";
1194 dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
1195 <&gpi_dma0 1 3 QCOM_GPI_SPI>;
1196 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001197 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1198 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1199 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1200 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1201 interconnect-names = "qup-core",
1202 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001203 #address-cells = <1>;
1204 #size-cells = <0>;
1205 status = "disabled";
1206 };
1207
1208 i2c4: i2c@4a90000 {
1209 compatible = "qcom,geni-i2c";
1210 reg = <0x0 0x04a90000 0x0 0x4000>;
1211 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1212 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1213 clock-names = "se";
1214 pinctrl-0 = <&qup_i2c4_default>;
1215 pinctrl-names = "default";
1216 dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
1217 <&gpi_dma0 1 4 QCOM_GPI_I2C>;
1218 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001219 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1220 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1221 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1222 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1223 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1224 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1225 interconnect-names = "qup-core",
1226 "qup-config",
1227 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001228 #address-cells = <1>;
1229 #size-cells = <0>;
1230 status = "disabled";
1231 };
1232
1233 spi4: spi@4a90000 {
1234 compatible = "qcom,geni-spi";
1235 reg = <0x0 0x04a90000 0x0 0x4000>;
1236 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1237 clock-names = "se";
1238 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1239 pinctrl-names = "default";
1240 pinctrl-0 = <&qup_spi4_default>;
1241 dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
1242 <&gpi_dma0 1 4 QCOM_GPI_SPI>;
1243 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001244 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1245 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1246 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1247 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1248 interconnect-names = "qup-core",
1249 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001250 #address-cells = <1>;
1251 #size-cells = <0>;
1252 status = "disabled";
1253 };
1254
1255 uart4: serial@4a90000 {
1256 compatible = "qcom,geni-uart";
1257 reg = <0x0 0x04a90000 0x0 0x4000>;
1258 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1259 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1260 clock-names = "se";
1261 pinctrl-0 = <&qup_uart4_default>;
1262 pinctrl-names = "default";
Tom Rini93743d22024-04-01 09:08:13 -04001263 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1264 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1265 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1266 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1267 interconnect-names = "qup-core",
1268 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001269 status = "disabled";
1270 };
1271
1272 i2c5: i2c@4a94000 {
1273 compatible = "qcom,geni-i2c";
1274 reg = <0x0 0x04a94000 0x0 0x4000>;
1275 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1276 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1277 clock-names = "se";
1278 pinctrl-0 = <&qup_i2c5_default>;
1279 pinctrl-names = "default";
1280 dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
1281 <&gpi_dma0 1 5 QCOM_GPI_I2C>;
1282 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001283 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1284 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1285 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1286 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1287 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1288 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>;
1289 interconnect-names = "qup-core",
1290 "qup-config",
1291 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001292 #address-cells = <1>;
1293 #size-cells = <0>;
1294 status = "disabled";
1295 };
1296
1297 spi5: spi@4a94000 {
1298 compatible = "qcom,geni-spi";
1299 reg = <0x0 0x04a94000 0x0 0x4000>;
1300 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1301 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1302 clock-names = "se";
1303 pinctrl-0 = <&qup_spi5_default>;
1304 pinctrl-names = "default";
1305 dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
1306 <&gpi_dma0 1 5 QCOM_GPI_SPI>;
1307 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001308 interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1309 &qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1310 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1311 &config_noc MASTER_APPSS_PROC RPM_ALWAYS_TAG>;
1312 interconnect-names = "qup-core",
1313 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001314 #address-cells = <1>;
1315 #size-cells = <0>;
1316 status = "disabled";
1317 };
1318 };
1319
1320 usb: usb@4ef8800 {
1321 compatible = "qcom,qcm2290-dwc3", "qcom,dwc3";
1322 reg = <0x0 0x04ef8800 0x0 0x400>;
Tom Rini93743d22024-04-01 09:08:13 -04001323 interrupts-extended = <&intc GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
1324 <&mpm 12 IRQ_TYPE_LEVEL_HIGH>;
1325 interrupt-names = "hs_phy_irq",
1326 "ss_phy_irq";
Tom Rini53633a82024-02-29 12:33:36 -05001327
1328 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1329 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1330 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
1331 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1332 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1333 <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
1334 clock-names = "cfg_noc",
1335 "core",
1336 "iface",
1337 "sleep",
1338 "mock_utmi",
1339 "xo";
1340
1341 assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1342 <&gcc GCC_USB30_PRIM_MASTER_CLK>;
1343 assigned-clock-rates = <19200000>, <133333333>;
1344
1345 resets = <&gcc GCC_USB30_PRIM_BCR>;
1346 power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
Tom Rini93743d22024-04-01 09:08:13 -04001347 /* TODO: USB<->IPA path */
1348 interconnects = <&system_noc MASTER_USB3_0 RPM_ALWAYS_TAG
1349 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1350 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1351 &config_noc SLAVE_USB3 RPM_ALWAYS_TAG>;
1352 interconnect-names = "usb-ddr",
1353 "apps-usb";
Tom Rini53633a82024-02-29 12:33:36 -05001354 wakeup-source;
1355
1356 #address-cells = <2>;
1357 #size-cells = <2>;
1358 ranges;
1359
1360 status = "disabled";
1361
1362 usb_dwc3: usb@4e00000 {
1363 compatible = "snps,dwc3";
1364 reg = <0x0 0x04e00000 0x0 0xcd00>;
1365 interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
1366 phys = <&usb_hsphy>, <&usb_qmpphy>;
1367 phy-names = "usb2-phy", "usb3-phy";
1368 iommus = <&apps_smmu 0x120 0x0>;
1369 snps,dis_u2_susphy_quirk;
1370 snps,dis_enblslpm_quirk;
1371 snps,has-lpm-erratum;
1372 snps,hird-threshold = /bits/ 8 <0x10>;
1373 snps,usb3_lpm_capable;
1374 maximum-speed = "super-speed";
1375 dr_mode = "otg";
1376 };
Tom Rini93743d22024-04-01 09:08:13 -04001377 };
1378
1379 mdss: display-subsystem@5e00000 {
1380 compatible = "qcom,qcm2290-mdss";
1381 reg = <0x0 0x05e00000 0x0 0x1000>;
1382 reg-names = "mdss";
1383 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
1384 interrupt-controller;
1385 #interrupt-cells = <1>;
1386
1387 clocks = <&gcc GCC_DISP_AHB_CLK>,
1388 <&gcc GCC_DISP_HF_AXI_CLK>,
1389 <&dispcc DISP_CC_MDSS_MDP_CLK>;
1390 clock-names = "iface",
1391 "bus",
1392 "core";
1393
1394 resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
1395
1396 power-domains = <&dispcc MDSS_GDSC>;
1397
1398 iommus = <&apps_smmu 0x420 0x2>,
1399 <&apps_smmu 0x421 0x0>;
1400 interconnects = <&mmrt_virt MASTER_MDP0 RPM_ALWAYS_TAG
1401 &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
1402 <&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
1403 &config_noc SLAVE_DISPLAY_CFG RPM_ALWAYS_TAG>;
1404 interconnect-names = "mdp0-mem",
1405 "cpu-cfg";
1406
1407 #address-cells = <2>;
1408 #size-cells = <2>;
1409 ranges;
1410
1411 status = "disabled";
1412
1413 mdp: display-controller@5e01000 {
1414 compatible = "qcom,qcm2290-dpu";
1415 reg = <0x0 0x05e01000 0x0 0x8f000>,
1416 <0x0 0x05eb0000 0x0 0x2008>;
1417 reg-names = "mdp",
1418 "vbif";
1419
1420 interrupt-parent = <&mdss>;
1421 interrupts = <0>;
1422
1423 clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1424 <&dispcc DISP_CC_MDSS_AHB_CLK>,
1425 <&dispcc DISP_CC_MDSS_MDP_CLK>,
1426 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
1427 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
1428 clock-names = "bus",
1429 "iface",
1430 "core",
1431 "lut",
1432 "vsync";
1433
1434 operating-points-v2 = <&mdp_opp_table>;
1435 power-domains = <&rpmpd QCM2290_VDDCX>;
1436
1437 ports {
1438 #address-cells = <1>;
1439 #size-cells = <0>;
1440
1441 port@0 {
1442 reg = <0>;
1443 dpu_intf1_out: endpoint {
1444 remote-endpoint = <&mdss_dsi0_in>;
1445 };
1446 };
1447 };
1448
1449 mdp_opp_table: opp-table {
1450 compatible = "operating-points-v2";
1451
1452 opp-19200000 {
1453 opp-hz = /bits/ 64 <19200000>;
1454 required-opps = <&rpmpd_opp_min_svs>;
1455 };
1456
1457 opp-192000000 {
1458 opp-hz = /bits/ 64 <192000000>;
1459 required-opps = <&rpmpd_opp_low_svs>;
1460 };
1461
1462 opp-256000000 {
1463 opp-hz = /bits/ 64 <256000000>;
1464 required-opps = <&rpmpd_opp_svs>;
1465 };
1466
1467 opp-307200000 {
1468 opp-hz = /bits/ 64 <307200000>;
1469 required-opps = <&rpmpd_opp_svs_plus>;
1470 };
1471
1472 opp-384000000 {
1473 opp-hz = /bits/ 64 <384000000>;
1474 required-opps = <&rpmpd_opp_nom>;
1475 };
1476 };
1477 };
1478
1479 mdss_dsi0: dsi@5e94000 {
1480 compatible = "qcom,qcm2290-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1481 reg = <0x0 0x05e94000 0x0 0x400>;
1482 reg-names = "dsi_ctrl";
1483
1484 interrupt-parent = <&mdss>;
1485 interrupts = <4>;
1486
1487 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1488 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1489 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1490 <&dispcc DISP_CC_MDSS_ESC0_CLK>,
1491 <&dispcc DISP_CC_MDSS_AHB_CLK>,
1492 <&gcc GCC_DISP_HF_AXI_CLK>;
1493 clock-names = "byte",
1494 "byte_intf",
1495 "pixel",
1496 "core",
1497 "iface",
1498 "bus";
1499
1500 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
1501 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
1502 assigned-clock-parents = <&mdss_dsi0_phy 0>,
1503 <&mdss_dsi0_phy 1>;
1504
1505 operating-points-v2 = <&dsi_opp_table>;
1506 power-domains = <&rpmpd QCM2290_VDDCX>;
1507 phys = <&mdss_dsi0_phy>;
1508
1509 #address-cells = <1>;
1510 #size-cells = <0>;
1511
1512 status = "disabled";
1513
1514 dsi_opp_table: opp-table {
1515 compatible = "operating-points-v2";
1516
1517 opp-19200000 {
1518 opp-hz = /bits/ 64 <19200000>;
1519 required-opps = <&rpmpd_opp_min_svs>;
1520 };
1521
1522 opp-164000000 {
1523 opp-hz = /bits/ 64 <164000000>;
1524 required-opps = <&rpmpd_opp_low_svs>;
1525 };
1526
1527 opp-187500000 {
1528 opp-hz = /bits/ 64 <187500000>;
1529 required-opps = <&rpmpd_opp_svs>;
1530 };
1531 };
1532
1533 ports {
1534 #address-cells = <1>;
1535 #size-cells = <0>;
1536
1537 port@0 {
1538 reg = <0>;
1539
1540 mdss_dsi0_in: endpoint {
1541 remote-endpoint = <&dpu_intf1_out>;
1542 };
1543 };
1544
1545 port@1 {
1546 reg = <1>;
1547
1548 mdss_dsi0_out: endpoint {
1549 };
1550 };
1551 };
1552 };
1553
1554 mdss_dsi0_phy: phy@5e94400 {
1555 compatible = "qcom,dsi-phy-14nm-2290";
1556 reg = <0x0 0x05e94400 0x0 0x100>,
1557 <0x0 0x05e94500 0x0 0x300>,
1558 <0x0 0x05e94800 0x0 0x188>;
1559 reg-names = "dsi_phy",
1560 "dsi_phy_lane",
1561 "dsi_pll";
1562
1563 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
1564 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1565 clock-names = "iface",
1566 "ref";
1567
1568 power-domains = <&rpmpd QCM2290_VDDMX>;
1569 required-opps = <&rpmpd_opp_nom>;
1570
1571 #clock-cells = <1>;
1572 #phy-cells = <0>;
1573
1574 status = "disabled";
1575 };
1576 };
1577
1578 dispcc: clock-controller@5f00000 {
1579 compatible = "qcom,qcm2290-dispcc";
1580 reg = <0x0 0x05f00000 0x0 0x20000>;
1581 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1582 <&rpmcc RPM_SMD_XO_A_CLK_SRC>,
1583 <&gcc GCC_DISP_GPLL0_CLK_SRC>,
1584 <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
1585 <&mdss_dsi0_phy 0>,
1586 <&mdss_dsi0_phy 1>;
1587 clock-names = "bi_tcxo",
1588 "bi_tcxo_ao",
1589 "gcc_disp_gpll0_clk_src",
1590 "gcc_disp_gpll0_div_clk_src",
1591 "dsi0_phy_pll_out_byteclk",
1592 "dsi0_phy_pll_out_dsiclk";
1593 #power-domain-cells = <1>;
1594 #clock-cells = <1>;
1595 #reset-cells = <1>;
Tom Rini53633a82024-02-29 12:33:36 -05001596 };
1597
1598 remoteproc_mpss: remoteproc@6080000 {
1599 compatible = "qcom,qcm2290-mpss-pas", "qcom,sm6115-mpss-pas";
1600 reg = <0x0 0x06080000 0x0 0x100>;
1601
1602 interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
1603 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1604 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1605 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1606 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
1607 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
1608 interrupt-names = "wdog",
1609 "fatal",
1610 "ready",
1611 "handover",
1612 "stop-ack",
1613 "shutdown-ack";
1614
1615 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1616 clock-names = "xo";
1617
1618 power-domains = <&rpmpd QCM2290_VDDCX>;
1619
1620 memory-region = <&pil_modem_mem>;
1621
1622 qcom,smem-states = <&modem_smp2p_out 0>;
1623 qcom,smem-state-names = "stop";
1624
1625 status = "disabled";
1626
1627 glink-edge {
1628 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
1629 label = "mpss";
1630 qcom,remote-pid = <1>;
1631 mboxes = <&apcs_glb 12>;
1632 };
1633 };
1634
1635 remoteproc_adsp: remoteproc@ab00000 {
1636 compatible = "qcom,qcm2290-adsp-pas", "qcom,sm6115-adsp-pas";
1637 reg = <0x0 0x0ab00000 0x0 0x100>;
1638
1639 interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
1640 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1641 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1642 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1643 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1644 interrupt-names = "wdog",
1645 "fatal",
1646 "ready",
1647 "handover",
1648 "stop-ack";
1649
1650 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1651 clock-names = "xo";
1652
1653 power-domains = <&rpmpd QCM2290_VDD_LPI_CX>,
1654 <&rpmpd QCM2290_VDD_LPI_MX>;
1655
1656 memory-region = <&pil_adsp_mem>;
1657
1658 qcom,smem-states = <&adsp_smp2p_out 0>;
1659 qcom,smem-state-names = "stop";
1660
1661 status = "disabled";
1662
1663 glink-edge {
1664 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
1665 label = "lpass";
1666 qcom,remote-pid = <2>;
1667 mboxes = <&apcs_glb 8>;
1668 };
1669 };
1670
1671 apps_smmu: iommu@c600000 {
1672 compatible = "qcom,qcm2290-smmu-500", "qcom,smmu-500", "arm,mmu-500";
1673 reg = <0x0 0x0c600000 0x0 0x80000>;
1674 #iommu-cells = <2>;
1675 #global-interrupts = <1>;
1676
1677 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
1678 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
1679 <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1680 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
1681 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
1682 <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
1683 <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
1684 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
1685 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
1686 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1687 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1688 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1689 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1690 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1691 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1692 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1693 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1694 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1695 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1696 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1697 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1698 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1699 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1700 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1701 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1702 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1703 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1704 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1705 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1706 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1707 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1708 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1709 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1710 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
1711 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1712 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
1713 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
1714 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1715 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1716 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1717 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
1718 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
1719 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
1720 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
1721 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
1722 <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
1723 <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
1724 <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
1725 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1726 <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1727 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
1728 <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
1729 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
1730 <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
1731 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
1732 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
1733 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
1734 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
1735 <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
1736 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1737 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1738 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
1739 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
1740 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
1741 <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
1742 };
1743
1744 wifi: wifi@c800000 {
1745 compatible = "qcom,wcn3990-wifi";
1746 reg = <0x0 0x0c800000 0x0 0x800000>;
1747 reg-names = "membase";
1748 memory-region = <&wlan_msa_mem>;
1749 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
1750 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
1751 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
1752 <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
1753 <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
1754 <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>,
1755 <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>,
1756 <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>,
1757 <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
1758 <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
1759 <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
1760 <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
1761 iommus = <&apps_smmu 0x1a0 0x1>;
1762 qcom,msa-fixed-perm;
1763 status = "disabled";
1764 };
1765
1766 watchdog@f017000 {
1767 compatible = "qcom,apss-wdt-qcm2290", "qcom,kpss-wdt";
1768 reg = <0x0 0x0f017000 0x0 0x1000>;
1769 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
1770 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1771 clocks = <&sleep_clk>;
1772 };
1773
1774 apcs_glb: mailbox@f111000 {
1775 compatible = "qcom,qcm2290-apcs-hmss-global";
1776 reg = <0x0 0x0f111000 0x0 0x1000>;
1777 #mbox-cells = <1>;
1778 };
1779
1780 timer@f120000 {
1781 compatible = "arm,armv7-timer-mem";
1782 reg = <0x0 0x0f120000 0x0 0x1000>;
1783 #address-cells = <1>;
1784 #size-cells = <1>;
1785 ranges = <0 0x0 0x0f121000 0x8000>;
1786
1787 frame@0 {
1788 reg = <0x0 0x1000>,
1789 <0x1000 0x1000>;
1790 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1791 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1792 frame-number = <0>;
1793 };
1794
1795 frame@2000 {
1796 reg = <0x2000 0x1000>;
1797 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1798 frame-number = <1>;
1799 status = "disabled";
1800 };
1801
1802 frame@3000 {
1803 reg = <0x3000 0x1000>;
1804 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1805 frame-number = <2>;
1806 status = "disabled";
1807 };
1808
1809 frame@4000 {
1810 reg = <0x4000 0x1000>;
1811 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1812 frame-number = <3>;
1813 status = "disabled";
1814 };
1815
1816 frame@5000 {
1817 reg = <0x5000 0x1000>;
1818 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1819 frame-number = <4>;
1820 status = "disabled";
1821 };
1822
1823 frame@6000 {
1824 reg = <0x6000 0x1000>;
1825 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1826 frame-number = <5>;
1827 status = "disabled";
1828 };
1829
1830 frame@7000 {
1831 reg = <0x7000 0x1000>;
1832 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1833 frame-number = <6>;
1834 status = "disabled";
1835 };
1836 };
1837
1838 intc: interrupt-controller@f200000 {
1839 compatible = "arm,gic-v3";
1840 reg = <0x0 0x0f200000 0x0 0x10000>,
1841 <0x0 0x0f300000 0x0 0x100000>;
1842 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1843 #interrupt-cells = <3>;
1844 interrupt-controller;
1845 interrupt-parent = <&intc>;
1846 #redistributor-regions = <1>;
1847 redistributor-stride = <0x0 0x20000>;
1848 };
1849
1850 cpufreq_hw: cpufreq@f521000 {
1851 compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw";
1852 reg = <0x0 0x0f521000 0x0 0x1000>;
1853 reg-names = "freq-domain0";
1854 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1855 interrupt-names = "dcvsh-irq-0";
1856 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
1857 clock-names = "xo", "alternate";
1858
1859 #freq-domain-cells = <1>;
1860 #clock-cells = <1>;
1861 };
1862 };
1863
1864 thermal-zones {
1865 mapss-thermal {
1866 polling-delay-passive = <0>;
1867 polling-delay = <0>;
1868
1869 thermal-sensors = <&tsens0 0>;
1870
1871 trips {
1872 mapss_alert0: trip-point0 {
1873 temperature = <90000>;
1874 hysteresis = <2000>;
1875 type = "passive";
1876 };
1877
1878 mapss_alert1: trip-point1 {
1879 temperature = <95000>;
1880 hysteresis = <2000>;
1881 type = "passive";
1882 };
1883
1884 mapss_crit: mapss-crit {
1885 temperature = <110000>;
1886 hysteresis = <1000>;
1887 type = "critical";
1888 };
1889 };
1890 };
1891
1892 video-thermal {
1893 polling-delay-passive = <0>;
1894 polling-delay = <0>;
1895
1896 thermal-sensors = <&tsens0 1>;
1897
1898 trips {
1899 video_alert0: trip-point0 {
1900 temperature = <90000>;
1901 hysteresis = <2000>;
1902 type = "passive";
1903 };
1904
1905 video_alert1: trip-point1 {
1906 temperature = <95000>;
1907 hysteresis = <2000>;
1908 type = "passive";
1909 };
1910
1911 video_crit: video-crit {
1912 temperature = <110000>;
1913 hysteresis = <1000>;
1914 type = "critical";
1915 };
1916 };
1917 };
1918
1919 wlan-thermal {
1920 polling-delay-passive = <0>;
1921 polling-delay = <0>;
1922
1923 thermal-sensors = <&tsens0 2>;
1924
1925 trips {
1926 wlan_alert0: trip-point0 {
1927 temperature = <90000>;
1928 hysteresis = <2000>;
1929 type = "passive";
1930 };
1931
1932 wlan_alert1: trip-point1 {
1933 temperature = <95000>;
1934 hysteresis = <2000>;
1935 type = "passive";
1936 };
1937
1938 wlan_crit: wlan-crit {
1939 temperature = <110000>;
1940 hysteresis = <1000>;
1941 type = "critical";
1942 };
1943 };
1944 };
1945
1946 cpuss0-thermal {
1947 polling-delay-passive = <0>;
1948 polling-delay = <0>;
1949
1950 thermal-sensors = <&tsens0 3>;
1951
1952 trips {
1953 cpuss0_alert0: trip-point0 {
1954 temperature = <90000>;
1955 hysteresis = <2000>;
1956 type = "passive";
1957 };
1958
1959 cpuss0_alert1: trip-point1 {
1960 temperature = <95000>;
1961 hysteresis = <2000>;
1962 type = "passive";
1963 };
1964
1965 cpuss0_crit: cpuss0-crit {
1966 temperature = <110000>;
1967 hysteresis = <1000>;
1968 type = "critical";
1969 };
1970 };
1971 };
1972
1973 cpuss1-thermal {
1974 polling-delay-passive = <0>;
1975 polling-delay = <0>;
1976
1977 thermal-sensors = <&tsens0 4>;
1978
1979 trips {
1980 cpuss1_alert0: trip-point0 {
1981 temperature = <90000>;
1982 hysteresis = <2000>;
1983 type = "passive";
1984 };
1985
1986 cpuss1_alert1: trip-point1 {
1987 temperature = <95000>;
1988 hysteresis = <2000>;
1989 type = "passive";
1990 };
1991
1992 cpuss1_crit: cpuss1-crit {
1993 temperature = <110000>;
1994 hysteresis = <1000>;
1995 type = "critical";
1996 };
1997 };
1998 };
1999
2000 mdm0-thermal {
2001 polling-delay-passive = <0>;
2002 polling-delay = <0>;
2003
2004 thermal-sensors = <&tsens0 5>;
2005
2006 trips {
2007 mdm0_alert0: trip-point0 {
2008 temperature = <90000>;
2009 hysteresis = <2000>;
2010 type = "passive";
2011 };
2012
2013 mdm0_alert1: trip-point1 {
2014 temperature = <95000>;
2015 hysteresis = <2000>;
2016 type = "passive";
2017 };
2018
2019 mdm0_crit: mdm0-crit {
2020 temperature = <110000>;
2021 hysteresis = <1000>;
2022 type = "critical";
2023 };
2024 };
2025 };
2026
2027 mdm1-thermal {
2028 polling-delay-passive = <0>;
2029 polling-delay = <0>;
2030
2031 thermal-sensors = <&tsens0 6>;
2032
2033 trips {
2034 mdm1_alert0: trip-point0 {
2035 temperature = <90000>;
2036 hysteresis = <2000>;
2037 type = "passive";
2038 };
2039
2040 mdm1_alert1: trip-point1 {
2041 temperature = <95000>;
2042 hysteresis = <2000>;
2043 type = "passive";
2044 };
2045
2046 mdm1_crit: mdm1-crit {
2047 temperature = <110000>;
2048 hysteresis = <1000>;
2049 type = "critical";
2050 };
2051 };
2052 };
2053
2054 gpu-thermal {
2055 polling-delay-passive = <0>;
2056 polling-delay = <0>;
2057
2058 thermal-sensors = <&tsens0 7>;
2059
2060 trips {
2061 gpu_alert0: trip-point0 {
2062 temperature = <90000>;
2063 hysteresis = <2000>;
2064 type = "passive";
2065 };
2066
2067 gpu_alert1: trip-point1 {
2068 temperature = <95000>;
2069 hysteresis = <2000>;
2070 type = "passive";
2071 };
2072
2073 gpu_crit: gpu-crit {
2074 temperature = <110000>;
2075 hysteresis = <1000>;
2076 type = "critical";
2077 };
2078 };
2079 };
2080
2081 hm-center-thermal {
2082 polling-delay-passive = <0>;
2083 polling-delay = <0>;
2084
2085 thermal-sensors = <&tsens0 8>;
2086
2087 trips {
2088 hm_center_alert0: trip-point0 {
2089 temperature = <90000>;
2090 hysteresis = <2000>;
2091 type = "passive";
2092 };
2093
2094 hm_center_alert1: trip-point1 {
2095 temperature = <95000>;
2096 hysteresis = <2000>;
2097 type = "passive";
2098 };
2099
2100 hm_center_crit: hm-center-crit {
2101 temperature = <110000>;
2102 hysteresis = <1000>;
2103 type = "critical";
2104 };
2105 };
2106 };
2107
2108 camera-thermal {
2109 polling-delay-passive = <0>;
2110 polling-delay = <0>;
2111
2112 thermal-sensors = <&tsens0 9>;
2113
2114 trips {
2115 camera_alert0: trip-point0 {
2116 temperature = <90000>;
2117 hysteresis = <2000>;
2118 type = "passive";
2119 };
2120
2121 camera_alert1: trip-point1 {
2122 temperature = <95000>;
2123 hysteresis = <2000>;
2124 type = "passive";
2125 };
2126
2127 camera_crit: camera-crit {
2128 temperature = <110000>;
2129 hysteresis = <1000>;
2130 type = "critical";
2131 };
2132 };
2133 };
2134 };
2135
2136 timer {
2137 compatible = "arm,armv8-timer";
2138 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2139 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2140 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2141 <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
2142 };
2143};