blob: f7c4700f00c36c19ed287eaa2c6ee1188ca57121 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2020, Linaro Limited
4 */
5
6#include <dt-bindings/interconnect/qcom,sm8350.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/clock/qcom,dispcc-sm8350.h>
9#include <dt-bindings/clock/qcom,gcc-sm8350.h>
10#include <dt-bindings/clock/qcom,gpucc-sm8350.h>
11#include <dt-bindings/clock/qcom,rpmh.h>
12#include <dt-bindings/dma/qcom-gpi.h>
13#include <dt-bindings/firmware/qcom,scm.h>
14#include <dt-bindings/gpio/gpio.h>
Tom Rini762f85b2024-07-20 11:15:10 -060015#include <dt-bindings/interconnect/qcom,icc.h>
Tom Rini53633a82024-02-29 12:33:36 -050016#include <dt-bindings/interconnect/qcom,sm8350.h>
17#include <dt-bindings/mailbox/qcom-ipcc.h>
18#include <dt-bindings/phy/phy-qcom-qmp.h>
19#include <dt-bindings/power/qcom-rpmpd.h>
20#include <dt-bindings/power/qcom,rpmhpd.h>
21#include <dt-bindings/soc/qcom,apr.h>
22#include <dt-bindings/soc/qcom,rpmh-rsc.h>
23#include <dt-bindings/sound/qcom,q6afe.h>
24#include <dt-bindings/thermal/thermal.h>
25#include <dt-bindings/interconnect/qcom,sm8350.h>
26
27/ {
28 interrupt-parent = <&intc>;
29
30 #address-cells = <2>;
31 #size-cells = <2>;
32
33 chosen { };
34
35 clocks {
36 xo_board: xo-board {
37 compatible = "fixed-clock";
38 #clock-cells = <0>;
39 clock-frequency = <38400000>;
40 clock-output-names = "xo_board";
41 };
42
43 sleep_clk: sleep-clk {
44 compatible = "fixed-clock";
45 clock-frequency = <32000>;
46 #clock-cells = <0>;
47 };
48 };
49
50 cpus {
51 #address-cells = <2>;
52 #size-cells = <0>;
53
54 CPU0: cpu@0 {
55 device_type = "cpu";
56 compatible = "arm,cortex-a55";
57 reg = <0x0 0x0>;
58 clocks = <&cpufreq_hw 0>;
59 enable-method = "psci";
60 next-level-cache = <&L2_0>;
61 qcom,freq-domain = <&cpufreq_hw 0>;
62 power-domains = <&CPU_PD0>;
63 power-domain-names = "psci";
64 #cooling-cells = <2>;
65 L2_0: l2-cache {
66 compatible = "cache";
67 cache-level = <2>;
68 cache-unified;
69 next-level-cache = <&L3_0>;
70 L3_0: l3-cache {
71 compatible = "cache";
72 cache-level = <3>;
73 cache-unified;
74 };
75 };
76 };
77
78 CPU1: cpu@100 {
79 device_type = "cpu";
80 compatible = "arm,cortex-a55";
81 reg = <0x0 0x100>;
82 clocks = <&cpufreq_hw 0>;
83 enable-method = "psci";
84 next-level-cache = <&L2_100>;
85 qcom,freq-domain = <&cpufreq_hw 0>;
86 power-domains = <&CPU_PD1>;
87 power-domain-names = "psci";
88 #cooling-cells = <2>;
89 L2_100: l2-cache {
90 compatible = "cache";
91 cache-level = <2>;
92 cache-unified;
93 next-level-cache = <&L3_0>;
94 };
95 };
96
97 CPU2: cpu@200 {
98 device_type = "cpu";
99 compatible = "arm,cortex-a55";
100 reg = <0x0 0x200>;
101 clocks = <&cpufreq_hw 0>;
102 enable-method = "psci";
103 next-level-cache = <&L2_200>;
104 qcom,freq-domain = <&cpufreq_hw 0>;
105 power-domains = <&CPU_PD2>;
106 power-domain-names = "psci";
107 #cooling-cells = <2>;
108 L2_200: l2-cache {
109 compatible = "cache";
110 cache-level = <2>;
111 cache-unified;
112 next-level-cache = <&L3_0>;
113 };
114 };
115
116 CPU3: cpu@300 {
117 device_type = "cpu";
118 compatible = "arm,cortex-a55";
119 reg = <0x0 0x300>;
120 clocks = <&cpufreq_hw 0>;
121 enable-method = "psci";
122 next-level-cache = <&L2_300>;
123 qcom,freq-domain = <&cpufreq_hw 0>;
124 power-domains = <&CPU_PD3>;
125 power-domain-names = "psci";
126 #cooling-cells = <2>;
127 L2_300: l2-cache {
128 compatible = "cache";
129 cache-level = <2>;
130 cache-unified;
131 next-level-cache = <&L3_0>;
132 };
133 };
134
135 CPU4: cpu@400 {
136 device_type = "cpu";
137 compatible = "arm,cortex-a78";
138 reg = <0x0 0x400>;
139 clocks = <&cpufreq_hw 1>;
140 enable-method = "psci";
141 next-level-cache = <&L2_400>;
142 qcom,freq-domain = <&cpufreq_hw 1>;
143 power-domains = <&CPU_PD4>;
144 power-domain-names = "psci";
145 #cooling-cells = <2>;
146 L2_400: l2-cache {
147 compatible = "cache";
148 cache-level = <2>;
149 cache-unified;
150 next-level-cache = <&L3_0>;
151 };
152 };
153
154 CPU5: cpu@500 {
155 device_type = "cpu";
156 compatible = "arm,cortex-a78";
157 reg = <0x0 0x500>;
158 clocks = <&cpufreq_hw 1>;
159 enable-method = "psci";
160 next-level-cache = <&L2_500>;
161 qcom,freq-domain = <&cpufreq_hw 1>;
162 power-domains = <&CPU_PD5>;
163 power-domain-names = "psci";
164 #cooling-cells = <2>;
165 L2_500: l2-cache {
166 compatible = "cache";
167 cache-level = <2>;
168 cache-unified;
169 next-level-cache = <&L3_0>;
170 };
171 };
172
173 CPU6: cpu@600 {
174 device_type = "cpu";
175 compatible = "arm,cortex-a78";
176 reg = <0x0 0x600>;
177 clocks = <&cpufreq_hw 1>;
178 enable-method = "psci";
179 next-level-cache = <&L2_600>;
180 qcom,freq-domain = <&cpufreq_hw 1>;
181 power-domains = <&CPU_PD6>;
182 power-domain-names = "psci";
183 #cooling-cells = <2>;
184 L2_600: l2-cache {
185 compatible = "cache";
186 cache-level = <2>;
187 cache-unified;
188 next-level-cache = <&L3_0>;
189 };
190 };
191
192 CPU7: cpu@700 {
193 device_type = "cpu";
194 compatible = "arm,cortex-x1";
195 reg = <0x0 0x700>;
196 clocks = <&cpufreq_hw 2>;
197 enable-method = "psci";
198 next-level-cache = <&L2_700>;
199 qcom,freq-domain = <&cpufreq_hw 2>;
200 power-domains = <&CPU_PD7>;
201 power-domain-names = "psci";
202 #cooling-cells = <2>;
203 L2_700: l2-cache {
204 compatible = "cache";
205 cache-level = <2>;
206 cache-unified;
207 next-level-cache = <&L3_0>;
208 };
209 };
210
211 cpu-map {
212 cluster0 {
213 core0 {
214 cpu = <&CPU0>;
215 };
216
217 core1 {
218 cpu = <&CPU1>;
219 };
220
221 core2 {
222 cpu = <&CPU2>;
223 };
224
225 core3 {
226 cpu = <&CPU3>;
227 };
228
229 core4 {
230 cpu = <&CPU4>;
231 };
232
233 core5 {
234 cpu = <&CPU5>;
235 };
236
237 core6 {
238 cpu = <&CPU6>;
239 };
240
241 core7 {
242 cpu = <&CPU7>;
243 };
244 };
245 };
246
247 idle-states {
248 entry-method = "psci";
249
250 LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
251 compatible = "arm,idle-state";
252 idle-state-name = "silver-rail-power-collapse";
253 arm,psci-suspend-param = <0x40000004>;
254 entry-latency-us = <360>;
255 exit-latency-us = <531>;
256 min-residency-us = <3934>;
257 local-timer-stop;
258 };
259
260 BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
261 compatible = "arm,idle-state";
262 idle-state-name = "gold-rail-power-collapse";
263 arm,psci-suspend-param = <0x40000004>;
264 entry-latency-us = <702>;
265 exit-latency-us = <1061>;
266 min-residency-us = <4488>;
267 local-timer-stop;
268 };
269 };
270
271 domain-idle-states {
272 CLUSTER_SLEEP_APSS_OFF: cluster-sleep-0 {
273 compatible = "domain-idle-state";
274 arm,psci-suspend-param = <0x41000044>;
275 entry-latency-us = <2752>;
276 exit-latency-us = <3048>;
277 min-residency-us = <6118>;
278 };
279
280 CLUSTER_SLEEP_AOSS_SLEEP: cluster-sleep-1 {
281 compatible = "domain-idle-state";
282 arm,psci-suspend-param = <0x4100c344>;
283 entry-latency-us = <3263>;
284 exit-latency-us = <6562>;
285 min-residency-us = <9987>;
286 };
287 };
288 };
289
290 firmware {
291 scm: scm {
292 compatible = "qcom,scm-sm8350", "qcom,scm";
Tom Rini93743d22024-04-01 09:08:13 -0400293 qcom,dload-mode = <&tcsr 0x13000>;
Tom Rini53633a82024-02-29 12:33:36 -0500294 #reset-cells = <1>;
295 };
296 };
297
298 memory@80000000 {
299 device_type = "memory";
300 /* We expect the bootloader to fill in the size */
301 reg = <0x0 0x80000000 0x0 0x0>;
302 };
303
304 pmu {
305 compatible = "arm,armv8-pmuv3";
306 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
307 };
308
309 psci {
310 compatible = "arm,psci-1.0";
311 method = "smc";
312
313 CPU_PD0: power-domain-cpu0 {
314 #power-domain-cells = <0>;
315 power-domains = <&CLUSTER_PD>;
316 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
317 };
318
319 CPU_PD1: power-domain-cpu1 {
320 #power-domain-cells = <0>;
321 power-domains = <&CLUSTER_PD>;
322 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
323 };
324
325 CPU_PD2: power-domain-cpu2 {
326 #power-domain-cells = <0>;
327 power-domains = <&CLUSTER_PD>;
328 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
329 };
330
331 CPU_PD3: power-domain-cpu3 {
332 #power-domain-cells = <0>;
333 power-domains = <&CLUSTER_PD>;
334 domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
335 };
336
337 CPU_PD4: power-domain-cpu4 {
338 #power-domain-cells = <0>;
339 power-domains = <&CLUSTER_PD>;
340 domain-idle-states = <&BIG_CPU_SLEEP_0>;
341 };
342
343 CPU_PD5: power-domain-cpu5 {
344 #power-domain-cells = <0>;
345 power-domains = <&CLUSTER_PD>;
346 domain-idle-states = <&BIG_CPU_SLEEP_0>;
347 };
348
349 CPU_PD6: power-domain-cpu6 {
350 #power-domain-cells = <0>;
351 power-domains = <&CLUSTER_PD>;
352 domain-idle-states = <&BIG_CPU_SLEEP_0>;
353 };
354
355 CPU_PD7: power-domain-cpu7 {
356 #power-domain-cells = <0>;
357 power-domains = <&CLUSTER_PD>;
358 domain-idle-states = <&BIG_CPU_SLEEP_0>;
359 };
360
361 CLUSTER_PD: power-domain-cpu-cluster0 {
362 #power-domain-cells = <0>;
363 domain-idle-states = <&CLUSTER_SLEEP_APSS_OFF &CLUSTER_SLEEP_AOSS_SLEEP>;
364 };
365 };
366
367 qup_opp_table_100mhz: opp-table-qup100mhz {
368 compatible = "operating-points-v2";
369
370 opp-50000000 {
371 opp-hz = /bits/ 64 <50000000>;
372 required-opps = <&rpmhpd_opp_min_svs>;
373 };
374
375 opp-75000000 {
376 opp-hz = /bits/ 64 <75000000>;
377 required-opps = <&rpmhpd_opp_low_svs>;
378 };
379
380 opp-100000000 {
381 opp-hz = /bits/ 64 <100000000>;
382 required-opps = <&rpmhpd_opp_svs>;
383 };
384 };
385
386 qup_opp_table_120mhz: opp-table-qup120mhz {
387 compatible = "operating-points-v2";
388
389 opp-50000000 {
390 opp-hz = /bits/ 64 <50000000>;
391 required-opps = <&rpmhpd_opp_min_svs>;
392 };
393
394 opp-75000000 {
395 opp-hz = /bits/ 64 <75000000>;
396 required-opps = <&rpmhpd_opp_low_svs>;
397 };
398
399 opp-120000000 {
400 opp-hz = /bits/ 64 <120000000>;
401 required-opps = <&rpmhpd_opp_svs>;
402 };
403 };
404
405 reserved_memory: reserved-memory {
406 #address-cells = <2>;
407 #size-cells = <2>;
408 ranges;
409
410 hyp_mem: memory@80000000 {
411 reg = <0x0 0x80000000 0x0 0x600000>;
412 no-map;
413 };
414
415 xbl_aop_mem: memory@80700000 {
416 no-map;
417 reg = <0x0 0x80700000 0x0 0x160000>;
418 };
419
420 cmd_db: memory@80860000 {
421 compatible = "qcom,cmd-db";
422 reg = <0x0 0x80860000 0x0 0x20000>;
423 no-map;
424 };
425
426 reserved_xbl_uefi_log: memory@80880000 {
427 reg = <0x0 0x80880000 0x0 0x14000>;
428 no-map;
429 };
430
431 smem@80900000 {
432 compatible = "qcom,smem";
433 reg = <0x0 0x80900000 0x0 0x200000>;
434 hwlocks = <&tcsr_mutex 3>;
435 no-map;
436 };
437
438 cpucp_fw_mem: memory@80b00000 {
439 reg = <0x0 0x80b00000 0x0 0x100000>;
440 no-map;
441 };
442
443 cdsp_secure_heap: memory@80c00000 {
444 reg = <0x0 0x80c00000 0x0 0x4600000>;
445 no-map;
446 };
447
448 pil_camera_mem: mmeory@85200000 {
449 reg = <0x0 0x85200000 0x0 0x500000>;
450 no-map;
451 };
452
453 pil_video_mem: memory@85700000 {
454 reg = <0x0 0x85700000 0x0 0x500000>;
455 no-map;
456 };
457
458 pil_cvp_mem: memory@85c00000 {
459 reg = <0x0 0x85c00000 0x0 0x500000>;
460 no-map;
461 };
462
463 pil_adsp_mem: memory@86100000 {
464 reg = <0x0 0x86100000 0x0 0x2100000>;
465 no-map;
466 };
467
468 pil_slpi_mem: memory@88200000 {
469 reg = <0x0 0x88200000 0x0 0x1500000>;
470 no-map;
471 };
472
473 pil_cdsp_mem: memory@89700000 {
474 reg = <0x0 0x89700000 0x0 0x1e00000>;
475 no-map;
476 };
477
478 pil_ipa_fw_mem: memory@8b500000 {
479 reg = <0x0 0x8b500000 0x0 0x10000>;
480 no-map;
481 };
482
483 pil_ipa_gsi_mem: memory@8b510000 {
484 reg = <0x0 0x8b510000 0x0 0xa000>;
485 no-map;
486 };
487
488 pil_gpu_mem: memory@8b51a000 {
489 reg = <0x0 0x8b51a000 0x0 0x2000>;
490 no-map;
491 };
492
493 pil_spss_mem: memory@8b600000 {
494 reg = <0x0 0x8b600000 0x0 0x100000>;
495 no-map;
496 };
497
498 pil_modem_mem: memory@8b800000 {
499 reg = <0x0 0x8b800000 0x0 0x10000000>;
500 no-map;
501 };
502
503 rmtfs_mem: memory@9b800000 {
504 compatible = "qcom,rmtfs-mem";
505 reg = <0x0 0x9b800000 0x0 0x280000>;
506 no-map;
507
508 qcom,client-id = <1>;
509 qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
510 };
511
512 hyp_reserved_mem: memory@d0000000 {
513 reg = <0x0 0xd0000000 0x0 0x800000>;
514 no-map;
515 };
516
517 pil_trustedvm_mem: memory@d0800000 {
518 reg = <0x0 0xd0800000 0x0 0x76f7000>;
519 no-map;
520 };
521
522 qrtr_shbuf: memory@d7ef7000 {
523 reg = <0x0 0xd7ef7000 0x0 0x9000>;
524 no-map;
525 };
526
527 chan0_shbuf: memory@d7f00000 {
528 reg = <0x0 0xd7f00000 0x0 0x80000>;
529 no-map;
530 };
531
532 chan1_shbuf: memory@d7f80000 {
533 reg = <0x0 0xd7f80000 0x0 0x80000>;
534 no-map;
535 };
536
537 removed_mem: memory@d8800000 {
538 reg = <0x0 0xd8800000 0x0 0x6800000>;
539 no-map;
540 };
541 };
542
543 smp2p-adsp {
544 compatible = "qcom,smp2p";
545 qcom,smem = <443>, <429>;
546 interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
547 IPCC_MPROC_SIGNAL_SMP2P
548 IRQ_TYPE_EDGE_RISING>;
549 mboxes = <&ipcc IPCC_CLIENT_LPASS
550 IPCC_MPROC_SIGNAL_SMP2P>;
551
552 qcom,local-pid = <0>;
553 qcom,remote-pid = <2>;
554
555 smp2p_adsp_out: master-kernel {
556 qcom,entry-name = "master-kernel";
557 #qcom,smem-state-cells = <1>;
558 };
559
560 smp2p_adsp_in: slave-kernel {
561 qcom,entry-name = "slave-kernel";
562 interrupt-controller;
563 #interrupt-cells = <2>;
564 };
565 };
566
567 smp2p-cdsp {
568 compatible = "qcom,smp2p";
569 qcom,smem = <94>, <432>;
570 interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
571 IPCC_MPROC_SIGNAL_SMP2P
572 IRQ_TYPE_EDGE_RISING>;
573 mboxes = <&ipcc IPCC_CLIENT_CDSP
574 IPCC_MPROC_SIGNAL_SMP2P>;
575
576 qcom,local-pid = <0>;
577 qcom,remote-pid = <5>;
578
579 smp2p_cdsp_out: master-kernel {
580 qcom,entry-name = "master-kernel";
581 #qcom,smem-state-cells = <1>;
582 };
583
584 smp2p_cdsp_in: slave-kernel {
585 qcom,entry-name = "slave-kernel";
586 interrupt-controller;
587 #interrupt-cells = <2>;
588 };
589 };
590
591 smp2p-modem {
592 compatible = "qcom,smp2p";
593 qcom,smem = <435>, <428>;
594 interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
595 IPCC_MPROC_SIGNAL_SMP2P
596 IRQ_TYPE_EDGE_RISING>;
597 mboxes = <&ipcc IPCC_CLIENT_MPSS
598 IPCC_MPROC_SIGNAL_SMP2P>;
599
600 qcom,local-pid = <0>;
601 qcom,remote-pid = <1>;
602
603 smp2p_modem_out: master-kernel {
604 qcom,entry-name = "master-kernel";
605 #qcom,smem-state-cells = <1>;
606 };
607
608 smp2p_modem_in: slave-kernel {
609 qcom,entry-name = "slave-kernel";
610 interrupt-controller;
611 #interrupt-cells = <2>;
612 };
613
614 ipa_smp2p_out: ipa-ap-to-modem {
615 qcom,entry-name = "ipa";
616 #qcom,smem-state-cells = <1>;
617 };
618
619 ipa_smp2p_in: ipa-modem-to-ap {
620 qcom,entry-name = "ipa";
621 interrupt-controller;
622 #interrupt-cells = <2>;
623 };
624 };
625
626 smp2p-slpi {
627 compatible = "qcom,smp2p";
628 qcom,smem = <481>, <430>;
629 interrupts-extended = <&ipcc IPCC_CLIENT_SLPI
630 IPCC_MPROC_SIGNAL_SMP2P
631 IRQ_TYPE_EDGE_RISING>;
632 mboxes = <&ipcc IPCC_CLIENT_SLPI
633 IPCC_MPROC_SIGNAL_SMP2P>;
634
635 qcom,local-pid = <0>;
636 qcom,remote-pid = <3>;
637
638 smp2p_slpi_out: master-kernel {
639 qcom,entry-name = "master-kernel";
640 #qcom,smem-state-cells = <1>;
641 };
642
643 smp2p_slpi_in: slave-kernel {
644 qcom,entry-name = "slave-kernel";
645 interrupt-controller;
646 #interrupt-cells = <2>;
647 };
648 };
649
650 soc: soc@0 {
651 #address-cells = <2>;
652 #size-cells = <2>;
653 ranges = <0 0 0 0 0x10 0>;
654 dma-ranges = <0 0 0 0 0x10 0>;
655 compatible = "simple-bus";
656
657 gcc: clock-controller@100000 {
658 compatible = "qcom,gcc-sm8350";
659 reg = <0x0 0x00100000 0x0 0x1f0000>;
660 #clock-cells = <1>;
661 #reset-cells = <1>;
662 #power-domain-cells = <1>;
663 clock-names = "bi_tcxo",
664 "sleep_clk",
665 "pcie_0_pipe_clk",
666 "pcie_1_pipe_clk",
667 "ufs_card_rx_symbol_0_clk",
668 "ufs_card_rx_symbol_1_clk",
669 "ufs_card_tx_symbol_0_clk",
670 "ufs_phy_rx_symbol_0_clk",
671 "ufs_phy_rx_symbol_1_clk",
672 "ufs_phy_tx_symbol_0_clk",
673 "usb3_phy_wrapper_gcc_usb30_pipe_clk",
674 "usb3_uni_phy_sec_gcc_usb30_pipe_clk";
675 clocks = <&rpmhcc RPMH_CXO_CLK>,
676 <&sleep_clk>,
677 <&pcie0_phy>,
678 <&pcie1_phy>,
679 <0>,
680 <0>,
681 <0>,
Tom Rini93743d22024-04-01 09:08:13 -0400682 <&ufs_mem_phy 0>,
683 <&ufs_mem_phy 1>,
684 <&ufs_mem_phy 2>,
Tom Rini53633a82024-02-29 12:33:36 -0500685 <&usb_1_qmpphy QMP_USB43DP_USB3_PIPE_CLK>,
686 <0>;
687 };
688
689 ipcc: mailbox@408000 {
690 compatible = "qcom,sm8350-ipcc", "qcom,ipcc";
691 reg = <0 0x00408000 0 0x1000>;
692 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
693 interrupt-controller;
694 #interrupt-cells = <3>;
695 #mbox-cells = <2>;
696 };
697
698 gpi_dma2: dma-controller@800000 {
699 compatible = "qcom,sm8350-gpi-dma", "qcom,sm6350-gpi-dma";
700 reg = <0 0x00800000 0 0x60000>;
701 interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
702 <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>,
703 <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,
704 <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
705 <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,
706 <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,
707 <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
708 <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,
709 <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,
710 <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,
711 <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>,
712 <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH>;
713 dma-channels = <12>;
714 dma-channel-mask = <0xff>;
715 iommus = <&apps_smmu 0x5f6 0x0>;
716 #dma-cells = <3>;
717 status = "disabled";
718 };
719
720 qupv3_id_2: geniqup@8c0000 {
721 compatible = "qcom,geni-se-qup";
722 reg = <0x0 0x008c0000 0x0 0x6000>;
723 clock-names = "m-ahb", "s-ahb";
724 clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
725 <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
726 iommus = <&apps_smmu 0x5e3 0x0>;
727 #address-cells = <2>;
728 #size-cells = <2>;
729 ranges;
730 status = "disabled";
731
732 i2c14: i2c@880000 {
733 compatible = "qcom,geni-i2c";
734 reg = <0 0x00880000 0 0x4000>;
735 clock-names = "se";
736 clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
737 pinctrl-names = "default";
738 pinctrl-0 = <&qup_i2c14_default>;
739 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
740 dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
741 <&gpi_dma2 1 0 QCOM_GPI_I2C>;
742 dma-names = "tx", "rx";
743 #address-cells = <1>;
744 #size-cells = <0>;
745 status = "disabled";
746 };
747
748 spi14: spi@880000 {
749 compatible = "qcom,geni-spi";
750 reg = <0 0x00880000 0 0x4000>;
751 clock-names = "se";
752 clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
753 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
754 power-domains = <&rpmhpd RPMHPD_CX>;
755 operating-points-v2 = <&qup_opp_table_120mhz>;
756 dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
757 <&gpi_dma2 1 0 QCOM_GPI_SPI>;
758 dma-names = "tx", "rx";
759 #address-cells = <1>;
760 #size-cells = <0>;
761 status = "disabled";
762 };
763
764 i2c15: i2c@884000 {
765 compatible = "qcom,geni-i2c";
766 reg = <0 0x00884000 0 0x4000>;
767 clock-names = "se";
768 clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
769 pinctrl-names = "default";
770 pinctrl-0 = <&qup_i2c15_default>;
771 interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
772 dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
773 <&gpi_dma2 1 1 QCOM_GPI_I2C>;
774 dma-names = "tx", "rx";
775 #address-cells = <1>;
776 #size-cells = <0>;
777 status = "disabled";
778 };
779
780 spi15: spi@884000 {
781 compatible = "qcom,geni-spi";
782 reg = <0 0x00884000 0 0x4000>;
783 clock-names = "se";
784 clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
785 interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
786 power-domains = <&rpmhpd RPMHPD_CX>;
787 operating-points-v2 = <&qup_opp_table_120mhz>;
788 dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
789 <&gpi_dma2 1 1 QCOM_GPI_SPI>;
790 dma-names = "tx", "rx";
791 #address-cells = <1>;
792 #size-cells = <0>;
793 status = "disabled";
794 };
795
796 i2c16: i2c@888000 {
797 compatible = "qcom,geni-i2c";
798 reg = <0 0x00888000 0 0x4000>;
799 clock-names = "se";
800 clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
801 pinctrl-names = "default";
802 pinctrl-0 = <&qup_i2c16_default>;
803 interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
804 dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
805 <&gpi_dma2 1 2 QCOM_GPI_I2C>;
806 dma-names = "tx", "rx";
807 #address-cells = <1>;
808 #size-cells = <0>;
809 status = "disabled";
810 };
811
812 spi16: spi@888000 {
813 compatible = "qcom,geni-spi";
814 reg = <0 0x00888000 0 0x4000>;
815 clock-names = "se";
816 clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
817 interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
818 power-domains = <&rpmhpd RPMHPD_CX>;
819 operating-points-v2 = <&qup_opp_table_100mhz>;
820 dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
821 <&gpi_dma2 1 2 QCOM_GPI_SPI>;
822 dma-names = "tx", "rx";
823 #address-cells = <1>;
824 #size-cells = <0>;
825 status = "disabled";
826 };
827
828 i2c17: i2c@88c000 {
829 compatible = "qcom,geni-i2c";
830 reg = <0 0x0088c000 0 0x4000>;
831 clock-names = "se";
832 clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
833 pinctrl-names = "default";
834 pinctrl-0 = <&qup_i2c17_default>;
835 interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
836 dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
837 <&gpi_dma2 1 3 QCOM_GPI_I2C>;
838 dma-names = "tx", "rx";
839 #address-cells = <1>;
840 #size-cells = <0>;
841 status = "disabled";
842 };
843
844 spi17: spi@88c000 {
845 compatible = "qcom,geni-spi";
846 reg = <0 0x0088c000 0 0x4000>;
847 clock-names = "se";
848 clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
849 interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
850 power-domains = <&rpmhpd RPMHPD_CX>;
851 operating-points-v2 = <&qup_opp_table_100mhz>;
852 dmas = <&gpi_dma2 0 3 QCOM_GPI_SPI>,
853 <&gpi_dma2 1 3 QCOM_GPI_SPI>;
854 dma-names = "tx", "rx";
855 #address-cells = <1>;
856 #size-cells = <0>;
857 status = "disabled";
858 };
859
860 /* QUP no. 18 seems to be strictly SPI/UART-only */
861
862 spi18: spi@890000 {
863 compatible = "qcom,geni-spi";
864 reg = <0 0x00890000 0 0x4000>;
865 clock-names = "se";
866 clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
867 interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
868 power-domains = <&rpmhpd RPMHPD_CX>;
869 operating-points-v2 = <&qup_opp_table_100mhz>;
870 dmas = <&gpi_dma2 0 4 QCOM_GPI_SPI>,
871 <&gpi_dma2 1 4 QCOM_GPI_SPI>;
872 dma-names = "tx", "rx";
873 #address-cells = <1>;
874 #size-cells = <0>;
875 status = "disabled";
876 };
877
878 uart18: serial@890000 {
879 compatible = "qcom,geni-uart";
880 reg = <0 0x00890000 0 0x4000>;
881 clock-names = "se";
882 clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
883 pinctrl-names = "default";
884 pinctrl-0 = <&qup_uart18_default>;
885 interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
886 power-domains = <&rpmhpd RPMHPD_CX>;
887 operating-points-v2 = <&qup_opp_table_100mhz>;
888 status = "disabled";
889 };
890
891 i2c19: i2c@894000 {
892 compatible = "qcom,geni-i2c";
893 reg = <0 0x00894000 0 0x4000>;
894 clock-names = "se";
895 clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
896 pinctrl-names = "default";
897 pinctrl-0 = <&qup_i2c19_default>;
898 interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
899 dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
900 <&gpi_dma2 1 5 QCOM_GPI_I2C>;
901 dma-names = "tx", "rx";
902 #address-cells = <1>;
903 #size-cells = <0>;
904 status = "disabled";
905 };
906
907 spi19: spi@894000 {
908 compatible = "qcom,geni-spi";
909 reg = <0 0x00894000 0 0x4000>;
910 clock-names = "se";
911 clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
912 interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
913 power-domains = <&rpmhpd RPMHPD_CX>;
914 operating-points-v2 = <&qup_opp_table_100mhz>;
915 dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
916 <&gpi_dma2 1 5 QCOM_GPI_SPI>;
917 dma-names = "tx", "rx";
918 #address-cells = <1>;
919 #size-cells = <0>;
920 status = "disabled";
921 };
922 };
923
Tom Rini93743d22024-04-01 09:08:13 -0400924 gpi_dma0: dma-controller@900000 {
Tom Rini53633a82024-02-29 12:33:36 -0500925 compatible = "qcom,sm8350-gpi-dma", "qcom,sm6350-gpi-dma";
Tom Rini93743d22024-04-01 09:08:13 -0400926 reg = <0 0x00900000 0 0x60000>;
Tom Rini53633a82024-02-29 12:33:36 -0500927 interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
928 <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
929 <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
930 <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
931 <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
932 <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
933 <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
934 <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
935 <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
936 <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
937 <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
938 <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
939 dma-channels = <12>;
940 dma-channel-mask = <0x7e>;
941 iommus = <&apps_smmu 0x5b6 0x0>;
942 #dma-cells = <3>;
943 status = "disabled";
944 };
945
946 qupv3_id_0: geniqup@9c0000 {
947 compatible = "qcom,geni-se-qup";
948 reg = <0x0 0x009c0000 0x0 0x6000>;
949 clock-names = "m-ahb", "s-ahb";
950 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
951 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
952 iommus = <&apps_smmu 0x5a3 0>;
953 #address-cells = <2>;
954 #size-cells = <2>;
955 ranges;
956 status = "disabled";
957
958 i2c0: i2c@980000 {
959 compatible = "qcom,geni-i2c";
960 reg = <0 0x00980000 0 0x4000>;
961 clock-names = "se";
962 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
963 pinctrl-names = "default";
964 pinctrl-0 = <&qup_i2c0_default>;
965 interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
966 dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
967 <&gpi_dma0 1 0 QCOM_GPI_I2C>;
968 dma-names = "tx", "rx";
969 #address-cells = <1>;
970 #size-cells = <0>;
971 status = "disabled";
972 };
973
974 spi0: spi@980000 {
975 compatible = "qcom,geni-spi";
976 reg = <0 0x00980000 0 0x4000>;
977 clock-names = "se";
978 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
979 interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
980 power-domains = <&rpmhpd RPMHPD_CX>;
981 operating-points-v2 = <&qup_opp_table_100mhz>;
982 dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
983 <&gpi_dma0 1 0 QCOM_GPI_SPI>;
984 dma-names = "tx", "rx";
985 #address-cells = <1>;
986 #size-cells = <0>;
987 status = "disabled";
988 };
989
990 i2c1: i2c@984000 {
991 compatible = "qcom,geni-i2c";
992 reg = <0 0x00984000 0 0x4000>;
993 clock-names = "se";
994 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
995 pinctrl-names = "default";
996 pinctrl-0 = <&qup_i2c1_default>;
997 interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
998 dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
999 <&gpi_dma0 1 1 QCOM_GPI_I2C>;
1000 dma-names = "tx", "rx";
1001 #address-cells = <1>;
1002 #size-cells = <0>;
1003 status = "disabled";
1004 };
1005
1006 spi1: spi@984000 {
1007 compatible = "qcom,geni-spi";
1008 reg = <0 0x00984000 0 0x4000>;
1009 clock-names = "se";
1010 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
1011 interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
1012 power-domains = <&rpmhpd RPMHPD_CX>;
1013 operating-points-v2 = <&qup_opp_table_100mhz>;
1014 dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
1015 <&gpi_dma0 1 1 QCOM_GPI_SPI>;
1016 dma-names = "tx", "rx";
1017 #address-cells = <1>;
1018 #size-cells = <0>;
1019 status = "disabled";
1020 };
1021
1022 i2c2: i2c@988000 {
1023 compatible = "qcom,geni-i2c";
1024 reg = <0 0x00988000 0 0x4000>;
1025 clock-names = "se";
1026 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1027 pinctrl-names = "default";
1028 pinctrl-0 = <&qup_i2c2_default>;
1029 interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
1030 dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
1031 <&gpi_dma0 1 2 QCOM_GPI_I2C>;
1032 dma-names = "tx", "rx";
1033 #address-cells = <1>;
1034 #size-cells = <0>;
1035 status = "disabled";
1036 };
1037
1038 spi2: spi@988000 {
1039 compatible = "qcom,geni-spi";
1040 reg = <0 0x00988000 0 0x4000>;
1041 clock-names = "se";
1042 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
1043 interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
1044 power-domains = <&rpmhpd RPMHPD_CX>;
1045 operating-points-v2 = <&qup_opp_table_100mhz>;
1046 dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
1047 <&gpi_dma0 1 2 QCOM_GPI_SPI>;
1048 dma-names = "tx", "rx";
1049 #address-cells = <1>;
1050 #size-cells = <0>;
1051 status = "disabled";
1052 };
1053
1054 uart2: serial@98c000 {
1055 compatible = "qcom,geni-debug-uart";
1056 reg = <0 0x0098c000 0 0x4000>;
1057 clock-names = "se";
1058 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1059 pinctrl-names = "default";
1060 pinctrl-0 = <&qup_uart3_default_state>;
1061 interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
1062 power-domains = <&rpmhpd RPMHPD_CX>;
1063 operating-points-v2 = <&qup_opp_table_100mhz>;
1064 status = "disabled";
1065 };
1066
1067 /* QUP no. 3 seems to be strictly SPI-only */
1068
1069 spi3: spi@98c000 {
1070 compatible = "qcom,geni-spi";
1071 reg = <0 0x0098c000 0 0x4000>;
1072 clock-names = "se";
1073 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
1074 interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
1075 power-domains = <&rpmhpd RPMHPD_CX>;
1076 operating-points-v2 = <&qup_opp_table_100mhz>;
1077 dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
1078 <&gpi_dma0 1 3 QCOM_GPI_SPI>;
1079 dma-names = "tx", "rx";
1080 #address-cells = <1>;
1081 #size-cells = <0>;
1082 status = "disabled";
1083 };
1084
1085 i2c4: i2c@990000 {
1086 compatible = "qcom,geni-i2c";
1087 reg = <0 0x00990000 0 0x4000>;
1088 clock-names = "se";
1089 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1090 pinctrl-names = "default";
1091 pinctrl-0 = <&qup_i2c4_default>;
1092 interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
1093 dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
1094 <&gpi_dma0 1 4 QCOM_GPI_I2C>;
1095 dma-names = "tx", "rx";
1096 #address-cells = <1>;
1097 #size-cells = <0>;
1098 status = "disabled";
1099 };
1100
1101 spi4: spi@990000 {
1102 compatible = "qcom,geni-spi";
1103 reg = <0 0x00990000 0 0x4000>;
1104 clock-names = "se";
1105 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1106 interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
1107 power-domains = <&rpmhpd RPMHPD_CX>;
1108 operating-points-v2 = <&qup_opp_table_100mhz>;
1109 dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
1110 <&gpi_dma0 1 4 QCOM_GPI_SPI>;
1111 dma-names = "tx", "rx";
1112 #address-cells = <1>;
1113 #size-cells = <0>;
1114 status = "disabled";
1115 };
1116
1117 i2c5: i2c@994000 {
1118 compatible = "qcom,geni-i2c";
1119 reg = <0 0x00994000 0 0x4000>;
1120 clock-names = "se";
1121 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1122 pinctrl-names = "default";
1123 pinctrl-0 = <&qup_i2c5_default>;
1124 interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
1125 dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
1126 <&gpi_dma0 1 5 QCOM_GPI_I2C>;
1127 dma-names = "tx", "rx";
1128 #address-cells = <1>;
1129 #size-cells = <0>;
1130 status = "disabled";
1131 };
1132
1133 spi5: spi@994000 {
1134 compatible = "qcom,geni-spi";
1135 reg = <0 0x00994000 0 0x4000>;
1136 clock-names = "se";
1137 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1138 interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
1139 power-domains = <&rpmhpd RPMHPD_CX>;
1140 operating-points-v2 = <&qup_opp_table_100mhz>;
1141 dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
1142 <&gpi_dma0 1 5 QCOM_GPI_SPI>;
1143 dma-names = "tx", "rx";
1144 #address-cells = <1>;
1145 #size-cells = <0>;
1146 status = "disabled";
1147 };
1148
1149 i2c6: i2c@998000 {
1150 compatible = "qcom,geni-i2c";
1151 reg = <0 0x00998000 0 0x4000>;
1152 clock-names = "se";
1153 clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
1154 pinctrl-names = "default";
1155 pinctrl-0 = <&qup_i2c6_default>;
1156 interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
1157 dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
1158 <&gpi_dma0 1 6 QCOM_GPI_I2C>;
1159 dma-names = "tx", "rx";
1160 #address-cells = <1>;
1161 #size-cells = <0>;
1162 status = "disabled";
1163 };
1164
1165 spi6: spi@998000 {
1166 compatible = "qcom,geni-spi";
1167 reg = <0 0x00998000 0 0x4000>;
1168 clock-names = "se";
1169 clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
1170 interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
1171 power-domains = <&rpmhpd RPMHPD_CX>;
1172 operating-points-v2 = <&qup_opp_table_100mhz>;
1173 dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>,
1174 <&gpi_dma0 1 6 QCOM_GPI_SPI>;
1175 dma-names = "tx", "rx";
1176 #address-cells = <1>;
1177 #size-cells = <0>;
1178 status = "disabled";
1179 };
1180
1181 uart6: serial@998000 {
1182 compatible = "qcom,geni-uart";
1183 reg = <0 0x00998000 0 0x4000>;
1184 clock-names = "se";
1185 clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
1186 pinctrl-names = "default";
1187 pinctrl-0 = <&qup_uart6_default>;
1188 interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
1189 power-domains = <&rpmhpd RPMHPD_CX>;
1190 operating-points-v2 = <&qup_opp_table_100mhz>;
1191 status = "disabled";
1192 };
1193
1194 i2c7: i2c@99c000 {
1195 compatible = "qcom,geni-i2c";
1196 reg = <0 0x0099c000 0 0x4000>;
1197 clock-names = "se";
1198 clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
1199 pinctrl-names = "default";
1200 pinctrl-0 = <&qup_i2c7_default>;
1201 interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
1202 dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>,
1203 <&gpi_dma0 1 7 QCOM_GPI_I2C>;
1204 dma-names = "tx", "rx";
1205 #address-cells = <1>;
1206 #size-cells = <0>;
1207 status = "disabled";
1208 };
1209
1210 spi7: spi@99c000 {
1211 compatible = "qcom,geni-spi";
1212 reg = <0 0x0099c000 0 0x4000>;
1213 clock-names = "se";
1214 clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
1215 interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
1216 power-domains = <&rpmhpd RPMHPD_CX>;
1217 operating-points-v2 = <&qup_opp_table_100mhz>;
1218 dmas = <&gpi_dma0 0 7 QCOM_GPI_SPI>,
1219 <&gpi_dma0 1 7 QCOM_GPI_SPI>;
1220 dma-names = "tx", "rx";
1221 #address-cells = <1>;
1222 #size-cells = <0>;
1223 status = "disabled";
1224 };
1225 };
1226
1227 gpi_dma1: dma-controller@a00000 {
1228 compatible = "qcom,sm8350-gpi-dma", "qcom,sm6350-gpi-dma";
1229 reg = <0 0x00a00000 0 0x60000>;
1230 interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
1231 <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
1232 <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
1233 <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
1234 <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
1235 <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
1236 <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
1237 <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
1238 <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
1239 <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
1240 <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
1241 <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
1242 dma-channels = <12>;
1243 dma-channel-mask = <0xff>;
1244 iommus = <&apps_smmu 0x56 0x0>;
1245 #dma-cells = <3>;
1246 status = "disabled";
1247 };
1248
1249 qupv3_id_1: geniqup@ac0000 {
1250 compatible = "qcom,geni-se-qup";
1251 reg = <0x0 0x00ac0000 0x0 0x6000>;
1252 clock-names = "m-ahb", "s-ahb";
1253 clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
1254 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
1255 iommus = <&apps_smmu 0x43 0>;
1256 #address-cells = <2>;
1257 #size-cells = <2>;
1258 ranges;
1259 status = "disabled";
1260
1261 i2c8: i2c@a80000 {
1262 compatible = "qcom,geni-i2c";
1263 reg = <0 0x00a80000 0 0x4000>;
1264 clock-names = "se";
1265 clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
1266 pinctrl-names = "default";
1267 pinctrl-0 = <&qup_i2c8_default>;
1268 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1269 dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
1270 <&gpi_dma1 1 0 QCOM_GPI_I2C>;
1271 dma-names = "tx", "rx";
1272 #address-cells = <1>;
1273 #size-cells = <0>;
1274 status = "disabled";
1275 };
1276
1277 spi8: spi@a80000 {
1278 compatible = "qcom,geni-spi";
1279 reg = <0 0x00a80000 0 0x4000>;
1280 clock-names = "se";
1281 clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
1282 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1283 power-domains = <&rpmhpd RPMHPD_CX>;
1284 operating-points-v2 = <&qup_opp_table_120mhz>;
1285 dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
1286 <&gpi_dma1 1 0 QCOM_GPI_SPI>;
1287 dma-names = "tx", "rx";
1288 #address-cells = <1>;
1289 #size-cells = <0>;
1290 status = "disabled";
1291 };
1292
1293 i2c9: i2c@a84000 {
1294 compatible = "qcom,geni-i2c";
1295 reg = <0 0x00a84000 0 0x4000>;
1296 clock-names = "se";
1297 clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
1298 pinctrl-names = "default";
1299 pinctrl-0 = <&qup_i2c9_default>;
1300 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1301 dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
1302 <&gpi_dma1 1 1 QCOM_GPI_I2C>;
1303 dma-names = "tx", "rx";
1304 #address-cells = <1>;
1305 #size-cells = <0>;
1306 status = "disabled";
1307 };
1308
1309 spi9: spi@a84000 {
1310 compatible = "qcom,geni-spi";
1311 reg = <0 0x00a84000 0 0x4000>;
1312 clock-names = "se";
1313 clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
1314 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1315 power-domains = <&rpmhpd RPMHPD_CX>;
1316 operating-points-v2 = <&qup_opp_table_100mhz>;
1317 dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
1318 <&gpi_dma1 1 1 QCOM_GPI_SPI>;
1319 dma-names = "tx", "rx";
1320 #address-cells = <1>;
1321 #size-cells = <0>;
1322 status = "disabled";
1323 };
1324
1325 i2c10: i2c@a88000 {
1326 compatible = "qcom,geni-i2c";
1327 reg = <0 0x00a88000 0 0x4000>;
1328 clock-names = "se";
1329 clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
1330 pinctrl-names = "default";
1331 pinctrl-0 = <&qup_i2c10_default>;
1332 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1333 dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
1334 <&gpi_dma1 1 2 QCOM_GPI_I2C>;
1335 dma-names = "tx", "rx";
1336 #address-cells = <1>;
1337 #size-cells = <0>;
1338 status = "disabled";
1339 };
1340
1341 spi10: spi@a88000 {
1342 compatible = "qcom,geni-spi";
1343 reg = <0 0x00a88000 0 0x4000>;
1344 clock-names = "se";
1345 clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
1346 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1347 power-domains = <&rpmhpd RPMHPD_CX>;
1348 operating-points-v2 = <&qup_opp_table_100mhz>;
1349 dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
1350 <&gpi_dma1 1 2 QCOM_GPI_SPI>;
1351 dma-names = "tx", "rx";
1352 #address-cells = <1>;
1353 #size-cells = <0>;
1354 status = "disabled";
1355 };
1356
1357 i2c11: i2c@a8c000 {
1358 compatible = "qcom,geni-i2c";
1359 reg = <0 0x00a8c000 0 0x4000>;
1360 clock-names = "se";
1361 clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
1362 pinctrl-names = "default";
1363 pinctrl-0 = <&qup_i2c11_default>;
1364 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1365 dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
1366 <&gpi_dma1 1 3 QCOM_GPI_I2C>;
1367 dma-names = "tx", "rx";
1368 #address-cells = <1>;
1369 #size-cells = <0>;
1370 status = "disabled";
1371 };
1372
1373 spi11: spi@a8c000 {
1374 compatible = "qcom,geni-spi";
1375 reg = <0 0x00a8c000 0 0x4000>;
1376 clock-names = "se";
1377 clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
1378 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1379 power-domains = <&rpmhpd RPMHPD_CX>;
1380 operating-points-v2 = <&qup_opp_table_100mhz>;
1381 dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
1382 <&gpi_dma1 1 3 QCOM_GPI_SPI>;
1383 dma-names = "tx", "rx";
1384 #address-cells = <1>;
1385 #size-cells = <0>;
1386 status = "disabled";
1387 };
1388
1389 i2c12: i2c@a90000 {
1390 compatible = "qcom,geni-i2c";
1391 reg = <0 0x00a90000 0 0x4000>;
1392 clock-names = "se";
1393 clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
1394 pinctrl-names = "default";
1395 pinctrl-0 = <&qup_i2c12_default>;
1396 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1397 dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
1398 <&gpi_dma1 1 4 QCOM_GPI_I2C>;
1399 dma-names = "tx", "rx";
1400 #address-cells = <1>;
1401 #size-cells = <0>;
1402 status = "disabled";
1403 };
1404
1405 spi12: spi@a90000 {
1406 compatible = "qcom,geni-spi";
1407 reg = <0 0x00a90000 0 0x4000>;
1408 clock-names = "se";
1409 clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
1410 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1411 power-domains = <&rpmhpd RPMHPD_CX>;
1412 operating-points-v2 = <&qup_opp_table_100mhz>;
1413 dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
1414 <&gpi_dma1 1 4 QCOM_GPI_SPI>;
1415 dma-names = "tx", "rx";
1416 #address-cells = <1>;
1417 #size-cells = <0>;
1418 status = "disabled";
1419 };
1420
1421 i2c13: i2c@a94000 {
1422 compatible = "qcom,geni-i2c";
1423 reg = <0 0x00a94000 0 0x4000>;
1424 clock-names = "se";
1425 clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
1426 pinctrl-names = "default";
1427 pinctrl-0 = <&qup_i2c13_default>;
1428 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1429 dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
1430 <&gpi_dma1 1 5 QCOM_GPI_I2C>;
1431 dma-names = "tx", "rx";
1432 #address-cells = <1>;
1433 #size-cells = <0>;
1434 status = "disabled";
1435 };
1436
1437 spi13: spi@a94000 {
1438 compatible = "qcom,geni-spi";
1439 reg = <0 0x00a94000 0 0x4000>;
1440 clock-names = "se";
1441 clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
1442 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1443 power-domains = <&rpmhpd RPMHPD_CX>;
1444 operating-points-v2 = <&qup_opp_table_100mhz>;
1445 dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
1446 <&gpi_dma1 1 5 QCOM_GPI_SPI>;
1447 dma-names = "tx", "rx";
1448 #address-cells = <1>;
1449 #size-cells = <0>;
1450 status = "disabled";
1451 };
1452 };
1453
1454 rng: rng@10d3000 {
1455 compatible = "qcom,prng-ee";
1456 reg = <0 0x010d3000 0 0x1000>;
1457 clocks = <&rpmhcc RPMH_HWKM_CLK>;
1458 clock-names = "core";
1459 };
1460
1461 config_noc: interconnect@1500000 {
1462 compatible = "qcom,sm8350-config-noc";
1463 reg = <0 0x01500000 0 0xa580>;
1464 #interconnect-cells = <2>;
1465 qcom,bcm-voters = <&apps_bcm_voter>;
1466 };
1467
1468 mc_virt: interconnect@1580000 {
1469 compatible = "qcom,sm8350-mc-virt";
1470 reg = <0 0x01580000 0 0x1000>;
1471 #interconnect-cells = <2>;
1472 qcom,bcm-voters = <&apps_bcm_voter>;
1473 };
1474
1475 system_noc: interconnect@1680000 {
1476 compatible = "qcom,sm8350-system-noc";
1477 reg = <0 0x01680000 0 0x1c200>;
1478 #interconnect-cells = <2>;
1479 qcom,bcm-voters = <&apps_bcm_voter>;
1480 };
1481
1482 aggre1_noc: interconnect@16e0000 {
1483 compatible = "qcom,sm8350-aggre1-noc";
1484 reg = <0 0x016e0000 0 0x1f180>;
1485 #interconnect-cells = <2>;
1486 qcom,bcm-voters = <&apps_bcm_voter>;
1487 };
1488
1489 aggre2_noc: interconnect@1700000 {
1490 compatible = "qcom,sm8350-aggre2-noc";
1491 reg = <0 0x01700000 0 0x33000>;
1492 #interconnect-cells = <2>;
1493 qcom,bcm-voters = <&apps_bcm_voter>;
1494 };
1495
1496 mmss_noc: interconnect@1740000 {
1497 compatible = "qcom,sm8350-mmss-noc";
1498 reg = <0 0x01740000 0 0x1f080>;
1499 #interconnect-cells = <2>;
1500 qcom,bcm-voters = <&apps_bcm_voter>;
1501 };
1502
Tom Rini93743d22024-04-01 09:08:13 -04001503 pcie0: pcie@1c00000 {
Tom Rini53633a82024-02-29 12:33:36 -05001504 compatible = "qcom,pcie-sm8350";
1505 reg = <0 0x01c00000 0 0x3000>,
1506 <0 0x60000000 0 0xf1d>,
1507 <0 0x60000f20 0 0xa8>,
1508 <0 0x60001000 0 0x1000>,
1509 <0 0x60100000 0 0x100000>;
1510 reg-names = "parf", "dbi", "elbi", "atu", "config";
1511 device_type = "pci";
1512 linux,pci-domain = <0>;
1513 bus-range = <0x00 0xff>;
1514 num-lanes = <1>;
1515
1516 #address-cells = <3>;
1517 #size-cells = <2>;
1518
1519 ranges = <0x01000000 0x0 0x00000000 0x0 0x60200000 0x0 0x100000>,
1520 <0x02000000 0x0 0x60300000 0x0 0x60300000 0x0 0x3d00000>;
1521
1522 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
1523 <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
1524 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
1525 <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
1526 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1527 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1528 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
1529 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini6bb92fc2024-05-20 09:54:58 -06001530 interrupt-names = "msi0",
1531 "msi1",
1532 "msi2",
1533 "msi3",
1534 "msi4",
1535 "msi5",
1536 "msi6",
1537 "msi7";
Tom Rini53633a82024-02-29 12:33:36 -05001538 #interrupt-cells = <1>;
1539 interrupt-map-mask = <0 0 0 0x7>;
1540 interrupt-map = <0 0 0 1 &intc 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1541 <0 0 0 2 &intc 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1542 <0 0 0 3 &intc 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1543 <0 0 0 4 &intc 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1544
1545 clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
1546 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
1547 <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
1548 <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
1549 <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
1550 <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>,
1551 <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>,
1552 <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>,
1553 <&gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>;
1554 clock-names = "aux",
1555 "cfg",
1556 "bus_master",
1557 "bus_slave",
1558 "slave_q2a",
1559 "tbu",
1560 "ddrss_sf_tbu",
1561 "aggre1",
1562 "aggre0";
1563
1564 iommu-map = <0x0 &apps_smmu 0x1c00 0x1>,
1565 <0x100 &apps_smmu 0x1c01 0x1>;
1566
1567 resets = <&gcc GCC_PCIE_0_BCR>;
1568 reset-names = "pci";
1569
1570 power-domains = <&gcc PCIE_0_GDSC>;
1571
1572 phys = <&pcie0_phy>;
1573 phy-names = "pciephy";
1574
1575 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001576
1577 pcie@0 {
1578 device_type = "pci";
1579 reg = <0x0 0x0 0x0 0x0 0x0>;
1580 bus-range = <0x01 0xff>;
1581
1582 #address-cells = <3>;
1583 #size-cells = <2>;
1584 ranges;
1585 };
Tom Rini53633a82024-02-29 12:33:36 -05001586 };
1587
1588 pcie0_phy: phy@1c06000 {
1589 compatible = "qcom,sm8350-qmp-gen3x1-pcie-phy";
1590 reg = <0 0x01c06000 0 0x2000>;
1591 clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
1592 <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
1593 <&gcc GCC_PCIE_0_CLKREF_EN>,
1594 <&gcc GCC_PCIE0_PHY_RCHNG_CLK>,
1595 <&gcc GCC_PCIE_0_PIPE_CLK>;
1596 clock-names = "aux", "cfg_ahb", "ref", "rchng", "pipe";
1597
1598 resets = <&gcc GCC_PCIE_0_PHY_BCR>;
1599 reset-names = "phy";
1600
1601 assigned-clocks = <&gcc GCC_PCIE0_PHY_RCHNG_CLK>;
1602 assigned-clock-rates = <100000000>;
1603
1604 #clock-cells = <0>;
1605 clock-output-names = "pcie_0_pipe_clk";
1606
1607 #phy-cells = <0>;
1608
1609 status = "disabled";
1610 };
1611
Tom Rini93743d22024-04-01 09:08:13 -04001612 pcie1: pcie@1c08000 {
Tom Rini53633a82024-02-29 12:33:36 -05001613 compatible = "qcom,pcie-sm8350";
1614 reg = <0 0x01c08000 0 0x3000>,
1615 <0 0x40000000 0 0xf1d>,
1616 <0 0x40000f20 0 0xa8>,
1617 <0 0x40001000 0 0x1000>,
1618 <0 0x40100000 0 0x100000>;
1619 reg-names = "parf", "dbi", "elbi", "atu", "config";
1620 device_type = "pci";
1621 linux,pci-domain = <1>;
1622 bus-range = <0x00 0xff>;
1623 num-lanes = <2>;
1624
1625 #address-cells = <3>;
1626 #size-cells = <2>;
1627
1628 ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>,
1629 <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
1630
Tom Rini6bb92fc2024-05-20 09:54:58 -06001631 interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
1632 <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
1633 <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>,
1634 <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
1635 <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
1636 <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
1637 <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
1638 <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1639 interrupt-names = "msi0",
1640 "msi1",
1641 "msi2",
1642 "msi3",
1643 "msi4",
1644 "msi5",
1645 "msi6",
1646 "msi7";
Tom Rini53633a82024-02-29 12:33:36 -05001647 #interrupt-cells = <1>;
1648 interrupt-map-mask = <0 0 0 0x7>;
1649 interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1650 <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1651 <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1652 <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1653
1654 clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
1655 <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
1656 <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
1657 <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
1658 <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
1659 <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>,
1660 <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>,
1661 <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>;
1662 clock-names = "aux",
1663 "cfg",
1664 "bus_master",
1665 "bus_slave",
1666 "slave_q2a",
1667 "tbu",
1668 "ddrss_sf_tbu",
1669 "aggre1";
1670
1671 iommu-map = <0x0 &apps_smmu 0x1c80 0x1>,
1672 <0x100 &apps_smmu 0x1c81 0x1>;
1673
1674 resets = <&gcc GCC_PCIE_1_BCR>;
1675 reset-names = "pci";
1676
1677 power-domains = <&gcc PCIE_1_GDSC>;
1678
1679 phys = <&pcie1_phy>;
1680 phy-names = "pciephy";
1681
1682 status = "disabled";
Tom Rini762f85b2024-07-20 11:15:10 -06001683
1684 pcie@0 {
1685 device_type = "pci";
1686 reg = <0x0 0x0 0x0 0x0 0x0>;
1687 bus-range = <0x01 0xff>;
1688
1689 #address-cells = <3>;
1690 #size-cells = <2>;
1691 ranges;
1692 };
Tom Rini53633a82024-02-29 12:33:36 -05001693 };
1694
1695 pcie1_phy: phy@1c0e000 {
1696 compatible = "qcom,sm8350-qmp-gen3x2-pcie-phy";
1697 reg = <0 0x01c0e000 0 0x2000>;
1698 clocks = <&gcc GCC_PCIE_1_AUX_CLK>,
1699 <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
1700 <&gcc GCC_PCIE_1_CLKREF_EN>,
1701 <&gcc GCC_PCIE1_PHY_RCHNG_CLK>,
1702 <&gcc GCC_PCIE_1_PIPE_CLK>;
1703 clock-names = "aux", "cfg_ahb", "ref", "rchng", "pipe";
1704
1705 resets = <&gcc GCC_PCIE_1_PHY_BCR>;
1706 reset-names = "phy";
1707
1708 assigned-clocks = <&gcc GCC_PCIE1_PHY_RCHNG_CLK>;
1709 assigned-clock-rates = <100000000>;
1710
1711 #clock-cells = <0>;
1712 clock-output-names = "pcie_1_pipe_clk";
1713
1714 #phy-cells = <0>;
1715
1716 status = "disabled";
1717 };
1718
1719 ufs_mem_hc: ufshc@1d84000 {
1720 compatible = "qcom,sm8350-ufshc", "qcom,ufshc",
1721 "jedec,ufs-2.0";
1722 reg = <0 0x01d84000 0 0x3000>;
1723 interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
Tom Rini93743d22024-04-01 09:08:13 -04001724 phys = <&ufs_mem_phy>;
Tom Rini53633a82024-02-29 12:33:36 -05001725 phy-names = "ufsphy";
1726 lanes-per-direction = <2>;
1727 #reset-cells = <1>;
1728 resets = <&gcc GCC_UFS_PHY_BCR>;
1729 reset-names = "rst";
1730
1731 power-domains = <&gcc UFS_PHY_GDSC>;
1732
1733 iommus = <&apps_smmu 0xe0 0x0>;
1734 dma-coherent;
1735
1736 clock-names =
1737 "core_clk",
1738 "bus_aggr_clk",
1739 "iface_clk",
1740 "core_clk_unipro",
1741 "ref_clk",
1742 "tx_lane0_sync_clk",
1743 "rx_lane0_sync_clk",
1744 "rx_lane1_sync_clk";
1745 clocks =
1746 <&gcc GCC_UFS_PHY_AXI_CLK>,
1747 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
1748 <&gcc GCC_UFS_PHY_AHB_CLK>,
1749 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
1750 <&rpmhcc RPMH_CXO_CLK>,
1751 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
1752 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
1753 <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
Tom Rini762f85b2024-07-20 11:15:10 -06001754 interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
1755 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
1756 <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
1757 &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
1758 interconnect-names = "ufs-ddr", "cpu-ufs";
Tom Rini53633a82024-02-29 12:33:36 -05001759 freq-table-hz =
1760 <75000000 300000000>,
1761 <0 0>,
1762 <0 0>,
1763 <75000000 300000000>,
1764 <0 0>,
1765 <0 0>,
1766 <0 0>,
1767 <0 0>;
1768 status = "disabled";
1769 };
1770
1771 ufs_mem_phy: phy@1d87000 {
1772 compatible = "qcom,sm8350-qmp-ufs-phy";
Tom Rini93743d22024-04-01 09:08:13 -04001773 reg = <0 0x01d87000 0 0x1000>;
1774
Tom Rini53633a82024-02-29 12:33:36 -05001775 clocks = <&rpmhcc RPMH_CXO_CLK>,
Tom Rini6bb92fc2024-05-20 09:54:58 -06001776 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
1777 <&gcc GCC_UFS_1_CLKREF_EN>;
1778 clock-names = "ref",
1779 "ref_aux",
1780 "qref";
Tom Rini53633a82024-02-29 12:33:36 -05001781
1782 resets = <&ufs_mem_hc 0>;
1783 reset-names = "ufsphy";
Tom Rini53633a82024-02-29 12:33:36 -05001784
Tom Rini93743d22024-04-01 09:08:13 -04001785 #clock-cells = <1>;
1786 #phy-cells = <0>;
1787
1788 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05001789 };
1790
1791 cryptobam: dma-controller@1dc4000 {
1792 compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
1793 reg = <0 0x01dc4000 0 0x24000>;
1794 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
1795 #dma-cells = <1>;
1796 qcom,ee = <0>;
1797 qcom,controlled-remotely;
1798 iommus = <&apps_smmu 0x594 0x0011>,
1799 <&apps_smmu 0x596 0x0011>;
1800 /* FIXME: Probing BAM DMA causes some abort and system hang */
1801 status = "fail";
1802 };
1803
1804 crypto: crypto@1dfa000 {
1805 compatible = "qcom,sm8350-qce", "qcom,sm8150-qce", "qcom,qce";
1806 reg = <0 0x01dfa000 0 0x6000>;
1807 dmas = <&cryptobam 4>, <&cryptobam 5>;
1808 dma-names = "rx", "tx";
1809 iommus = <&apps_smmu 0x594 0x0011>,
1810 <&apps_smmu 0x596 0x0011>;
1811 interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
1812 interconnect-names = "memory";
1813 /* FIXME: dependency BAM DMA is disabled */
1814 status = "disabled";
1815 };
1816
1817 ipa: ipa@1e40000 {
1818 compatible = "qcom,sm8350-ipa";
1819
1820 iommus = <&apps_smmu 0x5c0 0x0>,
1821 <&apps_smmu 0x5c2 0x0>;
1822 reg = <0 0x01e40000 0 0x8000>,
1823 <0 0x01e50000 0 0x4b20>,
1824 <0 0x01e04000 0 0x23000>;
1825 reg-names = "ipa-reg",
1826 "ipa-shared",
1827 "gsi";
1828
1829 interrupts-extended = <&intc GIC_SPI 655 IRQ_TYPE_EDGE_RISING>,
1830 <&intc GIC_SPI 432 IRQ_TYPE_LEVEL_HIGH>,
1831 <&ipa_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1832 <&ipa_smp2p_in 1 IRQ_TYPE_EDGE_RISING>;
1833 interrupt-names = "ipa",
1834 "gsi",
1835 "ipa-clock-query",
1836 "ipa-setup-ready";
1837
1838 clocks = <&rpmhcc RPMH_IPA_CLK>;
1839 clock-names = "core";
1840
1841 interconnects = <&aggre2_noc MASTER_IPA 0 &mc_virt SLAVE_EBI1 0>,
1842 <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_IPA_CFG 0>;
1843 interconnect-names = "memory",
1844 "config";
1845
1846 qcom,qmp = <&aoss_qmp>;
1847
1848 qcom,smem-states = <&ipa_smp2p_out 0>,
1849 <&ipa_smp2p_out 1>;
1850 qcom,smem-state-names = "ipa-clock-enabled-valid",
1851 "ipa-clock-enabled";
1852
1853 status = "disabled";
1854 };
1855
1856 tcsr_mutex: hwlock@1f40000 {
1857 compatible = "qcom,tcsr-mutex";
1858 reg = <0x0 0x01f40000 0x0 0x40000>;
1859 #hwlock-cells = <1>;
1860 };
1861
Tom Rini93743d22024-04-01 09:08:13 -04001862 tcsr: syscon@1fc0000 {
1863 compatible = "qcom,sm8350-tcsr", "syscon";
1864 reg = <0x0 0x1fc0000 0x0 0x30000>;
1865 };
1866
Tom Rini53633a82024-02-29 12:33:36 -05001867 lpass_tlmm: pinctrl@33c0000 {
1868 compatible = "qcom,sm8350-lpass-lpi-pinctrl";
1869 reg = <0 0x033c0000 0 0x20000>,
1870 <0 0x03550000 0 0x10000>;
1871
1872 clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
1873 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
1874 clock-names = "core", "audio";
1875
1876 gpio-controller;
1877 #gpio-cells = <2>;
1878 gpio-ranges = <&lpass_tlmm 0 0 15>;
1879 };
1880
1881 gpu: gpu@3d00000 {
1882 compatible = "qcom,adreno-660.1", "qcom,adreno";
1883
1884 reg = <0 0x03d00000 0 0x40000>,
1885 <0 0x03d9e000 0 0x1000>,
1886 <0 0x03d61000 0 0x800>;
1887 reg-names = "kgsl_3d0_reg_memory",
1888 "cx_mem",
1889 "cx_dbgc";
1890
1891 interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1892
1893 iommus = <&adreno_smmu 0 0x400>, <&adreno_smmu 1 0x400>;
1894
1895 operating-points-v2 = <&gpu_opp_table>;
1896
1897 qcom,gmu = <&gmu>;
Tom Rini6bb92fc2024-05-20 09:54:58 -06001898 #cooling-cells = <2>;
Tom Rini53633a82024-02-29 12:33:36 -05001899
1900 status = "disabled";
1901
1902 zap-shader {
1903 memory-region = <&pil_gpu_mem>;
1904 };
1905
1906 /* note: downstream checks gpu binning for 670 Mhz */
1907 gpu_opp_table: opp-table {
1908 compatible = "operating-points-v2";
1909
1910 opp-840000000 {
1911 opp-hz = /bits/ 64 <840000000>;
1912 opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1913 };
1914
1915 opp-778000000 {
1916 opp-hz = /bits/ 64 <778000000>;
1917 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1918 };
1919
1920 opp-738000000 {
1921 opp-hz = /bits/ 64 <738000000>;
1922 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1923 };
1924
1925 opp-676000000 {
1926 opp-hz = /bits/ 64 <676000000>;
1927 opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1928 };
1929
1930 opp-608000000 {
1931 opp-hz = /bits/ 64 <608000000>;
1932 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
1933 };
1934
1935 opp-540000000 {
1936 opp-hz = /bits/ 64 <540000000>;
1937 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1938 };
1939
1940 opp-491000000 {
1941 opp-hz = /bits/ 64 <491000000>;
1942 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
1943 };
1944
1945 opp-443000000 {
1946 opp-hz = /bits/ 64 <443000000>;
1947 opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1948 };
1949
1950 opp-379000000 {
1951 opp-hz = /bits/ 64 <379000000>;
1952 opp-level = <80 /* RPMH_REGULATOR_LEVEL_LOW_SVS_L1 */>;
1953 };
1954
1955 opp-315000000 {
1956 opp-hz = /bits/ 64 <315000000>;
1957 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1958 };
1959 };
1960 };
1961
1962 gmu: gmu@3d6a000 {
1963 compatible = "qcom,adreno-gmu-660.1", "qcom,adreno-gmu";
1964
1965 reg = <0 0x03d6a000 0 0x34000>,
1966 <0 0x03de0000 0 0x10000>,
1967 <0 0x0b290000 0 0x10000>;
1968 reg-names = "gmu", "rscc", "gmu_pdc";
1969
1970 interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
1971 <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
1972 interrupt-names = "hfi", "gmu";
1973
1974 clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
1975 <&gpucc GPU_CC_CXO_CLK>,
1976 <&gcc GCC_DDRSS_GPU_AXI_CLK>,
1977 <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
1978 <&gpucc GPU_CC_AHB_CLK>,
1979 <&gpucc GPU_CC_HUB_CX_INT_CLK>,
1980 <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
1981 clock-names = "gmu",
1982 "cxo",
1983 "axi",
1984 "memnoc",
1985 "ahb",
1986 "hub",
1987 "smmu_vote";
1988
1989 power-domains = <&gpucc GPU_CX_GDSC>,
1990 <&gpucc GPU_GX_GDSC>;
1991 power-domain-names = "cx",
1992 "gx";
1993
1994 iommus = <&adreno_smmu 5 0x400>;
1995
1996 operating-points-v2 = <&gmu_opp_table>;
1997
1998 gmu_opp_table: opp-table {
1999 compatible = "operating-points-v2";
2000
2001 opp-200000000 {
2002 opp-hz = /bits/ 64 <200000000>;
2003 opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
2004 };
2005 };
2006 };
2007
2008 gpucc: clock-controller@3d90000 {
2009 compatible = "qcom,sm8350-gpucc";
2010 reg = <0 0x03d90000 0 0x9000>;
2011 clocks = <&rpmhcc RPMH_CXO_CLK>,
2012 <&gcc GCC_GPU_GPLL0_CLK_SRC>,
2013 <&gcc GCC_GPU_GPLL0_DIV_CLK_SRC>;
2014 clock-names = "bi_tcxo",
2015 "gcc_gpu_gpll0_clk_src",
2016 "gcc_gpu_gpll0_div_clk_src";
2017 #clock-cells = <1>;
2018 #reset-cells = <1>;
2019 #power-domain-cells = <1>;
2020 };
2021
2022 adreno_smmu: iommu@3da0000 {
2023 compatible = "qcom,sm8350-smmu-500", "qcom,adreno-smmu",
2024 "qcom,smmu-500", "arm,mmu-500";
2025 reg = <0 0x03da0000 0 0x20000>;
2026 #iommu-cells = <2>;
2027 #global-interrupts = <2>;
2028 interrupts = <GIC_SPI 672 IRQ_TYPE_LEVEL_HIGH>,
2029 <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>,
2030 <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
2031 <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
2032 <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
2033 <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
2034 <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
2035 <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
2036 <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
2037 <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
2038 <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
2039 <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>;
2040
2041 clocks = <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
2042 <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>,
2043 <&gpucc GPU_CC_AHB_CLK>,
2044 <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
2045 <&gpucc GPU_CC_CX_GMU_CLK>,
2046 <&gpucc GPU_CC_HUB_CX_INT_CLK>,
2047 <&gpucc GPU_CC_HUB_AON_CLK>;
2048 clock-names = "bus",
2049 "iface",
2050 "ahb",
2051 "hlos1_vote_gpu_smmu",
2052 "cx_gmu",
2053 "hub_cx_int",
2054 "hub_aon";
2055
2056 power-domains = <&gpucc GPU_CX_GDSC>;
2057 dma-coherent;
2058 };
2059
2060 lpass_ag_noc: interconnect@3c40000 {
2061 compatible = "qcom,sm8350-lpass-ag-noc";
2062 reg = <0 0x03c40000 0 0xf080>;
2063 #interconnect-cells = <2>;
2064 qcom,bcm-voters = <&apps_bcm_voter>;
2065 };
2066
2067 mpss: remoteproc@4080000 {
2068 compatible = "qcom,sm8350-mpss-pas";
2069 reg = <0x0 0x04080000 0x0 0x4040>;
2070
Tom Rini93743d22024-04-01 09:08:13 -04002071 interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_EDGE_RISING>,
Tom Rini53633a82024-02-29 12:33:36 -05002072 <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
2073 <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
2074 <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
2075 <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
2076 <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
2077 interrupt-names = "wdog", "fatal", "ready", "handover",
2078 "stop-ack", "shutdown-ack";
2079
2080 clocks = <&rpmhcc RPMH_CXO_CLK>;
2081 clock-names = "xo";
2082
2083 power-domains = <&rpmhpd RPMHPD_CX>,
2084 <&rpmhpd RPMHPD_MSS>;
2085 power-domain-names = "cx", "mss";
2086
2087 interconnects = <&mc_virt MASTER_LLCC 0 &mc_virt SLAVE_EBI1 0>;
2088
2089 memory-region = <&pil_modem_mem>;
2090
2091 qcom,qmp = <&aoss_qmp>;
2092
2093 qcom,smem-states = <&smp2p_modem_out 0>;
2094 qcom,smem-state-names = "stop";
2095
2096 status = "disabled";
2097
2098 glink-edge {
2099 interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
2100 IPCC_MPROC_SIGNAL_GLINK_QMP
2101 IRQ_TYPE_EDGE_RISING>;
2102 mboxes = <&ipcc IPCC_CLIENT_MPSS
2103 IPCC_MPROC_SIGNAL_GLINK_QMP>;
2104 label = "modem";
2105 qcom,remote-pid = <1>;
2106 };
2107 };
2108
2109 slpi: remoteproc@5c00000 {
2110 compatible = "qcom,sm8350-slpi-pas";
2111 reg = <0 0x05c00000 0 0x4000>;
2112
Tom Rini93743d22024-04-01 09:08:13 -04002113 interrupts-extended = <&pdc 9 IRQ_TYPE_EDGE_RISING>,
Tom Rini53633a82024-02-29 12:33:36 -05002114 <&smp2p_slpi_in 0 IRQ_TYPE_EDGE_RISING>,
2115 <&smp2p_slpi_in 1 IRQ_TYPE_EDGE_RISING>,
2116 <&smp2p_slpi_in 2 IRQ_TYPE_EDGE_RISING>,
2117 <&smp2p_slpi_in 3 IRQ_TYPE_EDGE_RISING>;
2118 interrupt-names = "wdog", "fatal", "ready",
2119 "handover", "stop-ack";
2120
2121 clocks = <&rpmhcc RPMH_CXO_CLK>;
2122 clock-names = "xo";
2123
2124 power-domains = <&rpmhpd RPMHPD_LCX>,
2125 <&rpmhpd RPMHPD_LMX>;
2126 power-domain-names = "lcx", "lmx";
2127
2128 memory-region = <&pil_slpi_mem>;
2129
2130 qcom,qmp = <&aoss_qmp>;
2131
2132 qcom,smem-states = <&smp2p_slpi_out 0>;
2133 qcom,smem-state-names = "stop";
2134
2135 status = "disabled";
2136
2137 glink-edge {
2138 interrupts-extended = <&ipcc IPCC_CLIENT_SLPI
2139 IPCC_MPROC_SIGNAL_GLINK_QMP
2140 IRQ_TYPE_EDGE_RISING>;
2141 mboxes = <&ipcc IPCC_CLIENT_SLPI
2142 IPCC_MPROC_SIGNAL_GLINK_QMP>;
2143
2144 label = "slpi";
2145 qcom,remote-pid = <3>;
2146
2147 fastrpc {
2148 compatible = "qcom,fastrpc";
2149 qcom,glink-channels = "fastrpcglink-apps-dsp";
2150 label = "sdsp";
2151 qcom,non-secure-domain;
2152 #address-cells = <1>;
2153 #size-cells = <0>;
2154
2155 compute-cb@1 {
2156 compatible = "qcom,fastrpc-compute-cb";
2157 reg = <1>;
2158 iommus = <&apps_smmu 0x0541 0x0>;
2159 };
2160
2161 compute-cb@2 {
2162 compatible = "qcom,fastrpc-compute-cb";
2163 reg = <2>;
2164 iommus = <&apps_smmu 0x0542 0x0>;
2165 };
2166
2167 compute-cb@3 {
2168 compatible = "qcom,fastrpc-compute-cb";
2169 reg = <3>;
2170 iommus = <&apps_smmu 0x0543 0x0>;
2171 /* note: shared-cb = <4> in downstream */
2172 };
2173 };
2174 };
2175 };
2176
2177 sdhc_2: mmc@8804000 {
2178 compatible = "qcom,sm8350-sdhci", "qcom,sdhci-msm-v5";
2179 reg = <0 0x08804000 0 0x1000>;
2180
2181 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
2182 <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
2183 interrupt-names = "hc_irq", "pwr_irq";
2184
2185 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
2186 <&gcc GCC_SDCC2_APPS_CLK>,
2187 <&rpmhcc RPMH_CXO_CLK>;
2188 clock-names = "iface", "core", "xo";
2189 resets = <&gcc GCC_SDCC2_BCR>;
2190 interconnects = <&aggre2_noc MASTER_SDCC_2 0 &mc_virt SLAVE_EBI1 0>,
2191 <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_SDCC_2 0>;
2192 interconnect-names = "sdhc-ddr","cpu-sdhc";
2193 iommus = <&apps_smmu 0x4a0 0x0>;
2194 power-domains = <&rpmhpd RPMHPD_CX>;
2195 operating-points-v2 = <&sdhc2_opp_table>;
2196 bus-width = <4>;
2197 dma-coherent;
2198
2199 status = "disabled";
2200
2201 sdhc2_opp_table: opp-table {
2202 compatible = "operating-points-v2";
2203
2204 opp-100000000 {
2205 opp-hz = /bits/ 64 <100000000>;
2206 required-opps = <&rpmhpd_opp_low_svs>;
2207 };
2208
2209 opp-202000000 {
2210 opp-hz = /bits/ 64 <202000000>;
2211 required-opps = <&rpmhpd_opp_svs_l1>;
2212 };
2213 };
2214 };
2215
2216 usb_1_hsphy: phy@88e3000 {
2217 compatible = "qcom,sm8350-usb-hs-phy",
2218 "qcom,usb-snps-hs-7nm-phy";
2219 reg = <0 0x088e3000 0 0x400>;
2220 status = "disabled";
2221 #phy-cells = <0>;
2222
2223 clocks = <&rpmhcc RPMH_CXO_CLK>;
2224 clock-names = "ref";
2225
2226 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
2227 };
2228
2229 usb_2_hsphy: phy@88e4000 {
2230 compatible = "qcom,sm8250-usb-hs-phy",
2231 "qcom,usb-snps-hs-7nm-phy";
2232 reg = <0 0x088e4000 0 0x400>;
2233 status = "disabled";
2234 #phy-cells = <0>;
2235
2236 clocks = <&rpmhcc RPMH_CXO_CLK>;
2237 clock-names = "ref";
2238
2239 resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
2240 };
2241
2242 usb_1_qmpphy: phy@88e8000 {
2243 compatible = "qcom,sm8350-qmp-usb3-dp-phy";
2244 reg = <0 0x088e8000 0 0x3000>;
2245
2246 clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
2247 <&rpmhcc RPMH_CXO_CLK>,
2248 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
2249 <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
2250 clock-names = "aux", "ref", "com_aux", "usb3_pipe";
2251
2252 resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
2253 <&gcc GCC_USB3_PHY_PRIM_BCR>;
2254 reset-names = "phy", "common";
2255
2256 #clock-cells = <1>;
2257 #phy-cells = <1>;
2258
2259 status = "disabled";
2260
2261 ports {
2262 #address-cells = <1>;
2263 #size-cells = <0>;
2264
2265 port@0 {
2266 reg = <0>;
2267
2268 usb_1_qmpphy_out: endpoint {
2269 };
2270 };
2271
2272 port@1 {
2273 reg = <1>;
2274
2275 usb_1_qmpphy_usb_ss_in: endpoint {
2276 };
2277 };
2278
2279 port@2 {
2280 reg = <2>;
2281
2282 usb_1_qmpphy_dp_in: endpoint {
2283 };
2284 };
2285 };
2286 };
2287
Tom Rini93743d22024-04-01 09:08:13 -04002288 usb_2_qmpphy: phy@88eb000 {
Tom Rini53633a82024-02-29 12:33:36 -05002289 compatible = "qcom,sm8350-qmp-usb3-uni-phy";
Tom Rini93743d22024-04-01 09:08:13 -04002290 reg = <0 0x088eb000 0 0x2000>;
Tom Rini53633a82024-02-29 12:33:36 -05002291 status = "disabled";
Tom Rini53633a82024-02-29 12:33:36 -05002292
2293 clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
Tom Rini53633a82024-02-29 12:33:36 -05002294 <&gcc GCC_USB3_SEC_CLKREF_EN>,
Tom Rini93743d22024-04-01 09:08:13 -04002295 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>,
2296 <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
2297 clock-names = "aux",
2298 "ref",
2299 "com_aux",
2300 "pipe";
2301 clock-output-names = "usb3_uni_phy_pipe_clk_src";
2302 #clock-cells = <0>;
2303 #phy-cells = <0>;
Tom Rini53633a82024-02-29 12:33:36 -05002304
Tom Rini93743d22024-04-01 09:08:13 -04002305 resets = <&gcc GCC_USB3_PHY_SEC_BCR>,
2306 <&gcc GCC_USB3PHY_PHY_SEC_BCR>;
2307 reset-names = "phy",
2308 "phy_phy";
Tom Rini53633a82024-02-29 12:33:36 -05002309 };
2310
2311 dc_noc: interconnect@90c0000 {
2312 compatible = "qcom,sm8350-dc-noc";
2313 reg = <0 0x090c0000 0 0x4200>;
2314 #interconnect-cells = <2>;
2315 qcom,bcm-voters = <&apps_bcm_voter>;
2316 };
2317
2318 gem_noc: interconnect@9100000 {
2319 compatible = "qcom,sm8350-gem-noc";
2320 reg = <0 0x09100000 0 0xb4000>;
2321 #interconnect-cells = <2>;
2322 qcom,bcm-voters = <&apps_bcm_voter>;
2323 };
2324
2325 system-cache-controller@9200000 {
2326 compatible = "qcom,sm8350-llcc";
2327 reg = <0 0x09200000 0 0x58000>, <0 0x09280000 0 0x58000>,
2328 <0 0x09300000 0 0x58000>, <0 0x09380000 0 0x58000>,
2329 <0 0x09600000 0 0x58000>;
2330 reg-names = "llcc0_base", "llcc1_base", "llcc2_base",
2331 "llcc3_base", "llcc_broadcast_base";
2332 };
2333
2334 compute_noc: interconnect@a0c0000 {
2335 compatible = "qcom,sm8350-compute-noc";
2336 reg = <0 0x0a0c0000 0 0xa180>;
2337 #interconnect-cells = <2>;
2338 qcom,bcm-voters = <&apps_bcm_voter>;
2339 };
2340
2341 usb_1: usb@a6f8800 {
2342 compatible = "qcom,sm8350-dwc3", "qcom,dwc3";
2343 reg = <0 0x0a6f8800 0 0x400>;
2344 status = "disabled";
2345 #address-cells = <2>;
2346 #size-cells = <2>;
2347 ranges;
2348
2349 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
2350 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
2351 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
2352 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
2353 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
2354 clock-names = "cfg_noc",
2355 "core",
2356 "iface",
2357 "sleep",
2358 "mock_utmi";
2359
2360 assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
2361 <&gcc GCC_USB30_PRIM_MASTER_CLK>;
2362 assigned-clock-rates = <19200000>, <200000000>;
2363
Tom Rini6bb92fc2024-05-20 09:54:58 -06002364 interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
2365 <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
2366 <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
Tom Rini53633a82024-02-29 12:33:36 -05002367 <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
Tom Rini6bb92fc2024-05-20 09:54:58 -06002368 <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
2369 interrupt-names = "pwr_event",
2370 "hs_phy_irq",
2371 "dp_hs_phy_irq",
Tom Rini53633a82024-02-29 12:33:36 -05002372 "dm_hs_phy_irq",
Tom Rini6bb92fc2024-05-20 09:54:58 -06002373 "ss_phy_irq";
Tom Rini53633a82024-02-29 12:33:36 -05002374
2375 power-domains = <&gcc USB30_PRIM_GDSC>;
2376
2377 resets = <&gcc GCC_USB30_PRIM_BCR>;
2378
2379 interconnects = <&aggre1_noc MASTER_USB3_0 0 &mc_virt SLAVE_EBI1 0>,
2380 <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_0 0>;
2381 interconnect-names = "usb-ddr", "apps-usb";
2382
2383 usb_1_dwc3: usb@a600000 {
2384 compatible = "snps,dwc3";
2385 reg = <0 0x0a600000 0 0xcd00>;
2386 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
2387 iommus = <&apps_smmu 0x0 0x0>;
2388 snps,dis_u2_susphy_quirk;
2389 snps,dis_enblslpm_quirk;
2390 phys = <&usb_1_hsphy>, <&usb_1_qmpphy QMP_USB43DP_USB3_PHY>;
2391 phy-names = "usb2-phy", "usb3-phy";
2392
2393 ports {
2394 #address-cells = <1>;
2395 #size-cells = <0>;
2396
2397 port@0 {
2398 reg = <0>;
2399
2400 usb_1_dwc3_hs: endpoint {
2401 };
2402 };
2403
2404 port@1 {
2405 reg = <1>;
2406
2407 usb_1_dwc3_ss: endpoint {
2408 };
2409 };
2410 };
2411 };
2412 };
2413
2414 usb_2: usb@a8f8800 {
2415 compatible = "qcom,sm8350-dwc3", "qcom,dwc3";
2416 reg = <0 0x0a8f8800 0 0x400>;
2417 status = "disabled";
2418 #address-cells = <2>;
2419 #size-cells = <2>;
2420 ranges;
2421
2422 clocks = <&gcc GCC_CFG_NOC_USB3_SEC_AXI_CLK>,
2423 <&gcc GCC_USB30_SEC_MASTER_CLK>,
2424 <&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>,
2425 <&gcc GCC_USB30_SEC_SLEEP_CLK>,
2426 <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
2427 <&gcc GCC_USB3_SEC_CLKREF_EN>;
2428 clock-names = "cfg_noc",
2429 "core",
2430 "iface",
2431 "sleep",
2432 "mock_utmi",
2433 "xo";
2434
2435 assigned-clocks = <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
2436 <&gcc GCC_USB30_SEC_MASTER_CLK>;
2437 assigned-clock-rates = <19200000>, <200000000>;
2438
Tom Rini6bb92fc2024-05-20 09:54:58 -06002439 interrupts-extended = <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
2440 <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
2441 <&pdc 12 IRQ_TYPE_EDGE_BOTH>,
Tom Rini53633a82024-02-29 12:33:36 -05002442 <&pdc 13 IRQ_TYPE_EDGE_BOTH>,
Tom Rini6bb92fc2024-05-20 09:54:58 -06002443 <&pdc 16 IRQ_TYPE_LEVEL_HIGH>;
2444 interrupt-names = "pwr_event",
2445 "hs_phy_irq",
2446 "dp_hs_phy_irq",
Tom Rini53633a82024-02-29 12:33:36 -05002447 "dm_hs_phy_irq",
Tom Rini6bb92fc2024-05-20 09:54:58 -06002448 "ss_phy_irq";
Tom Rini53633a82024-02-29 12:33:36 -05002449
2450 power-domains = <&gcc USB30_SEC_GDSC>;
2451
2452 resets = <&gcc GCC_USB30_SEC_BCR>;
2453
2454 interconnects = <&aggre1_noc MASTER_USB3_1 0 &mc_virt SLAVE_EBI1 0>,
2455 <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_1 0>;
2456 interconnect-names = "usb-ddr", "apps-usb";
2457
2458 usb_2_dwc3: usb@a800000 {
2459 compatible = "snps,dwc3";
2460 reg = <0 0x0a800000 0 0xcd00>;
2461 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
2462 iommus = <&apps_smmu 0x20 0x0>;
2463 snps,dis_u2_susphy_quirk;
2464 snps,dis_enblslpm_quirk;
Tom Rini93743d22024-04-01 09:08:13 -04002465 phys = <&usb_2_hsphy>, <&usb_2_qmpphy>;
Tom Rini53633a82024-02-29 12:33:36 -05002466 phy-names = "usb2-phy", "usb3-phy";
2467 };
2468 };
2469
2470 mdss: display-subsystem@ae00000 {
2471 compatible = "qcom,sm8350-mdss";
2472 reg = <0 0x0ae00000 0 0x1000>;
2473 reg-names = "mdss";
2474
2475 interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>,
2476 <&mmss_noc MASTER_MDP1 0 &mc_virt SLAVE_EBI1 0>;
2477 interconnect-names = "mdp0-mem", "mdp1-mem";
2478
2479 power-domains = <&dispcc MDSS_GDSC>;
2480 resets = <&dispcc DISP_CC_MDSS_CORE_BCR>;
2481
2482 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2483 <&gcc GCC_DISP_HF_AXI_CLK>,
2484 <&gcc GCC_DISP_SF_AXI_CLK>,
2485 <&dispcc DISP_CC_MDSS_MDP_CLK>;
2486 clock-names = "iface", "bus", "nrt_bus", "core";
2487
2488 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
2489 interrupt-controller;
2490 #interrupt-cells = <1>;
2491
2492 iommus = <&apps_smmu 0x820 0x402>;
2493
2494 status = "disabled";
2495
2496 #address-cells = <2>;
2497 #size-cells = <2>;
2498 ranges;
2499
Tom Rini53633a82024-02-29 12:33:36 -05002500 mdss_mdp: display-controller@ae01000 {
2501 compatible = "qcom,sm8350-dpu";
2502 reg = <0 0x0ae01000 0 0x8f000>,
2503 <0 0x0aeb0000 0 0x2008>;
2504 reg-names = "mdp", "vbif";
2505
2506 clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
2507 <&gcc GCC_DISP_SF_AXI_CLK>,
2508 <&dispcc DISP_CC_MDSS_AHB_CLK>,
2509 <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
2510 <&dispcc DISP_CC_MDSS_MDP_CLK>,
2511 <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
2512 clock-names = "bus",
2513 "nrt_bus",
2514 "iface",
2515 "lut",
2516 "core",
2517 "vsync";
2518
2519 assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
2520 assigned-clock-rates = <19200000>;
2521
2522 operating-points-v2 = <&dpu_opp_table>;
2523 power-domains = <&rpmhpd RPMHPD_MMCX>;
2524
2525 interrupt-parent = <&mdss>;
2526 interrupts = <0>;
2527
Tom Rini93743d22024-04-01 09:08:13 -04002528 dpu_opp_table: opp-table {
2529 compatible = "operating-points-v2";
2530
2531 /* TODO: opp-200000000 should work with
2532 * &rpmhpd_opp_low_svs, but one some of
2533 * sm8350_hdk boards reboot using this
2534 * opp.
2535 */
2536 opp-200000000 {
2537 opp-hz = /bits/ 64 <200000000>;
2538 required-opps = <&rpmhpd_opp_svs>;
2539 };
2540
2541 opp-300000000 {
2542 opp-hz = /bits/ 64 <300000000>;
2543 required-opps = <&rpmhpd_opp_svs>;
2544 };
2545
2546 opp-345000000 {
2547 opp-hz = /bits/ 64 <345000000>;
2548 required-opps = <&rpmhpd_opp_svs_l1>;
2549 };
2550
2551 opp-460000000 {
2552 opp-hz = /bits/ 64 <460000000>;
2553 required-opps = <&rpmhpd_opp_nom>;
2554 };
2555 };
2556
Tom Rini53633a82024-02-29 12:33:36 -05002557 ports {
2558 #address-cells = <1>;
2559 #size-cells = <0>;
2560
2561 port@0 {
2562 reg = <0>;
2563 dpu_intf1_out: endpoint {
2564 remote-endpoint = <&mdss_dsi0_in>;
2565 };
2566 };
2567
2568 port@1 {
2569 reg = <1>;
2570 dpu_intf2_out: endpoint {
2571 remote-endpoint = <&mdss_dsi1_in>;
2572 };
2573 };
2574
2575 port@2 {
2576 reg = <2>;
2577 dpu_intf0_out: endpoint {
2578 remote-endpoint = <&mdss_dp_in>;
2579 };
2580 };
2581 };
2582 };
2583
2584 mdss_dp: displayport-controller@ae90000 {
2585 compatible = "qcom,sm8350-dp";
2586 reg = <0 0xae90000 0 0x200>,
2587 <0 0xae90200 0 0x200>,
2588 <0 0xae90400 0 0x600>,
2589 <0 0xae91000 0 0x400>,
2590 <0 0xae91400 0 0x400>;
2591 interrupt-parent = <&mdss>;
2592 interrupts = <12>;
2593 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2594 <&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
2595 <&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
2596 <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
2597 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
2598 clock-names = "core_iface",
2599 "core_aux",
2600 "ctrl_link",
2601 "ctrl_link_iface",
2602 "stream_pixel";
2603
2604 assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
2605 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
2606 assigned-clock-parents = <&usb_1_qmpphy QMP_USB43DP_DP_LINK_CLK>,
2607 <&usb_1_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
2608
2609 phys = <&usb_1_qmpphy QMP_USB43DP_DP_PHY>;
2610 phy-names = "dp";
2611
2612 #sound-dai-cells = <0>;
2613
2614 operating-points-v2 = <&dp_opp_table>;
2615 power-domains = <&rpmhpd RPMHPD_MMCX>;
2616
2617 status = "disabled";
2618
2619 ports {
2620 #address-cells = <1>;
2621 #size-cells = <0>;
2622
2623 port@0 {
2624 reg = <0>;
2625 mdss_dp_in: endpoint {
2626 remote-endpoint = <&dpu_intf0_out>;
2627 };
2628 };
2629 };
2630
2631 dp_opp_table: opp-table {
2632 compatible = "operating-points-v2";
2633
2634 opp-160000000 {
2635 opp-hz = /bits/ 64 <160000000>;
2636 required-opps = <&rpmhpd_opp_low_svs>;
2637 };
2638
2639 opp-270000000 {
2640 opp-hz = /bits/ 64 <270000000>;
2641 required-opps = <&rpmhpd_opp_svs>;
2642 };
2643
2644 opp-540000000 {
2645 opp-hz = /bits/ 64 <540000000>;
2646 required-opps = <&rpmhpd_opp_svs_l1>;
2647 };
2648
2649 opp-810000000 {
2650 opp-hz = /bits/ 64 <810000000>;
2651 required-opps = <&rpmhpd_opp_nom>;
2652 };
2653 };
2654 };
2655
2656 mdss_dsi0: dsi@ae94000 {
2657 compatible = "qcom,sm8350-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2658 reg = <0 0x0ae94000 0 0x400>;
2659 reg-names = "dsi_ctrl";
2660
2661 interrupt-parent = <&mdss>;
2662 interrupts = <4>;
2663
2664 clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
2665 <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
2666 <&dispcc DISP_CC_MDSS_PCLK0_CLK>,
2667 <&dispcc DISP_CC_MDSS_ESC0_CLK>,
2668 <&dispcc DISP_CC_MDSS_AHB_CLK>,
2669 <&gcc GCC_DISP_HF_AXI_CLK>;
2670 clock-names = "byte",
2671 "byte_intf",
2672 "pixel",
2673 "core",
2674 "iface",
2675 "bus";
2676
2677 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK_SRC>,
2678 <&dispcc DISP_CC_MDSS_PCLK0_CLK_SRC>;
2679 assigned-clock-parents = <&mdss_dsi0_phy 0>,
2680 <&mdss_dsi0_phy 1>;
2681
2682 operating-points-v2 = <&dsi0_opp_table>;
2683 power-domains = <&rpmhpd RPMHPD_MMCX>;
2684
2685 phys = <&mdss_dsi0_phy>;
2686
2687 #address-cells = <1>;
2688 #size-cells = <0>;
2689
2690 status = "disabled";
2691
2692 dsi0_opp_table: opp-table {
2693 compatible = "operating-points-v2";
2694
2695 /* TODO: opp-187500000 should work with
2696 * &rpmhpd_opp_low_svs, but one some of
2697 * sm8350_hdk boards reboot using this
2698 * opp.
2699 */
2700 opp-187500000 {
2701 opp-hz = /bits/ 64 <187500000>;
2702 required-opps = <&rpmhpd_opp_svs>;
2703 };
2704
2705 opp-300000000 {
2706 opp-hz = /bits/ 64 <300000000>;
2707 required-opps = <&rpmhpd_opp_svs>;
2708 };
2709
2710 opp-358000000 {
2711 opp-hz = /bits/ 64 <358000000>;
2712 required-opps = <&rpmhpd_opp_svs_l1>;
2713 };
2714 };
2715
2716 ports {
2717 #address-cells = <1>;
2718 #size-cells = <0>;
2719
2720 port@0 {
2721 reg = <0>;
2722 mdss_dsi0_in: endpoint {
2723 remote-endpoint = <&dpu_intf1_out>;
2724 };
2725 };
2726
2727 port@1 {
2728 reg = <1>;
2729 mdss_dsi0_out: endpoint {
2730 };
2731 };
2732 };
2733 };
2734
2735 mdss_dsi0_phy: phy@ae94400 {
2736 compatible = "qcom,sm8350-dsi-phy-5nm";
2737 reg = <0 0x0ae94400 0 0x200>,
2738 <0 0x0ae94600 0 0x280>,
2739 <0 0x0ae94900 0 0x27c>;
2740 reg-names = "dsi_phy",
2741 "dsi_phy_lane",
2742 "dsi_pll";
2743
2744 #clock-cells = <1>;
2745 #phy-cells = <0>;
2746
2747 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2748 <&rpmhcc RPMH_CXO_CLK>;
2749 clock-names = "iface", "ref";
2750
2751 status = "disabled";
2752 };
2753
2754 mdss_dsi1: dsi@ae96000 {
2755 compatible = "qcom,sm8350-dsi-ctrl", "qcom,mdss-dsi-ctrl";
2756 reg = <0 0x0ae96000 0 0x400>;
2757 reg-names = "dsi_ctrl";
2758
2759 interrupt-parent = <&mdss>;
2760 interrupts = <5>;
2761
2762 clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
2763 <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
2764 <&dispcc DISP_CC_MDSS_PCLK1_CLK>,
2765 <&dispcc DISP_CC_MDSS_ESC1_CLK>,
2766 <&dispcc DISP_CC_MDSS_AHB_CLK>,
2767 <&gcc GCC_DISP_HF_AXI_CLK>;
2768 clock-names = "byte",
2769 "byte_intf",
2770 "pixel",
2771 "core",
2772 "iface",
2773 "bus";
2774
2775 assigned-clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK_SRC>,
2776 <&dispcc DISP_CC_MDSS_PCLK1_CLK_SRC>;
2777 assigned-clock-parents = <&mdss_dsi1_phy 0>,
2778 <&mdss_dsi1_phy 1>;
2779
2780 operating-points-v2 = <&dsi1_opp_table>;
2781 power-domains = <&rpmhpd RPMHPD_MMCX>;
2782
2783 phys = <&mdss_dsi1_phy>;
2784
2785 #address-cells = <1>;
2786 #size-cells = <0>;
2787
2788 status = "disabled";
2789
2790 dsi1_opp_table: opp-table {
2791 compatible = "operating-points-v2";
2792
2793 /* TODO: opp-187500000 should work with
2794 * &rpmhpd_opp_low_svs, but one some of
2795 * sm8350_hdk boards reboot using this
2796 * opp.
2797 */
2798 opp-187500000 {
2799 opp-hz = /bits/ 64 <187500000>;
2800 required-opps = <&rpmhpd_opp_svs>;
2801 };
2802
2803 opp-300000000 {
2804 opp-hz = /bits/ 64 <300000000>;
2805 required-opps = <&rpmhpd_opp_svs>;
2806 };
2807
2808 opp-358000000 {
2809 opp-hz = /bits/ 64 <358000000>;
2810 required-opps = <&rpmhpd_opp_svs_l1>;
2811 };
2812 };
2813
2814 ports {
2815 #address-cells = <1>;
2816 #size-cells = <0>;
2817
2818 port@0 {
2819 reg = <0>;
2820 mdss_dsi1_in: endpoint {
2821 remote-endpoint = <&dpu_intf2_out>;
2822 };
2823 };
2824
2825 port@1 {
2826 reg = <1>;
2827 mdss_dsi1_out: endpoint {
2828 };
2829 };
2830 };
2831 };
2832
2833 mdss_dsi1_phy: phy@ae96400 {
2834 compatible = "qcom,sm8350-dsi-phy-5nm";
2835 reg = <0 0x0ae96400 0 0x200>,
2836 <0 0x0ae96600 0 0x280>,
2837 <0 0x0ae96900 0 0x27c>;
2838 reg-names = "dsi_phy",
2839 "dsi_phy_lane",
2840 "dsi_pll";
2841
2842 #clock-cells = <1>;
2843 #phy-cells = <0>;
2844
2845 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
2846 <&rpmhcc RPMH_CXO_CLK>;
2847 clock-names = "iface", "ref";
2848
2849 status = "disabled";
2850 };
2851 };
2852
2853 dispcc: clock-controller@af00000 {
2854 compatible = "qcom,sm8350-dispcc";
2855 reg = <0 0x0af00000 0 0x10000>;
2856 clocks = <&rpmhcc RPMH_CXO_CLK>,
2857 <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>,
2858 <&mdss_dsi1_phy 0>, <&mdss_dsi1_phy 1>,
2859 <&usb_1_qmpphy QMP_USB43DP_DP_LINK_CLK>,
2860 <&usb_1_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
2861 clock-names = "bi_tcxo",
2862 "dsi0_phy_pll_out_byteclk",
2863 "dsi0_phy_pll_out_dsiclk",
2864 "dsi1_phy_pll_out_byteclk",
2865 "dsi1_phy_pll_out_dsiclk",
2866 "dp_phy_pll_link_clk",
2867 "dp_phy_pll_vco_div_clk";
2868 #clock-cells = <1>;
2869 #reset-cells = <1>;
2870 #power-domain-cells = <1>;
2871
2872 power-domains = <&rpmhpd RPMHPD_MMCX>;
2873 };
2874
2875 pdc: interrupt-controller@b220000 {
2876 compatible = "qcom,sm8350-pdc", "qcom,pdc";
2877 reg = <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x60>;
2878 qcom,pdc-ranges = <0 480 40>, <40 140 14>, <54 263 1>, <55 306 4>,
2879 <59 312 3>, <62 374 2>, <64 434 2>, <66 438 3>,
2880 <69 86 1>, <70 520 54>, <124 609 31>, <155 63 1>,
2881 <156 716 12>;
2882 #interrupt-cells = <2>;
2883 interrupt-parent = <&intc>;
2884 interrupt-controller;
2885 };
2886
2887 tsens0: thermal-sensor@c263000 {
2888 compatible = "qcom,sm8350-tsens", "qcom,tsens-v2";
2889 reg = <0 0x0c263000 0 0x1ff>, /* TM */
2890 <0 0x0c222000 0 0x8>; /* SROT */
2891 #qcom,sensors = <15>;
2892 interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
2893 <&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
2894 interrupt-names = "uplow", "critical";
2895 #thermal-sensor-cells = <1>;
2896 };
2897
2898 tsens1: thermal-sensor@c265000 {
2899 compatible = "qcom,sm8350-tsens", "qcom,tsens-v2";
2900 reg = <0 0x0c265000 0 0x1ff>, /* TM */
2901 <0 0x0c223000 0 0x8>; /* SROT */
2902 #qcom,sensors = <14>;
2903 interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
2904 <&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
2905 interrupt-names = "uplow", "critical";
2906 #thermal-sensor-cells = <1>;
2907 };
2908
2909 aoss_qmp: power-management@c300000 {
2910 compatible = "qcom,sm8350-aoss-qmp", "qcom,aoss-qmp";
2911 reg = <0 0x0c300000 0 0x400>;
2912 interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
2913 IRQ_TYPE_EDGE_RISING>;
2914 mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
2915
2916 #clock-cells = <0>;
2917 };
2918
2919 sram@c3f0000 {
2920 compatible = "qcom,rpmh-stats";
2921 reg = <0 0x0c3f0000 0 0x400>;
2922 };
2923
2924 spmi_bus: spmi@c440000 {
2925 compatible = "qcom,spmi-pmic-arb";
2926 reg = <0x0 0x0c440000 0x0 0x1100>,
2927 <0x0 0x0c600000 0x0 0x2000000>,
2928 <0x0 0x0e600000 0x0 0x100000>,
2929 <0x0 0x0e700000 0x0 0xa0000>,
2930 <0x0 0x0c40a000 0x0 0x26000>;
2931 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
2932 interrupt-names = "periph_irq";
2933 interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
2934 qcom,ee = <0>;
2935 qcom,channel = <0>;
2936 #address-cells = <2>;
2937 #size-cells = <0>;
2938 interrupt-controller;
2939 #interrupt-cells = <4>;
2940 };
2941
2942 tlmm: pinctrl@f100000 {
2943 compatible = "qcom,sm8350-tlmm";
2944 reg = <0 0x0f100000 0 0x300000>;
2945 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
2946 gpio-controller;
2947 #gpio-cells = <2>;
2948 interrupt-controller;
2949 #interrupt-cells = <2>;
2950 gpio-ranges = <&tlmm 0 0 204>;
2951 wakeup-parent = <&pdc>;
2952
2953 sdc2_default_state: sdc2-default-state {
2954 clk-pins {
2955 pins = "sdc2_clk";
2956 drive-strength = <16>;
2957 bias-disable;
2958 };
2959
2960 cmd-pins {
2961 pins = "sdc2_cmd";
2962 drive-strength = <16>;
2963 bias-pull-up;
2964 };
2965
2966 data-pins {
2967 pins = "sdc2_data";
2968 drive-strength = <16>;
2969 bias-pull-up;
2970 };
2971 };
2972
2973 sdc2_sleep_state: sdc2-sleep-state {
2974 clk-pins {
2975 pins = "sdc2_clk";
2976 drive-strength = <2>;
2977 bias-disable;
2978 };
2979
2980 cmd-pins {
2981 pins = "sdc2_cmd";
2982 drive-strength = <2>;
2983 bias-pull-up;
2984 };
2985
2986 data-pins {
2987 pins = "sdc2_data";
2988 drive-strength = <2>;
2989 bias-pull-up;
2990 };
2991 };
2992
2993 qup_uart3_default_state: qup-uart3-default-state {
2994 rx-pins {
2995 pins = "gpio18";
2996 function = "qup3";
2997 };
2998 tx-pins {
2999 pins = "gpio19";
3000 function = "qup3";
3001 };
3002 };
3003
3004 qup_uart6_default: qup-uart6-default-state {
3005 pins = "gpio30", "gpio31";
3006 function = "qup6";
3007 drive-strength = <2>;
3008 bias-disable;
3009 };
3010
3011 qup_uart18_default: qup-uart18-default-state {
3012 pins = "gpio68", "gpio69";
3013 function = "qup18";
3014 drive-strength = <2>;
3015 bias-disable;
3016 };
3017
3018 qup_i2c0_default: qup-i2c0-default-state {
3019 pins = "gpio4", "gpio5";
3020 function = "qup0";
3021 drive-strength = <2>;
3022 bias-pull-up;
3023 };
3024
3025 qup_i2c1_default: qup-i2c1-default-state {
3026 pins = "gpio8", "gpio9";
3027 function = "qup1";
3028 drive-strength = <2>;
3029 bias-pull-up;
3030 };
3031
3032 qup_i2c2_default: qup-i2c2-default-state {
3033 pins = "gpio12", "gpio13";
3034 function = "qup2";
3035 drive-strength = <2>;
3036 bias-pull-up;
3037 };
3038
3039 qup_i2c4_default: qup-i2c4-default-state {
3040 pins = "gpio20", "gpio21";
3041 function = "qup4";
3042 drive-strength = <2>;
3043 bias-pull-up;
3044 };
3045
3046 qup_i2c5_default: qup-i2c5-default-state {
3047 pins = "gpio24", "gpio25";
3048 function = "qup5";
3049 drive-strength = <2>;
3050 bias-pull-up;
3051 };
3052
3053 qup_i2c6_default: qup-i2c6-default-state {
3054 pins = "gpio28", "gpio29";
3055 function = "qup6";
3056 drive-strength = <2>;
3057 bias-pull-up;
3058 };
3059
3060 qup_i2c7_default: qup-i2c7-default-state {
3061 pins = "gpio32", "gpio33";
3062 function = "qup7";
3063 drive-strength = <2>;
3064 bias-disable;
3065 };
3066
3067 qup_i2c8_default: qup-i2c8-default-state {
3068 pins = "gpio36", "gpio37";
3069 function = "qup8";
3070 drive-strength = <2>;
3071 bias-pull-up;
3072 };
3073
3074 qup_i2c9_default: qup-i2c9-default-state {
3075 pins = "gpio40", "gpio41";
3076 function = "qup9";
3077 drive-strength = <2>;
3078 bias-pull-up;
3079 };
3080
3081 qup_i2c10_default: qup-i2c10-default-state {
3082 pins = "gpio44", "gpio45";
3083 function = "qup10";
3084 drive-strength = <2>;
3085 bias-pull-up;
3086 };
3087
3088 qup_i2c11_default: qup-i2c11-default-state {
3089 pins = "gpio48", "gpio49";
3090 function = "qup11";
3091 drive-strength = <2>;
3092 bias-pull-up;
3093 };
3094
3095 qup_i2c12_default: qup-i2c12-default-state {
3096 pins = "gpio52", "gpio53";
3097 function = "qup12";
3098 drive-strength = <2>;
3099 bias-pull-up;
3100 };
3101
3102 qup_i2c13_default: qup-i2c13-default-state {
3103 pins = "gpio0", "gpio1";
3104 function = "qup13";
3105 drive-strength = <2>;
3106 bias-pull-up;
3107 };
3108
3109 qup_i2c14_default: qup-i2c14-default-state {
3110 pins = "gpio56", "gpio57";
3111 function = "qup14";
3112 drive-strength = <2>;
3113 bias-disable;
3114 };
3115
3116 qup_i2c15_default: qup-i2c15-default-state {
3117 pins = "gpio60", "gpio61";
3118 function = "qup15";
3119 drive-strength = <2>;
3120 bias-disable;
3121 };
3122
3123 qup_i2c16_default: qup-i2c16-default-state {
3124 pins = "gpio64", "gpio65";
3125 function = "qup16";
3126 drive-strength = <2>;
3127 bias-disable;
3128 };
3129
3130 qup_i2c17_default: qup-i2c17-default-state {
3131 pins = "gpio72", "gpio73";
3132 function = "qup17";
3133 drive-strength = <2>;
3134 bias-disable;
3135 };
3136
3137 qup_i2c19_default: qup-i2c19-default-state {
3138 pins = "gpio76", "gpio77";
3139 function = "qup19";
3140 drive-strength = <2>;
3141 bias-disable;
3142 };
3143 };
3144
3145 apps_smmu: iommu@15000000 {
3146 compatible = "qcom,sm8350-smmu-500", "arm,mmu-500";
3147 reg = <0 0x15000000 0 0x100000>;
3148 #iommu-cells = <2>;
3149 #global-interrupts = <2>;
3150 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
3151 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
3152 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
3153 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
3154 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
3155 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
3156 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
3157 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
3158 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
3159 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
3160 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
3161 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
3162 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
3163 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
3164 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
3165 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
3166 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
3167 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
3168 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
3169 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
3170 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
3171 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
3172 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
3173 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
3174 <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
3175 <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
3176 <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
3177 <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
3178 <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
3179 <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
3180 <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
3181 <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
3182 <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
3183 <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
3184 <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
3185 <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
3186 <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
3187 <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
3188 <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
3189 <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
3190 <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
3191 <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
3192 <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
3193 <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
3194 <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
3195 <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
3196 <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
3197 <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
3198 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
3199 <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
3200 <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
3201 <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
3202 <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
3203 <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
3204 <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
3205 <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
3206 <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
3207 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
3208 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
3209 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
3210 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
3211 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
3212 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
3213 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
3214 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
3215 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
3216 <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
3217 <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
3218 <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
3219 <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
3220 <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
3221 <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
3222 <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
3223 <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
3224 <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
3225 <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
3226 <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
3227 <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
3228 <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
3229 <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
3230 <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
3231 <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
3232 <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
3233 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
3234 <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
3235 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
3236 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
3237 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
3238 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
3239 <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH>,
3240 <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH>,
3241 <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH>,
3242 <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH>,
3243 <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
3244 <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
3245 <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>,
3246 <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>,
3247 <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>;
3248 };
3249
3250 adsp: remoteproc@17300000 {
3251 compatible = "qcom,sm8350-adsp-pas";
3252 reg = <0 0x17300000 0 0x100>;
3253
Tom Rini93743d22024-04-01 09:08:13 -04003254 interrupts-extended = <&pdc 6 IRQ_TYPE_EDGE_RISING>,
Tom Rini53633a82024-02-29 12:33:36 -05003255 <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
3256 <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
3257 <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
3258 <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
3259 interrupt-names = "wdog", "fatal", "ready",
3260 "handover", "stop-ack";
3261
3262 clocks = <&rpmhcc RPMH_CXO_CLK>;
3263 clock-names = "xo";
3264
3265 power-domains = <&rpmhpd RPMHPD_LCX>,
3266 <&rpmhpd RPMHPD_LMX>;
3267 power-domain-names = "lcx", "lmx";
3268
3269 memory-region = <&pil_adsp_mem>;
3270
3271 qcom,qmp = <&aoss_qmp>;
3272
3273 qcom,smem-states = <&smp2p_adsp_out 0>;
3274 qcom,smem-state-names = "stop";
3275
3276 status = "disabled";
3277
3278 glink-edge {
3279 interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
3280 IPCC_MPROC_SIGNAL_GLINK_QMP
3281 IRQ_TYPE_EDGE_RISING>;
3282 mboxes = <&ipcc IPCC_CLIENT_LPASS
3283 IPCC_MPROC_SIGNAL_GLINK_QMP>;
3284
3285 label = "lpass";
3286 qcom,remote-pid = <2>;
3287
3288 apr {
3289 compatible = "qcom,apr-v2";
3290 qcom,glink-channels = "apr_audio_svc";
3291 qcom,domain = <APR_DOMAIN_ADSP>;
3292 #address-cells = <1>;
3293 #size-cells = <0>;
3294
3295 service@3 {
3296 reg = <APR_SVC_ADSP_CORE>;
3297 compatible = "qcom,q6core";
3298 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
3299 };
3300
3301 q6afe: service@4 {
3302 compatible = "qcom,q6afe";
3303 reg = <APR_SVC_AFE>;
3304 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
3305
3306 q6afedai: dais {
3307 compatible = "qcom,q6afe-dais";
3308 #address-cells = <1>;
3309 #size-cells = <0>;
3310 #sound-dai-cells = <1>;
3311 };
3312
3313 q6afecc: clock-controller {
3314 compatible = "qcom,q6afe-clocks";
3315 #clock-cells = <2>;
3316 };
3317 };
3318
3319 q6asm: service@7 {
3320 compatible = "qcom,q6asm";
3321 reg = <APR_SVC_ASM>;
3322 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
3323
3324 q6asmdai: dais {
3325 compatible = "qcom,q6asm-dais";
3326 #address-cells = <1>;
3327 #size-cells = <0>;
3328 #sound-dai-cells = <1>;
3329 iommus = <&apps_smmu 0x1801 0x0>;
3330
3331 dai@0 {
3332 reg = <0>;
3333 };
3334
3335 dai@1 {
3336 reg = <1>;
3337 };
3338
3339 dai@2 {
3340 reg = <2>;
3341 };
3342 };
3343 };
3344
3345 q6adm: service@8 {
3346 compatible = "qcom,q6adm";
3347 reg = <APR_SVC_ADM>;
3348 qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
3349
3350 q6routing: routing {
3351 compatible = "qcom,q6adm-routing";
3352 #sound-dai-cells = <0>;
3353 };
3354 };
3355 };
3356
3357 fastrpc {
3358 compatible = "qcom,fastrpc";
3359 qcom,glink-channels = "fastrpcglink-apps-dsp";
3360 label = "adsp";
3361 qcom,non-secure-domain;
3362 #address-cells = <1>;
3363 #size-cells = <0>;
3364
3365 compute-cb@3 {
3366 compatible = "qcom,fastrpc-compute-cb";
3367 reg = <3>;
3368 iommus = <&apps_smmu 0x1803 0x0>;
3369 };
3370
3371 compute-cb@4 {
3372 compatible = "qcom,fastrpc-compute-cb";
3373 reg = <4>;
3374 iommus = <&apps_smmu 0x1804 0x0>;
3375 };
3376
3377 compute-cb@5 {
3378 compatible = "qcom,fastrpc-compute-cb";
3379 reg = <5>;
3380 iommus = <&apps_smmu 0x1805 0x0>;
3381 };
3382 };
3383 };
3384 };
3385
3386 intc: interrupt-controller@17a00000 {
3387 compatible = "arm,gic-v3";
3388 #interrupt-cells = <3>;
3389 interrupt-controller;
3390 #redistributor-regions = <1>;
3391 redistributor-stride = <0 0x20000>;
3392 reg = <0x0 0x17a00000 0x0 0x10000>, /* GICD */
3393 <0x0 0x17a60000 0x0 0x100000>; /* GICR * 8 */
3394 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
3395 };
3396
3397 timer@17c20000 {
3398 compatible = "arm,armv7-timer-mem";
3399 #address-cells = <1>;
3400 #size-cells = <1>;
3401 ranges = <0 0 0 0x20000000>;
3402 reg = <0x0 0x17c20000 0x0 0x1000>;
3403 clock-frequency = <19200000>;
3404
3405 frame@17c21000 {
3406 frame-number = <0>;
3407 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
3408 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
3409 reg = <0x17c21000 0x1000>,
3410 <0x17c22000 0x1000>;
3411 };
3412
3413 frame@17c23000 {
3414 frame-number = <1>;
3415 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
3416 reg = <0x17c23000 0x1000>;
3417 status = "disabled";
3418 };
3419
3420 frame@17c25000 {
3421 frame-number = <2>;
3422 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
3423 reg = <0x17c25000 0x1000>;
3424 status = "disabled";
3425 };
3426
3427 frame@17c27000 {
3428 frame-number = <3>;
3429 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
3430 reg = <0x17c27000 0x1000>;
3431 status = "disabled";
3432 };
3433
3434 frame@17c29000 {
3435 frame-number = <4>;
3436 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
3437 reg = <0x17c29000 0x1000>;
3438 status = "disabled";
3439 };
3440
3441 frame@17c2b000 {
3442 frame-number = <5>;
3443 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
3444 reg = <0x17c2b000 0x1000>;
3445 status = "disabled";
3446 };
3447
3448 frame@17c2d000 {
3449 frame-number = <6>;
3450 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
3451 reg = <0x17c2d000 0x1000>;
3452 status = "disabled";
3453 };
3454 };
3455
3456 apps_rsc: rsc@18200000 {
3457 label = "apps_rsc";
3458 compatible = "qcom,rpmh-rsc";
3459 reg = <0x0 0x18200000 0x0 0x10000>,
3460 <0x0 0x18210000 0x0 0x10000>,
3461 <0x0 0x18220000 0x0 0x10000>;
3462 reg-names = "drv-0", "drv-1", "drv-2";
3463 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
3464 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
3465 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
3466 qcom,tcs-offset = <0xd00>;
3467 qcom,drv-id = <2>;
3468 qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
3469 <WAKE_TCS 3>, <CONTROL_TCS 0>;
3470 power-domains = <&CLUSTER_PD>;
3471
3472 rpmhcc: clock-controller {
3473 compatible = "qcom,sm8350-rpmh-clk";
3474 #clock-cells = <1>;
3475 clock-names = "xo";
3476 clocks = <&xo_board>;
3477 };
3478
3479 rpmhpd: power-controller {
3480 compatible = "qcom,sm8350-rpmhpd";
3481 #power-domain-cells = <1>;
3482 operating-points-v2 = <&rpmhpd_opp_table>;
3483
3484 rpmhpd_opp_table: opp-table {
3485 compatible = "operating-points-v2";
3486
3487 rpmhpd_opp_ret: opp1 {
3488 opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
3489 };
3490
3491 rpmhpd_opp_min_svs: opp2 {
3492 opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
3493 };
3494
3495 rpmhpd_opp_low_svs: opp3 {
3496 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
3497 };
3498
3499 rpmhpd_opp_svs: opp4 {
3500 opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
3501 };
3502
3503 rpmhpd_opp_svs_l1: opp5 {
3504 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
3505 };
3506
3507 rpmhpd_opp_nom: opp6 {
3508 opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
3509 };
3510
3511 rpmhpd_opp_nom_l1: opp7 {
3512 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
3513 };
3514
3515 rpmhpd_opp_nom_l2: opp8 {
3516 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
3517 };
3518
3519 rpmhpd_opp_turbo: opp9 {
3520 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
3521 };
3522
3523 rpmhpd_opp_turbo_l1: opp10 {
3524 opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
3525 };
3526 };
3527 };
3528
3529 apps_bcm_voter: bcm-voter {
3530 compatible = "qcom,bcm-voter";
3531 };
3532 };
3533
3534 cpufreq_hw: cpufreq@18591000 {
3535 compatible = "qcom,sm8350-cpufreq-epss", "qcom,cpufreq-epss";
3536 reg = <0 0x18591000 0 0x1000>,
3537 <0 0x18592000 0 0x1000>,
3538 <0 0x18593000 0 0x1000>;
3539 reg-names = "freq-domain0", "freq-domain1", "freq-domain2";
3540
3541 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
3542 <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
3543 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
3544 interrupt-names = "dcvsh-irq-0",
3545 "dcvsh-irq-1",
3546 "dcvsh-irq-2";
3547
3548 clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
3549 clock-names = "xo", "alternate";
3550
3551 #freq-domain-cells = <1>;
3552 #clock-cells = <1>;
3553 };
3554
3555 cdsp: remoteproc@98900000 {
3556 compatible = "qcom,sm8350-cdsp-pas";
3557 reg = <0 0x98900000 0 0x1400000>;
3558
Tom Rini93743d22024-04-01 09:08:13 -04003559 interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_EDGE_RISING>,
Tom Rini53633a82024-02-29 12:33:36 -05003560 <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
3561 <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
3562 <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
3563 <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
3564 interrupt-names = "wdog", "fatal", "ready",
3565 "handover", "stop-ack";
3566
3567 clocks = <&rpmhcc RPMH_CXO_CLK>;
3568 clock-names = "xo";
3569
3570 power-domains = <&rpmhpd RPMHPD_CX>,
3571 <&rpmhpd RPMHPD_MXC>;
3572 power-domain-names = "cx", "mxc";
3573
3574 interconnects = <&compute_noc MASTER_CDSP_PROC 0 &mc_virt SLAVE_EBI1 0>;
3575
3576 memory-region = <&pil_cdsp_mem>;
3577
3578 qcom,qmp = <&aoss_qmp>;
3579
3580 qcom,smem-states = <&smp2p_cdsp_out 0>;
3581 qcom,smem-state-names = "stop";
3582
3583 status = "disabled";
3584
3585 glink-edge {
3586 interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
3587 IPCC_MPROC_SIGNAL_GLINK_QMP
3588 IRQ_TYPE_EDGE_RISING>;
3589 mboxes = <&ipcc IPCC_CLIENT_CDSP
3590 IPCC_MPROC_SIGNAL_GLINK_QMP>;
3591
3592 label = "cdsp";
3593 qcom,remote-pid = <5>;
3594
3595 fastrpc {
3596 compatible = "qcom,fastrpc";
3597 qcom,glink-channels = "fastrpcglink-apps-dsp";
3598 label = "cdsp";
3599 qcom,non-secure-domain;
3600 #address-cells = <1>;
3601 #size-cells = <0>;
3602
3603 compute-cb@1 {
3604 compatible = "qcom,fastrpc-compute-cb";
3605 reg = <1>;
3606 iommus = <&apps_smmu 0x2161 0x0400>,
3607 <&apps_smmu 0x1181 0x0420>;
3608 };
3609
3610 compute-cb@2 {
3611 compatible = "qcom,fastrpc-compute-cb";
3612 reg = <2>;
3613 iommus = <&apps_smmu 0x2162 0x0400>,
3614 <&apps_smmu 0x1182 0x0420>;
3615 };
3616
3617 compute-cb@3 {
3618 compatible = "qcom,fastrpc-compute-cb";
3619 reg = <3>;
3620 iommus = <&apps_smmu 0x2163 0x0400>,
3621 <&apps_smmu 0x1183 0x0420>;
3622 };
3623
3624 compute-cb@4 {
3625 compatible = "qcom,fastrpc-compute-cb";
3626 reg = <4>;
3627 iommus = <&apps_smmu 0x2164 0x0400>,
3628 <&apps_smmu 0x1184 0x0420>;
3629 };
3630
3631 compute-cb@5 {
3632 compatible = "qcom,fastrpc-compute-cb";
3633 reg = <5>;
3634 iommus = <&apps_smmu 0x2165 0x0400>,
3635 <&apps_smmu 0x1185 0x0420>;
3636 };
3637
3638 compute-cb@6 {
3639 compatible = "qcom,fastrpc-compute-cb";
3640 reg = <6>;
3641 iommus = <&apps_smmu 0x2166 0x0400>,
3642 <&apps_smmu 0x1186 0x0420>;
3643 };
3644
3645 compute-cb@7 {
3646 compatible = "qcom,fastrpc-compute-cb";
3647 reg = <7>;
3648 iommus = <&apps_smmu 0x2167 0x0400>,
3649 <&apps_smmu 0x1187 0x0420>;
3650 };
3651
3652 compute-cb@8 {
3653 compatible = "qcom,fastrpc-compute-cb";
3654 reg = <8>;
3655 iommus = <&apps_smmu 0x2168 0x0400>,
3656 <&apps_smmu 0x1188 0x0420>;
3657 };
3658
3659 /* note: secure cb9 in downstream */
3660 };
3661 };
3662 };
3663 };
3664
3665 thermal_zones: thermal-zones {
3666 cpu0-thermal {
3667 polling-delay-passive = <250>;
3668 polling-delay = <1000>;
3669
3670 thermal-sensors = <&tsens0 1>;
3671
3672 trips {
3673 cpu0_alert0: trip-point0 {
3674 temperature = <90000>;
3675 hysteresis = <2000>;
3676 type = "passive";
3677 };
3678
3679 cpu0_alert1: trip-point1 {
3680 temperature = <95000>;
3681 hysteresis = <2000>;
3682 type = "passive";
3683 };
3684
3685 cpu0_crit: cpu-crit {
3686 temperature = <110000>;
3687 hysteresis = <1000>;
3688 type = "critical";
3689 };
3690 };
3691
3692 cooling-maps {
3693 map0 {
3694 trip = <&cpu0_alert0>;
3695 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3696 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3697 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3698 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3699 };
3700 map1 {
3701 trip = <&cpu0_alert1>;
3702 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3703 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3704 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3705 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3706 };
3707 };
3708 };
3709
3710 cpu1-thermal {
3711 polling-delay-passive = <250>;
3712 polling-delay = <1000>;
3713
3714 thermal-sensors = <&tsens0 2>;
3715
3716 trips {
3717 cpu1_alert0: trip-point0 {
3718 temperature = <90000>;
3719 hysteresis = <2000>;
3720 type = "passive";
3721 };
3722
3723 cpu1_alert1: trip-point1 {
3724 temperature = <95000>;
3725 hysteresis = <2000>;
3726 type = "passive";
3727 };
3728
3729 cpu1_crit: cpu-crit {
3730 temperature = <110000>;
3731 hysteresis = <1000>;
3732 type = "critical";
3733 };
3734 };
3735
3736 cooling-maps {
3737 map0 {
3738 trip = <&cpu1_alert0>;
3739 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3740 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3741 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3742 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3743 };
3744 map1 {
3745 trip = <&cpu1_alert1>;
3746 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3747 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3748 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3749 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3750 };
3751 };
3752 };
3753
3754 cpu2-thermal {
3755 polling-delay-passive = <250>;
3756 polling-delay = <1000>;
3757
3758 thermal-sensors = <&tsens0 3>;
3759
3760 trips {
3761 cpu2_alert0: trip-point0 {
3762 temperature = <90000>;
3763 hysteresis = <2000>;
3764 type = "passive";
3765 };
3766
3767 cpu2_alert1: trip-point1 {
3768 temperature = <95000>;
3769 hysteresis = <2000>;
3770 type = "passive";
3771 };
3772
3773 cpu2_crit: cpu-crit {
3774 temperature = <110000>;
3775 hysteresis = <1000>;
3776 type = "critical";
3777 };
3778 };
3779
3780 cooling-maps {
3781 map0 {
3782 trip = <&cpu2_alert0>;
3783 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3784 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3785 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3786 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3787 };
3788 map1 {
3789 trip = <&cpu2_alert1>;
3790 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3791 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3792 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3793 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3794 };
3795 };
3796 };
3797
3798 cpu3-thermal {
3799 polling-delay-passive = <250>;
3800 polling-delay = <1000>;
3801
3802 thermal-sensors = <&tsens0 4>;
3803
3804 trips {
3805 cpu3_alert0: trip-point0 {
3806 temperature = <90000>;
3807 hysteresis = <2000>;
3808 type = "passive";
3809 };
3810
3811 cpu3_alert1: trip-point1 {
3812 temperature = <95000>;
3813 hysteresis = <2000>;
3814 type = "passive";
3815 };
3816
3817 cpu3_crit: cpu-crit {
3818 temperature = <110000>;
3819 hysteresis = <1000>;
3820 type = "critical";
3821 };
3822 };
3823
3824 cooling-maps {
3825 map0 {
3826 trip = <&cpu3_alert0>;
3827 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3828 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3829 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3830 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3831 };
3832 map1 {
3833 trip = <&cpu3_alert1>;
3834 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3835 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3836 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3837 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3838 };
3839 };
3840 };
3841
3842 cpu4-top-thermal {
3843 polling-delay-passive = <250>;
3844 polling-delay = <1000>;
3845
3846 thermal-sensors = <&tsens0 7>;
3847
3848 trips {
3849 cpu4_top_alert0: trip-point0 {
3850 temperature = <90000>;
3851 hysteresis = <2000>;
3852 type = "passive";
3853 };
3854
3855 cpu4_top_alert1: trip-point1 {
3856 temperature = <95000>;
3857 hysteresis = <2000>;
3858 type = "passive";
3859 };
3860
3861 cpu4_top_crit: cpu-crit {
3862 temperature = <110000>;
3863 hysteresis = <1000>;
3864 type = "critical";
3865 };
3866 };
3867
3868 cooling-maps {
3869 map0 {
3870 trip = <&cpu4_top_alert0>;
3871 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3872 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3873 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3874 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3875 };
3876 map1 {
3877 trip = <&cpu4_top_alert1>;
3878 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3879 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3880 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3881 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3882 };
3883 };
3884 };
3885
3886 cpu5-top-thermal {
3887 polling-delay-passive = <250>;
3888 polling-delay = <1000>;
3889
3890 thermal-sensors = <&tsens0 8>;
3891
3892 trips {
3893 cpu5_top_alert0: trip-point0 {
3894 temperature = <90000>;
3895 hysteresis = <2000>;
3896 type = "passive";
3897 };
3898
3899 cpu5_top_alert1: trip-point1 {
3900 temperature = <95000>;
3901 hysteresis = <2000>;
3902 type = "passive";
3903 };
3904
3905 cpu5_top_crit: cpu-crit {
3906 temperature = <110000>;
3907 hysteresis = <1000>;
3908 type = "critical";
3909 };
3910 };
3911
3912 cooling-maps {
3913 map0 {
3914 trip = <&cpu5_top_alert0>;
3915 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3916 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3917 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3918 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3919 };
3920 map1 {
3921 trip = <&cpu5_top_alert1>;
3922 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3923 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3924 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3925 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3926 };
3927 };
3928 };
3929
3930 cpu6-top-thermal {
3931 polling-delay-passive = <250>;
3932 polling-delay = <1000>;
3933
3934 thermal-sensors = <&tsens0 9>;
3935
3936 trips {
3937 cpu6_top_alert0: trip-point0 {
3938 temperature = <90000>;
3939 hysteresis = <2000>;
3940 type = "passive";
3941 };
3942
3943 cpu6_top_alert1: trip-point1 {
3944 temperature = <95000>;
3945 hysteresis = <2000>;
3946 type = "passive";
3947 };
3948
3949 cpu6_top_crit: cpu-crit {
3950 temperature = <110000>;
3951 hysteresis = <1000>;
3952 type = "critical";
3953 };
3954 };
3955
3956 cooling-maps {
3957 map0 {
3958 trip = <&cpu6_top_alert0>;
3959 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3960 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3961 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3962 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3963 };
3964 map1 {
3965 trip = <&cpu6_top_alert1>;
3966 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3967 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3968 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
3969 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
3970 };
3971 };
3972 };
3973
3974 cpu7-top-thermal {
3975 polling-delay-passive = <250>;
3976 polling-delay = <1000>;
3977
3978 thermal-sensors = <&tsens0 10>;
3979
3980 trips {
3981 cpu7_top_alert0: trip-point0 {
3982 temperature = <90000>;
3983 hysteresis = <2000>;
3984 type = "passive";
3985 };
3986
3987 cpu7_top_alert1: trip-point1 {
3988 temperature = <95000>;
3989 hysteresis = <2000>;
3990 type = "passive";
3991 };
3992
3993 cpu7_top_crit: cpu-crit {
3994 temperature = <110000>;
3995 hysteresis = <1000>;
3996 type = "critical";
3997 };
3998 };
3999
4000 cooling-maps {
4001 map0 {
4002 trip = <&cpu7_top_alert0>;
4003 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4004 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4005 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4006 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4007 };
4008 map1 {
4009 trip = <&cpu7_top_alert1>;
4010 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4011 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4012 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4013 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4014 };
4015 };
4016 };
4017
4018 cpu4-bottom-thermal {
4019 polling-delay-passive = <250>;
4020 polling-delay = <1000>;
4021
4022 thermal-sensors = <&tsens0 11>;
4023
4024 trips {
4025 cpu4_bottom_alert0: trip-point0 {
4026 temperature = <90000>;
4027 hysteresis = <2000>;
4028 type = "passive";
4029 };
4030
4031 cpu4_bottom_alert1: trip-point1 {
4032 temperature = <95000>;
4033 hysteresis = <2000>;
4034 type = "passive";
4035 };
4036
4037 cpu4_bottom_crit: cpu-crit {
4038 temperature = <110000>;
4039 hysteresis = <1000>;
4040 type = "critical";
4041 };
4042 };
4043
4044 cooling-maps {
4045 map0 {
4046 trip = <&cpu4_bottom_alert0>;
4047 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4048 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4049 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4050 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4051 };
4052 map1 {
4053 trip = <&cpu4_bottom_alert1>;
4054 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4055 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4056 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4057 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4058 };
4059 };
4060 };
4061
4062 cpu5-bottom-thermal {
4063 polling-delay-passive = <250>;
4064 polling-delay = <1000>;
4065
4066 thermal-sensors = <&tsens0 12>;
4067
4068 trips {
4069 cpu5_bottom_alert0: trip-point0 {
4070 temperature = <90000>;
4071 hysteresis = <2000>;
4072 type = "passive";
4073 };
4074
4075 cpu5_bottom_alert1: trip-point1 {
4076 temperature = <95000>;
4077 hysteresis = <2000>;
4078 type = "passive";
4079 };
4080
4081 cpu5_bottom_crit: cpu-crit {
4082 temperature = <110000>;
4083 hysteresis = <1000>;
4084 type = "critical";
4085 };
4086 };
4087
4088 cooling-maps {
4089 map0 {
4090 trip = <&cpu5_bottom_alert0>;
4091 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4092 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4093 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4094 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4095 };
4096 map1 {
4097 trip = <&cpu5_bottom_alert1>;
4098 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4099 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4100 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4101 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4102 };
4103 };
4104 };
4105
4106 cpu6-bottom-thermal {
4107 polling-delay-passive = <250>;
4108 polling-delay = <1000>;
4109
4110 thermal-sensors = <&tsens0 13>;
4111
4112 trips {
4113 cpu6_bottom_alert0: trip-point0 {
4114 temperature = <90000>;
4115 hysteresis = <2000>;
4116 type = "passive";
4117 };
4118
4119 cpu6_bottom_alert1: trip-point1 {
4120 temperature = <95000>;
4121 hysteresis = <2000>;
4122 type = "passive";
4123 };
4124
4125 cpu6_bottom_crit: cpu-crit {
4126 temperature = <110000>;
4127 hysteresis = <1000>;
4128 type = "critical";
4129 };
4130 };
4131
4132 cooling-maps {
4133 map0 {
4134 trip = <&cpu6_bottom_alert0>;
4135 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4136 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4137 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4138 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4139 };
4140 map1 {
4141 trip = <&cpu6_bottom_alert1>;
4142 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4143 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4144 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4145 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4146 };
4147 };
4148 };
4149
4150 cpu7-bottom-thermal {
4151 polling-delay-passive = <250>;
4152 polling-delay = <1000>;
4153
4154 thermal-sensors = <&tsens0 14>;
4155
4156 trips {
4157 cpu7_bottom_alert0: trip-point0 {
4158 temperature = <90000>;
4159 hysteresis = <2000>;
4160 type = "passive";
4161 };
4162
4163 cpu7_bottom_alert1: trip-point1 {
4164 temperature = <95000>;
4165 hysteresis = <2000>;
4166 type = "passive";
4167 };
4168
4169 cpu7_bottom_crit: cpu-crit {
4170 temperature = <110000>;
4171 hysteresis = <1000>;
4172 type = "critical";
4173 };
4174 };
4175
4176 cooling-maps {
4177 map0 {
4178 trip = <&cpu7_bottom_alert0>;
4179 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4180 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4181 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4182 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4183 };
4184 map1 {
4185 trip = <&cpu7_bottom_alert1>;
4186 cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4187 <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4188 <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
4189 <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4190 };
4191 };
4192 };
4193
4194 aoss0-thermal {
4195 polling-delay-passive = <250>;
4196 polling-delay = <1000>;
4197
4198 thermal-sensors = <&tsens0 0>;
4199
4200 trips {
4201 aoss0_alert0: trip-point0 {
4202 temperature = <90000>;
4203 hysteresis = <2000>;
4204 type = "hot";
4205 };
4206 };
4207 };
4208
4209 cluster0-thermal {
4210 polling-delay-passive = <250>;
4211 polling-delay = <1000>;
4212
4213 thermal-sensors = <&tsens0 5>;
4214
4215 trips {
4216 cluster0_alert0: trip-point0 {
4217 temperature = <90000>;
4218 hysteresis = <2000>;
4219 type = "hot";
4220 };
Tom Rini6bb92fc2024-05-20 09:54:58 -06004221 cluster0_crit: cluster0-crit {
Tom Rini53633a82024-02-29 12:33:36 -05004222 temperature = <110000>;
4223 hysteresis = <2000>;
4224 type = "critical";
4225 };
4226 };
4227 };
4228
4229 cluster1-thermal {
4230 polling-delay-passive = <250>;
4231 polling-delay = <1000>;
4232
4233 thermal-sensors = <&tsens0 6>;
4234
4235 trips {
4236 cluster1_alert0: trip-point0 {
4237 temperature = <90000>;
4238 hysteresis = <2000>;
4239 type = "hot";
4240 };
Tom Rini6bb92fc2024-05-20 09:54:58 -06004241 cluster1_crit: cluster1-crit {
Tom Rini53633a82024-02-29 12:33:36 -05004242 temperature = <110000>;
4243 hysteresis = <2000>;
4244 type = "critical";
4245 };
4246 };
4247 };
4248
4249 aoss1-thermal {
4250 polling-delay-passive = <250>;
4251 polling-delay = <1000>;
4252
4253 thermal-sensors = <&tsens1 0>;
4254
4255 trips {
4256 aoss1_alert0: trip-point0 {
4257 temperature = <90000>;
4258 hysteresis = <2000>;
4259 type = "hot";
4260 };
4261 };
4262 };
4263
4264 gpu-top-thermal {
4265 polling-delay-passive = <250>;
4266 polling-delay = <1000>;
4267
4268 thermal-sensors = <&tsens1 1>;
4269
Tom Rini6bb92fc2024-05-20 09:54:58 -06004270 cooling-maps {
4271 map0 {
4272 trip = <&gpu_top_alert0>;
4273 cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4274 };
4275 };
4276
Tom Rini53633a82024-02-29 12:33:36 -05004277 trips {
Tom Rini6bb92fc2024-05-20 09:54:58 -06004278 gpu_top_alert0: trip-point0 {
Tom Rini53633a82024-02-29 12:33:36 -05004279 temperature = <90000>;
4280 hysteresis = <1000>;
4281 type = "hot";
4282 };
4283 };
4284 };
4285
4286 gpu-bottom-thermal {
4287 polling-delay-passive = <250>;
4288 polling-delay = <1000>;
4289
4290 thermal-sensors = <&tsens1 2>;
4291
Tom Rini6bb92fc2024-05-20 09:54:58 -06004292 cooling-maps {
4293 map0 {
4294 trip = <&gpu_bottom_alert0>;
4295 cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
4296 };
4297 };
4298
Tom Rini53633a82024-02-29 12:33:36 -05004299 trips {
Tom Rini6bb92fc2024-05-20 09:54:58 -06004300 gpu_bottom_alert0: trip-point0 {
Tom Rini53633a82024-02-29 12:33:36 -05004301 temperature = <90000>;
4302 hysteresis = <1000>;
4303 type = "hot";
4304 };
4305 };
4306 };
4307
4308 nspss1-thermal {
4309 polling-delay-passive = <250>;
4310 polling-delay = <1000>;
4311
4312 thermal-sensors = <&tsens1 3>;
4313
4314 trips {
4315 nspss1_alert0: trip-point0 {
4316 temperature = <90000>;
4317 hysteresis = <1000>;
4318 type = "hot";
4319 };
4320 };
4321 };
4322
4323 nspss2-thermal {
4324 polling-delay-passive = <250>;
4325 polling-delay = <1000>;
4326
4327 thermal-sensors = <&tsens1 4>;
4328
4329 trips {
4330 nspss2_alert0: trip-point0 {
4331 temperature = <90000>;
4332 hysteresis = <1000>;
4333 type = "hot";
4334 };
4335 };
4336 };
4337
4338 nspss3-thermal {
4339 polling-delay-passive = <250>;
4340 polling-delay = <1000>;
4341
4342 thermal-sensors = <&tsens1 5>;
4343
4344 trips {
4345 nspss3_alert0: trip-point0 {
4346 temperature = <90000>;
4347 hysteresis = <1000>;
4348 type = "hot";
4349 };
4350 };
4351 };
4352
4353 video-thermal {
4354 polling-delay-passive = <250>;
4355 polling-delay = <1000>;
4356
4357 thermal-sensors = <&tsens1 6>;
4358
4359 trips {
4360 video_alert0: trip-point0 {
4361 temperature = <90000>;
4362 hysteresis = <2000>;
4363 type = "hot";
4364 };
4365 };
4366 };
4367
4368 mem-thermal {
4369 polling-delay-passive = <250>;
4370 polling-delay = <1000>;
4371
4372 thermal-sensors = <&tsens1 7>;
4373
4374 trips {
4375 mem_alert0: trip-point0 {
4376 temperature = <90000>;
4377 hysteresis = <2000>;
4378 type = "hot";
4379 };
4380 };
4381 };
4382
4383 modem1-top-thermal {
4384 polling-delay-passive = <250>;
4385 polling-delay = <1000>;
4386
4387 thermal-sensors = <&tsens1 8>;
4388
4389 trips {
4390 modem1_alert0: trip-point0 {
4391 temperature = <90000>;
4392 hysteresis = <2000>;
4393 type = "hot";
4394 };
4395 };
4396 };
4397
4398 modem2-top-thermal {
4399 polling-delay-passive = <250>;
4400 polling-delay = <1000>;
4401
4402 thermal-sensors = <&tsens1 9>;
4403
4404 trips {
4405 modem2_alert0: trip-point0 {
4406 temperature = <90000>;
4407 hysteresis = <2000>;
4408 type = "hot";
4409 };
4410 };
4411 };
4412
4413 modem3-top-thermal {
4414 polling-delay-passive = <250>;
4415 polling-delay = <1000>;
4416
4417 thermal-sensors = <&tsens1 10>;
4418
4419 trips {
4420 modem3_alert0: trip-point0 {
4421 temperature = <90000>;
4422 hysteresis = <2000>;
4423 type = "hot";
4424 };
4425 };
4426 };
4427
4428 modem4-top-thermal {
4429 polling-delay-passive = <250>;
4430 polling-delay = <1000>;
4431
4432 thermal-sensors = <&tsens1 11>;
4433
4434 trips {
4435 modem4_alert0: trip-point0 {
4436 temperature = <90000>;
4437 hysteresis = <2000>;
4438 type = "hot";
4439 };
4440 };
4441 };
4442
4443 camera-top-thermal {
4444 polling-delay-passive = <250>;
4445 polling-delay = <1000>;
4446
4447 thermal-sensors = <&tsens1 12>;
4448
4449 trips {
4450 camera1_alert0: trip-point0 {
4451 temperature = <90000>;
4452 hysteresis = <2000>;
4453 type = "hot";
4454 };
4455 };
4456 };
4457
4458 cam-bottom-thermal {
4459 polling-delay-passive = <250>;
4460 polling-delay = <1000>;
4461
4462 thermal-sensors = <&tsens1 13>;
4463
4464 trips {
4465 camera2_alert0: trip-point0 {
4466 temperature = <90000>;
4467 hysteresis = <2000>;
4468 type = "hot";
4469 };
4470 };
4471 };
4472 };
4473
4474 timer {
4475 compatible = "arm,armv8-timer";
4476 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
4477 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
4478 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
4479 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
4480 };
4481};