blob: 7f44807b1b974506f2ec7b223555da56529c9f60 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/qcom,gcc-msm8998.h>
6#include <dt-bindings/clock/qcom,gpucc-msm8998.h>
7#include <dt-bindings/clock/qcom,mmcc-msm8998.h>
8#include <dt-bindings/clock/qcom,rpmcc.h>
9#include <dt-bindings/firmware/qcom,scm.h>
10#include <dt-bindings/power/qcom-rpmpd.h>
11#include <dt-bindings/gpio/gpio.h>
12
13/ {
14 interrupt-parent = <&intc>;
15
16 qcom,msm-id = <292 0x0>;
17
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 chosen { };
22
23 memory@80000000 {
24 device_type = "memory";
25 /* We expect the bootloader to fill in the reg */
26 reg = <0x0 0x80000000 0x0 0x0>;
27 };
28
29 reserved-memory {
30 #address-cells = <2>;
31 #size-cells = <2>;
32 ranges;
33
34 hyp_mem: memory@85800000 {
35 reg = <0x0 0x85800000 0x0 0x600000>;
36 no-map;
37 };
38
39 xbl_mem: memory@85e00000 {
40 reg = <0x0 0x85e00000 0x0 0x100000>;
41 no-map;
42 };
43
44 smem_mem: smem-mem@86000000 {
45 reg = <0x0 0x86000000 0x0 0x200000>;
46 no-map;
47 };
48
49 tz_mem: memory@86200000 {
50 reg = <0x0 0x86200000 0x0 0x2d00000>;
51 no-map;
52 };
53
54 rmtfs_mem: memory@88f00000 {
55 compatible = "qcom,rmtfs-mem";
56 reg = <0x0 0x88f00000 0x0 0x200000>;
57 no-map;
58
59 qcom,client-id = <1>;
60 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
61 };
62
63 spss_mem: memory@8ab00000 {
64 reg = <0x0 0x8ab00000 0x0 0x700000>;
65 no-map;
66 };
67
68 adsp_mem: memory@8b200000 {
69 reg = <0x0 0x8b200000 0x0 0x1a00000>;
70 no-map;
71 };
72
73 mpss_mem: memory@8cc00000 {
74 reg = <0x0 0x8cc00000 0x0 0x7000000>;
75 no-map;
76 };
77
78 venus_mem: memory@93c00000 {
79 reg = <0x0 0x93c00000 0x0 0x500000>;
80 no-map;
81 };
82
83 mba_mem: memory@94100000 {
84 reg = <0x0 0x94100000 0x0 0x200000>;
85 no-map;
86 };
87
88 slpi_mem: memory@94300000 {
89 reg = <0x0 0x94300000 0x0 0xf00000>;
90 no-map;
91 };
92
93 ipa_fw_mem: memory@95200000 {
94 reg = <0x0 0x95200000 0x0 0x10000>;
95 no-map;
96 };
97
98 ipa_gsi_mem: memory@95210000 {
99 reg = <0x0 0x95210000 0x0 0x5000>;
100 no-map;
101 };
102
103 gpu_mem: memory@95600000 {
104 reg = <0x0 0x95600000 0x0 0x100000>;
105 no-map;
106 };
107
108 wlan_msa_mem: memory@95700000 {
109 reg = <0x0 0x95700000 0x0 0x100000>;
110 no-map;
111 };
112
113 mdata_mem: mpss-metadata {
114 alloc-ranges = <0x0 0xa0000000 0x0 0x20000000>;
115 size = <0x0 0x4000>;
116 no-map;
117 };
118 };
119
120 clocks {
121 xo: xo-board {
122 compatible = "fixed-clock";
123 #clock-cells = <0>;
124 clock-frequency = <19200000>;
125 clock-output-names = "xo_board";
126 };
127
128 sleep_clk: sleep-clk {
129 compatible = "fixed-clock";
130 #clock-cells = <0>;
131 clock-frequency = <32764>;
132 };
133 };
134
135 cpus {
136 #address-cells = <2>;
137 #size-cells = <0>;
138
139 CPU0: cpu@0 {
140 device_type = "cpu";
141 compatible = "qcom,kryo280";
142 reg = <0x0 0x0>;
143 enable-method = "psci";
144 capacity-dmips-mhz = <1024>;
145 cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
146 next-level-cache = <&L2_0>;
147 L2_0: l2-cache {
148 compatible = "cache";
149 cache-level = <2>;
150 cache-unified;
151 };
152 };
153
154 CPU1: cpu@1 {
155 device_type = "cpu";
156 compatible = "qcom,kryo280";
157 reg = <0x0 0x1>;
158 enable-method = "psci";
159 capacity-dmips-mhz = <1024>;
160 cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
161 next-level-cache = <&L2_0>;
162 };
163
164 CPU2: cpu@2 {
165 device_type = "cpu";
166 compatible = "qcom,kryo280";
167 reg = <0x0 0x2>;
168 enable-method = "psci";
169 capacity-dmips-mhz = <1024>;
170 cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
171 next-level-cache = <&L2_0>;
172 };
173
174 CPU3: cpu@3 {
175 device_type = "cpu";
176 compatible = "qcom,kryo280";
177 reg = <0x0 0x3>;
178 enable-method = "psci";
179 capacity-dmips-mhz = <1024>;
180 cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1>;
181 next-level-cache = <&L2_0>;
182 };
183
184 CPU4: cpu@100 {
185 device_type = "cpu";
186 compatible = "qcom,kryo280";
187 reg = <0x0 0x100>;
188 enable-method = "psci";
189 capacity-dmips-mhz = <1536>;
190 cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
191 next-level-cache = <&L2_1>;
192 L2_1: l2-cache {
193 compatible = "cache";
194 cache-level = <2>;
195 cache-unified;
196 };
197 };
198
199 CPU5: cpu@101 {
200 device_type = "cpu";
201 compatible = "qcom,kryo280";
202 reg = <0x0 0x101>;
203 enable-method = "psci";
204 capacity-dmips-mhz = <1536>;
205 cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
206 next-level-cache = <&L2_1>;
207 };
208
209 CPU6: cpu@102 {
210 device_type = "cpu";
211 compatible = "qcom,kryo280";
212 reg = <0x0 0x102>;
213 enable-method = "psci";
214 capacity-dmips-mhz = <1536>;
215 cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
216 next-level-cache = <&L2_1>;
217 };
218
219 CPU7: cpu@103 {
220 device_type = "cpu";
221 compatible = "qcom,kryo280";
222 reg = <0x0 0x103>;
223 enable-method = "psci";
224 capacity-dmips-mhz = <1536>;
225 cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1>;
226 next-level-cache = <&L2_1>;
227 };
228
229 cpu-map {
230 cluster0 {
231 core0 {
232 cpu = <&CPU0>;
233 };
234
235 core1 {
236 cpu = <&CPU1>;
237 };
238
239 core2 {
240 cpu = <&CPU2>;
241 };
242
243 core3 {
244 cpu = <&CPU3>;
245 };
246 };
247
248 cluster1 {
249 core0 {
250 cpu = <&CPU4>;
251 };
252
253 core1 {
254 cpu = <&CPU5>;
255 };
256
257 core2 {
258 cpu = <&CPU6>;
259 };
260
261 core3 {
262 cpu = <&CPU7>;
263 };
264 };
265 };
266
267 idle-states {
268 entry-method = "psci";
269
270 LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
271 compatible = "arm,idle-state";
272 idle-state-name = "little-retention";
273 /* CPU Retention (C2D), L2 Active */
274 arm,psci-suspend-param = <0x00000002>;
275 entry-latency-us = <81>;
276 exit-latency-us = <86>;
277 min-residency-us = <504>;
278 };
279
280 LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
281 compatible = "arm,idle-state";
282 idle-state-name = "little-power-collapse";
283 /* CPU + L2 Power Collapse (C3, D4) */
284 arm,psci-suspend-param = <0x40000003>;
285 entry-latency-us = <814>;
286 exit-latency-us = <4562>;
287 min-residency-us = <9183>;
288 local-timer-stop;
289 };
290
291 BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
292 compatible = "arm,idle-state";
293 idle-state-name = "big-retention";
294 /* CPU Retention (C2D), L2 Active */
295 arm,psci-suspend-param = <0x00000002>;
296 entry-latency-us = <79>;
297 exit-latency-us = <82>;
298 min-residency-us = <1302>;
299 };
300
301 BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
302 compatible = "arm,idle-state";
303 idle-state-name = "big-power-collapse";
304 /* CPU + L2 Power Collapse (C3, D4) */
305 arm,psci-suspend-param = <0x40000003>;
306 entry-latency-us = <724>;
307 exit-latency-us = <2027>;
308 min-residency-us = <9419>;
309 local-timer-stop;
310 };
311 };
312 };
313
314 firmware {
315 scm {
316 compatible = "qcom,scm-msm8998", "qcom,scm";
317 };
318 };
319
320 dsi_opp_table: opp-table-dsi {
321 compatible = "operating-points-v2";
322
323 opp-131250000 {
324 opp-hz = /bits/ 64 <131250000>;
325 required-opps = <&rpmpd_opp_low_svs>;
326 };
327
328 opp-210000000 {
329 opp-hz = /bits/ 64 <210000000>;
330 required-opps = <&rpmpd_opp_svs>;
331 };
332
333 opp-312500000 {
334 opp-hz = /bits/ 64 <312500000>;
335 required-opps = <&rpmpd_opp_nom>;
336 };
337 };
338
339 psci {
340 compatible = "arm,psci-1.0";
341 method = "smc";
342 };
343
344 rpm: remoteproc {
345 compatible = "qcom,msm8998-rpm-proc", "qcom,rpm-proc";
346
347 glink-edge {
348 compatible = "qcom,glink-rpm";
349
350 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
351 qcom,rpm-msg-ram = <&rpm_msg_ram>;
352 mboxes = <&apcs_glb 0>;
353
354 rpm_requests: rpm-requests {
355 compatible = "qcom,rpm-msm8998";
356 qcom,glink-channels = "rpm_requests";
357
358 rpmcc: clock-controller {
359 compatible = "qcom,rpmcc-msm8998", "qcom,rpmcc";
360 clocks = <&xo>;
361 clock-names = "xo";
362 #clock-cells = <1>;
363 };
364
365 rpmpd: power-controller {
366 compatible = "qcom,msm8998-rpmpd";
367 #power-domain-cells = <1>;
368 operating-points-v2 = <&rpmpd_opp_table>;
369
370 rpmpd_opp_table: opp-table {
371 compatible = "operating-points-v2";
372
373 rpmpd_opp_ret: opp1 {
374 opp-level = <RPM_SMD_LEVEL_RETENTION>;
375 };
376
377 rpmpd_opp_ret_plus: opp2 {
378 opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
379 };
380
381 rpmpd_opp_min_svs: opp3 {
382 opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
383 };
384
385 rpmpd_opp_low_svs: opp4 {
386 opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
387 };
388
389 rpmpd_opp_svs: opp5 {
390 opp-level = <RPM_SMD_LEVEL_SVS>;
391 };
392
393 rpmpd_opp_svs_plus: opp6 {
394 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
395 };
396
397 rpmpd_opp_nom: opp7 {
398 opp-level = <RPM_SMD_LEVEL_NOM>;
399 };
400
401 rpmpd_opp_nom_plus: opp8 {
402 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
403 };
404
405 rpmpd_opp_turbo: opp9 {
406 opp-level = <RPM_SMD_LEVEL_TURBO>;
407 };
408
409 rpmpd_opp_turbo_plus: opp10 {
410 opp-level = <RPM_SMD_LEVEL_BINNING>;
411 };
412 };
413 };
414 };
415 };
416 };
417
418 smem {
419 compatible = "qcom,smem";
420 memory-region = <&smem_mem>;
421 hwlocks = <&tcsr_mutex 3>;
422 };
423
424 smp2p-lpass {
425 compatible = "qcom,smp2p";
426 qcom,smem = <443>, <429>;
427
428 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
429
430 mboxes = <&apcs_glb 10>;
431
432 qcom,local-pid = <0>;
433 qcom,remote-pid = <2>;
434
435 adsp_smp2p_out: master-kernel {
436 qcom,entry-name = "master-kernel";
437 #qcom,smem-state-cells = <1>;
438 };
439
440 adsp_smp2p_in: slave-kernel {
441 qcom,entry-name = "slave-kernel";
442
443 interrupt-controller;
444 #interrupt-cells = <2>;
445 };
446 };
447
448 smp2p-mpss {
449 compatible = "qcom,smp2p";
450 qcom,smem = <435>, <428>;
451 interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
452 mboxes = <&apcs_glb 14>;
453 qcom,local-pid = <0>;
454 qcom,remote-pid = <1>;
455
456 modem_smp2p_out: master-kernel {
457 qcom,entry-name = "master-kernel";
458 #qcom,smem-state-cells = <1>;
459 };
460
461 modem_smp2p_in: slave-kernel {
462 qcom,entry-name = "slave-kernel";
463 interrupt-controller;
464 #interrupt-cells = <2>;
465 };
466 };
467
468 smp2p-slpi {
469 compatible = "qcom,smp2p";
470 qcom,smem = <481>, <430>;
471 interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
472 mboxes = <&apcs_glb 26>;
473 qcom,local-pid = <0>;
474 qcom,remote-pid = <3>;
475
476 slpi_smp2p_out: master-kernel {
477 qcom,entry-name = "master-kernel";
478 #qcom,smem-state-cells = <1>;
479 };
480
481 slpi_smp2p_in: slave-kernel {
482 qcom,entry-name = "slave-kernel";
483 interrupt-controller;
484 #interrupt-cells = <2>;
485 };
486 };
487
488 thermal-zones {
489 cpu0-thermal {
490 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500491
492 thermal-sensors = <&tsens0 1>;
493
494 trips {
495 cpu0_alert0: trip-point0 {
496 temperature = <75000>;
497 hysteresis = <2000>;
498 type = "passive";
499 };
500
501 cpu0_crit: cpu-crit {
502 temperature = <110000>;
503 hysteresis = <2000>;
504 type = "critical";
505 };
506 };
507 };
508
509 cpu1-thermal {
510 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500511
512 thermal-sensors = <&tsens0 2>;
513
514 trips {
515 cpu1_alert0: trip-point0 {
516 temperature = <75000>;
517 hysteresis = <2000>;
518 type = "passive";
519 };
520
521 cpu1_crit: cpu-crit {
522 temperature = <110000>;
523 hysteresis = <2000>;
524 type = "critical";
525 };
526 };
527 };
528
529 cpu2-thermal {
530 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500531
532 thermal-sensors = <&tsens0 3>;
533
534 trips {
535 cpu2_alert0: trip-point0 {
536 temperature = <75000>;
537 hysteresis = <2000>;
538 type = "passive";
539 };
540
541 cpu2_crit: cpu-crit {
542 temperature = <110000>;
543 hysteresis = <2000>;
544 type = "critical";
545 };
546 };
547 };
548
549 cpu3-thermal {
550 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500551
552 thermal-sensors = <&tsens0 4>;
553
554 trips {
555 cpu3_alert0: trip-point0 {
556 temperature = <75000>;
557 hysteresis = <2000>;
558 type = "passive";
559 };
560
561 cpu3_crit: cpu-crit {
562 temperature = <110000>;
563 hysteresis = <2000>;
564 type = "critical";
565 };
566 };
567 };
568
569 cpu4-thermal {
570 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500571
572 thermal-sensors = <&tsens0 7>;
573
574 trips {
575 cpu4_alert0: trip-point0 {
576 temperature = <75000>;
577 hysteresis = <2000>;
578 type = "passive";
579 };
580
581 cpu4_crit: cpu-crit {
582 temperature = <110000>;
583 hysteresis = <2000>;
584 type = "critical";
585 };
586 };
587 };
588
589 cpu5-thermal {
590 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500591
592 thermal-sensors = <&tsens0 8>;
593
594 trips {
595 cpu5_alert0: trip-point0 {
596 temperature = <75000>;
597 hysteresis = <2000>;
598 type = "passive";
599 };
600
601 cpu5_crit: cpu-crit {
602 temperature = <110000>;
603 hysteresis = <2000>;
604 type = "critical";
605 };
606 };
607 };
608
609 cpu6-thermal {
610 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500611
612 thermal-sensors = <&tsens0 9>;
613
614 trips {
615 cpu6_alert0: trip-point0 {
616 temperature = <75000>;
617 hysteresis = <2000>;
618 type = "passive";
619 };
620
621 cpu6_crit: cpu-crit {
622 temperature = <110000>;
623 hysteresis = <2000>;
624 type = "critical";
625 };
626 };
627 };
628
629 cpu7-thermal {
630 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500631
632 thermal-sensors = <&tsens0 10>;
633
634 trips {
635 cpu7_alert0: trip-point0 {
636 temperature = <75000>;
637 hysteresis = <2000>;
638 type = "passive";
639 };
640
641 cpu7_crit: cpu-crit {
642 temperature = <110000>;
643 hysteresis = <2000>;
644 type = "critical";
645 };
646 };
647 };
648
649 gpu-bottom-thermal {
650 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500651
652 thermal-sensors = <&tsens0 12>;
653
654 trips {
655 gpu1_alert0: trip-point0 {
656 temperature = <90000>;
657 hysteresis = <2000>;
658 type = "hot";
659 };
660 };
661 };
662
663 gpu-top-thermal {
664 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500665
666 thermal-sensors = <&tsens0 13>;
667
668 trips {
669 gpu2_alert0: trip-point0 {
670 temperature = <90000>;
671 hysteresis = <2000>;
672 type = "hot";
673 };
674 };
675 };
676
677 clust0-mhm-thermal {
678 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500679
680 thermal-sensors = <&tsens0 5>;
681
682 trips {
683 cluster0_mhm_alert0: trip-point0 {
684 temperature = <90000>;
685 hysteresis = <2000>;
686 type = "hot";
687 };
688 };
689 };
690
691 clust1-mhm-thermal {
692 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500693
694 thermal-sensors = <&tsens0 6>;
695
696 trips {
697 cluster1_mhm_alert0: trip-point0 {
698 temperature = <90000>;
699 hysteresis = <2000>;
700 type = "hot";
701 };
702 };
703 };
704
705 cluster1-l2-thermal {
706 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500707
708 thermal-sensors = <&tsens0 11>;
709
710 trips {
711 cluster1_l2_alert0: trip-point0 {
712 temperature = <90000>;
713 hysteresis = <2000>;
714 type = "hot";
715 };
716 };
717 };
718
719 modem-thermal {
720 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500721
722 thermal-sensors = <&tsens1 1>;
723
724 trips {
725 modem_alert0: trip-point0 {
726 temperature = <90000>;
727 hysteresis = <2000>;
728 type = "hot";
729 };
730 };
731 };
732
733 mem-thermal {
734 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500735
736 thermal-sensors = <&tsens1 2>;
737
738 trips {
739 mem_alert0: trip-point0 {
740 temperature = <90000>;
741 hysteresis = <2000>;
742 type = "hot";
743 };
744 };
745 };
746
747 wlan-thermal {
748 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500749
750 thermal-sensors = <&tsens1 3>;
751
752 trips {
753 wlan_alert0: trip-point0 {
754 temperature = <90000>;
755 hysteresis = <2000>;
756 type = "hot";
757 };
758 };
759 };
760
761 q6-dsp-thermal {
762 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500763
764 thermal-sensors = <&tsens1 4>;
765
766 trips {
767 q6_dsp_alert0: trip-point0 {
768 temperature = <90000>;
769 hysteresis = <2000>;
770 type = "hot";
771 };
772 };
773 };
774
775 camera-thermal {
776 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500777
778 thermal-sensors = <&tsens1 5>;
779
780 trips {
781 camera_alert0: trip-point0 {
782 temperature = <90000>;
783 hysteresis = <2000>;
784 type = "hot";
785 };
786 };
787 };
788
789 multimedia-thermal {
790 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -0500791
792 thermal-sensors = <&tsens1 6>;
793
794 trips {
795 multimedia_alert0: trip-point0 {
796 temperature = <90000>;
797 hysteresis = <2000>;
798 type = "hot";
799 };
800 };
801 };
802 };
803
804 timer {
805 compatible = "arm,armv8-timer";
806 interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
807 <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
808 <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
809 <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
810 };
811
812 soc: soc@0 {
813 #address-cells = <1>;
814 #size-cells = <1>;
815 ranges = <0 0 0 0xffffffff>;
816 compatible = "simple-bus";
817
818 gcc: clock-controller@100000 {
819 compatible = "qcom,gcc-msm8998";
820 #clock-cells = <1>;
821 #reset-cells = <1>;
822 #power-domain-cells = <1>;
823 reg = <0x00100000 0xb0000>;
824
825 clock-names = "xo", "sleep_clk";
826 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
827
828 /*
829 * The hypervisor typically configures the memory region where these clocks
830 * reside as read-only for the HLOS. If the HLOS tried to enable or disable
831 * these clocks on a device with such configuration (e.g. because they are
832 * enabled but unused during boot-up), the device will most likely decide
833 * to reboot.
834 * In light of that, we are conservative here and we list all such clocks
835 * as protected. The board dts (or a user-supplied dts) can override the
836 * list of protected clocks if it differs from the norm, and it is in fact
837 * desired for the HLOS to manage these clocks
838 */
839 protected-clocks = <AGGRE2_SNOC_NORTH_AXI>,
840 <SSC_XO>,
841 <SSC_CNOC_AHBS_CLK>;
842 };
843
844 rpm_msg_ram: sram@778000 {
845 compatible = "qcom,rpm-msg-ram";
846 reg = <0x00778000 0x7000>;
847 };
848
849 qfprom: qfprom@784000 {
850 compatible = "qcom,msm8998-qfprom", "qcom,qfprom";
851 reg = <0x00784000 0x621c>;
852 #address-cells = <1>;
853 #size-cells = <1>;
854
855 qusb2_hstx_trim: hstx-trim@23a {
856 reg = <0x23a 0x1>;
857 bits = <0 4>;
858 };
859 };
860
861 tsens0: thermal@10ab000 {
862 compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
863 reg = <0x010ab000 0x1000>, /* TM */
864 <0x010aa000 0x1000>; /* SROT */
865 #qcom,sensors = <14>;
866 interrupts = <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
867 <GIC_SPI 445 IRQ_TYPE_LEVEL_HIGH>;
868 interrupt-names = "uplow", "critical";
869 #thermal-sensor-cells = <1>;
870 };
871
872 tsens1: thermal@10ae000 {
873 compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
874 reg = <0x010ae000 0x1000>, /* TM */
875 <0x010ad000 0x1000>; /* SROT */
876 #qcom,sensors = <8>;
877 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
878 <GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH>;
879 interrupt-names = "uplow", "critical";
880 #thermal-sensor-cells = <1>;
881 };
882
883 anoc1_smmu: iommu@1680000 {
884 compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
885 reg = <0x01680000 0x10000>;
886 #iommu-cells = <1>;
887
888 #global-interrupts = <0>;
889 interrupts =
890 <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
891 <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
892 <GIC_SPI 366 IRQ_TYPE_EDGE_RISING>,
893 <GIC_SPI 367 IRQ_TYPE_EDGE_RISING>,
894 <GIC_SPI 368 IRQ_TYPE_EDGE_RISING>,
895 <GIC_SPI 369 IRQ_TYPE_EDGE_RISING>;
896 };
897
898 anoc2_smmu: iommu@16c0000 {
899 compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
900 reg = <0x016c0000 0x40000>;
901 #iommu-cells = <1>;
902
903 #global-interrupts = <0>;
904 interrupts =
905 <GIC_SPI 373 IRQ_TYPE_EDGE_RISING>,
906 <GIC_SPI 374 IRQ_TYPE_EDGE_RISING>,
907 <GIC_SPI 375 IRQ_TYPE_EDGE_RISING>,
908 <GIC_SPI 376 IRQ_TYPE_EDGE_RISING>,
909 <GIC_SPI 377 IRQ_TYPE_EDGE_RISING>,
910 <GIC_SPI 378 IRQ_TYPE_EDGE_RISING>,
911 <GIC_SPI 462 IRQ_TYPE_EDGE_RISING>,
912 <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>,
913 <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>,
914 <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>;
915 };
916
Tom Rini93743d22024-04-01 09:08:13 -0400917 pcie0: pcie@1c00000 {
Tom Rini53633a82024-02-29 12:33:36 -0500918 compatible = "qcom,pcie-msm8998", "qcom,pcie-msm8996";
919 reg = <0x01c00000 0x2000>,
920 <0x1b000000 0xf1d>,
921 <0x1b000f20 0xa8>,
922 <0x1b100000 0x100000>;
923 reg-names = "parf", "dbi", "elbi", "config";
924 device_type = "pci";
925 linux,pci-domain = <0>;
926 bus-range = <0x00 0xff>;
927 #address-cells = <3>;
928 #size-cells = <2>;
929 num-lanes = <1>;
930 phys = <&pcie_phy>;
931 phy-names = "pciephy";
932 status = "disabled";
933
934 ranges = <0x01000000 0x0 0x00000000 0x1b200000 0x0 0x100000>,
935 <0x02000000 0x0 0x1b300000 0x1b300000 0x0 0xd00000>;
936
937 #interrupt-cells = <1>;
938 interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
939 interrupt-names = "msi";
940 interrupt-map-mask = <0 0 0 0x7>;
941 interrupt-map = <0 0 0 1 &intc 0 0 135 IRQ_TYPE_LEVEL_HIGH>,
942 <0 0 0 2 &intc 0 0 136 IRQ_TYPE_LEVEL_HIGH>,
943 <0 0 0 3 &intc 0 0 138 IRQ_TYPE_LEVEL_HIGH>,
944 <0 0 0 4 &intc 0 0 139 IRQ_TYPE_LEVEL_HIGH>;
945
946 clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
947 <&gcc GCC_PCIE_0_AUX_CLK>,
948 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
949 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
950 <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
951 clock-names = "pipe", "aux", "cfg", "bus_master", "bus_slave";
952
953 power-domains = <&gcc PCIE_0_GDSC>;
954 iommu-map = <0x100 &anoc1_smmu 0x1480 1>;
955 perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
Tom Rini762f85b2024-07-20 11:15:10 -0600956
957 pcie@0 {
958 device_type = "pci";
959 reg = <0x0 0x0 0x0 0x0 0x0>;
960 bus-range = <0x01 0xff>;
961
962 #address-cells = <3>;
963 #size-cells = <2>;
964 ranges;
965 };
Tom Rini53633a82024-02-29 12:33:36 -0500966 };
967
968 pcie_phy: phy@1c06000 {
969 compatible = "qcom,msm8998-qmp-pcie-phy";
970 reg = <0x01c06000 0x1000>;
971 status = "disabled";
972
973 clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
974 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
975 <&gcc GCC_PCIE_CLKREF_CLK>,
976 <&gcc GCC_PCIE_0_PIPE_CLK>;
977 clock-names = "aux",
978 "cfg_ahb",
979 "ref",
980 "pipe";
981
982 clock-output-names = "pcie_0_pipe_clk_src";
983 #clock-cells = <0>;
984
985 #phy-cells = <0>;
986
987 resets = <&gcc GCC_PCIE_0_PHY_BCR>, <&gcc GCC_PCIE_PHY_BCR>;
988 reset-names = "phy", "common";
989
990 vdda-phy-supply = <&vreg_l1a_0p875>;
991 vdda-pll-supply = <&vreg_l2a_1p2>;
992 };
993
994 ufshc: ufshc@1da4000 {
995 compatible = "qcom,msm8998-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
996 reg = <0x01da4000 0x2500>;
997 interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -0400998 phys = <&ufsphy>;
Tom Rini53633a82024-02-29 12:33:36 -0500999 phy-names = "ufsphy";
1000 lanes-per-direction = <2>;
1001 power-domains = <&gcc UFS_GDSC>;
1002 status = "disabled";
1003 #reset-cells = <1>;
1004
1005 clock-names =
1006 "core_clk",
1007 "bus_aggr_clk",
1008 "iface_clk",
1009 "core_clk_unipro",
1010 "ref_clk",
1011 "tx_lane0_sync_clk",
1012 "rx_lane0_sync_clk",
1013 "rx_lane1_sync_clk";
1014 clocks =
1015 <&gcc GCC_UFS_AXI_CLK>,
1016 <&gcc GCC_AGGRE1_UFS_AXI_CLK>,
1017 <&gcc GCC_UFS_AHB_CLK>,
1018 <&gcc GCC_UFS_UNIPRO_CORE_CLK>,
1019 <&rpmcc RPM_SMD_LN_BB_CLK1>,
1020 <&gcc GCC_UFS_TX_SYMBOL_0_CLK>,
1021 <&gcc GCC_UFS_RX_SYMBOL_0_CLK>,
1022 <&gcc GCC_UFS_RX_SYMBOL_1_CLK>;
1023 freq-table-hz =
1024 <50000000 200000000>,
1025 <0 0>,
1026 <0 0>,
1027 <37500000 150000000>,
1028 <0 0>,
1029 <0 0>,
1030 <0 0>,
1031 <0 0>;
1032
1033 resets = <&gcc GCC_UFS_BCR>;
1034 reset-names = "rst";
1035 };
1036
1037 ufsphy: phy@1da7000 {
1038 compatible = "qcom,msm8998-qmp-ufs-phy";
Tom Rini93743d22024-04-01 09:08:13 -04001039 reg = <0x01da7000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05001040
Tom Rini6bb92fc2024-05-20 09:54:58 -06001041 clocks = <&rpmcc RPM_SMD_LN_BB_CLK1>,
1042 <&gcc GCC_UFS_PHY_AUX_CLK>,
1043 <&gcc GCC_UFS_CLKREF_CLK>;
1044 clock-names = "ref",
1045 "ref_aux",
1046 "qref";
Tom Rini53633a82024-02-29 12:33:36 -05001047
1048 reset-names = "ufsphy";
1049 resets = <&ufshc 0>;
1050
Tom Rini93743d22024-04-01 09:08:13 -04001051 #phy-cells = <0>;
1052 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001053 };
1054
1055 tcsr_mutex: hwlock@1f40000 {
1056 compatible = "qcom,tcsr-mutex";
1057 reg = <0x01f40000 0x20000>;
1058 #hwlock-cells = <1>;
1059 };
1060
1061 tcsr_regs_1: syscon@1f60000 {
1062 compatible = "qcom,msm8998-tcsr", "syscon";
1063 reg = <0x01f60000 0x20000>;
1064 };
1065
Tom Rini6bb92fc2024-05-20 09:54:58 -06001066 tcsr_regs_2: syscon@1fc0000 {
1067 compatible = "qcom,msm8998-tcsr", "syscon";
1068 reg = <0x01fc0000 0x26000>;
1069 };
1070
Tom Rini53633a82024-02-29 12:33:36 -05001071 tlmm: pinctrl@3400000 {
1072 compatible = "qcom,msm8998-pinctrl";
1073 reg = <0x03400000 0xc00000>;
1074 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
1075 gpio-ranges = <&tlmm 0 0 150>;
1076 gpio-controller;
1077 #gpio-cells = <2>;
1078 interrupt-controller;
1079 #interrupt-cells = <2>;
1080
1081 sdc2_on: sdc2-on-state {
1082 clk-pins {
1083 pins = "sdc2_clk";
1084 drive-strength = <16>;
1085 bias-disable;
1086 };
1087
1088 cmd-pins {
1089 pins = "sdc2_cmd";
1090 drive-strength = <10>;
1091 bias-pull-up;
1092 };
1093
1094 data-pins {
1095 pins = "sdc2_data";
1096 drive-strength = <10>;
1097 bias-pull-up;
1098 };
1099 };
1100
1101 sdc2_off: sdc2-off-state {
1102 clk-pins {
1103 pins = "sdc2_clk";
1104 drive-strength = <2>;
1105 bias-disable;
1106 };
1107
1108 cmd-pins {
1109 pins = "sdc2_cmd";
1110 drive-strength = <2>;
1111 bias-pull-up;
1112 };
1113
1114 data-pins {
1115 pins = "sdc2_data";
1116 drive-strength = <2>;
1117 bias-pull-up;
1118 };
1119 };
1120
1121 sdc2_cd: sdc2-cd-state {
1122 pins = "gpio95";
1123 function = "gpio";
1124 bias-pull-up;
1125 drive-strength = <2>;
1126 };
1127
1128 blsp1_uart3_on: blsp1-uart3-on-state {
1129 tx-pins {
1130 pins = "gpio45";
1131 function = "blsp_uart3_a";
1132 drive-strength = <2>;
1133 bias-disable;
1134 };
1135
1136 rx-pins {
1137 pins = "gpio46";
1138 function = "blsp_uart3_a";
1139 drive-strength = <2>;
1140 bias-disable;
1141 };
1142
1143 cts-pins {
1144 pins = "gpio47";
1145 function = "blsp_uart3_a";
1146 drive-strength = <2>;
1147 bias-disable;
1148 };
1149
1150 rfr-pins {
1151 pins = "gpio48";
1152 function = "blsp_uart3_a";
1153 drive-strength = <2>;
1154 bias-disable;
1155 };
1156 };
1157
1158 blsp1_i2c1_default: blsp1-i2c1-default-state {
1159 pins = "gpio2", "gpio3";
1160 function = "blsp_i2c1";
1161 drive-strength = <2>;
1162 bias-disable;
1163 };
1164
1165 blsp1_i2c1_sleep: blsp1-i2c1-sleep-state-state {
1166 pins = "gpio2", "gpio3";
1167 function = "blsp_i2c1";
1168 drive-strength = <2>;
1169 bias-pull-up;
1170 };
1171
1172 blsp1_i2c2_default: blsp1-i2c2-default-state {
1173 pins = "gpio32", "gpio33";
1174 function = "blsp_i2c2";
1175 drive-strength = <2>;
1176 bias-disable;
1177 };
1178
1179 blsp1_i2c2_sleep: blsp1-i2c2-sleep-state-state {
1180 pins = "gpio32", "gpio33";
1181 function = "blsp_i2c2";
1182 drive-strength = <2>;
1183 bias-pull-up;
1184 };
1185
1186 blsp1_i2c3_default: blsp1-i2c3-default-state {
1187 pins = "gpio47", "gpio48";
1188 function = "blsp_i2c3";
1189 drive-strength = <2>;
1190 bias-disable;
1191 };
1192
1193 blsp1_i2c3_sleep: blsp1-i2c3-sleep-state {
1194 pins = "gpio47", "gpio48";
1195 function = "blsp_i2c3";
1196 drive-strength = <2>;
1197 bias-pull-up;
1198 };
1199
1200 blsp1_i2c4_default: blsp1-i2c4-default-state {
1201 pins = "gpio10", "gpio11";
1202 function = "blsp_i2c4";
1203 drive-strength = <2>;
1204 bias-disable;
1205 };
1206
1207 blsp1_i2c4_sleep: blsp1-i2c4-sleep-state {
1208 pins = "gpio10", "gpio11";
1209 function = "blsp_i2c4";
1210 drive-strength = <2>;
1211 bias-pull-up;
1212 };
1213
1214 blsp1_i2c5_default: blsp1-i2c5-default-state {
1215 pins = "gpio87", "gpio88";
1216 function = "blsp_i2c5";
1217 drive-strength = <2>;
1218 bias-disable;
1219 };
1220
1221 blsp1_i2c5_sleep: blsp1-i2c5-sleep-state {
1222 pins = "gpio87", "gpio88";
1223 function = "blsp_i2c5";
1224 drive-strength = <2>;
1225 bias-pull-up;
1226 };
1227
1228 blsp1_i2c6_default: blsp1-i2c6-default-state {
1229 pins = "gpio43", "gpio44";
1230 function = "blsp_i2c6";
1231 drive-strength = <2>;
1232 bias-disable;
1233 };
1234
1235 blsp1_i2c6_sleep: blsp1-i2c6-sleep-state {
1236 pins = "gpio43", "gpio44";
1237 function = "blsp_i2c6";
1238 drive-strength = <2>;
1239 bias-pull-up;
1240 };
1241
1242 blsp1_spi_b_default: blsp1-spi-b-default-state {
1243 pins = "gpio23", "gpio28";
1244 function = "blsp1_spi_b";
1245 drive-strength = <6>;
1246 bias-disable;
1247 };
1248
1249 blsp1_spi1_default: blsp1-spi1-default-state {
1250 pins = "gpio0", "gpio1", "gpio2", "gpio3";
1251 function = "blsp_spi1";
1252 drive-strength = <6>;
1253 bias-disable;
1254 };
1255
1256 blsp1_spi2_default: blsp1-spi2-default-state {
1257 pins = "gpio31", "gpio34", "gpio32", "gpio33";
1258 function = "blsp_spi2";
1259 drive-strength = <6>;
1260 bias-disable;
1261 };
1262
1263 blsp1_spi3_default: blsp1-spi3-default-state {
1264 pins = "gpio45", "gpio46", "gpio47", "gpio48";
1265 function = "blsp_spi2";
1266 drive-strength = <6>;
1267 bias-disable;
1268 };
1269
1270 blsp1_spi4_default: blsp1-spi4-default-state {
1271 pins = "gpio8", "gpio9", "gpio10", "gpio11";
1272 function = "blsp_spi4";
1273 drive-strength = <6>;
1274 bias-disable;
1275 };
1276
1277 blsp1_spi5_default: blsp1-spi5-default-state {
1278 pins = "gpio85", "gpio86", "gpio87", "gpio88";
1279 function = "blsp_spi5";
1280 drive-strength = <6>;
1281 bias-disable;
1282 };
1283
1284 blsp1_spi6_default: blsp1-spi6-default-state {
1285 pins = "gpio41", "gpio42", "gpio43", "gpio44";
1286 function = "blsp_spi6";
1287 drive-strength = <6>;
1288 bias-disable;
1289 };
1290
1291
1292 /* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
1293 blsp2_i2c1_default: blsp2-i2c1-default-state {
1294 pins = "gpio55", "gpio56";
1295 function = "blsp_i2c7";
1296 drive-strength = <2>;
1297 bias-disable;
1298 };
1299
1300 blsp2_i2c1_sleep: blsp2-i2c1-sleep-state {
1301 pins = "gpio55", "gpio56";
1302 function = "blsp_i2c7";
1303 drive-strength = <2>;
1304 bias-pull-up;
1305 };
1306
1307 blsp2_i2c2_default: blsp2-i2c2-default-state {
1308 pins = "gpio6", "gpio7";
1309 function = "blsp_i2c8";
1310 drive-strength = <2>;
1311 bias-disable;
1312 };
1313
1314 blsp2_i2c2_sleep: blsp2-i2c2-sleep-state {
1315 pins = "gpio6", "gpio7";
1316 function = "blsp_i2c8";
1317 drive-strength = <2>;
1318 bias-pull-up;
1319 };
1320
1321 blsp2_i2c3_default: blsp2-i2c3-default-state {
1322 pins = "gpio51", "gpio52";
1323 function = "blsp_i2c9";
1324 drive-strength = <2>;
1325 bias-disable;
1326 };
1327
1328 blsp2_i2c3_sleep: blsp2-i2c3-sleep-state {
1329 pins = "gpio51", "gpio52";
1330 function = "blsp_i2c9";
1331 drive-strength = <2>;
1332 bias-pull-up;
1333 };
1334
1335 blsp2_i2c4_default: blsp2-i2c4-default-state {
1336 pins = "gpio67", "gpio68";
1337 function = "blsp_i2c10";
1338 drive-strength = <2>;
1339 bias-disable;
1340 };
1341
1342 blsp2_i2c4_sleep: blsp2-i2c4-sleep-state {
1343 pins = "gpio67", "gpio68";
1344 function = "blsp_i2c10";
1345 drive-strength = <2>;
1346 bias-pull-up;
1347 };
1348
1349 blsp2_i2c5_default: blsp2-i2c5-default-state {
1350 pins = "gpio60", "gpio61";
1351 function = "blsp_i2c11";
1352 drive-strength = <2>;
1353 bias-disable;
1354 };
1355
1356 blsp2_i2c5_sleep: blsp2-i2c5-sleep-state {
1357 pins = "gpio60", "gpio61";
1358 function = "blsp_i2c11";
1359 drive-strength = <2>;
1360 bias-pull-up;
1361 };
1362
1363 blsp2_i2c6_default: blsp2-i2c6-default-state {
1364 pins = "gpio83", "gpio84";
1365 function = "blsp_i2c12";
1366 drive-strength = <2>;
1367 bias-disable;
1368 };
1369
1370 blsp2_i2c6_sleep: blsp2-i2c6-sleep-state {
1371 pins = "gpio83", "gpio84";
1372 function = "blsp_i2c12";
1373 drive-strength = <2>;
1374 bias-pull-up;
1375 };
1376
1377 blsp2_spi1_default: blsp2-spi1-default-state {
1378 pins = "gpio53", "gpio54", "gpio55", "gpio56";
1379 function = "blsp_spi7";
1380 drive-strength = <6>;
1381 bias-disable;
1382 };
1383
1384 blsp2_spi2_default: blsp2-spi2-default-state {
1385 pins = "gpio4", "gpio5", "gpio6", "gpio7";
1386 function = "blsp_spi8";
1387 drive-strength = <6>;
1388 bias-disable;
1389 };
1390
1391 blsp2_spi3_default: blsp2-spi3-default-state {
1392 pins = "gpio49", "gpio50", "gpio51", "gpio52";
1393 function = "blsp_spi9";
1394 drive-strength = <6>;
1395 bias-disable;
1396 };
1397
1398 blsp2_spi4_default: blsp2-spi4-default-state {
1399 pins = "gpio65", "gpio66", "gpio67", "gpio68";
1400 function = "blsp_spi10";
1401 drive-strength = <6>;
1402 bias-disable;
1403 };
1404
1405 blsp2_spi5_default: blsp2-spi5-default-state {
1406 pins = "gpio58", "gpio59", "gpio60", "gpio61";
1407 function = "blsp_spi11";
1408 drive-strength = <6>;
1409 bias-disable;
1410 };
1411
1412 blsp2_spi6_default: blsp2-spi6-default-state {
1413 pins = "gpio81", "gpio82", "gpio83", "gpio84";
1414 function = "blsp_spi12";
1415 drive-strength = <6>;
1416 bias-disable;
1417 };
1418 };
1419
1420 remoteproc_mss: remoteproc@4080000 {
1421 compatible = "qcom,msm8998-mss-pil";
1422 reg = <0x04080000 0x100>, <0x04180000 0x20>;
1423 reg-names = "qdsp6", "rmb";
1424
1425 interrupts-extended =
1426 <&intc GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
1427 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1428 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1429 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1430 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
1431 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
1432 interrupt-names = "wdog", "fatal", "ready",
1433 "handover", "stop-ack",
1434 "shutdown-ack";
1435
1436 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1437 <&gcc GCC_BIMC_MSS_Q6_AXI_CLK>,
1438 <&gcc GCC_BOOT_ROM_AHB_CLK>,
1439 <&gcc GCC_MSS_GPLL0_DIV_CLK_SRC>,
1440 <&gcc GCC_MSS_SNOC_AXI_CLK>,
1441 <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>,
1442 <&rpmcc RPM_SMD_QDSS_CLK>,
1443 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1444 clock-names = "iface", "bus", "mem", "gpll0_mss",
1445 "snoc_axi", "mnoc_axi", "qdss", "xo";
1446
1447 qcom,smem-states = <&modem_smp2p_out 0>;
1448 qcom,smem-state-names = "stop";
1449
1450 resets = <&gcc GCC_MSS_RESTART>;
1451 reset-names = "mss_restart";
1452
1453 qcom,halt-regs = <&tcsr_regs_1 0x3000 0x5000 0x4000>;
1454
1455 power-domains = <&rpmpd MSM8998_VDDCX>,
1456 <&rpmpd MSM8998_VDDMX>;
1457 power-domain-names = "cx", "mx";
1458
1459 status = "disabled";
1460
1461 mba {
1462 memory-region = <&mba_mem>;
1463 };
1464
1465 mpss {
1466 memory-region = <&mpss_mem>;
1467 };
1468
1469 metadata {
1470 memory-region = <&mdata_mem>;
1471 };
1472
1473 glink-edge {
1474 interrupts = <GIC_SPI 452 IRQ_TYPE_EDGE_RISING>;
1475 label = "modem";
1476 qcom,remote-pid = <1>;
1477 mboxes = <&apcs_glb 15>;
1478 };
1479 };
1480
1481 adreno_gpu: gpu@5000000 {
1482 compatible = "qcom,adreno-540.1", "qcom,adreno";
1483 reg = <0x05000000 0x40000>;
1484 reg-names = "kgsl_3d0_reg_memory";
1485
1486 clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
1487 <&gpucc RBBMTIMER_CLK>,
1488 <&gcc GCC_BIMC_GFX_CLK>,
1489 <&gcc GCC_GPU_BIMC_GFX_CLK>,
1490 <&gpucc RBCPR_CLK>,
1491 <&gpucc GFX3D_CLK>;
1492 clock-names = "iface",
1493 "rbbmtimer",
1494 "mem",
1495 "mem_iface",
1496 "rbcpr",
1497 "core";
1498
1499 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1500 iommus = <&adreno_smmu 0>;
1501 operating-points-v2 = <&gpu_opp_table>;
1502 power-domains = <&rpmpd MSM8998_VDDMX>;
1503 status = "disabled";
1504
1505 gpu_opp_table: opp-table {
1506 compatible = "operating-points-v2";
1507 opp-710000097 {
1508 opp-hz = /bits/ 64 <710000097>;
1509 opp-level = <RPM_SMD_LEVEL_TURBO>;
1510 opp-supported-hw = <0xff>;
1511 };
1512
1513 opp-670000048 {
1514 opp-hz = /bits/ 64 <670000048>;
1515 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
1516 opp-supported-hw = <0xff>;
1517 };
1518
1519 opp-596000097 {
1520 opp-hz = /bits/ 64 <596000097>;
1521 opp-level = <RPM_SMD_LEVEL_NOM>;
1522 opp-supported-hw = <0xff>;
1523 };
1524
1525 opp-515000097 {
1526 opp-hz = /bits/ 64 <515000097>;
1527 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
1528 opp-supported-hw = <0xff>;
1529 };
1530
1531 opp-414000000 {
1532 opp-hz = /bits/ 64 <414000000>;
1533 opp-level = <RPM_SMD_LEVEL_SVS>;
1534 opp-supported-hw = <0xff>;
1535 };
1536
1537 opp-342000000 {
1538 opp-hz = /bits/ 64 <342000000>;
1539 opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
1540 opp-supported-hw = <0xff>;
1541 };
1542
1543 opp-257000000 {
1544 opp-hz = /bits/ 64 <257000000>;
1545 opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
1546 opp-supported-hw = <0xff>;
1547 };
1548 };
1549 };
1550
1551 adreno_smmu: iommu@5040000 {
1552 compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
1553 reg = <0x05040000 0x10000>;
1554 clocks = <&gcc GCC_GPU_CFG_AHB_CLK>,
1555 <&gcc GCC_BIMC_GFX_CLK>,
1556 <&gcc GCC_GPU_BIMC_GFX_CLK>;
1557 clock-names = "iface", "mem", "mem_iface";
1558
1559 #global-interrupts = <0>;
1560 #iommu-cells = <1>;
1561 interrupts =
1562 <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
1563 <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
1564 <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1565 /*
1566 * GPU-GX GDSC's parent is GPU-CX. We need to bring up the
1567 * GPU-CX for SMMU but we need both of them up for Adreno.
1568 * Contemporarily, we also need to manage the VDDMX rpmpd
1569 * domain in the Adreno driver.
1570 * Enable GPU CX/GX GDSCs here so that we can manage the
1571 * SoC VDDMX RPM Power Domain in the Adreno driver.
1572 */
1573 power-domains = <&gpucc GPU_GX_GDSC>;
Tom Rini53633a82024-02-29 12:33:36 -05001574 };
1575
1576 gpucc: clock-controller@5065000 {
1577 compatible = "qcom,msm8998-gpucc";
1578 #clock-cells = <1>;
1579 #reset-cells = <1>;
1580 #power-domain-cells = <1>;
1581 reg = <0x05065000 0x9000>;
1582
1583 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1584 <&gcc GCC_GPU_GPLL0_CLK>;
1585 clock-names = "xo",
1586 "gpll0";
1587 };
1588
1589 remoteproc_slpi: remoteproc@5800000 {
1590 compatible = "qcom,msm8998-slpi-pas";
1591 reg = <0x05800000 0x4040>;
1592
1593 interrupts-extended = <&intc GIC_SPI 390 IRQ_TYPE_EDGE_RISING>,
1594 <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1595 <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1596 <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1597 <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1598 interrupt-names = "wdog", "fatal", "ready",
1599 "handover", "stop-ack";
1600
1601 px-supply = <&vreg_lvs2a_1p8>;
1602
Tom Rini93743d22024-04-01 09:08:13 -04001603 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1604 clock-names = "xo";
Tom Rini53633a82024-02-29 12:33:36 -05001605
1606 memory-region = <&slpi_mem>;
1607
1608 qcom,smem-states = <&slpi_smp2p_out 0>;
1609 qcom,smem-state-names = "stop";
1610
1611 power-domains = <&rpmpd MSM8998_SSCCX>;
1612 power-domain-names = "ssc_cx";
1613
1614 status = "disabled";
1615
1616 glink-edge {
1617 interrupts = <GIC_SPI 179 IRQ_TYPE_EDGE_RISING>;
1618 label = "dsps";
1619 qcom,remote-pid = <3>;
1620 mboxes = <&apcs_glb 27>;
1621 };
1622 };
1623
1624 stm: stm@6002000 {
1625 compatible = "arm,coresight-stm", "arm,primecell";
1626 reg = <0x06002000 0x1000>,
1627 <0x16280000 0x180000>;
1628 reg-names = "stm-base", "stm-stimulus-base";
1629 status = "disabled";
1630
1631 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1632 clock-names = "apb_pclk", "atclk";
1633
1634 out-ports {
1635 port {
1636 stm_out: endpoint {
1637 remote-endpoint = <&funnel0_in7>;
1638 };
1639 };
1640 };
1641 };
1642
1643 funnel1: funnel@6041000 {
1644 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1645 reg = <0x06041000 0x1000>;
1646 status = "disabled";
1647
1648 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1649 clock-names = "apb_pclk", "atclk";
1650
1651 out-ports {
1652 port {
1653 funnel0_out: endpoint {
1654 remote-endpoint =
1655 <&merge_funnel_in0>;
1656 };
1657 };
1658 };
1659
1660 in-ports {
1661 #address-cells = <1>;
1662 #size-cells = <0>;
1663
1664 port@7 {
1665 reg = <7>;
1666 funnel0_in7: endpoint {
1667 remote-endpoint = <&stm_out>;
1668 };
1669 };
1670 };
1671 };
1672
1673 funnel2: funnel@6042000 {
1674 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1675 reg = <0x06042000 0x1000>;
1676 status = "disabled";
1677
1678 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1679 clock-names = "apb_pclk", "atclk";
1680
1681 out-ports {
1682 port {
1683 funnel1_out: endpoint {
1684 remote-endpoint =
1685 <&merge_funnel_in1>;
1686 };
1687 };
1688 };
1689
1690 in-ports {
1691 #address-cells = <1>;
1692 #size-cells = <0>;
1693
1694 port@6 {
1695 reg = <6>;
1696 funnel1_in6: endpoint {
1697 remote-endpoint =
1698 <&apss_merge_funnel_out>;
1699 };
1700 };
1701 };
1702 };
1703
1704 funnel3: funnel@6045000 {
1705 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1706 reg = <0x06045000 0x1000>;
1707 status = "disabled";
1708
1709 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1710 clock-names = "apb_pclk", "atclk";
1711
1712 out-ports {
1713 port {
1714 merge_funnel_out: endpoint {
1715 remote-endpoint =
1716 <&etf_in>;
1717 };
1718 };
1719 };
1720
1721 in-ports {
1722 #address-cells = <1>;
1723 #size-cells = <0>;
1724
1725 port@0 {
1726 reg = <0>;
1727 merge_funnel_in0: endpoint {
1728 remote-endpoint =
1729 <&funnel0_out>;
1730 };
1731 };
1732
1733 port@1 {
1734 reg = <1>;
1735 merge_funnel_in1: endpoint {
1736 remote-endpoint =
1737 <&funnel1_out>;
1738 };
1739 };
1740 };
1741 };
1742
1743 replicator1: replicator@6046000 {
1744 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
1745 reg = <0x06046000 0x1000>;
1746 status = "disabled";
1747
1748 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1749 clock-names = "apb_pclk", "atclk";
1750
1751 out-ports {
1752 port {
1753 replicator_out: endpoint {
1754 remote-endpoint = <&etr_in>;
1755 };
1756 };
1757 };
1758
1759 in-ports {
1760 port {
1761 replicator_in: endpoint {
1762 remote-endpoint = <&etf_out>;
1763 };
1764 };
1765 };
1766 };
1767
1768 etf: etf@6047000 {
1769 compatible = "arm,coresight-tmc", "arm,primecell";
1770 reg = <0x06047000 0x1000>;
1771 status = "disabled";
1772
1773 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1774 clock-names = "apb_pclk", "atclk";
1775
1776 out-ports {
1777 port {
1778 etf_out: endpoint {
1779 remote-endpoint =
1780 <&replicator_in>;
1781 };
1782 };
1783 };
1784
1785 in-ports {
1786 port {
1787 etf_in: endpoint {
1788 remote-endpoint =
1789 <&merge_funnel_out>;
1790 };
1791 };
1792 };
1793 };
1794
1795 etr: etr@6048000 {
1796 compatible = "arm,coresight-tmc", "arm,primecell";
1797 reg = <0x06048000 0x1000>;
1798 status = "disabled";
1799
1800 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1801 clock-names = "apb_pclk", "atclk";
1802 arm,scatter-gather;
1803
1804 in-ports {
1805 port {
1806 etr_in: endpoint {
1807 remote-endpoint =
1808 <&replicator_out>;
1809 };
1810 };
1811 };
1812 };
1813
1814 etm1: etm@7840000 {
1815 compatible = "arm,coresight-etm4x", "arm,primecell";
1816 reg = <0x07840000 0x1000>;
1817 status = "disabled";
1818
1819 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1820 clock-names = "apb_pclk", "atclk";
1821
1822 cpu = <&CPU0>;
1823
1824 out-ports {
1825 port {
1826 etm0_out: endpoint {
1827 remote-endpoint =
1828 <&apss_funnel_in0>;
1829 };
1830 };
1831 };
1832 };
1833
1834 etm2: etm@7940000 {
1835 compatible = "arm,coresight-etm4x", "arm,primecell";
1836 reg = <0x07940000 0x1000>;
1837 status = "disabled";
1838
1839 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1840 clock-names = "apb_pclk", "atclk";
1841
1842 cpu = <&CPU1>;
1843
1844 out-ports {
1845 port {
1846 etm1_out: endpoint {
1847 remote-endpoint =
1848 <&apss_funnel_in1>;
1849 };
1850 };
1851 };
1852 };
1853
1854 etm3: etm@7a40000 {
1855 compatible = "arm,coresight-etm4x", "arm,primecell";
1856 reg = <0x07a40000 0x1000>;
1857 status = "disabled";
1858
1859 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1860 clock-names = "apb_pclk", "atclk";
1861
1862 cpu = <&CPU2>;
1863
1864 out-ports {
1865 port {
1866 etm2_out: endpoint {
1867 remote-endpoint =
1868 <&apss_funnel_in2>;
1869 };
1870 };
1871 };
1872 };
1873
1874 etm4: etm@7b40000 {
1875 compatible = "arm,coresight-etm4x", "arm,primecell";
1876 reg = <0x07b40000 0x1000>;
1877 status = "disabled";
1878
1879 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1880 clock-names = "apb_pclk", "atclk";
1881
1882 cpu = <&CPU3>;
1883
1884 out-ports {
1885 port {
1886 etm3_out: endpoint {
1887 remote-endpoint =
1888 <&apss_funnel_in3>;
1889 };
1890 };
1891 };
1892 };
1893
1894 funnel4: funnel@7b60000 { /* APSS Funnel */
1895 compatible = "arm,coresight-etm4x", "arm,primecell";
1896 reg = <0x07b60000 0x1000>;
1897 status = "disabled";
1898
1899 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1900 clock-names = "apb_pclk", "atclk";
1901
1902 out-ports {
1903 port {
1904 apss_funnel_out: endpoint {
1905 remote-endpoint =
1906 <&apss_merge_funnel_in>;
1907 };
1908 };
1909 };
1910
1911 in-ports {
1912 #address-cells = <1>;
1913 #size-cells = <0>;
1914
1915 port@0 {
1916 reg = <0>;
1917 apss_funnel_in0: endpoint {
1918 remote-endpoint =
1919 <&etm0_out>;
1920 };
1921 };
1922
1923 port@1 {
1924 reg = <1>;
1925 apss_funnel_in1: endpoint {
1926 remote-endpoint =
1927 <&etm1_out>;
1928 };
1929 };
1930
1931 port@2 {
1932 reg = <2>;
1933 apss_funnel_in2: endpoint {
1934 remote-endpoint =
1935 <&etm2_out>;
1936 };
1937 };
1938
1939 port@3 {
1940 reg = <3>;
1941 apss_funnel_in3: endpoint {
1942 remote-endpoint =
1943 <&etm3_out>;
1944 };
1945 };
1946
1947 port@4 {
1948 reg = <4>;
1949 apss_funnel_in4: endpoint {
1950 remote-endpoint =
1951 <&etm4_out>;
1952 };
1953 };
1954
1955 port@5 {
1956 reg = <5>;
1957 apss_funnel_in5: endpoint {
1958 remote-endpoint =
1959 <&etm5_out>;
1960 };
1961 };
1962
1963 port@6 {
1964 reg = <6>;
1965 apss_funnel_in6: endpoint {
1966 remote-endpoint =
1967 <&etm6_out>;
1968 };
1969 };
1970
1971 port@7 {
1972 reg = <7>;
1973 apss_funnel_in7: endpoint {
1974 remote-endpoint =
1975 <&etm7_out>;
1976 };
1977 };
1978 };
1979 };
1980
1981 funnel5: funnel@7b70000 {
1982 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1983 reg = <0x07b70000 0x1000>;
1984 status = "disabled";
1985
1986 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1987 clock-names = "apb_pclk", "atclk";
1988
1989 out-ports {
1990 port {
1991 apss_merge_funnel_out: endpoint {
1992 remote-endpoint =
1993 <&funnel1_in6>;
1994 };
1995 };
1996 };
1997
1998 in-ports {
1999 port {
2000 apss_merge_funnel_in: endpoint {
2001 remote-endpoint =
2002 <&apss_funnel_out>;
2003 };
2004 };
2005 };
2006 };
2007
2008 etm5: etm@7c40000 {
2009 compatible = "arm,coresight-etm4x", "arm,primecell";
2010 reg = <0x07c40000 0x1000>;
2011 status = "disabled";
2012
2013 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2014 clock-names = "apb_pclk", "atclk";
2015
2016 cpu = <&CPU4>;
2017
Tom Rini93743d22024-04-01 09:08:13 -04002018 out-ports {
2019 port {
2020 etm4_out: endpoint {
2021 remote-endpoint = <&apss_funnel_in4>;
2022 };
Tom Rini53633a82024-02-29 12:33:36 -05002023 };
2024 };
2025 };
2026
2027 etm6: etm@7d40000 {
2028 compatible = "arm,coresight-etm4x", "arm,primecell";
2029 reg = <0x07d40000 0x1000>;
2030 status = "disabled";
2031
2032 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2033 clock-names = "apb_pclk", "atclk";
2034
2035 cpu = <&CPU5>;
2036
Tom Rini93743d22024-04-01 09:08:13 -04002037 out-ports {
2038 port {
2039 etm5_out: endpoint {
2040 remote-endpoint = <&apss_funnel_in5>;
2041 };
Tom Rini53633a82024-02-29 12:33:36 -05002042 };
2043 };
2044 };
2045
2046 etm7: etm@7e40000 {
2047 compatible = "arm,coresight-etm4x", "arm,primecell";
2048 reg = <0x07e40000 0x1000>;
2049 status = "disabled";
2050
2051 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2052 clock-names = "apb_pclk", "atclk";
2053
2054 cpu = <&CPU6>;
2055
Tom Rini93743d22024-04-01 09:08:13 -04002056 out-ports {
2057 port {
2058 etm6_out: endpoint {
2059 remote-endpoint = <&apss_funnel_in6>;
2060 };
Tom Rini53633a82024-02-29 12:33:36 -05002061 };
2062 };
2063 };
2064
2065 etm8: etm@7f40000 {
2066 compatible = "arm,coresight-etm4x", "arm,primecell";
2067 reg = <0x07f40000 0x1000>;
2068 status = "disabled";
2069
2070 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
2071 clock-names = "apb_pclk", "atclk";
2072
2073 cpu = <&CPU7>;
2074
Tom Rini93743d22024-04-01 09:08:13 -04002075 out-ports {
2076 port {
2077 etm7_out: endpoint {
2078 remote-endpoint = <&apss_funnel_in7>;
2079 };
Tom Rini53633a82024-02-29 12:33:36 -05002080 };
2081 };
2082 };
2083
2084 sram@290000 {
2085 compatible = "qcom,rpm-stats";
2086 reg = <0x00290000 0x10000>;
2087 };
2088
2089 spmi_bus: spmi@800f000 {
2090 compatible = "qcom,spmi-pmic-arb";
2091 reg = <0x0800f000 0x1000>,
2092 <0x08400000 0x1000000>,
2093 <0x09400000 0x1000000>,
2094 <0x0a400000 0x220000>,
2095 <0x0800a000 0x3000>;
2096 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
2097 interrupt-names = "periph_irq";
2098 interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
2099 qcom,ee = <0>;
2100 qcom,channel = <0>;
2101 #address-cells = <2>;
2102 #size-cells = <0>;
2103 interrupt-controller;
2104 #interrupt-cells = <4>;
2105 };
2106
2107 usb3: usb@a8f8800 {
2108 compatible = "qcom,msm8998-dwc3", "qcom,dwc3";
2109 reg = <0x0a8f8800 0x400>;
2110 status = "disabled";
2111 #address-cells = <1>;
2112 #size-cells = <1>;
2113 ranges;
2114
2115 clocks = <&gcc GCC_CFG_NOC_USB3_AXI_CLK>,
2116 <&gcc GCC_USB30_MASTER_CLK>,
2117 <&gcc GCC_AGGRE1_USB3_AXI_CLK>,
2118 <&gcc GCC_USB30_SLEEP_CLK>,
2119 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
2120 clock-names = "cfg_noc",
2121 "core",
2122 "iface",
2123 "sleep",
2124 "mock_utmi";
2125
2126 assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
2127 <&gcc GCC_USB30_MASTER_CLK>;
2128 assigned-clock-rates = <19200000>, <120000000>;
2129
Tom Rini6bb92fc2024-05-20 09:54:58 -06002130 interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>,
2131 <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
Tom Rini53633a82024-02-29 12:33:36 -05002132 <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini6bb92fc2024-05-20 09:54:58 -06002133 interrupt-names = "pwr_event",
2134 "qusb2_phy",
2135 "ss_phy_irq";
Tom Rini53633a82024-02-29 12:33:36 -05002136
2137 power-domains = <&gcc USB_30_GDSC>;
2138
2139 resets = <&gcc GCC_USB_30_BCR>;
2140
2141 usb3_dwc3: usb@a800000 {
2142 compatible = "snps,dwc3";
2143 reg = <0x0a800000 0xcd00>;
2144 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
2145 snps,dis_u2_susphy_quirk;
2146 snps,dis_enblslpm_quirk;
Tom Rini6b642ac2024-10-01 12:20:28 -06002147 snps,parkmode-disable-ss-quirk;
Tom Rini93743d22024-04-01 09:08:13 -04002148 phys = <&qusb2phy>, <&usb3phy>;
Tom Rini53633a82024-02-29 12:33:36 -05002149 phy-names = "usb2-phy", "usb3-phy";
2150 snps,has-lpm-erratum;
2151 snps,hird-threshold = /bits/ 8 <0x10>;
2152 };
2153 };
2154
2155 usb3phy: phy@c010000 {
2156 compatible = "qcom,msm8998-qmp-usb3-phy";
Tom Rini93743d22024-04-01 09:08:13 -04002157 reg = <0x0c010000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002158
2159 clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
Tom Rini93743d22024-04-01 09:08:13 -04002160 <&gcc GCC_USB3_CLKREF_CLK>,
Tom Rini53633a82024-02-29 12:33:36 -05002161 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
Tom Rini93743d22024-04-01 09:08:13 -04002162 <&gcc GCC_USB3_PHY_PIPE_CLK>;
2163 clock-names = "aux",
2164 "ref",
2165 "cfg_ahb",
2166 "pipe";
2167 clock-output-names = "usb3_phy_pipe_clk_src";
2168 #clock-cells = <0>;
2169 #phy-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -05002170
2171 resets = <&gcc GCC_USB3_PHY_BCR>,
2172 <&gcc GCC_USB3PHY_PHY_BCR>;
Tom Rini93743d22024-04-01 09:08:13 -04002173 reset-names = "phy",
2174 "phy_phy";
Tom Rini53633a82024-02-29 12:33:36 -05002175
Tom Rini6bb92fc2024-05-20 09:54:58 -06002176 qcom,tcsr-reg = <&tcsr_regs_2 0xb244>;
2177
Tom Rini93743d22024-04-01 09:08:13 -04002178 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05002179 };
2180
2181 qusb2phy: phy@c012000 {
2182 compatible = "qcom,msm8998-qusb2-phy";
2183 reg = <0x0c012000 0x2a8>;
2184 status = "disabled";
2185 #phy-cells = <0>;
2186
2187 clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
2188 <&gcc GCC_RX1_USB2_CLKREF_CLK>;
2189 clock-names = "cfg_ahb", "ref";
2190
2191 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
2192
2193 nvmem-cells = <&qusb2_hstx_trim>;
2194 };
2195
2196 sdhc2: mmc@c0a4900 {
2197 compatible = "qcom,msm8998-sdhci", "qcom,sdhci-msm-v4";
2198 reg = <0x0c0a4900 0x314>, <0x0c0a4000 0x800>;
2199 reg-names = "hc", "core";
2200
2201 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
2202 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
2203 interrupt-names = "hc_irq", "pwr_irq";
2204
2205 clock-names = "iface", "core", "xo";
2206 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
2207 <&gcc GCC_SDCC2_APPS_CLK>,
2208 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2209 bus-width = <4>;
2210 status = "disabled";
2211 };
2212
2213 blsp1_dma: dma-controller@c144000 {
2214 compatible = "qcom,bam-v1.7.0";
2215 reg = <0x0c144000 0x25000>;
2216 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
2217 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
2218 clock-names = "bam_clk";
2219 #dma-cells = <1>;
2220 qcom,ee = <0>;
2221 qcom,controlled-remotely;
2222 num-channels = <18>;
2223 qcom,num-ees = <4>;
2224 };
2225
2226 blsp1_uart3: serial@c171000 {
2227 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
2228 reg = <0x0c171000 0x1000>;
2229 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
2230 clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
2231 <&gcc GCC_BLSP1_AHB_CLK>;
2232 clock-names = "core", "iface";
2233 dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
2234 dma-names = "tx", "rx";
2235 pinctrl-names = "default";
2236 pinctrl-0 = <&blsp1_uart3_on>;
2237 status = "disabled";
2238 };
2239
2240 blsp1_i2c1: i2c@c175000 {
2241 compatible = "qcom,i2c-qup-v2.2.1";
2242 reg = <0x0c175000 0x600>;
2243 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2244
2245 clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
2246 <&gcc GCC_BLSP1_AHB_CLK>;
2247 clock-names = "core", "iface";
2248 dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
2249 dma-names = "tx", "rx";
2250 pinctrl-names = "default", "sleep";
2251 pinctrl-0 = <&blsp1_i2c1_default>;
2252 pinctrl-1 = <&blsp1_i2c1_sleep>;
2253 clock-frequency = <400000>;
2254
2255 status = "disabled";
2256 #address-cells = <1>;
2257 #size-cells = <0>;
2258 };
2259
2260 blsp1_i2c2: i2c@c176000 {
2261 compatible = "qcom,i2c-qup-v2.2.1";
2262 reg = <0x0c176000 0x600>;
2263 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2264
2265 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
2266 <&gcc GCC_BLSP1_AHB_CLK>;
2267 clock-names = "core", "iface";
2268 dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
2269 dma-names = "tx", "rx";
2270 pinctrl-names = "default", "sleep";
2271 pinctrl-0 = <&blsp1_i2c2_default>;
2272 pinctrl-1 = <&blsp1_i2c2_sleep>;
2273 clock-frequency = <400000>;
2274
2275 status = "disabled";
2276 #address-cells = <1>;
2277 #size-cells = <0>;
2278 };
2279
2280 blsp1_i2c3: i2c@c177000 {
2281 compatible = "qcom,i2c-qup-v2.2.1";
2282 reg = <0x0c177000 0x600>;
2283 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2284
2285 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
2286 <&gcc GCC_BLSP1_AHB_CLK>;
2287 clock-names = "core", "iface";
2288 dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
2289 dma-names = "tx", "rx";
2290 pinctrl-names = "default", "sleep";
2291 pinctrl-0 = <&blsp1_i2c3_default>;
2292 pinctrl-1 = <&blsp1_i2c3_sleep>;
2293 clock-frequency = <400000>;
2294
2295 status = "disabled";
2296 #address-cells = <1>;
2297 #size-cells = <0>;
2298 };
2299
2300 blsp1_i2c4: i2c@c178000 {
2301 compatible = "qcom,i2c-qup-v2.2.1";
2302 reg = <0x0c178000 0x600>;
2303 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2304
2305 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
2306 <&gcc GCC_BLSP1_AHB_CLK>;
2307 clock-names = "core", "iface";
2308 dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
2309 dma-names = "tx", "rx";
2310 pinctrl-names = "default", "sleep";
2311 pinctrl-0 = <&blsp1_i2c4_default>;
2312 pinctrl-1 = <&blsp1_i2c4_sleep>;
2313 clock-frequency = <400000>;
2314
2315 status = "disabled";
2316 #address-cells = <1>;
2317 #size-cells = <0>;
2318 };
2319
2320 blsp1_i2c5: i2c@c179000 {
2321 compatible = "qcom,i2c-qup-v2.2.1";
2322 reg = <0x0c179000 0x600>;
2323 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2324
2325 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
2326 <&gcc GCC_BLSP1_AHB_CLK>;
2327 clock-names = "core", "iface";
2328 dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
2329 dma-names = "tx", "rx";
2330 pinctrl-names = "default", "sleep";
2331 pinctrl-0 = <&blsp1_i2c5_default>;
2332 pinctrl-1 = <&blsp1_i2c5_sleep>;
2333 clock-frequency = <400000>;
2334
2335 status = "disabled";
2336 #address-cells = <1>;
2337 #size-cells = <0>;
2338 };
2339
2340 blsp1_i2c6: i2c@c17a000 {
2341 compatible = "qcom,i2c-qup-v2.2.1";
2342 reg = <0x0c17a000 0x600>;
2343 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2344
2345 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
2346 <&gcc GCC_BLSP1_AHB_CLK>;
2347 clock-names = "core", "iface";
2348 dmas = <&blsp1_dma 16>, <&blsp1_dma 17>;
2349 dma-names = "tx", "rx";
2350 pinctrl-names = "default", "sleep";
2351 pinctrl-0 = <&blsp1_i2c6_default>;
2352 pinctrl-1 = <&blsp1_i2c6_sleep>;
2353 clock-frequency = <400000>;
2354
2355 status = "disabled";
2356 #address-cells = <1>;
2357 #size-cells = <0>;
2358 };
2359
2360 blsp1_spi1: spi@c175000 {
2361 compatible = "qcom,spi-qup-v2.2.1";
2362 reg = <0x0c175000 0x600>;
2363 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2364
2365 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
2366 <&gcc GCC_BLSP1_AHB_CLK>;
2367 clock-names = "core", "iface";
2368 dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
2369 dma-names = "tx", "rx";
2370 pinctrl-names = "default";
2371 pinctrl-0 = <&blsp1_spi1_default>;
2372
2373 status = "disabled";
2374 #address-cells = <1>;
2375 #size-cells = <0>;
2376 };
2377
2378 blsp1_spi2: spi@c176000 {
2379 compatible = "qcom,spi-qup-v2.2.1";
2380 reg = <0x0c176000 0x600>;
2381 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2382
2383 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
2384 <&gcc GCC_BLSP1_AHB_CLK>;
2385 clock-names = "core", "iface";
2386 dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
2387 dma-names = "tx", "rx";
2388 pinctrl-names = "default";
2389 pinctrl-0 = <&blsp1_spi2_default>;
2390
2391 status = "disabled";
2392 #address-cells = <1>;
2393 #size-cells = <0>;
2394 };
2395
2396 blsp1_spi3: spi@c177000 {
2397 compatible = "qcom,spi-qup-v2.2.1";
2398 reg = <0x0c177000 0x600>;
2399 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2400
2401 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
2402 <&gcc GCC_BLSP1_AHB_CLK>;
2403 clock-names = "core", "iface";
2404 dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
2405 dma-names = "tx", "rx";
2406 pinctrl-names = "default";
2407 pinctrl-0 = <&blsp1_spi3_default>;
2408
2409 status = "disabled";
2410 #address-cells = <1>;
2411 #size-cells = <0>;
2412 };
2413
2414 blsp1_spi4: spi@c178000 {
2415 compatible = "qcom,spi-qup-v2.2.1";
2416 reg = <0x0c178000 0x600>;
2417 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2418
2419 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
2420 <&gcc GCC_BLSP1_AHB_CLK>;
2421 clock-names = "core", "iface";
2422 dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
2423 dma-names = "tx", "rx";
2424 pinctrl-names = "default";
2425 pinctrl-0 = <&blsp1_spi4_default>;
2426
2427 status = "disabled";
2428 #address-cells = <1>;
2429 #size-cells = <0>;
2430 };
2431
2432 blsp1_spi5: spi@c179000 {
2433 compatible = "qcom,spi-qup-v2.2.1";
2434 reg = <0x0c179000 0x600>;
2435 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2436
2437 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
2438 <&gcc GCC_BLSP1_AHB_CLK>;
2439 clock-names = "core", "iface";
2440 dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
2441 dma-names = "tx", "rx";
2442 pinctrl-names = "default";
2443 pinctrl-0 = <&blsp1_spi5_default>;
2444
2445 status = "disabled";
2446 #address-cells = <1>;
2447 #size-cells = <0>;
2448 };
2449
2450 blsp1_spi6: spi@c17a000 {
2451 compatible = "qcom,spi-qup-v2.2.1";
2452 reg = <0x0c17a000 0x600>;
2453 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2454
2455 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
2456 <&gcc GCC_BLSP1_AHB_CLK>;
2457 clock-names = "core", "iface";
2458 dmas = <&blsp1_dma 16>, <&blsp1_dma 17>;
2459 dma-names = "tx", "rx";
2460 pinctrl-names = "default";
2461 pinctrl-0 = <&blsp1_spi6_default>;
2462
2463 status = "disabled";
2464 #address-cells = <1>;
2465 #size-cells = <0>;
2466 };
2467
2468 blsp2_dma: dma-controller@c184000 {
2469 compatible = "qcom,bam-v1.7.0";
2470 reg = <0x0c184000 0x25000>;
2471 interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
2472 clocks = <&gcc GCC_BLSP2_AHB_CLK>;
2473 clock-names = "bam_clk";
2474 #dma-cells = <1>;
2475 qcom,ee = <0>;
2476 qcom,controlled-remotely;
2477 num-channels = <18>;
2478 qcom,num-ees = <4>;
2479 };
2480
2481 blsp2_uart1: serial@c1b0000 {
2482 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
2483 reg = <0x0c1b0000 0x1000>;
2484 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
2485 clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
2486 <&gcc GCC_BLSP2_AHB_CLK>;
2487 clock-names = "core", "iface";
2488 status = "disabled";
2489 };
2490
2491 blsp2_i2c1: i2c@c1b5000 {
2492 compatible = "qcom,i2c-qup-v2.2.1";
2493 reg = <0x0c1b5000 0x600>;
2494 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
2495
2496 clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
2497 <&gcc GCC_BLSP2_AHB_CLK>;
2498 clock-names = "core", "iface";
2499 dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
2500 dma-names = "tx", "rx";
2501 pinctrl-names = "default", "sleep";
2502 pinctrl-0 = <&blsp2_i2c1_default>;
2503 pinctrl-1 = <&blsp2_i2c1_sleep>;
2504 clock-frequency = <400000>;
2505
2506 status = "disabled";
2507 #address-cells = <1>;
2508 #size-cells = <0>;
2509 };
2510
2511 blsp2_i2c2: i2c@c1b6000 {
2512 compatible = "qcom,i2c-qup-v2.2.1";
2513 reg = <0x0c1b6000 0x600>;
2514 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
2515
2516 clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
2517 <&gcc GCC_BLSP2_AHB_CLK>;
2518 clock-names = "core", "iface";
2519 dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
2520 dma-names = "tx", "rx";
2521 pinctrl-names = "default", "sleep";
2522 pinctrl-0 = <&blsp2_i2c2_default>;
2523 pinctrl-1 = <&blsp2_i2c2_sleep>;
2524 clock-frequency = <400000>;
2525
2526 status = "disabled";
2527 #address-cells = <1>;
2528 #size-cells = <0>;
2529 };
2530
2531 blsp2_i2c3: i2c@c1b7000 {
2532 compatible = "qcom,i2c-qup-v2.2.1";
2533 reg = <0x0c1b7000 0x600>;
2534 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
2535
2536 clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
2537 <&gcc GCC_BLSP2_AHB_CLK>;
2538 clock-names = "core", "iface";
2539 dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
2540 dma-names = "tx", "rx";
2541 pinctrl-names = "default", "sleep";
2542 pinctrl-0 = <&blsp2_i2c3_default>;
2543 pinctrl-1 = <&blsp2_i2c3_sleep>;
2544 clock-frequency = <400000>;
2545
2546 status = "disabled";
2547 #address-cells = <1>;
2548 #size-cells = <0>;
2549 };
2550
2551 blsp2_i2c4: i2c@c1b8000 {
2552 compatible = "qcom,i2c-qup-v2.2.1";
2553 reg = <0x0c1b8000 0x600>;
2554 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
2555
2556 clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
2557 <&gcc GCC_BLSP2_AHB_CLK>;
2558 clock-names = "core", "iface";
2559 dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
2560 dma-names = "tx", "rx";
2561 pinctrl-names = "default", "sleep";
2562 pinctrl-0 = <&blsp2_i2c4_default>;
2563 pinctrl-1 = <&blsp2_i2c4_sleep>;
2564 clock-frequency = <400000>;
2565
2566 status = "disabled";
2567 #address-cells = <1>;
2568 #size-cells = <0>;
2569 };
2570
2571 blsp2_i2c5: i2c@c1b9000 {
2572 compatible = "qcom,i2c-qup-v2.2.1";
2573 reg = <0x0c1b9000 0x600>;
2574 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
2575
2576 clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
2577 <&gcc GCC_BLSP2_AHB_CLK>;
2578 clock-names = "core", "iface";
2579 dmas = <&blsp2_dma 14>, <&blsp2_dma 15>;
2580 dma-names = "tx", "rx";
2581 pinctrl-names = "default", "sleep";
2582 pinctrl-0 = <&blsp2_i2c5_default>;
2583 pinctrl-1 = <&blsp2_i2c5_sleep>;
2584 clock-frequency = <400000>;
2585
2586 status = "disabled";
2587 #address-cells = <1>;
2588 #size-cells = <0>;
2589 };
2590
2591 blsp2_i2c6: i2c@c1ba000 {
2592 compatible = "qcom,i2c-qup-v2.2.1";
2593 reg = <0x0c1ba000 0x600>;
2594 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
2595
2596 clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>,
2597 <&gcc GCC_BLSP2_AHB_CLK>;
2598 clock-names = "core", "iface";
2599 dmas = <&blsp2_dma 16>, <&blsp2_dma 17>;
2600 dma-names = "tx", "rx";
2601 pinctrl-names = "default", "sleep";
2602 pinctrl-0 = <&blsp2_i2c6_default>;
2603 pinctrl-1 = <&blsp2_i2c6_sleep>;
2604 clock-frequency = <400000>;
2605
2606 status = "disabled";
2607 #address-cells = <1>;
2608 #size-cells = <0>;
2609 };
2610
2611 blsp2_spi1: spi@c1b5000 {
2612 compatible = "qcom,spi-qup-v2.2.1";
2613 reg = <0x0c1b5000 0x600>;
2614 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
2615
2616 clocks = <&gcc GCC_BLSP2_QUP1_SPI_APPS_CLK>,
2617 <&gcc GCC_BLSP2_AHB_CLK>;
2618 clock-names = "core", "iface";
2619 dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
2620 dma-names = "tx", "rx";
2621 pinctrl-names = "default";
2622 pinctrl-0 = <&blsp2_spi1_default>;
2623
2624 status = "disabled";
2625 #address-cells = <1>;
2626 #size-cells = <0>;
2627 };
2628
2629 blsp2_spi2: spi@c1b6000 {
2630 compatible = "qcom,spi-qup-v2.2.1";
2631 reg = <0x0c1b6000 0x600>;
2632 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
2633
2634 clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>,
2635 <&gcc GCC_BLSP2_AHB_CLK>;
2636 clock-names = "core", "iface";
2637 dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
2638 dma-names = "tx", "rx";
2639 pinctrl-names = "default";
2640 pinctrl-0 = <&blsp2_spi2_default>;
2641
2642 status = "disabled";
2643 #address-cells = <1>;
2644 #size-cells = <0>;
2645 };
2646
2647 blsp2_spi3: spi@c1b7000 {
2648 compatible = "qcom,spi-qup-v2.2.1";
2649 reg = <0x0c1b7000 0x600>;
2650 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
2651
2652 clocks = <&gcc GCC_BLSP2_QUP3_SPI_APPS_CLK>,
2653 <&gcc GCC_BLSP2_AHB_CLK>;
2654 clock-names = "core", "iface";
2655 dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
2656 dma-names = "tx", "rx";
2657 pinctrl-names = "default";
2658 pinctrl-0 = <&blsp2_spi3_default>;
2659
2660 status = "disabled";
2661 #address-cells = <1>;
2662 #size-cells = <0>;
2663 };
2664
2665 blsp2_spi4: spi@c1b8000 {
2666 compatible = "qcom,spi-qup-v2.2.1";
2667 reg = <0x0c1b8000 0x600>;
2668 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
2669
2670 clocks = <&gcc GCC_BLSP2_QUP4_SPI_APPS_CLK>,
2671 <&gcc GCC_BLSP2_AHB_CLK>;
2672 clock-names = "core", "iface";
2673 dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
2674 dma-names = "tx", "rx";
2675 pinctrl-names = "default";
2676 pinctrl-0 = <&blsp2_spi4_default>;
2677
2678 status = "disabled";
2679 #address-cells = <1>;
2680 #size-cells = <0>;
2681 };
2682
2683 blsp2_spi5: spi@c1b9000 {
2684 compatible = "qcom,spi-qup-v2.2.1";
2685 reg = <0x0c1b9000 0x600>;
2686 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
2687
2688 clocks = <&gcc GCC_BLSP2_QUP5_SPI_APPS_CLK>,
2689 <&gcc GCC_BLSP2_AHB_CLK>;
2690 clock-names = "core", "iface";
2691 dmas = <&blsp2_dma 14>, <&blsp2_dma 15>;
2692 dma-names = "tx", "rx";
2693 pinctrl-names = "default";
2694 pinctrl-0 = <&blsp2_spi5_default>;
2695
2696 status = "disabled";
2697 #address-cells = <1>;
2698 #size-cells = <0>;
2699 };
2700
2701 blsp2_spi6: spi@c1ba000 {
2702 compatible = "qcom,spi-qup-v2.2.1";
2703 reg = <0x0c1ba000 0x600>;
2704 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
2705
2706 clocks = <&gcc GCC_BLSP2_QUP6_SPI_APPS_CLK>,
2707 <&gcc GCC_BLSP2_AHB_CLK>;
2708 clock-names = "core", "iface";
2709 dmas = <&blsp2_dma 16>, <&blsp2_dma 17>;
2710 dma-names = "tx", "rx";
2711 pinctrl-names = "default";
2712 pinctrl-0 = <&blsp2_spi6_default>;
2713
2714 status = "disabled";
2715 #address-cells = <1>;
2716 #size-cells = <0>;
2717 };
2718
2719 mmcc: clock-controller@c8c0000 {
2720 compatible = "qcom,mmcc-msm8998";
2721 #clock-cells = <1>;
2722 #reset-cells = <1>;
2723 #power-domain-cells = <1>;
2724 reg = <0xc8c0000 0x40000>;
2725
2726 clock-names = "xo",
2727 "gpll0",
2728 "dsi0dsi",
2729 "dsi0byte",
2730 "dsi1dsi",
2731 "dsi1byte",
2732 "hdmipll",
2733 "dplink",
2734 "dpvco",
2735 "gpll0_div";
2736 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
2737 <&gcc GCC_MMSS_GPLL0_CLK>,
2738 <&mdss_dsi0_phy 1>,
2739 <&mdss_dsi0_phy 0>,
2740 <&mdss_dsi1_phy 1>,
2741 <&mdss_dsi1_phy 0>,
2742 <0>,
2743 <0>,
2744 <0>,
2745 <&gcc GCC_MMSS_GPLL0_DIV_CLK>;
2746 };
2747
2748 mdss: display-subsystem@c900000 {
2749 compatible = "qcom,msm8998-mdss";
2750 reg = <0x0c900000 0x1000>;
2751 reg-names = "mdss";
2752
2753 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
2754 interrupt-controller;
2755 #interrupt-cells = <1>;
2756
2757 clocks = <&mmcc MDSS_AHB_CLK>,
2758 <&mmcc MDSS_AXI_CLK>,
2759 <&mmcc MDSS_MDP_CLK>;
2760 clock-names = "iface",
2761 "bus",
2762 "core";
2763
2764 power-domains = <&mmcc MDSS_GDSC>;
2765 iommus = <&mmss_smmu 0>;
2766
2767 #address-cells = <1>;
2768 #size-cells = <1>;
2769 ranges;
2770
2771 status = "disabled";
2772
2773 mdss_mdp: display-controller@c901000 {
2774 compatible = "qcom,msm8998-dpu";
2775 reg = <0x0c901000 0x8f000>,
2776 <0x0c9a8e00 0xf0>,
2777 <0x0c9b0000 0x2008>,
2778 <0x0c9b8000 0x1040>;
2779 reg-names = "mdp",
2780 "regdma",
2781 "vbif",
2782 "vbif_nrt";
2783
2784 interrupt-parent = <&mdss>;
2785 interrupts = <0>;
2786
2787 clocks = <&mmcc MDSS_AHB_CLK>,
2788 <&mmcc MDSS_AXI_CLK>,
2789 <&mmcc MNOC_AHB_CLK>,
2790 <&mmcc MDSS_MDP_CLK>,
2791 <&mmcc MDSS_VSYNC_CLK>;
2792 clock-names = "iface",
2793 "bus",
2794 "mnoc",
2795 "core",
2796 "vsync";
2797
2798 assigned-clocks = <&mmcc MDSS_VSYNC_CLK>;
2799 assigned-clock-rates = <19200000>;
2800
2801 operating-points-v2 = <&mdp_opp_table>;
2802 power-domains = <&rpmpd MSM8998_VDDMX>;
2803
2804 mdp_opp_table: opp-table {
2805 compatible = "operating-points-v2";
2806
2807 opp-171430000 {
2808 opp-hz = /bits/ 64 <171430000>;
2809 required-opps = <&rpmpd_opp_low_svs>;
2810 };
2811
2812 opp-275000000 {
2813 opp-hz = /bits/ 64 <275000000>;
2814 required-opps = <&rpmpd_opp_svs>;
2815 };
2816
2817 opp-330000000 {
2818 opp-hz = /bits/ 64 <330000000>;
2819 required-opps = <&rpmpd_opp_nom>;
2820 };
2821
2822 opp-412500000 {
2823 opp-hz = /bits/ 64 <412500000>;
2824 required-opps = <&rpmpd_opp_turbo>;
2825 };
2826 };
2827
2828 ports {
2829 #address-cells = <1>;
2830 #size-cells = <0>;
2831
2832 port@0 {
2833 reg = <0>;
2834
2835 dpu_intf1_out: endpoint {
2836 remote-endpoint = <&mdss_dsi0_in>;
2837 };
2838 };
2839
2840 port@1 {
2841 reg = <1>;
2842
2843 dpu_intf2_out: endpoint {
2844 remote-endpoint = <&mdss_dsi1_in>;
2845 };
2846 };
2847 };
2848 };
2849
2850 mdss_dsi0: dsi@c994000 {
2851 compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2852 reg = <0x0c994000 0x400>;
2853 reg-names = "dsi_ctrl";
2854
2855 interrupt-parent = <&mdss>;
2856 interrupts = <4>;
2857
2858 clocks = <&mmcc MDSS_BYTE0_CLK>,
2859 <&mmcc MDSS_BYTE0_INTF_CLK>,
2860 <&mmcc MDSS_PCLK0_CLK>,
2861 <&mmcc MDSS_ESC0_CLK>,
2862 <&mmcc MDSS_AHB_CLK>,
2863 <&mmcc MDSS_AXI_CLK>;
2864 clock-names = "byte",
2865 "byte_intf",
2866 "pixel",
2867 "core",
2868 "iface",
2869 "bus";
2870 assigned-clocks = <&mmcc BYTE0_CLK_SRC>,
2871 <&mmcc PCLK0_CLK_SRC>;
2872 assigned-clock-parents = <&mdss_dsi0_phy 0>,
2873 <&mdss_dsi0_phy 1>;
2874
2875 operating-points-v2 = <&dsi_opp_table>;
2876 power-domains = <&rpmpd MSM8998_VDDCX>;
2877
2878 phys = <&mdss_dsi0_phy>;
2879 phy-names = "dsi";
2880
2881 #address-cells = <1>;
2882 #size-cells = <0>;
2883
2884 status = "disabled";
2885
2886 ports {
2887 #address-cells = <1>;
2888 #size-cells = <0>;
2889
2890 port@0 {
2891 reg = <0>;
2892
2893 mdss_dsi0_in: endpoint {
2894 remote-endpoint = <&dpu_intf1_out>;
2895 };
2896 };
2897
2898 port@1 {
2899 reg = <1>;
2900
2901 mdss_dsi0_out: endpoint {
2902 };
2903 };
2904 };
2905 };
2906
2907 mdss_dsi0_phy: phy@c994400 {
2908 compatible = "qcom,dsi-phy-10nm-8998";
2909 reg = <0x0c994400 0x200>,
2910 <0x0c994600 0x280>,
2911 <0x0c994a00 0x1e0>;
2912 reg-names = "dsi_phy",
2913 "dsi_phy_lane",
2914 "dsi_pll";
2915
2916 clocks = <&mmcc MDSS_AHB_CLK>,
2917 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2918 clock-names = "iface", "ref";
2919
2920 #clock-cells = <1>;
2921 #phy-cells = <0>;
2922
2923 status = "disabled";
2924 };
2925
2926 mdss_dsi1: dsi@c996000 {
2927 compatible = "qcom,msm8998-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2928 reg = <0x0c996000 0x400>;
2929 reg-names = "dsi_ctrl";
2930
2931 interrupt-parent = <&mdss>;
2932 interrupts = <5>;
2933
2934 clocks = <&mmcc MDSS_BYTE1_CLK>,
2935 <&mmcc MDSS_BYTE1_INTF_CLK>,
2936 <&mmcc MDSS_PCLK1_CLK>,
2937 <&mmcc MDSS_ESC1_CLK>,
2938 <&mmcc MDSS_AHB_CLK>,
2939 <&mmcc MDSS_AXI_CLK>;
2940 clock-names = "byte",
2941 "byte_intf",
2942 "pixel",
2943 "core",
2944 "iface",
2945 "bus";
2946 assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
2947 <&mmcc PCLK1_CLK_SRC>;
2948 assigned-clock-parents = <&mdss_dsi1_phy 0>,
2949 <&mdss_dsi1_phy 1>;
2950
2951 operating-points-v2 = <&dsi_opp_table>;
2952 power-domains = <&rpmpd MSM8998_VDDCX>;
2953
2954 phys = <&mdss_dsi1_phy>;
2955 phy-names = "dsi";
2956
2957 #address-cells = <1>;
2958 #size-cells = <0>;
2959
2960 status = "disabled";
2961
2962 ports {
2963 #address-cells = <1>;
2964 #size-cells = <0>;
2965
2966 port@0 {
2967 reg = <0>;
2968
2969 mdss_dsi1_in: endpoint {
2970 remote-endpoint = <&dpu_intf2_out>;
2971 };
2972 };
2973
2974 port@1 {
2975 reg = <1>;
2976
2977 mdss_dsi1_out: endpoint {
2978 };
2979 };
2980 };
2981 };
2982
2983 mdss_dsi1_phy: phy@c996400 {
2984 compatible = "qcom,dsi-phy-10nm-8998";
2985 reg = <0x0c996400 0x200>,
2986 <0x0c996600 0x280>,
2987 <0x0c996a00 0x10e>;
2988 reg-names = "dsi_phy",
2989 "dsi_phy_lane",
2990 "dsi_pll";
2991
2992 clocks = <&mmcc MDSS_AHB_CLK>,
2993 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2994 clock-names = "iface",
2995 "ref";
2996
2997 #clock-cells = <1>;
2998 #phy-cells = <0>;
2999
3000 status = "disabled";
3001 };
3002 };
3003
Tom Rini6b642ac2024-10-01 12:20:28 -06003004 venus: video-codec@cc00000 {
3005 compatible = "qcom,msm8998-venus";
3006 reg = <0x0cc00000 0xff000>;
3007 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
3008 power-domains = <&mmcc VIDEO_TOP_GDSC>;
3009 clocks = <&mmcc VIDEO_CORE_CLK>,
3010 <&mmcc VIDEO_AHB_CLK>,
3011 <&mmcc VIDEO_AXI_CLK>,
3012 <&mmcc VIDEO_MAXI_CLK>;
3013 clock-names = "core", "iface", "bus", "mbus";
3014 iommus = <&mmss_smmu 0x400>,
3015 <&mmss_smmu 0x401>,
3016 <&mmss_smmu 0x40a>,
3017 <&mmss_smmu 0x407>,
3018 <&mmss_smmu 0x40e>,
3019 <&mmss_smmu 0x40f>,
3020 <&mmss_smmu 0x408>,
3021 <&mmss_smmu 0x409>,
3022 <&mmss_smmu 0x40b>,
3023 <&mmss_smmu 0x40c>,
3024 <&mmss_smmu 0x40d>,
3025 <&mmss_smmu 0x410>,
3026 <&mmss_smmu 0x421>,
3027 <&mmss_smmu 0x428>,
3028 <&mmss_smmu 0x429>,
3029 <&mmss_smmu 0x42b>,
3030 <&mmss_smmu 0x42c>,
3031 <&mmss_smmu 0x42d>,
3032 <&mmss_smmu 0x411>,
3033 <&mmss_smmu 0x431>;
3034 memory-region = <&venus_mem>;
3035 status = "disabled";
3036
3037 video-decoder {
3038 compatible = "venus-decoder";
3039 clocks = <&mmcc VIDEO_SUBCORE0_CLK>;
3040 clock-names = "core";
3041 power-domains = <&mmcc VIDEO_SUBCORE0_GDSC>;
3042 };
3043
3044 video-encoder {
3045 compatible = "venus-encoder";
3046 clocks = <&mmcc VIDEO_SUBCORE1_CLK>;
3047 clock-names = "core";
3048 power-domains = <&mmcc VIDEO_SUBCORE1_GDSC>;
3049 };
3050 };
3051
Tom Rini53633a82024-02-29 12:33:36 -05003052 mmss_smmu: iommu@cd00000 {
3053 compatible = "qcom,msm8998-smmu-v2", "qcom,smmu-v2";
3054 reg = <0x0cd00000 0x40000>;
3055 #iommu-cells = <1>;
3056
3057 clocks = <&mmcc MNOC_AHB_CLK>,
3058 <&mmcc BIMC_SMMU_AHB_CLK>,
3059 <&mmcc BIMC_SMMU_AXI_CLK>;
3060 clock-names = "iface-mm",
3061 "iface-smmu",
3062 "bus-smmu";
3063
3064 #global-interrupts = <0>;
3065 interrupts =
3066 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
3067 <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
3068 <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
3069 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
3070 <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
3071 <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
3072 <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
3073 <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
3074 <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
3075 <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
3076 <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
3077 <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
3078 <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
3079 <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
3080 <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
3081 <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
3082 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
3083 <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
3084 <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
3085 <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
3086
3087 power-domains = <&mmcc BIMC_SMMU_GDSC>;
3088 };
3089
3090 remoteproc_adsp: remoteproc@17300000 {
3091 compatible = "qcom,msm8998-adsp-pas";
3092 reg = <0x17300000 0x4040>;
3093
3094 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
3095 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
3096 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
3097 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
3098 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
3099 interrupt-names = "wdog", "fatal", "ready",
3100 "handover", "stop-ack";
3101
3102 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
3103 clock-names = "xo";
3104
3105 memory-region = <&adsp_mem>;
3106
3107 qcom,smem-states = <&adsp_smp2p_out 0>;
3108 qcom,smem-state-names = "stop";
3109
3110 power-domains = <&rpmpd MSM8998_VDDCX>;
3111 power-domain-names = "cx";
3112
3113 status = "disabled";
3114
3115 glink-edge {
3116 interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
3117 label = "lpass";
3118 qcom,remote-pid = <2>;
3119 mboxes = <&apcs_glb 9>;
3120 };
3121 };
3122
3123 apcs_glb: mailbox@17911000 {
3124 compatible = "qcom,msm8998-apcs-hmss-global",
3125 "qcom,msm8994-apcs-kpss-global";
3126 reg = <0x17911000 0x1000>;
3127
3128 #mbox-cells = <1>;
3129 };
3130
3131 timer@17920000 {
3132 #address-cells = <1>;
3133 #size-cells = <1>;
3134 ranges;
3135 compatible = "arm,armv7-timer-mem";
3136 reg = <0x17920000 0x1000>;
3137
3138 frame@17921000 {
3139 frame-number = <0>;
3140 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
3141 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
3142 reg = <0x17921000 0x1000>,
3143 <0x17922000 0x1000>;
3144 };
3145
3146 frame@17923000 {
3147 frame-number = <1>;
3148 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
3149 reg = <0x17923000 0x1000>;
3150 status = "disabled";
3151 };
3152
3153 frame@17924000 {
3154 frame-number = <2>;
3155 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
3156 reg = <0x17924000 0x1000>;
3157 status = "disabled";
3158 };
3159
3160 frame@17925000 {
3161 frame-number = <3>;
3162 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
3163 reg = <0x17925000 0x1000>;
3164 status = "disabled";
3165 };
3166
3167 frame@17926000 {
3168 frame-number = <4>;
3169 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
3170 reg = <0x17926000 0x1000>;
3171 status = "disabled";
3172 };
3173
3174 frame@17927000 {
3175 frame-number = <5>;
3176 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
3177 reg = <0x17927000 0x1000>;
3178 status = "disabled";
3179 };
3180
3181 frame@17928000 {
3182 frame-number = <6>;
3183 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
3184 reg = <0x17928000 0x1000>;
3185 status = "disabled";
3186 };
3187 };
3188
3189 intc: interrupt-controller@17a00000 {
3190 compatible = "arm,gic-v3";
3191 reg = <0x17a00000 0x10000>, /* GICD */
3192 <0x17b00000 0x100000>; /* GICR * 8 */
3193 #interrupt-cells = <3>;
3194 #address-cells = <1>;
3195 #size-cells = <1>;
3196 ranges;
3197 interrupt-controller;
3198 #redistributor-regions = <1>;
3199 redistributor-stride = <0x0 0x20000>;
3200 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
3201 };
3202
3203 wifi: wifi@18800000 {
3204 compatible = "qcom,wcn3990-wifi";
3205 status = "disabled";
3206 reg = <0x18800000 0x800000>;
3207 reg-names = "membase";
3208 memory-region = <&wlan_msa_mem>;
3209 clocks = <&rpmcc RPM_SMD_RF_CLK2_PIN>;
3210 clock-names = "cxo_ref_clk_pin";
3211 interrupts =
3212 <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
3213 <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
3214 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
3215 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
3216 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
3217 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
3218 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
3219 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
3220 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
3221 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
3222 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
3223 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
3224 iommus = <&anoc2_smmu 0x1900>,
3225 <&anoc2_smmu 0x1901>;
3226 qcom,snoc-host-cap-8bit-quirk;
Tom Rini6b642ac2024-10-01 12:20:28 -06003227 qcom,no-msa-ready-indicator;
Tom Rini53633a82024-02-29 12:33:36 -05003228 };
3229 };
3230};