blob: e374733f3b856eacdc22efd2f698e37d041f5390 [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) 2021, Iskren Chernev <iskren.chernev@gmail.com>
4 */
5
6#include <dt-bindings/clock/qcom,gcc-sm6115.h>
7#include <dt-bindings/clock/qcom,sm6115-dispcc.h>
8#include <dt-bindings/clock/qcom,sm6115-gpucc.h>
9#include <dt-bindings/clock/qcom,rpmcc.h>
10#include <dt-bindings/dma/qcom-gpi.h>
11#include <dt-bindings/firmware/qcom,scm.h>
12#include <dt-bindings/gpio/gpio.h>
Tom Rini93743d22024-04-01 09:08:13 -040013#include <dt-bindings/interconnect/qcom,rpm-icc.h>
14#include <dt-bindings/interconnect/qcom,sm6115.h>
Tom Rini53633a82024-02-29 12:33:36 -050015#include <dt-bindings/interrupt-controller/arm-gic.h>
16#include <dt-bindings/power/qcom-rpmpd.h>
Tom Rini6bb92fc2024-05-20 09:54:58 -060017#include <dt-bindings/thermal/thermal.h>
Tom Rini53633a82024-02-29 12:33:36 -050018
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-cells = <0>;
36 };
37 };
38
39 cpus {
40 #address-cells = <2>;
41 #size-cells = <0>;
42
43 CPU0: cpu@0 {
44 device_type = "cpu";
45 compatible = "qcom,kryo260";
46 reg = <0x0 0x0>;
47 clocks = <&cpufreq_hw 0>;
48 capacity-dmips-mhz = <1024>;
49 dynamic-power-coefficient = <100>;
50 enable-method = "psci";
51 next-level-cache = <&L2_0>;
52 qcom,freq-domain = <&cpufreq_hw 0>;
53 power-domains = <&CPU_PD0>;
54 power-domain-names = "psci";
55 L2_0: l2-cache {
56 compatible = "cache";
57 cache-level = <2>;
58 cache-unified;
59 };
60 };
61
62 CPU1: cpu@1 {
63 device_type = "cpu";
64 compatible = "qcom,kryo260";
65 reg = <0x0 0x1>;
66 clocks = <&cpufreq_hw 0>;
67 capacity-dmips-mhz = <1024>;
68 dynamic-power-coefficient = <100>;
69 enable-method = "psci";
70 next-level-cache = <&L2_0>;
71 qcom,freq-domain = <&cpufreq_hw 0>;
72 power-domains = <&CPU_PD1>;
73 power-domain-names = "psci";
74 };
75
76 CPU2: cpu@2 {
77 device_type = "cpu";
78 compatible = "qcom,kryo260";
79 reg = <0x0 0x2>;
80 clocks = <&cpufreq_hw 0>;
81 capacity-dmips-mhz = <1024>;
82 dynamic-power-coefficient = <100>;
83 enable-method = "psci";
84 next-level-cache = <&L2_0>;
85 qcom,freq-domain = <&cpufreq_hw 0>;
86 power-domains = <&CPU_PD2>;
87 power-domain-names = "psci";
88 };
89
90 CPU3: cpu@3 {
91 device_type = "cpu";
92 compatible = "qcom,kryo260";
93 reg = <0x0 0x3>;
94 clocks = <&cpufreq_hw 0>;
95 capacity-dmips-mhz = <1024>;
96 dynamic-power-coefficient = <100>;
97 enable-method = "psci";
98 next-level-cache = <&L2_0>;
99 qcom,freq-domain = <&cpufreq_hw 0>;
100 power-domains = <&CPU_PD3>;
101 power-domain-names = "psci";
102 };
103
104 CPU4: cpu@100 {
105 device_type = "cpu";
106 compatible = "qcom,kryo260";
107 reg = <0x0 0x100>;
108 clocks = <&cpufreq_hw 1>;
109 enable-method = "psci";
110 capacity-dmips-mhz = <1638>;
111 dynamic-power-coefficient = <282>;
112 next-level-cache = <&L2_1>;
113 qcom,freq-domain = <&cpufreq_hw 1>;
114 power-domains = <&CPU_PD4>;
115 power-domain-names = "psci";
116 L2_1: l2-cache {
117 compatible = "cache";
118 cache-level = <2>;
119 cache-unified;
120 };
121 };
122
123 CPU5: cpu@101 {
124 device_type = "cpu";
125 compatible = "qcom,kryo260";
126 reg = <0x0 0x101>;
127 clocks = <&cpufreq_hw 1>;
128 capacity-dmips-mhz = <1638>;
129 dynamic-power-coefficient = <282>;
130 enable-method = "psci";
131 next-level-cache = <&L2_1>;
132 qcom,freq-domain = <&cpufreq_hw 1>;
133 power-domains = <&CPU_PD5>;
134 power-domain-names = "psci";
135 };
136
137 CPU6: cpu@102 {
138 device_type = "cpu";
139 compatible = "qcom,kryo260";
140 reg = <0x0 0x102>;
141 clocks = <&cpufreq_hw 1>;
142 capacity-dmips-mhz = <1638>;
143 dynamic-power-coefficient = <282>;
144 enable-method = "psci";
145 next-level-cache = <&L2_1>;
146 qcom,freq-domain = <&cpufreq_hw 1>;
147 power-domains = <&CPU_PD6>;
148 power-domain-names = "psci";
149 };
150
151 CPU7: cpu@103 {
152 device_type = "cpu";
153 compatible = "qcom,kryo260";
154 reg = <0x0 0x103>;
155 clocks = <&cpufreq_hw 1>;
156 capacity-dmips-mhz = <1638>;
157 dynamic-power-coefficient = <282>;
158 enable-method = "psci";
159 next-level-cache = <&L2_1>;
160 qcom,freq-domain = <&cpufreq_hw 1>;
161 power-domains = <&CPU_PD7>;
162 power-domain-names = "psci";
163 };
164
165 cpu-map {
166 cluster0 {
167 core0 {
168 cpu = <&CPU0>;
169 };
170
171 core1 {
172 cpu = <&CPU1>;
173 };
174
175 core2 {
176 cpu = <&CPU2>;
177 };
178
179 core3 {
180 cpu = <&CPU3>;
181 };
182 };
183
184 cluster1 {
185 core0 {
186 cpu = <&CPU4>;
187 };
188
189 core1 {
190 cpu = <&CPU5>;
191 };
192
193 core2 {
194 cpu = <&CPU6>;
195 };
196
197 core3 {
198 cpu = <&CPU7>;
199 };
200 };
201 };
202
203 idle-states {
204 entry-method = "psci";
205
206 LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
207 compatible = "arm,idle-state";
208 idle-state-name = "silver-rail-power-collapse";
209 arm,psci-suspend-param = <0x40000003>;
210 entry-latency-us = <290>;
211 exit-latency-us = <376>;
212 min-residency-us = <1182>;
213 local-timer-stop;
214 };
215
216 BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
217 compatible = "arm,idle-state";
218 idle-state-name = "gold-rail-power-collapse";
219 arm,psci-suspend-param = <0x40000003>;
220 entry-latency-us = <297>;
221 exit-latency-us = <324>;
222 min-residency-us = <1110>;
223 local-timer-stop;
224 };
225 };
226
227 domain-idle-states {
228 CLUSTER_0_SLEEP_0: cluster-sleep-0-0 {
229 /* GDHS */
230 compatible = "domain-idle-state";
231 arm,psci-suspend-param = <0x40000022>;
232 entry-latency-us = <360>;
233 exit-latency-us = <421>;
234 min-residency-us = <782>;
235 };
236
237 CLUSTER_0_SLEEP_1: cluster-sleep-0-1 {
238 /* Power Collapse */
239 compatible = "domain-idle-state";
240 arm,psci-suspend-param = <0x41000044>;
241 entry-latency-us = <800>;
242 exit-latency-us = <2118>;
243 min-residency-us = <7376>;
244 };
245
246 CLUSTER_1_SLEEP_0: cluster-sleep-1-0 {
247 /* GDHS */
248 compatible = "domain-idle-state";
249 arm,psci-suspend-param = <0x40000042>;
250 entry-latency-us = <314>;
251 exit-latency-us = <345>;
252 min-residency-us = <660>;
253 };
254
255 CLUSTER_1_SLEEP_1: cluster-sleep-1-1 {
256 /* Power Collapse */
257 compatible = "domain-idle-state";
258 arm,psci-suspend-param = <0x41000044>;
259 entry-latency-us = <640>;
260 exit-latency-us = <1654>;
261 min-residency-us = <8094>;
262 };
263 };
264 };
265
266 firmware {
267 scm: scm {
268 compatible = "qcom,scm-sm6115", "qcom,scm";
269 #reset-cells = <1>;
Tom Rini93743d22024-04-01 09:08:13 -0400270 interconnects = <&system_noc MASTER_CRYPTO_CORE0 RPM_ALWAYS_TAG
271 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
Tom Rini53633a82024-02-29 12:33:36 -0500272 };
273 };
274
275 memory@80000000 {
276 device_type = "memory";
277 /* We expect the bootloader to fill in the size */
278 reg = <0 0x80000000 0 0>;
279 };
280
Tom Rini93743d22024-04-01 09:08:13 -0400281 qup_opp_table: opp-table-qup {
282 compatible = "operating-points-v2";
283
284 opp-75000000 {
285 opp-hz = /bits/ 64 <75000000>;
286 required-opps = <&rpmpd_opp_low_svs>;
287 };
288
289 opp-100000000 {
290 opp-hz = /bits/ 64 <100000000>;
291 required-opps = <&rpmpd_opp_svs>;
292 };
293
294 opp-128000000 {
295 opp-hz = /bits/ 64 <128000000>;
296 required-opps = <&rpmpd_opp_nom>;
297 };
298 };
299
Tom Rini53633a82024-02-29 12:33:36 -0500300 pmu {
301 compatible = "arm,armv8-pmuv3";
302 interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
303 };
304
305 psci {
306 compatible = "arm,psci-1.0";
307 method = "smc";
308
309 CPU_PD0: power-domain-cpu0 {
310 #power-domain-cells = <0>;
311 power-domains = <&CLUSTER_0_PD>;
312 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
313 };
314
315 CPU_PD1: power-domain-cpu1 {
316 #power-domain-cells = <0>;
317 power-domains = <&CLUSTER_0_PD>;
318 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
319 };
320
321 CPU_PD2: power-domain-cpu2 {
322 #power-domain-cells = <0>;
323 power-domains = <&CLUSTER_0_PD>;
324 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
325 };
326
327 CPU_PD3: power-domain-cpu3 {
328 #power-domain-cells = <0>;
329 power-domains = <&CLUSTER_0_PD>;
330 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
331 };
332
333 CPU_PD4: power-domain-cpu4 {
334 #power-domain-cells = <0>;
335 power-domains = <&CLUSTER_1_PD>;
336 domain-idle-states = <&BIG_CPU_SLEEP_0>;
337 };
338
339 CPU_PD5: power-domain-cpu5 {
340 #power-domain-cells = <0>;
341 power-domains = <&CLUSTER_1_PD>;
342 domain-idle-states = <&BIG_CPU_SLEEP_0>;
343 };
344
345 CPU_PD6: power-domain-cpu6 {
346 #power-domain-cells = <0>;
347 power-domains = <&CLUSTER_1_PD>;
348 domain-idle-states = <&BIG_CPU_SLEEP_0>;
349 };
350
351 CPU_PD7: power-domain-cpu7 {
352 #power-domain-cells = <0>;
353 power-domains = <&CLUSTER_1_PD>;
354 domain-idle-states = <&BIG_CPU_SLEEP_0>;
355 };
356
357 CLUSTER_0_PD: power-domain-cpu-cluster0 {
358 #power-domain-cells = <0>;
359 domain-idle-states = <&CLUSTER_0_SLEEP_0>, <&CLUSTER_0_SLEEP_1>;
360 };
361
362 CLUSTER_1_PD: power-domain-cpu-cluster1 {
363 #power-domain-cells = <0>;
364 domain-idle-states = <&CLUSTER_1_SLEEP_0>, <&CLUSTER_1_SLEEP_1>;
365 };
366 };
367
368 rpm: remoteproc {
369 compatible = "qcom,sm6115-rpm-proc", "qcom,rpm-proc";
370
371 glink-edge {
372 compatible = "qcom,glink-rpm";
373
374 interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
375 qcom,rpm-msg-ram = <&rpm_msg_ram>;
376 mboxes = <&apcs_glb 0>;
377
378 rpm_requests: rpm-requests {
379 compatible = "qcom,rpm-sm6115";
380 qcom,glink-channels = "rpm_requests";
381
382 rpmcc: clock-controller {
383 compatible = "qcom,rpmcc-sm6115", "qcom,rpmcc";
384 clocks = <&xo_board>;
385 clock-names = "xo";
386 #clock-cells = <1>;
387 };
388
389 rpmpd: power-controller {
390 compatible = "qcom,sm6115-rpmpd";
391 #power-domain-cells = <1>;
392 operating-points-v2 = <&rpmpd_opp_table>;
393
394 rpmpd_opp_table: opp-table {
395 compatible = "operating-points-v2";
396
397 rpmpd_opp_min_svs: opp1 {
398 opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
399 };
400
401 rpmpd_opp_low_svs: opp2 {
402 opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
403 };
404
405 rpmpd_opp_svs: opp3 {
406 opp-level = <RPM_SMD_LEVEL_SVS>;
407 };
408
409 rpmpd_opp_svs_plus: opp4 {
410 opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
411 };
412
413 rpmpd_opp_nom: opp5 {
414 opp-level = <RPM_SMD_LEVEL_NOM>;
415 };
416
417 rpmpd_opp_nom_plus: opp6 {
418 opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
419 };
420
421 rpmpd_opp_turbo: opp7 {
422 opp-level = <RPM_SMD_LEVEL_TURBO>;
423 };
424
425 rpmpd_opp_turbo_plus: opp8 {
426 opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
427 };
428 };
429 };
430 };
431 };
432 };
433
434 reserved_memory: reserved-memory {
435 #address-cells = <2>;
436 #size-cells = <2>;
437 ranges;
438
439 hyp_mem: memory@45700000 {
440 reg = <0x0 0x45700000 0x0 0x600000>;
441 no-map;
442 };
443
444 xbl_aop_mem: memory@45e00000 {
445 reg = <0x0 0x45e00000 0x0 0x140000>;
446 no-map;
447 };
448
449 sec_apps_mem: memory@45fff000 {
450 reg = <0x0 0x45fff000 0x0 0x1000>;
451 no-map;
452 };
453
454 smem_mem: memory@46000000 {
455 compatible = "qcom,smem";
456 reg = <0x0 0x46000000 0x0 0x200000>;
457 no-map;
458
459 hwlocks = <&tcsr_mutex 3>;
460 qcom,rpm-msg-ram = <&rpm_msg_ram>;
461 };
462
463 cdsp_sec_mem: memory@46200000 {
464 reg = <0x0 0x46200000 0x0 0x1e00000>;
465 no-map;
466 };
467
468 pil_modem_mem: memory@4ab00000 {
469 reg = <0x0 0x4ab00000 0x0 0x6900000>;
470 no-map;
471 };
472
473 pil_video_mem: memory@51400000 {
474 reg = <0x0 0x51400000 0x0 0x500000>;
475 no-map;
476 };
477
478 wlan_msa_mem: memory@51900000 {
479 reg = <0x0 0x51900000 0x0 0x100000>;
480 no-map;
481 };
482
483 pil_cdsp_mem: memory@51a00000 {
484 reg = <0x0 0x51a00000 0x0 0x1e00000>;
485 no-map;
486 };
487
488 pil_adsp_mem: memory@53800000 {
489 reg = <0x0 0x53800000 0x0 0x2800000>;
490 no-map;
491 };
492
493 pil_ipa_fw_mem: memory@56100000 {
494 reg = <0x0 0x56100000 0x0 0x10000>;
495 no-map;
496 };
497
498 pil_ipa_gsi_mem: memory@56110000 {
499 reg = <0x0 0x56110000 0x0 0x5000>;
500 no-map;
501 };
502
503 pil_gpu_mem: memory@56115000 {
504 reg = <0x0 0x56115000 0x0 0x2000>;
505 no-map;
506 };
507
508 cont_splash_memory: memory@5c000000 {
509 reg = <0x0 0x5c000000 0x0 0x00f00000>;
510 no-map;
511 };
512
513 dfps_data_memory: memory@5cf00000 {
514 reg = <0x0 0x5cf00000 0x0 0x0100000>;
515 no-map;
516 };
517
518 removed_mem: memory@60000000 {
519 reg = <0x0 0x60000000 0x0 0x3900000>;
520 no-map;
521 };
522
523 rmtfs_mem: memory@89b01000 {
524 compatible = "qcom,rmtfs-mem";
525 reg = <0x0 0x89b01000 0x0 0x200000>;
526 no-map;
527
528 qcom,client-id = <1>;
529 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA QCOM_SCM_VMID_NAV>;
530 };
531 };
532
533 smp2p-adsp {
534 compatible = "qcom,smp2p";
535 qcom,smem = <443>, <429>;
536
537 interrupts = <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>;
538
539 mboxes = <&apcs_glb 10>;
540
541 qcom,local-pid = <0>;
542 qcom,remote-pid = <2>;
543
544 adsp_smp2p_out: master-kernel {
545 qcom,entry-name = "master-kernel";
546 #qcom,smem-state-cells = <1>;
547 };
548
549 adsp_smp2p_in: slave-kernel {
550 qcom,entry-name = "slave-kernel";
551
552 interrupt-controller;
553 #interrupt-cells = <2>;
554 };
555 };
556
557 smp2p-cdsp {
558 compatible = "qcom,smp2p";
559 qcom,smem = <94>, <432>;
560
561 interrupts = <GIC_SPI 263 IRQ_TYPE_EDGE_RISING>;
562
563 mboxes = <&apcs_glb 30>;
564
565 qcom,local-pid = <0>;
566 qcom,remote-pid = <5>;
567
568 cdsp_smp2p_out: master-kernel {
569 qcom,entry-name = "master-kernel";
570 #qcom,smem-state-cells = <1>;
571 };
572
573 cdsp_smp2p_in: slave-kernel {
574 qcom,entry-name = "slave-kernel";
575
576 interrupt-controller;
577 #interrupt-cells = <2>;
578 };
579 };
580
581 smp2p-mpss {
582 compatible = "qcom,smp2p";
583 qcom,smem = <435>, <428>;
584
585 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
586
587 mboxes = <&apcs_glb 14>;
588
589 qcom,local-pid = <0>;
590 qcom,remote-pid = <1>;
591
592 modem_smp2p_out: master-kernel {
593 qcom,entry-name = "master-kernel";
594 #qcom,smem-state-cells = <1>;
595 };
596
597 modem_smp2p_in: slave-kernel {
598 qcom,entry-name = "slave-kernel";
599
600 interrupt-controller;
601 #interrupt-cells = <2>;
602 };
603 };
604
605 soc: soc@0 {
606 compatible = "simple-bus";
607 #address-cells = <2>;
608 #size-cells = <2>;
609 ranges = <0 0 0 0 0x10 0>;
610 dma-ranges = <0 0 0 0 0x10 0>;
611
612 tcsr_mutex: hwlock@340000 {
613 compatible = "qcom,tcsr-mutex";
614 reg = <0x0 0x00340000 0x0 0x20000>;
615 #hwlock-cells = <1>;
616 };
617
Tom Rini6bb92fc2024-05-20 09:54:58 -0600618 tcsr_regs: syscon@3c0000 {
619 compatible = "qcom,sm6115-tcsr", "syscon";
620 reg = <0x0 0x003c0000 0x0 0x40000>;
621 };
622
Tom Rini53633a82024-02-29 12:33:36 -0500623 tlmm: pinctrl@500000 {
624 compatible = "qcom,sm6115-tlmm";
625 reg = <0x0 0x00500000 0x0 0x400000>,
626 <0x0 0x00900000 0x0 0x400000>,
627 <0x0 0x00d00000 0x0 0x400000>;
628 reg-names = "west", "south", "east";
629 interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
630 gpio-controller;
631 gpio-ranges = <&tlmm 0 0 114>; /* GPIOs + ufs_reset */
632 #gpio-cells = <2>;
633 interrupt-controller;
634 #interrupt-cells = <2>;
635
636 qup_i2c0_default: qup-i2c0-default-state {
637 pins = "gpio0", "gpio1";
638 function = "qup0";
639 drive-strength = <2>;
640 bias-pull-up;
641 };
642
643 qup_i2c1_default: qup-i2c1-default-state {
644 pins = "gpio4", "gpio5";
645 function = "qup1";
646 drive-strength = <2>;
647 bias-pull-up;
648 };
649
650 qup_i2c2_default: qup-i2c2-default-state {
651 pins = "gpio6", "gpio7";
652 function = "qup2";
653 drive-strength = <2>;
654 bias-pull-up;
655 };
656
657 qup_i2c3_default: qup-i2c3-default-state {
658 pins = "gpio8", "gpio9";
659 function = "qup3";
660 drive-strength = <2>;
661 bias-pull-up;
662 };
663
664 qup_i2c4_default: qup-i2c4-default-state {
665 pins = "gpio12", "gpio13";
666 function = "qup4";
667 drive-strength = <2>;
668 bias-pull-up;
669 };
670
671 qup_i2c5_default: qup-i2c5-default-state {
672 pins = "gpio14", "gpio15";
673 function = "qup5";
674 drive-strength = <2>;
675 bias-pull-up;
676 };
677
678 qup_spi0_default: qup-spi0-default-state {
679 pins = "gpio0", "gpio1","gpio2", "gpio3";
680 function = "qup0";
681 drive-strength = <2>;
682 bias-pull-up;
683 };
684
685 qup_spi1_default: qup-spi1-default-state {
686 pins = "gpio4", "gpio5", "gpio69", "gpio70";
687 function = "qup1";
688 drive-strength = <2>;
689 bias-pull-up;
690 };
691
692 qup_spi2_default: qup-spi2-default-state {
693 pins = "gpio6", "gpio7", "gpio71", "gpio80";
694 function = "qup2";
695 drive-strength = <2>;
696 bias-pull-up;
697 };
698
699 qup_spi3_default: qup-spi3-default-state {
700 pins = "gpio8", "gpio9", "gpio10", "gpio11";
701 function = "qup3";
702 drive-strength = <2>;
703 bias-pull-up;
704 };
705
706 qup_spi4_default: qup-spi4-default-state {
707 pins = "gpio12", "gpio13", "gpio96", "gpio97";
708 function = "qup4";
709 drive-strength = <2>;
710 bias-pull-up;
711 };
712
713 qup_spi5_default: qup-spi5-default-state {
714 pins = "gpio14", "gpio15", "gpio16", "gpio17";
715 function = "qup5";
716 drive-strength = <2>;
717 bias-pull-up;
718 };
719
720 sdc1_state_on: sdc1-on-state {
721 clk-pins {
722 pins = "sdc1_clk";
723 bias-disable;
724 drive-strength = <16>;
725 };
726
727 cmd-pins {
728 pins = "sdc1_cmd";
729 bias-pull-up;
730 drive-strength = <10>;
731 };
732
733 data-pins {
734 pins = "sdc1_data";
735 bias-pull-up;
736 drive-strength = <10>;
737 };
738
739 rclk-pins {
740 pins = "sdc1_rclk";
741 bias-pull-down;
742 };
743 };
744
745 sdc1_state_off: sdc1-off-state {
746 clk-pins {
747 pins = "sdc1_clk";
748 bias-disable;
749 drive-strength = <2>;
750 };
751
752 cmd-pins {
753 pins = "sdc1_cmd";
754 bias-pull-up;
755 drive-strength = <2>;
756 };
757
758 data-pins {
759 pins = "sdc1_data";
760 bias-pull-up;
761 drive-strength = <2>;
762 };
763
764 rclk-pins {
765 pins = "sdc1_rclk";
766 bias-pull-down;
767 };
768 };
769
770 sdc2_state_on: sdc2-on-state {
771 clk-pins {
772 pins = "sdc2_clk";
773 bias-disable;
774 drive-strength = <16>;
775 };
776
777 cmd-pins {
778 pins = "sdc2_cmd";
779 bias-pull-up;
780 drive-strength = <10>;
781 };
782
783 data-pins {
784 pins = "sdc2_data";
785 bias-pull-up;
786 drive-strength = <10>;
787 };
788 };
789
790 sdc2_state_off: sdc2-off-state {
791 clk-pins {
792 pins = "sdc2_clk";
793 bias-disable;
794 drive-strength = <2>;
795 };
796
797 cmd-pins {
798 pins = "sdc2_cmd";
799 bias-pull-up;
800 drive-strength = <2>;
801 };
802
803 data-pins {
804 pins = "sdc2_data";
805 bias-pull-up;
806 drive-strength = <2>;
807 };
808 };
809 };
810
811 gcc: clock-controller@1400000 {
812 compatible = "qcom,gcc-sm6115";
813 reg = <0x0 0x01400000 0x0 0x1f0000>;
814 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
815 clock-names = "bi_tcxo", "sleep_clk";
816 #clock-cells = <1>;
817 #reset-cells = <1>;
818 #power-domain-cells = <1>;
819 };
820
821 usb_hsphy: phy@1613000 {
822 compatible = "qcom,sm6115-qusb2-phy";
823 reg = <0x0 0x01613000 0x0 0x180>;
824 #phy-cells = <0>;
825
826 clocks = <&gcc GCC_AHB2PHY_USB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
827 clock-names = "cfg_ahb", "ref";
828
829 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
830 nvmem-cells = <&qusb2_hstx_trim>;
831
832 status = "disabled";
833 };
834
835 cryptobam: dma-controller@1b04000 {
836 compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
837 reg = <0x0 0x01b04000 0x0 0x24000>;
838 interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
839 clocks = <&rpmcc RPM_SMD_CE1_CLK>;
840 clock-names = "bam_clk";
841 #dma-cells = <1>;
842 qcom,ee = <0>;
843 qcom,controlled-remotely;
844 iommus = <&apps_smmu 0x92 0>,
845 <&apps_smmu 0x94 0x11>,
846 <&apps_smmu 0x96 0x11>,
847 <&apps_smmu 0x98 0x1>,
848 <&apps_smmu 0x9F 0>;
849 };
850
851 crypto: crypto@1b3a000 {
852 compatible = "qcom,sm6115-qce", "qcom,ipq4019-qce", "qcom,qce";
853 reg = <0x0 0x01b3a000 0x0 0x6000>;
854 clocks = <&rpmcc RPM_SMD_CE1_CLK>;
855 clock-names = "core";
856
857 dmas = <&cryptobam 6>, <&cryptobam 7>;
858 dma-names = "rx", "tx";
859 iommus = <&apps_smmu 0x92 0>,
860 <&apps_smmu 0x94 0x11>,
861 <&apps_smmu 0x96 0x11>,
862 <&apps_smmu 0x98 0x1>,
863 <&apps_smmu 0x9F 0>;
864 };
865
866 usb_qmpphy: phy@1615000 {
867 compatible = "qcom,sm6115-qmp-usb3-phy";
868 reg = <0x0 0x01615000 0x0 0x1000>;
869
870 clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
871 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
872 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
873 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
874 clock-names = "cfg_ahb",
875 "ref",
876 "com_aux",
877 "pipe";
878
879 resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
880 <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
881 reset-names = "phy", "phy_phy";
882
883 #clock-cells = <0>;
884 clock-output-names = "usb3_phy_pipe_clk_src";
885
886 #phy-cells = <0>;
Tom Rini6bb92fc2024-05-20 09:54:58 -0600887 orientation-switch;
888
889 qcom,tcsr-reg = <&tcsr_regs 0xb244>;
Tom Rini53633a82024-02-29 12:33:36 -0500890
891 status = "disabled";
Tom Rini6bb92fc2024-05-20 09:54:58 -0600892
893 ports {
894 #address-cells = <1>;
895 #size-cells = <0>;
896
897 port@0 {
898 reg = <0>;
899
900 usb_qmpphy_out: endpoint {
901 };
902 };
903
904 port@1 {
905 reg = <1>;
906
907 usb_qmpphy_usb_ss_in: endpoint {
908 remote-endpoint = <&usb_dwc3_ss>;
909 };
910 };
911 };
Tom Rini53633a82024-02-29 12:33:36 -0500912 };
913
Tom Rini93743d22024-04-01 09:08:13 -0400914 system_noc: interconnect@1880000 {
915 compatible = "qcom,sm6115-snoc";
916 reg = <0x0 0x01880000 0x0 0x5f080>;
917 clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
918 <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
919 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
920 <&rpmcc RPM_SMD_IPA_CLK>;
921 clock-names = "cpu_axi",
922 "ufs_axi",
923 "usb_axi",
924 "ipa";
925 #interconnect-cells = <2>;
926
927 clk_virt: interconnect-clk {
928 compatible = "qcom,sm6115-clk-virt";
929 #interconnect-cells = <2>;
930 };
931
932 mmrt_virt: interconnect-mmrt {
933 compatible = "qcom,sm6115-mmrt-virt";
934 #interconnect-cells = <2>;
935 };
936
937 mmnrt_virt: interconnect-mmnrt {
938 compatible = "qcom,sm6115-mmnrt-virt";
939 #interconnect-cells = <2>;
940 };
941 };
942
943 config_noc: interconnect@1900000 {
944 compatible = "qcom,sm6115-cnoc";
945 reg = <0x0 0x01900000 0x0 0x6200>;
946 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>;
947 clock-names = "usb_axi";
948 #interconnect-cells = <2>;
949 };
950
Tom Rini53633a82024-02-29 12:33:36 -0500951 qfprom@1b40000 {
952 compatible = "qcom,sm6115-qfprom", "qcom,qfprom";
953 reg = <0x0 0x01b40000 0x0 0x7000>;
954 #address-cells = <1>;
955 #size-cells = <1>;
956
957 qusb2_hstx_trim: hstx-trim@25b {
958 reg = <0x25b 0x1>;
959 bits = <1 4>;
960 };
961
962 gpu_speed_bin: gpu-speed-bin@6006 {
963 reg = <0x6006 0x2>;
964 bits = <5 8>;
965 };
966 };
967
968 rng: rng@1b53000 {
969 compatible = "qcom,prng-ee";
970 reg = <0x0 0x01b53000 0x0 0x1000>;
971 clocks = <&gcc GCC_PRNG_AHB_CLK>;
972 clock-names = "core";
973 };
974
Tom Rini93743d22024-04-01 09:08:13 -0400975 pmu@1b8e300 {
976 compatible = "qcom,sm6115-cpu-bwmon", "qcom,sdm845-bwmon";
977 reg = <0x0 0x01b8e300 0x0 0x600>;
978 interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
979
980 operating-points-v2 = <&cpu_bwmon_opp_table>;
981 interconnects = <&bimc MASTER_AMPSS_M0 RPM_ACTIVE_TAG
982 &bimc SLAVE_EBI_CH0 RPM_ACTIVE_TAG>;
983
984 cpu_bwmon_opp_table: opp-table {
985 compatible = "operating-points-v2";
986
987 opp-0 {
988 opp-peak-kBps = <(200 * 4 * 1000)>;
989 };
990
991 opp-1 {
992 opp-peak-kBps = <(300 * 4 * 1000)>;
993 };
994
995 opp-2 {
996 opp-peak-kBps = <(451 * 4 * 1000)>;
997 };
998
999 opp-3 {
1000 opp-peak-kBps = <(547 * 4 * 1000)>;
1001 };
1002
1003 opp-4 {
1004 opp-peak-kBps = <(681 * 4 * 1000)>;
1005 };
1006
1007 opp-5 {
1008 opp-peak-kBps = <(768 * 4 * 1000)>;
1009 };
1010
1011 opp-6 {
1012 opp-peak-kBps = <(1017 * 4 * 1000)>;
1013 };
1014
1015 opp-7 {
1016 opp-peak-kBps = <(1353 * 4 * 1000)>;
1017 };
1018
1019 opp-8 {
1020 opp-peak-kBps = <(1555 * 4 * 1000)>;
1021 };
1022
1023 opp-9 {
1024 opp-peak-kBps = <(1804 * 4 * 1000)>;
1025 };
1026 };
1027 };
1028
Tom Rini53633a82024-02-29 12:33:36 -05001029 spmi_bus: spmi@1c40000 {
1030 compatible = "qcom,spmi-pmic-arb";
1031 reg = <0x0 0x01c40000 0x0 0x1100>,
1032 <0x0 0x01e00000 0x0 0x2000000>,
1033 <0x0 0x03e00000 0x0 0x100000>,
1034 <0x0 0x03f00000 0x0 0xa0000>,
1035 <0x0 0x01c0a000 0x0 0x26000>;
1036 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1037 interrupt-names = "periph_irq";
1038 interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
1039 qcom,ee = <0>;
1040 qcom,channel = <0>;
1041 #address-cells = <2>;
1042 #size-cells = <0>;
1043 interrupt-controller;
1044 #interrupt-cells = <4>;
1045 };
1046
1047 tsens0: thermal-sensor@4411000 {
1048 compatible = "qcom,sm6115-tsens", "qcom,tsens-v2";
1049 reg = <0x0 0x04411000 0x0 0x1ff>, /* TM */
1050 <0x0 0x04410000 0x0 0x8>; /* SROT */
1051 #qcom,sensors = <16>;
1052 interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
1053 <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1054 interrupt-names = "uplow", "critical";
1055 #thermal-sensor-cells = <1>;
1056 };
1057
Tom Rini93743d22024-04-01 09:08:13 -04001058 bimc: interconnect@4480000 {
1059 compatible = "qcom,sm6115-bimc";
1060 reg = <0x0 0x04480000 0x0 0x80000>;
1061 #interconnect-cells = <2>;
1062 };
1063
Tom Rini53633a82024-02-29 12:33:36 -05001064 rpm_msg_ram: sram@45f0000 {
1065 compatible = "qcom,rpm-msg-ram";
1066 reg = <0x0 0x045f0000 0x0 0x7000>;
1067 };
1068
1069 sram@4690000 {
1070 compatible = "qcom,rpm-stats";
1071 reg = <0x0 0x04690000 0x0 0x10000>;
1072 };
1073
1074 sdhc_1: mmc@4744000 {
1075 compatible = "qcom,sm6115-sdhci", "qcom,sdhci-msm-v5";
1076 reg = <0x0 0x04744000 0x0 0x1000>,
1077 <0x0 0x04745000 0x0 0x1000>,
1078 <0x0 0x04748000 0x0 0x8000>;
1079 reg-names = "hc", "cqhci", "ice";
1080
1081 interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
1082 <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1083 interrupt-names = "hc_irq", "pwr_irq";
1084
1085 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1086 <&gcc GCC_SDCC1_APPS_CLK>,
1087 <&rpmcc RPM_SMD_XO_CLK_SRC>,
1088 <&gcc GCC_SDCC1_ICE_CORE_CLK>;
1089 clock-names = "iface", "core", "xo", "ice";
1090
Tom Rini6b642ac2024-10-01 12:20:28 -06001091 resets = <&gcc GCC_SDCC1_BCR>;
1092
Tom Rini93743d22024-04-01 09:08:13 -04001093 power-domains = <&rpmpd SM6115_VDDCX>;
1094 operating-points-v2 = <&sdhc1_opp_table>;
Tom Rini762f85b2024-07-20 11:15:10 -06001095 iommus = <&apps_smmu 0x00c0 0x0>;
Tom Rini93743d22024-04-01 09:08:13 -04001096 interconnects = <&system_noc MASTER_SDCC_1 RPM_ALWAYS_TAG
1097 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
1098 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1099 &config_noc SLAVE_SDCC_1 RPM_ALWAYS_TAG>;
1100 interconnect-names = "sdhc-ddr",
1101 "cpu-sdhc";
1102
Tom Rini53633a82024-02-29 12:33:36 -05001103 bus-width = <8>;
1104 status = "disabled";
Tom Rini93743d22024-04-01 09:08:13 -04001105
1106 sdhc1_opp_table: opp-table {
1107 compatible = "operating-points-v2";
1108
1109 opp-100000000 {
1110 opp-hz = /bits/ 64 <100000000>;
1111 required-opps = <&rpmpd_opp_low_svs>;
1112 opp-peak-kBps = <250000 133320>;
1113 opp-avg-kBps = <102400 65000>;
1114 };
1115
1116 opp-192000000 {
1117 opp-hz = /bits/ 64 <192000000>;
1118 required-opps = <&rpmpd_opp_low_svs>;
1119 opp-peak-kBps = <800000 300000>;
1120 opp-avg-kBps = <204800 200000>;
1121 };
1122
1123 opp-384000000 {
1124 opp-hz = /bits/ 64 <384000000>;
1125 required-opps = <&rpmpd_opp_svs_plus>;
1126 opp-peak-kBps = <800000 300000>;
1127 opp-avg-kBps = <204800 200000>;
1128 };
1129 };
Tom Rini53633a82024-02-29 12:33:36 -05001130 };
1131
1132 sdhc_2: mmc@4784000 {
1133 compatible = "qcom,sm6115-sdhci", "qcom,sdhci-msm-v5";
1134 reg = <0x0 0x04784000 0x0 0x1000>;
1135 reg-names = "hc";
1136
1137 interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
1138 <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1139 interrupt-names = "hc_irq", "pwr_irq";
1140
1141 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1142 <&gcc GCC_SDCC2_APPS_CLK>,
1143 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1144 clock-names = "iface", "core", "xo";
1145
1146 power-domains = <&rpmpd SM6115_VDDCX>;
1147 operating-points-v2 = <&sdhc2_opp_table>;
1148 iommus = <&apps_smmu 0x00a0 0x0>;
1149 resets = <&gcc GCC_SDCC2_BCR>;
Tom Rini93743d22024-04-01 09:08:13 -04001150 interconnects = <&system_noc MASTER_SDCC_2 RPM_ALWAYS_TAG
1151 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
1152 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1153 &config_noc SLAVE_SDCC_2 RPM_ALWAYS_TAG>;
1154 interconnect-names = "sdhc-ddr",
1155 "cpu-sdhc";
Tom Rini53633a82024-02-29 12:33:36 -05001156
1157 bus-width = <4>;
1158 qcom,dll-config = <0x0007642c>;
1159 qcom,ddr-config = <0x80040868>;
1160 status = "disabled";
1161
1162 sdhc2_opp_table: opp-table {
1163 compatible = "operating-points-v2";
1164
1165 opp-100000000 {
1166 opp-hz = /bits/ 64 <100000000>;
1167 required-opps = <&rpmpd_opp_low_svs>;
Tom Rini93743d22024-04-01 09:08:13 -04001168 opp-peak-kBps = <250000 133320>;
1169 opp-avg-kBps = <261438 150000>;
Tom Rini53633a82024-02-29 12:33:36 -05001170 };
1171
1172 opp-202000000 {
1173 opp-hz = /bits/ 64 <202000000>;
1174 required-opps = <&rpmpd_opp_nom>;
Tom Rini93743d22024-04-01 09:08:13 -04001175 opp-peak-kBps = <800000 300000>;
1176 opp-avg-kBps = <261438 300000>;
Tom Rini53633a82024-02-29 12:33:36 -05001177 };
1178 };
1179 };
1180
1181 ufs_mem_hc: ufs@4804000 {
1182 compatible = "qcom,sm6115-ufshc", "qcom,ufshc", "jedec,ufs-2.0";
1183 reg = <0x0 0x04804000 0x0 0x3000>, <0x0 0x04810000 0x0 0x8000>;
1184 reg-names = "std", "ice";
1185 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -04001186 phys = <&ufs_mem_phy>;
Tom Rini53633a82024-02-29 12:33:36 -05001187 phy-names = "ufsphy";
1188 lanes-per-direction = <1>;
1189 #reset-cells = <1>;
1190 resets = <&gcc GCC_UFS_PHY_BCR>;
1191 reset-names = "rst";
1192
1193 power-domains = <&gcc GCC_UFS_PHY_GDSC>;
1194 iommus = <&apps_smmu 0x100 0>;
1195
1196 clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
1197 <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
1198 <&gcc GCC_UFS_PHY_AHB_CLK>,
1199 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
1200 <&rpmcc RPM_SMD_XO_CLK_SRC>,
1201 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
1202 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
1203 <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
1204 clock-names = "core_clk",
1205 "bus_aggr_clk",
1206 "iface_clk",
1207 "core_clk_unipro",
1208 "ref_clk",
1209 "tx_lane0_sync_clk",
1210 "rx_lane0_sync_clk",
1211 "ice_core_clk";
1212
1213 freq-table-hz = <50000000 200000000>,
1214 <0 0>,
1215 <0 0>,
1216 <37500000 150000000>,
1217 <0 0>,
1218 <0 0>,
1219 <0 0>,
1220 <75000000 300000000>;
1221
1222 status = "disabled";
1223 };
1224
1225 ufs_mem_phy: phy@4807000 {
1226 compatible = "qcom,sm6115-qmp-ufs-phy";
Tom Rini93743d22024-04-01 09:08:13 -04001227 reg = <0x0 0x04807000 0x0 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05001228
Tom Rini6bb92fc2024-05-20 09:54:58 -06001229 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1230 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
1231 <&gcc GCC_UFS_CLKREF_CLK>;
1232 clock-names = "ref",
1233 "ref_aux",
1234 "qref";
Tom Rini53633a82024-02-29 12:33:36 -05001235
Tom Rini6b642ac2024-10-01 12:20:28 -06001236 power-domains = <&gcc GCC_UFS_PHY_GDSC>;
1237
Tom Rini53633a82024-02-29 12:33:36 -05001238 resets = <&ufs_mem_hc 0>;
1239 reset-names = "ufsphy";
Tom Rini53633a82024-02-29 12:33:36 -05001240
Tom Rini93743d22024-04-01 09:08:13 -04001241 #phy-cells = <0>;
1242
1243 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001244 };
1245
1246 gpi_dma0: dma-controller@4a00000 {
1247 compatible = "qcom,sm6115-gpi-dma", "qcom,sm6350-gpi-dma";
1248 reg = <0x0 0x04a00000 0x0 0x60000>;
1249 interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
1250 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
1251 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
1252 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
1253 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
1254 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
1255 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
1256 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
1257 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
1258 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
1259 dma-channels = <10>;
1260 dma-channel-mask = <0xf>;
1261 iommus = <&apps_smmu 0xf6 0x0>;
1262 #dma-cells = <3>;
1263 status = "disabled";
1264 };
1265
1266 qupv3_id_0: geniqup@4ac0000 {
1267 compatible = "qcom,geni-se-qup";
1268 reg = <0x0 0x04ac0000 0x0 0x2000>;
1269 clock-names = "m-ahb", "s-ahb";
1270 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
1271 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
1272 #address-cells = <2>;
1273 #size-cells = <2>;
1274 iommus = <&apps_smmu 0xe3 0x0>;
1275 ranges;
1276 status = "disabled";
1277
1278 i2c0: i2c@4a80000 {
1279 compatible = "qcom,geni-i2c";
1280 reg = <0x0 0x04a80000 0x0 0x4000>;
1281 clock-names = "se";
1282 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1283 pinctrl-names = "default";
1284 pinctrl-0 = <&qup_i2c0_default>;
1285 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1286 dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
1287 <&gpi_dma0 1 0 QCOM_GPI_I2C>;
1288 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001289 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1290 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1291 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1292 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1293 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1294 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1295 interconnect-names = "qup-core",
1296 "qup-config",
1297 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001298 #address-cells = <1>;
1299 #size-cells = <0>;
1300 status = "disabled";
1301 };
1302
1303 spi0: spi@4a80000 {
1304 compatible = "qcom,geni-spi";
1305 reg = <0x0 0x04a80000 0x0 0x4000>;
1306 clock-names = "se";
1307 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
1308 pinctrl-names = "default";
1309 pinctrl-0 = <&qup_spi0_default>;
1310 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
1311 dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
1312 <&gpi_dma0 1 0 QCOM_GPI_SPI>;
1313 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001314 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1315 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1316 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1317 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1318 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1319 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1320 interconnect-names = "qup-core",
1321 "qup-config",
1322 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001323 #address-cells = <1>;
1324 #size-cells = <0>;
1325 status = "disabled";
1326 };
1327
1328 i2c1: i2c@4a84000 {
1329 compatible = "qcom,geni-i2c";
1330 reg = <0x0 0x04a84000 0x0 0x4000>;
1331 clock-names = "se";
1332 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1333 pinctrl-names = "default";
1334 pinctrl-0 = <&qup_i2c1_default>;
1335 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1336 dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
1337 <&gpi_dma0 1 1 QCOM_GPI_I2C>;
1338 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001339 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1340 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1341 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1342 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1343 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1344 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1345 interconnect-names = "qup-core",
1346 "qup-config",
1347 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001348 #address-cells = <1>;
1349 #size-cells = <0>;
1350 status = "disabled";
1351 };
1352
1353 spi1: spi@4a84000 {
1354 compatible = "qcom,geni-spi";
1355 reg = <0x0 0x04a84000 0x0 0x4000>;
1356 clock-names = "se";
1357 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1358 pinctrl-names = "default";
1359 pinctrl-0 = <&qup_spi1_default>;
1360 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
1361 dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
1362 <&gpi_dma0 1 1 QCOM_GPI_SPI>;
1363 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001364 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1365 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1366 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1367 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1368 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1369 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1370 interconnect-names = "qup-core",
1371 "qup-config",
1372 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001373 #address-cells = <1>;
1374 #size-cells = <0>;
1375 status = "disabled";
1376 };
1377
1378 i2c2: i2c@4a88000 {
1379 compatible = "qcom,geni-i2c";
1380 reg = <0x0 0x04a88000 0x0 0x4000>;
1381 clock-names = "se";
1382 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1383 pinctrl-names = "default";
1384 pinctrl-0 = <&qup_i2c2_default>;
1385 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1386 dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
1387 <&gpi_dma0 1 2 QCOM_GPI_I2C>;
1388 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001389 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1390 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1391 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1392 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1393 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1394 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1395 interconnect-names = "qup-core",
1396 "qup-config",
1397 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001398 #address-cells = <1>;
1399 #size-cells = <0>;
1400 status = "disabled";
1401 };
1402
1403 spi2: spi@4a88000 {
1404 compatible = "qcom,geni-spi";
1405 reg = <0x0 0x04a88000 0x0 0x4000>;
1406 clock-names = "se";
1407 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1408 pinctrl-names = "default";
1409 pinctrl-0 = <&qup_spi2_default>;
1410 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
1411 dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
1412 <&gpi_dma0 1 2 QCOM_GPI_SPI>;
1413 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001414 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1415 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1416 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1417 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1418 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1419 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1420 interconnect-names = "qup-core",
1421 "qup-config",
1422 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001423 #address-cells = <1>;
1424 #size-cells = <0>;
1425 status = "disabled";
1426 };
1427
1428 i2c3: i2c@4a8c000 {
1429 compatible = "qcom,geni-i2c";
1430 reg = <0x0 0x04a8c000 0x0 0x4000>;
1431 clock-names = "se";
1432 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1433 pinctrl-names = "default";
1434 pinctrl-0 = <&qup_i2c3_default>;
1435 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1436 dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
1437 <&gpi_dma0 1 3 QCOM_GPI_I2C>;
1438 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001439 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1440 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1441 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1442 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1443 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1444 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1445 interconnect-names = "qup-core",
1446 "qup-config",
1447 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001448 #address-cells = <1>;
1449 #size-cells = <0>;
1450 status = "disabled";
1451 };
1452
1453 spi3: spi@4a8c000 {
1454 compatible = "qcom,geni-spi";
1455 reg = <0x0 0x04a8c000 0x0 0x4000>;
1456 clock-names = "se";
1457 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1458 pinctrl-names = "default";
1459 pinctrl-0 = <&qup_spi3_default>;
1460 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1461 dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
1462 <&gpi_dma0 1 3 QCOM_GPI_SPI>;
1463 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001464 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1465 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1466 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1467 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1468 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1469 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1470 interconnect-names = "qup-core",
1471 "qup-config",
1472 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001473 #address-cells = <1>;
1474 #size-cells = <0>;
1475 status = "disabled";
1476 };
1477
Tom Rini93743d22024-04-01 09:08:13 -04001478 uart3: serial@4a8c000 {
1479 compatible = "qcom,geni-uart";
1480 reg = <0x0 0x04a8c000 0x0 0x4000>;
1481 interrupts-extended = <&intc GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
1482 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1483 clock-names = "se";
1484 power-domains = <&rpmpd SM6115_VDDCX>;
1485 operating-points-v2 = <&qup_opp_table>;
1486 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1487 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1488 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1489 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1490 interconnect-names = "qup-core",
1491 "qup-config";
1492 status = "disabled";
1493 };
1494
Tom Rini53633a82024-02-29 12:33:36 -05001495 i2c4: i2c@4a90000 {
1496 compatible = "qcom,geni-i2c";
1497 reg = <0x0 0x04a90000 0x0 0x4000>;
1498 clock-names = "se";
1499 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1500 pinctrl-names = "default";
1501 pinctrl-0 = <&qup_i2c4_default>;
1502 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1503 dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
1504 <&gpi_dma0 1 4 QCOM_GPI_I2C>;
1505 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001506 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1507 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1508 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1509 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1510 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1511 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1512 interconnect-names = "qup-core",
1513 "qup-config",
1514 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001515 #address-cells = <1>;
1516 #size-cells = <0>;
1517 status = "disabled";
1518 };
1519
1520 spi4: spi@4a90000 {
1521 compatible = "qcom,geni-spi";
1522 reg = <0x0 0x04a90000 0x0 0x4000>;
1523 clock-names = "se";
1524 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1525 pinctrl-names = "default";
1526 pinctrl-0 = <&qup_spi4_default>;
1527 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1528 dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
1529 <&gpi_dma0 1 4 QCOM_GPI_SPI>;
1530 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001531 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1532 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1533 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1534 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1535 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1536 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1537 interconnect-names = "qup-core",
1538 "qup-config",
1539 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001540 #address-cells = <1>;
1541 #size-cells = <0>;
1542 status = "disabled";
1543 };
1544
1545 uart4: serial@4a90000 {
1546 compatible = "qcom,geni-debug-uart";
1547 reg = <0x0 0x04a90000 0x0 0x4000>;
1548 clock-names = "se";
1549 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1550 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -04001551 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1552 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1553 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1554 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>;
1555 interconnect-names = "qup-core",
1556 "qup-config";
Tom Rini53633a82024-02-29 12:33:36 -05001557 status = "disabled";
1558 };
1559
1560 i2c5: i2c@4a94000 {
1561 compatible = "qcom,geni-i2c";
1562 reg = <0x0 0x04a94000 0x0 0x4000>;
1563 clock-names = "se";
1564 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1565 pinctrl-names = "default";
1566 pinctrl-0 = <&qup_i2c5_default>;
1567 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1568 dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
1569 <&gpi_dma0 1 5 QCOM_GPI_I2C>;
1570 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001571 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1572 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1573 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1574 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1575 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1576 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1577 interconnect-names = "qup-core",
1578 "qup-config",
1579 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001580 #address-cells = <1>;
1581 #size-cells = <0>;
1582 status = "disabled";
1583 };
1584
1585 spi5: spi@4a94000 {
1586 compatible = "qcom,geni-spi";
1587 reg = <0x0 0x04a94000 0x0 0x4000>;
1588 clock-names = "se";
1589 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1590 pinctrl-names = "default";
1591 pinctrl-0 = <&qup_spi5_default>;
1592 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1593 dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
1594 <&gpi_dma0 1 5 QCOM_GPI_SPI>;
1595 dma-names = "tx", "rx";
Tom Rini93743d22024-04-01 09:08:13 -04001596 interconnects = <&clk_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
1597 &clk_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
1598 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1599 &config_noc SLAVE_QUP_0 RPM_ALWAYS_TAG>,
1600 <&system_noc MASTER_QUP_0 RPM_ALWAYS_TAG
1601 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>;
1602 interconnect-names = "qup-core",
1603 "qup-config",
1604 "qup-memory";
Tom Rini53633a82024-02-29 12:33:36 -05001605 #address-cells = <1>;
1606 #size-cells = <0>;
1607 status = "disabled";
1608 };
1609 };
1610
1611 usb: usb@4ef8800 {
1612 compatible = "qcom,sm6115-dwc3", "qcom,dwc3";
1613 reg = <0x0 0x04ef8800 0x0 0x400>;
1614 #address-cells = <2>;
1615 #size-cells = <2>;
1616 ranges;
1617
1618 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1619 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1620 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
1621 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1622 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1623 <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
1624 clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi", "xo";
1625
1626 assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1627 <&gcc GCC_USB30_PRIM_MASTER_CLK>;
1628 assigned-clock-rates = <19200000>, <66666667>;
1629
Tom Rini6bb92fc2024-05-20 09:54:58 -06001630 interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
1631 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
1632 <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
Tom Rini53633a82024-02-29 12:33:36 -05001633 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini6bb92fc2024-05-20 09:54:58 -06001634 interrupt-names = "pwr_event",
1635 "qusb2_phy",
1636 "hs_phy_irq",
1637 "ss_phy_irq";
Tom Rini53633a82024-02-29 12:33:36 -05001638
1639 resets = <&gcc GCC_USB30_PRIM_BCR>;
1640 power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
Tom Rini93743d22024-04-01 09:08:13 -04001641 /* TODO: USB<->IPA path */
1642 interconnects = <&system_noc MASTER_USB3 RPM_ALWAYS_TAG
1643 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
1644 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1645 &config_noc SLAVE_USB3 RPM_ALWAYS_TAG>;
1646 interconnect-names = "usb-ddr",
1647 "apps-usb";
1648
Tom Rini53633a82024-02-29 12:33:36 -05001649 status = "disabled";
1650
1651 usb_dwc3: usb@4e00000 {
1652 compatible = "snps,dwc3";
1653 reg = <0x0 0x04e00000 0x0 0xcd00>;
1654 interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
1655 phys = <&usb_hsphy>, <&usb_qmpphy>;
1656 phy-names = "usb2-phy", "usb3-phy";
1657 iommus = <&apps_smmu 0x120 0x0>;
1658 snps,dis_u2_susphy_quirk;
1659 snps,dis_enblslpm_quirk;
1660 snps,has-lpm-erratum;
1661 snps,hird-threshold = /bits/ 8 <0x10>;
1662 snps,usb3_lpm_capable;
Tom Rini6b642ac2024-10-01 12:20:28 -06001663 snps,parkmode-disable-ss-quirk;
Tom Rini6bb92fc2024-05-20 09:54:58 -06001664
1665 usb-role-switch;
1666
1667 ports {
1668 #address-cells = <1>;
1669 #size-cells = <0>;
1670
1671 port@0 {
1672 reg = <0>;
1673
1674 usb_dwc3_hs: endpoint {
1675 };
1676 };
1677
1678 port@1 {
1679 reg = <1>;
1680
1681 usb_dwc3_ss: endpoint {
1682 remote-endpoint = <&usb_qmpphy_usb_ss_in>;
1683 };
1684 };
1685 };
Tom Rini53633a82024-02-29 12:33:36 -05001686 };
1687 };
1688
1689 gpu: gpu@5900000 {
1690 compatible = "qcom,adreno-610.0", "qcom,adreno";
1691 reg = <0x0 0x05900000 0x0 0x40000>;
1692 reg-names = "kgsl_3d0_reg_memory";
1693
1694 /* There's no (real) GMU, so we have to handle quite a bunch of clocks! */
1695 clocks = <&gpucc GPU_CC_GX_GFX3D_CLK>,
1696 <&gpucc GPU_CC_AHB_CLK>,
1697 <&gcc GCC_BIMC_GPU_AXI_CLK>,
1698 <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
1699 <&gpucc GPU_CC_CX_GMU_CLK>,
1700 <&gpucc GPU_CC_CXO_CLK>;
1701 clock-names = "core",
1702 "iface",
1703 "mem_iface",
1704 "alt_mem_iface",
1705 "gmu",
1706 "xo";
1707
1708 interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
1709
1710 iommus = <&adreno_smmu 0 1>;
1711 operating-points-v2 = <&gpu_opp_table>;
1712 power-domains = <&rpmpd SM6115_VDDCX>;
1713 qcom,gmu = <&gmu_wrapper>;
1714
1715 nvmem-cells = <&gpu_speed_bin>;
1716 nvmem-cell-names = "speed_bin";
Tom Rini6bb92fc2024-05-20 09:54:58 -06001717 #cooling-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -05001718
1719 status = "disabled";
1720
1721 zap-shader {
1722 memory-region = <&pil_gpu_mem>;
1723 };
1724
1725 gpu_opp_table: opp-table {
1726 compatible = "operating-points-v2";
1727
1728 opp-320000000 {
1729 opp-hz = /bits/ 64 <320000000>;
1730 required-opps = <&rpmpd_opp_low_svs>;
1731 opp-supported-hw = <0x1f>;
1732 };
1733
1734 opp-465000000 {
1735 opp-hz = /bits/ 64 <465000000>;
1736 required-opps = <&rpmpd_opp_svs>;
1737 opp-supported-hw = <0x1f>;
1738 };
1739
1740 opp-600000000 {
1741 opp-hz = /bits/ 64 <600000000>;
1742 required-opps = <&rpmpd_opp_svs_plus>;
1743 opp-supported-hw = <0x1f>;
1744 };
1745
1746 opp-745000000 {
1747 opp-hz = /bits/ 64 <745000000>;
1748 required-opps = <&rpmpd_opp_nom>;
1749 opp-supported-hw = <0xf>;
1750 };
1751
1752 opp-820000000 {
1753 opp-hz = /bits/ 64 <820000000>;
1754 required-opps = <&rpmpd_opp_nom_plus>;
1755 opp-supported-hw = <0x7>;
1756 };
1757
1758 opp-900000000 {
1759 opp-hz = /bits/ 64 <900000000>;
1760 required-opps = <&rpmpd_opp_turbo>;
1761 opp-supported-hw = <0x7>;
1762 };
1763
1764 /* Speed bin 2 can reach 950 Mhz instead of 980 like the rest. */
1765 opp-950000000 {
1766 opp-hz = /bits/ 64 <950000000>;
1767 required-opps = <&rpmpd_opp_turbo_plus>;
1768 opp-supported-hw = <0x4>;
1769 };
1770
1771 opp-980000000 {
1772 opp-hz = /bits/ 64 <980000000>;
1773 required-opps = <&rpmpd_opp_turbo_plus>;
1774 opp-supported-hw = <0x3>;
1775 };
1776 };
1777 };
1778
1779 gmu_wrapper: gmu@596a000 {
1780 compatible = "qcom,adreno-gmu-wrapper";
1781 reg = <0x0 0x0596a000 0x0 0x30000>;
1782 reg-names = "gmu";
1783 power-domains = <&gpucc GPU_CX_GDSC>,
1784 <&gpucc GPU_GX_GDSC>;
1785 power-domain-names = "cx", "gx";
1786 };
1787
1788 gpucc: clock-controller@5990000 {
1789 compatible = "qcom,sm6115-gpucc";
1790 reg = <0x0 0x05990000 0x0 0x9000>;
1791 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1792 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
1793 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
1794 #clock-cells = <1>;
1795 #reset-cells = <1>;
1796 #power-domain-cells = <1>;
1797 };
1798
1799 adreno_smmu: iommu@59a0000 {
1800 compatible = "qcom,sm6115-smmu-500", "qcom,adreno-smmu",
1801 "qcom,smmu-500", "arm,mmu-500";
1802 reg = <0x0 0x059a0000 0x0 0x10000>;
1803 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
1804 <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
1805 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
1806 <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
1807 <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
1808 <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
1809 <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
1810 <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>,
1811 <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
1812
1813 clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
1814 <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
1815 <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>;
1816 clock-names = "mem",
1817 "hlos",
1818 "iface";
1819 power-domains = <&gpucc GPU_CX_GDSC>;
1820
1821 #global-interrupts = <1>;
1822 #iommu-cells = <2>;
1823 };
1824
1825 mdss: display-subsystem@5e00000 {
1826 compatible = "qcom,sm6115-mdss";
1827 reg = <0x0 0x05e00000 0x0 0x1000>;
1828 reg-names = "mdss";
1829
1830 power-domains = <&dispcc MDSS_GDSC>;
1831
1832 clocks = <&gcc GCC_DISP_AHB_CLK>,
1833 <&gcc GCC_DISP_HF_AXI_CLK>,
1834 <&dispcc DISP_CC_MDSS_MDP_CLK>;
1835
1836 interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
1837 interrupt-controller;
1838 #interrupt-cells = <1>;
1839
1840 iommus = <&apps_smmu 0x420 0x2>,
1841 <&apps_smmu 0x421 0x0>;
1842
Tom Rini93743d22024-04-01 09:08:13 -04001843 interconnects = <&mmrt_virt MASTER_MDP_PORT0 RPM_ALWAYS_TAG
1844 &bimc SLAVE_EBI_CH0 RPM_ALWAYS_TAG>,
1845 <&bimc MASTER_AMPSS_M0 RPM_ALWAYS_TAG
1846 &config_noc SLAVE_DISPLAY_CFG RPM_ALWAYS_TAG>;
1847 interconnect-names = "mdp0-mem",
1848 "cpu-cfg";
1849
Tom Rini53633a82024-02-29 12:33:36 -05001850 #address-cells = <2>;
1851 #size-cells = <2>;
1852 ranges;
1853
1854 status = "disabled";
1855
1856 mdp: display-controller@5e01000 {
1857 compatible = "qcom,sm6115-dpu";
1858 reg = <0x0 0x05e01000 0x0 0x8f000>,
1859 <0x0 0x05eb0000 0x0 0x2008>;
1860 reg-names = "mdp", "vbif";
1861
1862 clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
1863 <&dispcc DISP_CC_MDSS_AHB_CLK>,
1864 <&dispcc DISP_CC_MDSS_MDP_CLK>,
1865 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
1866 <&dispcc DISP_CC_MDSS_ROT_CLK>,
1867 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
1868 clock-names = "bus",
1869 "iface",
1870 "core",
1871 "lut",
1872 "rot",
1873 "vsync";
1874
1875 operating-points-v2 = <&mdp_opp_table>;
1876 power-domains = <&rpmpd SM6115_VDDCX>;
1877
1878 interrupt-parent = <&mdss>;
1879 interrupts = <0>;
1880
1881 ports {
1882 #address-cells = <1>;
1883 #size-cells = <0>;
1884
1885 port@0 {
1886 reg = <0>;
1887 dpu_intf1_out: endpoint {
1888 remote-endpoint = <&mdss_dsi0_in>;
1889 };
1890 };
1891 };
1892
1893 mdp_opp_table: opp-table {
1894 compatible = "operating-points-v2";
1895
1896 opp-19200000 {
1897 opp-hz = /bits/ 64 <19200000>;
1898 required-opps = <&rpmpd_opp_min_svs>;
1899 };
1900
1901 opp-192000000 {
1902 opp-hz = /bits/ 64 <192000000>;
1903 required-opps = <&rpmpd_opp_low_svs>;
1904 };
1905
1906 opp-256000000 {
1907 opp-hz = /bits/ 64 <256000000>;
1908 required-opps = <&rpmpd_opp_svs>;
1909 };
1910
1911 opp-307200000 {
1912 opp-hz = /bits/ 64 <307200000>;
1913 required-opps = <&rpmpd_opp_svs_plus>;
1914 };
1915
1916 opp-384000000 {
1917 opp-hz = /bits/ 64 <384000000>;
1918 required-opps = <&rpmpd_opp_nom>;
1919 };
1920 };
1921 };
1922
1923 mdss_dsi0: dsi@5e94000 {
1924 compatible = "qcom,sm6115-dsi-ctrl", "qcom,mdss-dsi-ctrl";
1925 reg = <0x0 0x05e94000 0x0 0x400>;
1926 reg-names = "dsi_ctrl";
1927
1928 interrupt-parent = <&mdss>;
1929 interrupts = <4>;
1930
1931 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
1932 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
1933 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
1934 <&dispcc DISP_CC_MDSS_ESC0_CLK>,
1935 <&dispcc DISP_CC_MDSS_AHB_CLK>,
1936 <&gcc GCC_DISP_HF_AXI_CLK>;
1937 clock-names = "byte",
1938 "byte_intf",
1939 "pixel",
1940 "core",
1941 "iface",
1942 "bus";
1943
1944 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
1945 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
1946 assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
1947
1948 operating-points-v2 = <&dsi_opp_table>;
1949 power-domains = <&rpmpd SM6115_VDDCX>;
1950 phys = <&mdss_dsi0_phy>;
1951
1952 #address-cells = <1>;
1953 #size-cells = <0>;
1954
1955 status = "disabled";
1956
1957 ports {
1958 #address-cells = <1>;
1959 #size-cells = <0>;
1960
1961 port@0 {
1962 reg = <0>;
1963 mdss_dsi0_in: endpoint {
1964 remote-endpoint = <&dpu_intf1_out>;
1965 };
1966 };
1967
1968 port@1 {
1969 reg = <1>;
1970 mdss_dsi0_out: endpoint {
1971 };
1972 };
1973 };
1974
1975 dsi_opp_table: opp-table {
1976 compatible = "operating-points-v2";
1977
1978 opp-19200000 {
1979 opp-hz = /bits/ 64 <19200000>;
1980 required-opps = <&rpmpd_opp_min_svs>;
1981 };
1982
1983 opp-164000000 {
1984 opp-hz = /bits/ 64 <164000000>;
1985 required-opps = <&rpmpd_opp_low_svs>;
1986 };
1987
1988 opp-187500000 {
1989 opp-hz = /bits/ 64 <187500000>;
1990 required-opps = <&rpmpd_opp_svs>;
1991 };
1992 };
1993 };
1994
1995 mdss_dsi0_phy: phy@5e94400 {
1996 compatible = "qcom,dsi-phy-14nm-2290";
1997 reg = <0x0 0x05e94400 0x0 0x100>,
1998 <0x0 0x05e94500 0x0 0x300>,
1999 <0x0 0x05e94800 0x0 0x188>;
2000 reg-names = "dsi_phy",
2001 "dsi_phy_lane",
2002 "dsi_pll";
2003
2004 #clock-cells = <1>;
2005 #phy-cells = <0>;
2006
2007 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2008 <&rpmcc RPM_SMD_XO_CLK_SRC>;
2009 clock-names = "iface", "ref";
2010
2011 status = "disabled";
2012 };
2013 };
2014
2015 dispcc: clock-controller@5f00000 {
2016 compatible = "qcom,sm6115-dispcc";
2017 reg = <0x0 0x05f00000 0 0x20000>;
2018 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
2019 <&sleep_clk>,
2020 <&mdss_dsi0_phy 0>,
2021 <&mdss_dsi0_phy 1>,
2022 <&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>;
2023 #clock-cells = <1>;
2024 #reset-cells = <1>;
2025 #power-domain-cells = <1>;
2026 };
2027
2028 remoteproc_mpss: remoteproc@6080000 {
2029 compatible = "qcom,sm6115-mpss-pas";
2030 reg = <0x0 0x06080000 0x0 0x100>;
2031
2032 interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
2033 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2034 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2035 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2036 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
2037 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
2038 interrupt-names = "wdog", "fatal", "ready", "handover",
2039 "stop-ack", "shutdown-ack";
2040
2041 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
2042 clock-names = "xo";
2043
2044 power-domains = <&rpmpd SM6115_VDDCX>;
2045
2046 memory-region = <&pil_modem_mem>;
2047
2048 qcom,smem-states = <&modem_smp2p_out 0>;
2049 qcom,smem-state-names = "stop";
2050
2051 status = "disabled";
2052
2053 glink-edge {
2054 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
2055 label = "mpss";
2056 qcom,remote-pid = <1>;
2057 mboxes = <&apcs_glb 12>;
2058 };
2059 };
2060
2061 stm@8002000 {
2062 compatible = "arm,coresight-stm", "arm,primecell";
2063 reg = <0x0 0x08002000 0x0 0x1000>,
2064 <0x0 0x0e280000 0x0 0x180000>;
2065 reg-names = "stm-base", "stm-stimulus-base";
2066
2067 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2068 clock-names = "apb_pclk";
2069
2070 status = "disabled";
2071
2072 out-ports {
2073 port {
2074 stm_out: endpoint {
2075 remote-endpoint = <&funnel_in0_in>;
2076 };
2077 };
2078 };
2079 };
2080
2081 cti0: cti@8010000 {
2082 compatible = "arm,coresight-cti", "arm,primecell";
2083 reg = <0x0 0x08010000 0x0 0x1000>;
2084
2085 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2086 clock-names = "apb_pclk";
2087
2088 status = "disabled";
2089 };
2090
2091 cti1: cti@8011000 {
2092 compatible = "arm,coresight-cti", "arm,primecell";
2093 reg = <0x0 0x08011000 0x0 0x1000>;
2094
2095 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2096 clock-names = "apb_pclk";
2097
2098 status = "disabled";
2099 };
2100
2101 cti2: cti@8012000 {
2102 compatible = "arm,coresight-cti", "arm,primecell";
2103 reg = <0x0 0x08012000 0x0 0x1000>;
2104
2105 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2106 clock-names = "apb_pclk";
2107
2108 status = "disabled";
2109 };
2110
2111 cti3: cti@8013000 {
2112 compatible = "arm,coresight-cti", "arm,primecell";
2113 reg = <0x0 0x08013000 0x0 0x1000>;
2114
2115 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2116 clock-names = "apb_pclk";
2117
2118 status = "disabled";
2119 };
2120
2121 cti4: cti@8014000 {
2122 compatible = "arm,coresight-cti", "arm,primecell";
2123 reg = <0x0 0x08014000 0x0 0x1000>;
2124
2125 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2126 clock-names = "apb_pclk";
2127
2128 status = "disabled";
2129 };
2130
2131 cti5: cti@8015000 {
2132 compatible = "arm,coresight-cti", "arm,primecell";
2133 reg = <0x0 0x08015000 0x0 0x1000>;
2134
2135 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2136 clock-names = "apb_pclk";
2137
2138 status = "disabled";
2139 };
2140
2141 cti6: cti@8016000 {
2142 compatible = "arm,coresight-cti", "arm,primecell";
2143 reg = <0x0 0x08016000 0x0 0x1000>;
2144
2145 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2146 clock-names = "apb_pclk";
2147
2148 status = "disabled";
2149 };
2150
2151 cti7: cti@8017000 {
2152 compatible = "arm,coresight-cti", "arm,primecell";
2153 reg = <0x0 0x08017000 0x0 0x1000>;
2154
2155 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2156 clock-names = "apb_pclk";
2157
2158 status = "disabled";
2159 };
2160
2161 cti8: cti@8018000 {
2162 compatible = "arm,coresight-cti", "arm,primecell";
2163 reg = <0x0 0x08018000 0x0 0x1000>;
2164
2165 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2166 clock-names = "apb_pclk";
2167
2168 status = "disabled";
2169 };
2170
2171 cti9: cti@8019000 {
2172 compatible = "arm,coresight-cti", "arm,primecell";
2173 reg = <0x0 0x08019000 0x0 0x1000>;
2174
2175 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2176 clock-names = "apb_pclk";
2177
2178 status = "disabled";
2179 };
2180
2181 cti10: cti@801a000 {
2182 compatible = "arm,coresight-cti", "arm,primecell";
2183 reg = <0x0 0x0801a000 0x0 0x1000>;
2184
2185 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2186 clock-names = "apb_pclk";
2187
2188 status = "disabled";
2189 };
2190
2191 cti11: cti@801b000 {
2192 compatible = "arm,coresight-cti", "arm,primecell";
2193 reg = <0x0 0x0801b000 0x0 0x1000>;
2194
2195 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2196 clock-names = "apb_pclk";
2197
2198 status = "disabled";
2199 };
2200
2201 cti12: cti@801c000 {
2202 compatible = "arm,coresight-cti", "arm,primecell";
2203 reg = <0x0 0x0801c000 0x0 0x1000>;
2204
2205 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2206 clock-names = "apb_pclk";
2207
2208 status = "disabled";
2209 };
2210
2211 cti13: cti@801d000 {
2212 compatible = "arm,coresight-cti", "arm,primecell";
2213 reg = <0x0 0x0801d000 0x0 0x1000>;
2214
2215 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2216 clock-names = "apb_pclk";
2217
2218 status = "disabled";
2219 };
2220
2221 cti14: cti@801e000 {
2222 compatible = "arm,coresight-cti", "arm,primecell";
2223 reg = <0x0 0x0801e000 0x0 0x1000>;
2224
2225 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2226 clock-names = "apb_pclk";
2227
2228 status = "disabled";
2229 };
2230
2231 cti15: cti@801f000 {
2232 compatible = "arm,coresight-cti", "arm,primecell";
2233 reg = <0x0 0x0801f000 0x0 0x1000>;
2234
2235 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2236 clock-names = "apb_pclk";
2237
2238 status = "disabled";
2239 };
2240
2241 replicator@8046000 {
2242 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
2243 reg = <0x0 0x08046000 0x0 0x1000>;
2244
2245 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2246 clock-names = "apb_pclk";
2247
2248 status = "disabled";
2249
2250 out-ports {
2251 port {
2252 replicator_out: endpoint {
2253 remote-endpoint = <&etr_in>;
2254 };
2255 };
2256 };
2257
2258 in-ports {
2259 port {
2260 replicator_in: endpoint {
2261 remote-endpoint = <&etf_out>;
2262 };
2263 };
2264 };
2265 };
2266
2267 etf@8047000 {
2268 compatible = "arm,coresight-tmc", "arm,primecell";
2269 reg = <0x0 0x08047000 0x0 0x1000>;
2270
2271 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2272 clock-names = "apb_pclk";
2273
2274 status = "disabled";
2275
2276 in-ports {
2277 port {
2278 etf_in: endpoint {
2279 remote-endpoint = <&merge_funnel_out>;
2280 };
2281 };
2282 };
2283
2284 out-ports {
2285 port {
2286 etf_out: endpoint {
2287 remote-endpoint = <&replicator_in>;
2288 };
2289 };
2290 };
2291 };
2292
2293 etr@8048000 {
2294 compatible = "arm,coresight-tmc", "arm,primecell";
2295 reg = <0x0 0x08048000 0x0 0x1000>;
2296
2297 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2298 clock-names = "apb_pclk";
2299
2300 status = "disabled";
2301
2302 in-ports {
2303 port {
2304 etr_in: endpoint {
2305 remote-endpoint = <&replicator_out>;
2306 };
2307 };
2308 };
2309 };
2310
2311 funnel@8041000 {
2312 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
2313 reg = <0x0 0x08041000 0x0 0x1000>;
2314
2315 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2316 clock-names = "apb_pclk";
2317
2318 status = "disabled";
2319
2320 out-ports {
2321 port {
2322 funnel_in0_out: endpoint {
2323 remote-endpoint = <&merge_funnel_in0>;
2324 };
2325 };
2326 };
2327
2328 in-ports {
2329 port {
2330 funnel_in0_in: endpoint {
2331 remote-endpoint = <&stm_out>;
2332 };
2333 };
2334 };
2335 };
2336
2337 funnel@8042000 {
2338 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
2339 reg = <0x0 0x08042000 0x0 0x1000>;
2340
2341 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2342 clock-names = "apb_pclk";
2343
2344 status = "disabled";
2345
2346 out-ports {
2347 port {
2348 funnel_in1_out: endpoint {
2349 remote-endpoint = <&merge_funnel_in1>;
2350 };
2351 };
2352 };
2353
2354 in-ports {
2355 port {
2356 funnel_in1_in: endpoint {
2357 remote-endpoint = <&funnel_apss1_out>;
2358 };
2359 };
2360 };
2361 };
2362
2363 funnel@8045000 {
2364 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
2365 reg = <0x0 0x08045000 0x0 0x1000>;
2366
2367 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2368 clock-names = "apb_pclk";
2369
2370 status = "disabled";
2371
2372 out-ports {
2373 port {
2374 merge_funnel_out: endpoint {
2375 remote-endpoint = <&etf_in>;
2376 };
2377 };
2378 };
2379
2380 in-ports {
2381 #address-cells = <1>;
2382 #size-cells = <0>;
2383
2384 port@0 {
2385 reg = <0>;
2386 merge_funnel_in0: endpoint {
2387 remote-endpoint = <&funnel_in0_out>;
2388 };
2389 };
2390
2391 port@1 {
2392 reg = <1>;
2393 merge_funnel_in1: endpoint {
2394 remote-endpoint = <&funnel_in1_out>;
2395 };
2396 };
2397 };
2398 };
2399
2400 etm@9040000 {
2401 compatible = "arm,coresight-etm4x", "arm,primecell";
2402 reg = <0x0 0x09040000 0x0 0x1000>;
2403
2404 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2405 clock-names = "apb_pclk";
2406 arm,coresight-loses-context-with-cpu;
2407
2408 cpu = <&CPU0>;
2409
2410 status = "disabled";
2411
2412 out-ports {
2413 port {
2414 etm0_out: endpoint {
2415 remote-endpoint = <&funnel_apss0_in0>;
2416 };
2417 };
2418 };
2419 };
2420
2421 etm@9140000 {
2422 compatible = "arm,coresight-etm4x", "arm,primecell";
2423 reg = <0x0 0x09140000 0x0 0x1000>;
2424
2425 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2426 clock-names = "apb_pclk";
2427 arm,coresight-loses-context-with-cpu;
2428
2429 cpu = <&CPU1>;
2430
2431 status = "disabled";
2432
2433 out-ports {
2434 port {
2435 etm1_out: endpoint {
2436 remote-endpoint = <&funnel_apss0_in1>;
2437 };
2438 };
2439 };
2440 };
2441
2442 etm@9240000 {
2443 compatible = "arm,coresight-etm4x", "arm,primecell";
2444 reg = <0x0 0x09240000 0x0 0x1000>;
2445
2446 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2447 clock-names = "apb_pclk";
2448 arm,coresight-loses-context-with-cpu;
2449
2450 cpu = <&CPU2>;
2451
2452 status = "disabled";
2453
2454 out-ports {
2455 port {
2456 etm2_out: endpoint {
2457 remote-endpoint = <&funnel_apss0_in2>;
2458 };
2459 };
2460 };
2461 };
2462
2463 etm@9340000 {
2464 compatible = "arm,coresight-etm4x", "arm,primecell";
2465 reg = <0x0 0x09340000 0x0 0x1000>;
2466
2467 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2468 clock-names = "apb_pclk";
2469 arm,coresight-loses-context-with-cpu;
2470
2471 cpu = <&CPU3>;
2472
2473 status = "disabled";
2474
2475 out-ports {
2476 port {
2477 etm3_out: endpoint {
2478 remote-endpoint = <&funnel_apss0_in3>;
2479 };
2480 };
2481 };
2482 };
2483
2484 etm@9440000 {
2485 compatible = "arm,coresight-etm4x", "arm,primecell";
2486 reg = <0x0 0x09440000 0x0 0x1000>;
2487
2488 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2489 clock-names = "apb_pclk";
2490 arm,coresight-loses-context-with-cpu;
2491
2492 cpu = <&CPU4>;
2493
2494 status = "disabled";
2495
2496 out-ports {
2497 port {
2498 etm4_out: endpoint {
2499 remote-endpoint = <&funnel_apss0_in4>;
2500 };
2501 };
2502 };
2503 };
2504
2505 etm@9540000 {
2506 compatible = "arm,coresight-etm4x", "arm,primecell";
2507 reg = <0x0 0x09540000 0x0 0x1000>;
2508
2509 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2510 clock-names = "apb_pclk";
2511 arm,coresight-loses-context-with-cpu;
2512
2513 cpu = <&CPU5>;
2514
2515 status = "disabled";
2516
2517 out-ports {
2518 port {
2519 etm5_out: endpoint {
2520 remote-endpoint = <&funnel_apss0_in5>;
2521 };
2522 };
2523 };
2524 };
2525
2526 etm@9640000 {
2527 compatible = "arm,coresight-etm4x", "arm,primecell";
2528 reg = <0x0 0x09640000 0x0 0x1000>;
2529
2530 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2531 clock-names = "apb_pclk";
2532 arm,coresight-loses-context-with-cpu;
2533
2534 cpu = <&CPU6>;
2535
2536 status = "disabled";
2537
2538 out-ports {
2539 port {
2540 etm6_out: endpoint {
2541 remote-endpoint = <&funnel_apss0_in6>;
2542 };
2543 };
2544 };
2545 };
2546
2547 etm@9740000 {
2548 compatible = "arm,coresight-etm4x", "arm,primecell";
2549 reg = <0x0 0x09740000 0x0 0x1000>;
2550
2551 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2552 clock-names = "apb_pclk";
2553 arm,coresight-loses-context-with-cpu;
2554
2555 cpu = <&CPU7>;
2556
2557 status = "disabled";
2558
2559 out-ports {
2560 port {
2561 etm7_out: endpoint {
2562 remote-endpoint = <&funnel_apss0_in7>;
2563 };
2564 };
2565 };
2566 };
2567
2568 funnel@9800000 {
2569 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
2570 reg = <0x0 0x09800000 0x0 0x1000>;
2571
2572 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2573 clock-names = "apb_pclk";
2574
2575 status = "disabled";
2576
2577 out-ports {
2578 port {
2579 funnel_apss0_out: endpoint {
2580 remote-endpoint = <&funnel_apss1_in>;
2581 };
2582 };
2583 };
2584
2585 in-ports {
2586 #address-cells = <1>;
2587 #size-cells = <0>;
2588
2589 port@0 {
2590 reg = <0>;
2591 funnel_apss0_in0: endpoint {
2592 remote-endpoint = <&etm0_out>;
2593 };
2594 };
2595
2596 port@1 {
2597 reg = <1>;
2598 funnel_apss0_in1: endpoint {
2599 remote-endpoint = <&etm1_out>;
2600 };
2601 };
2602
2603 port@2 {
2604 reg = <2>;
2605 funnel_apss0_in2: endpoint {
2606 remote-endpoint = <&etm2_out>;
2607 };
2608 };
2609
2610 port@3 {
2611 reg = <3>;
2612 funnel_apss0_in3: endpoint {
2613 remote-endpoint = <&etm3_out>;
2614 };
2615 };
2616
2617 port@4 {
2618 reg = <4>;
2619 funnel_apss0_in4: endpoint {
2620 remote-endpoint = <&etm4_out>;
2621 };
2622 };
2623
2624 port@5 {
2625 reg = <5>;
2626 funnel_apss0_in5: endpoint {
2627 remote-endpoint = <&etm5_out>;
2628 };
2629 };
2630
2631 port@6 {
2632 reg = <6>;
2633 funnel_apss0_in6: endpoint {
2634 remote-endpoint = <&etm6_out>;
2635 };
2636 };
2637
2638 port@7 {
2639 reg = <7>;
2640 funnel_apss0_in7: endpoint {
2641 remote-endpoint = <&etm7_out>;
2642 };
2643 };
2644 };
2645 };
2646
2647 funnel@9810000 {
2648 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
2649 reg = <0x0 0x09810000 0x0 0x1000>;
2650
2651 clocks = <&rpmcc RPM_SMD_QDSS_CLK>;
2652 clock-names = "apb_pclk";
2653
2654 status = "disabled";
2655
2656 out-ports {
2657 port {
2658 funnel_apss1_out: endpoint {
2659 remote-endpoint = <&funnel_in1_in>;
2660 };
2661 };
2662 };
2663
2664 in-ports {
2665 port {
2666 funnel_apss1_in: endpoint {
2667 remote-endpoint = <&funnel_apss0_out>;
2668 };
2669 };
2670 };
2671 };
2672
2673 remoteproc_adsp: remoteproc@ab00000 {
2674 compatible = "qcom,sm6115-adsp-pas";
2675 reg = <0x0 0x0ab00000 0x0 0x100>;
2676
2677 interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
2678 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2679 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2680 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2681 <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
2682 interrupt-names = "wdog", "fatal", "ready",
2683 "handover", "stop-ack";
2684
2685 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
2686 clock-names = "xo";
2687
2688 power-domains = <&rpmpd SM6115_VDD_LPI_CX>,
2689 <&rpmpd SM6115_VDD_LPI_MX>;
2690
2691 memory-region = <&pil_adsp_mem>;
2692
2693 qcom,smem-states = <&adsp_smp2p_out 0>;
2694 qcom,smem-state-names = "stop";
2695
2696 status = "disabled";
2697
2698 glink-edge {
2699 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
2700 label = "lpass";
2701 qcom,remote-pid = <2>;
2702 mboxes = <&apcs_glb 8>;
2703
2704 fastrpc {
2705 compatible = "qcom,fastrpc";
2706 qcom,glink-channels = "fastrpcglink-apps-dsp";
2707 label = "adsp";
2708 qcom,non-secure-domain;
2709 #address-cells = <1>;
2710 #size-cells = <0>;
2711
2712 compute-cb@3 {
2713 compatible = "qcom,fastrpc-compute-cb";
2714 reg = <3>;
2715 iommus = <&apps_smmu 0x01c3 0x0>;
2716 };
2717
2718 compute-cb@4 {
2719 compatible = "qcom,fastrpc-compute-cb";
2720 reg = <4>;
2721 iommus = <&apps_smmu 0x01c4 0x0>;
2722 };
2723
2724 compute-cb@5 {
2725 compatible = "qcom,fastrpc-compute-cb";
2726 reg = <5>;
2727 iommus = <&apps_smmu 0x01c5 0x0>;
2728 };
2729
2730 compute-cb@6 {
2731 compatible = "qcom,fastrpc-compute-cb";
2732 reg = <6>;
2733 iommus = <&apps_smmu 0x01c6 0x0>;
2734 };
2735
2736 compute-cb@7 {
2737 compatible = "qcom,fastrpc-compute-cb";
2738 reg = <7>;
2739 iommus = <&apps_smmu 0x01c7 0x0>;
2740 };
2741 };
2742 };
2743 };
2744
2745 remoteproc_cdsp: remoteproc@b300000 {
2746 compatible = "qcom,sm6115-cdsp-pas";
2747 reg = <0x0 0x0b300000 0x0 0x100000>;
2748
2749 interrupts-extended = <&intc GIC_SPI 265 IRQ_TYPE_EDGE_RISING>,
2750 <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2751 <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2752 <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2753 <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
2754 interrupt-names = "wdog", "fatal", "ready",
2755 "handover", "stop-ack";
2756
2757 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
2758 clock-names = "xo";
2759
2760 power-domains = <&rpmpd SM6115_VDDCX>;
2761
2762 memory-region = <&pil_cdsp_mem>;
2763
2764 qcom,smem-states = <&cdsp_smp2p_out 0>;
2765 qcom,smem-state-names = "stop";
2766
2767 status = "disabled";
2768
2769 glink-edge {
2770 interrupts = <GIC_SPI 261 IRQ_TYPE_EDGE_RISING>;
2771 label = "cdsp";
2772 qcom,remote-pid = <5>;
2773 mboxes = <&apcs_glb 28>;
2774
2775 fastrpc {
2776 compatible = "qcom,fastrpc";
2777 qcom,glink-channels = "fastrpcglink-apps-dsp";
2778 label = "cdsp";
2779 qcom,non-secure-domain;
2780 #address-cells = <1>;
2781 #size-cells = <0>;
2782
2783 compute-cb@1 {
2784 compatible = "qcom,fastrpc-compute-cb";
2785 reg = <1>;
2786 iommus = <&apps_smmu 0x0c01 0x0>;
2787 };
2788
2789 compute-cb@2 {
2790 compatible = "qcom,fastrpc-compute-cb";
2791 reg = <2>;
2792 iommus = <&apps_smmu 0x0c02 0x0>;
2793 };
2794
2795 compute-cb@3 {
2796 compatible = "qcom,fastrpc-compute-cb";
2797 reg = <3>;
2798 iommus = <&apps_smmu 0x0c03 0x0>;
2799 };
2800
2801 compute-cb@4 {
2802 compatible = "qcom,fastrpc-compute-cb";
2803 reg = <4>;
2804 iommus = <&apps_smmu 0x0c04 0x0>;
2805 };
2806
2807 compute-cb@5 {
2808 compatible = "qcom,fastrpc-compute-cb";
2809 reg = <5>;
2810 iommus = <&apps_smmu 0x0c05 0x0>;
2811 };
2812
2813 compute-cb@6 {
2814 compatible = "qcom,fastrpc-compute-cb";
2815 reg = <6>;
2816 iommus = <&apps_smmu 0x0c06 0x0>;
2817 };
2818
2819 /* note: secure cb9 in downstream */
2820 };
2821 };
2822 };
2823
2824 apps_smmu: iommu@c600000 {
2825 compatible = "qcom,sm6115-smmu-500", "qcom,smmu-500", "arm,mmu-500";
2826 reg = <0x0 0x0c600000 0x0 0x80000>;
2827 #iommu-cells = <2>;
2828 #global-interrupts = <1>;
2829
2830 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
2831 <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
2832 <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
2833 <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
2834 <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
2835 <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
2836 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
2837 <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
2838 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
2839 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
2840 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
2841 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
2842 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
2843 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
2844 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
2845 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
2846 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
2847 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
2848 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
2849 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
2850 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
2851 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
2852 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
2853 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
2854 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
2855 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
2856 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
2857 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
2858 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
2859 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
2860 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
2861 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
2862 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
2863 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
2864 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
2865 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
2866 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
2867 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
2868 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
2869 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
2870 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
2871 <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
2872 <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
2873 <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
2874 <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
2875 <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
2876 <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
2877 <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
2878 <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
2879 <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
2880 <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
2881 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
2882 <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
2883 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
2884 <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
2885 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
2886 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
2887 <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
2888 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
2889 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
2890 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
2891 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
2892 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
2893 <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
2894 <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
2895 };
2896
2897 wifi: wifi@c800000 {
2898 compatible = "qcom,wcn3990-wifi";
2899 reg = <0x0 0x0c800000 0x0 0x800000>;
2900 reg-names = "membase";
2901 memory-region = <&wlan_msa_mem>;
2902 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
2903 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
2904 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
2905 <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
2906 <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
2907 <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>,
2908 <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>,
2909 <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>,
2910 <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
2911 <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
2912 <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
2913 <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
2914 iommus = <&apps_smmu 0x1a0 0x1>;
2915 qcom,msa-fixed-perm;
2916 status = "disabled";
2917 };
2918
2919 watchdog@f017000 {
2920 compatible = "qcom,apss-wdt-sm6115", "qcom,kpss-wdt";
2921 reg = <0x0 0x0f017000 0x0 0x1000>;
2922 clocks = <&sleep_clk>;
2923 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
2924 };
2925
2926 apcs_glb: mailbox@f111000 {
2927 compatible = "qcom,sm6115-apcs-hmss-global",
2928 "qcom,msm8994-apcs-kpss-global";
2929 reg = <0x0 0x0f111000 0x0 0x1000>;
2930
2931 #mbox-cells = <1>;
2932 };
2933
2934 timer@f120000 {
2935 compatible = "arm,armv7-timer-mem";
2936 reg = <0x0 0x0f120000 0x0 0x1000>;
2937 #address-cells = <2>;
Tom Rini93743d22024-04-01 09:08:13 -04002938 #size-cells = <1>;
2939 ranges = <0x0 0x0 0x0 0x0 0x20000000>;
Tom Rini53633a82024-02-29 12:33:36 -05002940 clock-frequency = <19200000>;
2941
2942 frame@f121000 {
Tom Rini93743d22024-04-01 09:08:13 -04002943 reg = <0x0 0x0f121000 0x1000>, <0x0 0x0f122000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002944 frame-number = <0>;
2945 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
2946 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
2947 };
2948
2949 frame@f123000 {
Tom Rini93743d22024-04-01 09:08:13 -04002950 reg = <0x0 0x0f123000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002951 frame-number = <1>;
2952 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
2953 status = "disabled";
2954 };
2955
2956 frame@f124000 {
Tom Rini93743d22024-04-01 09:08:13 -04002957 reg = <0x0 0x0f124000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002958 frame-number = <2>;
2959 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2960 status = "disabled";
2961 };
2962
2963 frame@f125000 {
Tom Rini93743d22024-04-01 09:08:13 -04002964 reg = <0x0 0x0f125000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002965 frame-number = <3>;
2966 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
2967 status = "disabled";
2968 };
2969
2970 frame@f126000 {
Tom Rini93743d22024-04-01 09:08:13 -04002971 reg = <0x0 0x0f126000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002972 frame-number = <4>;
2973 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
2974 status = "disabled";
2975 };
2976
2977 frame@f127000 {
Tom Rini93743d22024-04-01 09:08:13 -04002978 reg = <0x0 0x0f127000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002979 frame-number = <5>;
2980 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
2981 status = "disabled";
2982 };
2983
2984 frame@f128000 {
Tom Rini93743d22024-04-01 09:08:13 -04002985 reg = <0x0 0x0f128000 0x1000>;
Tom Rini53633a82024-02-29 12:33:36 -05002986 frame-number = <6>;
2987 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
2988 status = "disabled";
2989 };
2990 };
2991
2992 intc: interrupt-controller@f200000 {
2993 compatible = "arm,gic-v3";
2994 reg = <0x0 0x0f200000 0x0 0x10000>,
2995 <0x0 0x0f300000 0x0 0x100000>;
2996 #interrupt-cells = <3>;
2997 interrupt-controller;
2998 interrupt-parent = <&intc>;
2999 #redistributor-regions = <1>;
3000 redistributor-stride = <0x0 0x20000>;
3001 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
3002 };
3003
3004 cpufreq_hw: cpufreq@f521000 {
3005 compatible = "qcom,sm6115-cpufreq-hw", "qcom,cpufreq-hw";
3006 reg = <0x0 0x0f521000 0x0 0x1000>,
3007 <0x0 0x0f523000 0x0 0x1000>;
3008
3009 reg-names = "freq-domain0", "freq-domain1";
3010 clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
3011 clock-names = "xo", "alternate";
3012
3013 #freq-domain-cells = <1>;
3014 #clock-cells = <1>;
3015 };
3016 };
3017
3018 thermal-zones {
3019 mapss-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003020 thermal-sensors = <&tsens0 0>;
3021
3022 trips {
3023 trip-point0 {
3024 temperature = <115000>;
3025 hysteresis = <5000>;
3026 type = "passive";
3027 };
3028
3029 trip-point1 {
3030 temperature = <125000>;
3031 hysteresis = <1000>;
3032 type = "passive";
3033 };
3034 };
3035 };
3036
3037 cdsp-hvx-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003038 thermal-sensors = <&tsens0 1>;
3039
3040 trips {
3041 trip-point0 {
3042 temperature = <115000>;
3043 hysteresis = <5000>;
3044 type = "passive";
3045 };
3046
3047 trip-point1 {
3048 temperature = <125000>;
3049 hysteresis = <1000>;
3050 type = "passive";
3051 };
3052 };
3053 };
3054
3055 wlan-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003056 thermal-sensors = <&tsens0 2>;
3057
3058 trips {
3059 trip-point0 {
3060 temperature = <115000>;
3061 hysteresis = <5000>;
3062 type = "passive";
3063 };
3064
3065 trip-point1 {
3066 temperature = <125000>;
3067 hysteresis = <1000>;
3068 type = "passive";
3069 };
3070 };
3071 };
3072
3073 camera-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003074 thermal-sensors = <&tsens0 3>;
3075
3076 trips {
3077 trip-point0 {
3078 temperature = <115000>;
3079 hysteresis = <5000>;
3080 type = "passive";
3081 };
3082
3083 trip-point1 {
3084 temperature = <125000>;
3085 hysteresis = <1000>;
3086 type = "passive";
3087 };
3088 };
3089 };
3090
3091 video-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003092 thermal-sensors = <&tsens0 4>;
3093
3094 trips {
3095 trip-point0 {
3096 temperature = <115000>;
3097 hysteresis = <5000>;
3098 type = "passive";
3099 };
3100
3101 trip-point1 {
3102 temperature = <125000>;
3103 hysteresis = <1000>;
3104 type = "passive";
3105 };
3106 };
3107 };
3108
3109 modem1-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003110 thermal-sensors = <&tsens0 5>;
3111
3112 trips {
3113 trip-point0 {
3114 temperature = <115000>;
3115 hysteresis = <5000>;
3116 type = "passive";
3117 };
3118
3119 trip-point1 {
3120 temperature = <125000>;
3121 hysteresis = <1000>;
3122 type = "passive";
3123 };
3124 };
3125 };
3126
3127 cpu4-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003128 thermal-sensors = <&tsens0 6>;
3129
3130 trips {
3131 cpu4_alert0: trip-point0 {
3132 temperature = <90000>;
3133 hysteresis = <2000>;
3134 type = "passive";
3135 };
3136
3137 cpu4_alert1: trip-point1 {
3138 temperature = <95000>;
3139 hysteresis = <2000>;
3140 type = "passive";
3141 };
3142
Tom Rini6bb92fc2024-05-20 09:54:58 -06003143 cpu4_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003144 temperature = <110000>;
3145 hysteresis = <1000>;
3146 type = "critical";
3147 };
3148 };
3149 };
3150
3151 cpu5-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003152 thermal-sensors = <&tsens0 7>;
3153
3154 trips {
3155 cpu5_alert0: trip-point0 {
3156 temperature = <90000>;
3157 hysteresis = <2000>;
3158 type = "passive";
3159 };
3160
3161 cpu5_alert1: trip-point1 {
3162 temperature = <95000>;
3163 hysteresis = <2000>;
3164 type = "passive";
3165 };
3166
Tom Rini6bb92fc2024-05-20 09:54:58 -06003167 cpu5_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003168 temperature = <110000>;
3169 hysteresis = <1000>;
3170 type = "critical";
3171 };
3172 };
3173 };
3174
3175 cpu6-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003176 thermal-sensors = <&tsens0 8>;
3177
3178 trips {
3179 cpu6_alert0: trip-point0 {
3180 temperature = <90000>;
3181 hysteresis = <2000>;
3182 type = "passive";
3183 };
3184
3185 cpu6_alert1: trip-point1 {
3186 temperature = <95000>;
3187 hysteresis = <2000>;
3188 type = "passive";
3189 };
3190
Tom Rini6bb92fc2024-05-20 09:54:58 -06003191 cpu6_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003192 temperature = <110000>;
3193 hysteresis = <1000>;
3194 type = "critical";
3195 };
3196 };
3197 };
3198
3199 cpu7-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003200 thermal-sensors = <&tsens0 9>;
3201
3202 trips {
3203 cpu7_alert0: trip-point0 {
3204 temperature = <90000>;
3205 hysteresis = <2000>;
3206 type = "passive";
3207 };
3208
3209 cpu7_alert1: trip-point1 {
3210 temperature = <95000>;
3211 hysteresis = <2000>;
3212 type = "passive";
3213 };
3214
Tom Rini6bb92fc2024-05-20 09:54:58 -06003215 cpu7_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003216 temperature = <110000>;
3217 hysteresis = <1000>;
3218 type = "critical";
3219 };
3220 };
3221 };
3222
3223 cpu45-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003224 thermal-sensors = <&tsens0 10>;
3225
3226 trips {
3227 cpu45_alert0: trip-point0 {
3228 temperature = <90000>;
3229 hysteresis = <2000>;
3230 type = "passive";
3231 };
3232
3233 cpu45_alert1: trip-point1 {
3234 temperature = <95000>;
3235 hysteresis = <2000>;
3236 type = "passive";
3237 };
3238
Tom Rini6bb92fc2024-05-20 09:54:58 -06003239 cpu45_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003240 temperature = <110000>;
3241 hysteresis = <1000>;
3242 type = "critical";
3243 };
3244 };
3245 };
3246
3247 cpu67-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003248 thermal-sensors = <&tsens0 11>;
3249
3250 trips {
3251 cpu67_alert0: trip-point0 {
3252 temperature = <90000>;
3253 hysteresis = <2000>;
3254 type = "passive";
3255 };
3256
3257 cpu67_alert1: trip-point1 {
3258 temperature = <95000>;
3259 hysteresis = <2000>;
3260 type = "passive";
3261 };
3262
Tom Rini6bb92fc2024-05-20 09:54:58 -06003263 cpu67_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003264 temperature = <110000>;
3265 hysteresis = <1000>;
3266 type = "critical";
3267 };
3268 };
3269 };
3270
3271 cpu0123-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003272 thermal-sensors = <&tsens0 12>;
3273
3274 trips {
3275 cpu0123_alert0: trip-point0 {
3276 temperature = <90000>;
3277 hysteresis = <2000>;
3278 type = "passive";
3279 };
3280
3281 cpu0123_alert1: trip-point1 {
3282 temperature = <95000>;
3283 hysteresis = <2000>;
3284 type = "passive";
3285 };
3286
Tom Rini6bb92fc2024-05-20 09:54:58 -06003287 cpu0123_crit: cpu-crit {
Tom Rini53633a82024-02-29 12:33:36 -05003288 temperature = <110000>;
3289 hysteresis = <1000>;
3290 type = "critical";
3291 };
3292 };
3293 };
3294
3295 modem0-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003296 thermal-sensors = <&tsens0 13>;
3297
3298 trips {
3299 trip-point0 {
3300 temperature = <115000>;
3301 hysteresis = <5000>;
3302 type = "passive";
3303 };
3304
3305 trip-point1 {
3306 temperature = <125000>;
3307 hysteresis = <1000>;
3308 type = "passive";
3309 };
3310 };
3311 };
3312
3313 display-thermal {
Tom Rini53633a82024-02-29 12:33:36 -05003314 thermal-sensors = <&tsens0 14>;
3315
3316 trips {
3317 trip-point0 {
3318 temperature = <115000>;
3319 hysteresis = <5000>;
3320 type = "passive";
3321 };
3322
3323 trip-point1 {
3324 temperature = <125000>;
3325 hysteresis = <1000>;
3326 type = "passive";
3327 };
3328 };
3329 };
3330
3331 gpu-thermal {
Tom Rini6b642ac2024-10-01 12:20:28 -06003332 polling-delay-passive = <250>;
3333
Tom Rini53633a82024-02-29 12:33:36 -05003334 thermal-sensors = <&tsens0 15>;
3335
Tom Rini6bb92fc2024-05-20 09:54:58 -06003336 cooling-maps {
3337 map0 {
3338 trip = <&gpu_alert0>;
3339 cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3340 };
3341 };
3342
Tom Rini53633a82024-02-29 12:33:36 -05003343 trips {
Tom Rini6bb92fc2024-05-20 09:54:58 -06003344 gpu_alert0: trip-point0 {
Tom Rini6b642ac2024-10-01 12:20:28 -06003345 temperature = <85000>;
3346 hysteresis = <1000>;
Tom Rini53633a82024-02-29 12:33:36 -05003347 type = "passive";
3348 };
3349
3350 trip-point1 {
Tom Rini6b642ac2024-10-01 12:20:28 -06003351 temperature = <110000>;
Tom Rini53633a82024-02-29 12:33:36 -05003352 hysteresis = <1000>;
Tom Rini6bb92fc2024-05-20 09:54:58 -06003353 type = "critical";
Tom Rini53633a82024-02-29 12:33:36 -05003354 };
3355 };
3356 };
3357 };
3358
3359 timer {
3360 compatible = "arm,armv8-timer";
3361 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
3362 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
3363 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
3364 <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
3365 };
3366};