1 // SPDX-License-Identifier: BSD-3-Clause
3 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
6 #include <dt-bindings/clock/qcom,gcc-sm6350.h>
7 #include <dt-bindings/clock/qcom,rpmh.h>
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/interrupt-controller/arm-gic.h>
10 #include <dt-bindings/mailbox/qcom-ipcc.h>
11 #include <dt-bindings/power/qcom-rpmpd.h>
12 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
15 interrupt-parent = <&intc>;
21 compatible = "fixed-clock";
23 clock-frequency = <76800000>;
24 clock-output-names = "xo_board";
27 sleep_clk: sleep-clk {
28 compatible = "fixed-clock";
29 clock-frequency = <32764>;
40 compatible = "qcom,kryo560";
42 enable-method = "psci";
43 capacity-dmips-mhz = <1024>;
44 dynamic-power-coefficient = <100>;
45 next-level-cache = <&L2_0>;
46 qcom,freq-domain = <&cpufreq_hw 0>;
50 next-level-cache = <&L3_0>;
59 compatible = "qcom,kryo560";
61 enable-method = "psci";
62 capacity-dmips-mhz = <1024>;
63 dynamic-power-coefficient = <100>;
64 next-level-cache = <&L2_100>;
65 qcom,freq-domain = <&cpufreq_hw 0>;
69 next-level-cache = <&L3_0>;
75 compatible = "qcom,kryo560";
77 enable-method = "psci";
78 capacity-dmips-mhz = <1024>;
79 dynamic-power-coefficient = <100>;
80 next-level-cache = <&L2_200>;
81 qcom,freq-domain = <&cpufreq_hw 0>;
85 next-level-cache = <&L3_0>;
91 compatible = "qcom,kryo560";
93 enable-method = "psci";
94 capacity-dmips-mhz = <1024>;
95 dynamic-power-coefficient = <100>;
96 next-level-cache = <&L2_300>;
97 qcom,freq-domain = <&cpufreq_hw 0>;
100 compatible = "cache";
101 next-level-cache = <&L3_0>;
107 compatible = "qcom,kryo560";
109 enable-method = "psci";
110 capacity-dmips-mhz = <1024>;
111 dynamic-power-coefficient = <100>;
112 next-level-cache = <&L2_400>;
113 qcom,freq-domain = <&cpufreq_hw 0>;
114 #cooling-cells = <2>;
116 compatible = "cache";
117 next-level-cache = <&L3_0>;
123 compatible = "qcom,kryo560";
125 enable-method = "psci";
126 capacity-dmips-mhz = <1024>;
127 dynamic-power-coefficient = <100>;
128 next-level-cache = <&L2_500>;
129 qcom,freq-domain = <&cpufreq_hw 0>;
130 #cooling-cells = <2>;
132 compatible = "cache";
133 next-level-cache = <&L3_0>;
140 compatible = "qcom,kryo560";
142 enable-method = "psci";
143 capacity-dmips-mhz = <1894>;
144 dynamic-power-coefficient = <703>;
145 next-level-cache = <&L2_600>;
146 qcom,freq-domain = <&cpufreq_hw 1>;
147 #cooling-cells = <2>;
149 compatible = "cache";
150 next-level-cache = <&L3_0>;
156 compatible = "qcom,kryo560";
158 enable-method = "psci";
159 capacity-dmips-mhz = <1894>;
160 dynamic-power-coefficient = <703>;
161 next-level-cache = <&L2_700>;
162 qcom,freq-domain = <&cpufreq_hw 1>;
163 #cooling-cells = <2>;
165 compatible = "cache";
166 next-level-cache = <&L3_0>;
209 compatible = "qcom,scm-sm6350", "qcom,scm";
215 device_type = "memory";
216 /* We expect the bootloader to fill in the size */
217 reg = <0x0 0x80000000 0x0 0x0>;
221 compatible = "arm,armv8-pmuv3";
222 interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_LOW>;
226 compatible = "arm,psci-1.0";
230 reserved_memory: reserved-memory {
231 #address-cells = <2>;
235 hyp_mem: memory@80000000 {
236 reg = <0 0x80000000 0 0x600000>;
240 xbl_aop_mem: memory@80700000 {
241 reg = <0 0x80700000 0 0x160000>;
245 cmd_db: memory@80860000 {
246 compatible = "qcom,cmd-db";
247 reg = <0 0x80860000 0 0x20000>;
251 sec_apps_mem: memory@808ff000 {
252 reg = <0 0x808ff000 0 0x1000>;
256 smem_mem: memory@80900000 {
257 reg = <0 0x80900000 0 0x200000>;
261 cdsp_sec_mem: memory@80b00000 {
262 reg = <0 0x80b00000 0 0x1e00000>;
266 pil_camera_mem: memory@86000000 {
267 reg = <0 0x86000000 0 0x500000>;
271 pil_npu_mem: memory@86500000 {
272 reg = <0 0x86500000 0 0x500000>;
276 pil_video_mem: memory@86a00000 {
277 reg = <0 0x86a00000 0 0x500000>;
281 pil_cdsp_mem: memory@86f00000 {
282 reg = <0 0x86f00000 0 0x1e00000>;
286 pil_adsp_mem: memory@88d00000 {
287 reg = <0 0x88d00000 0 0x2800000>;
291 wlan_fw_mem: memory@8b500000 {
292 reg = <0 0x8b500000 0 0x200000>;
296 pil_ipa_fw_mem: memory@8b700000 {
297 reg = <0 0x8b700000 0 0x10000>;
301 pil_ipa_gsi_mem: memory@8b710000 {
302 reg = <0 0x8b710000 0 0x5400>;
306 pil_gpu_mem: memory@8b715400 {
307 reg = <0 0x8b715400 0 0x2000>;
311 pil_modem_mem: memory@8b800000 {
312 reg = <0 0x8b800000 0 0xf800000>;
316 cont_splash_memory: memory@a0000000 {
317 reg = <0 0xa0000000 0 0x2300000>;
321 dfps_data_memory: memory@a2300000 {
322 reg = <0 0xa2300000 0 0x100000>;
326 removed_region: memory@c0000000 {
327 reg = <0 0xc0000000 0 0x3900000>;
331 debug_region: memory@ffb00000 {
332 reg = <0 0xffb00000 0 0xc0000>;
336 last_log_region: memory@ffbc0000 {
337 reg = <0 0xffbc0000 0 0x40000>;
341 ramoops: ramoops@ffc00000 {
342 compatible = "removed-dma-pool", "ramoops";
343 reg = <0 0xffc00000 0 0x00100000>;
344 record-size = <0x1000>;
345 console-size = <0x40000>;
347 msg-size = <0x20000 0x20000>;
352 cmdline_region: memory@ffd00000 {
353 reg = <0 0xffd00000 0 0x1000>;
359 compatible = "qcom,smem";
360 memory-region = <&smem_mem>;
361 hwlocks = <&tcsr_mutex 3>;
365 compatible = "qcom,smp2p";
366 qcom,smem = <443>, <429>;
367 interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
368 IPCC_MPROC_SIGNAL_SMP2P
369 IRQ_TYPE_EDGE_RISING>;
370 mboxes = <&ipcc IPCC_CLIENT_LPASS
371 IPCC_MPROC_SIGNAL_SMP2P>;
373 qcom,local-pid = <0>;
374 qcom,remote-pid = <2>;
376 smp2p_adsp_out: master-kernel {
377 qcom,entry-name = "master-kernel";
378 #qcom,smem-state-cells = <1>;
381 smp2p_adsp_in: slave-kernel {
382 qcom,entry-name = "slave-kernel";
383 interrupt-controller;
384 #interrupt-cells = <2>;
389 compatible = "qcom,smp2p";
390 qcom,smem = <94>, <432>;
391 interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
392 IPCC_MPROC_SIGNAL_SMP2P
393 IRQ_TYPE_EDGE_RISING>;
394 mboxes = <&ipcc IPCC_CLIENT_CDSP
395 IPCC_MPROC_SIGNAL_SMP2P>;
397 qcom,local-pid = <0>;
398 qcom,remote-pid = <5>;
400 smp2p_cdsp_out: master-kernel {
401 qcom,entry-name = "master-kernel";
402 #qcom,smem-state-cells = <1>;
405 smp2p_cdsp_in: slave-kernel {
406 qcom,entry-name = "slave-kernel";
407 interrupt-controller;
408 #interrupt-cells = <2>;
413 compatible = "qcom,smp2p";
414 qcom,smem = <435>, <428>;
416 interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
417 IPCC_MPROC_SIGNAL_SMP2P
418 IRQ_TYPE_EDGE_RISING>;
419 mboxes = <&ipcc IPCC_CLIENT_MPSS
420 IPCC_MPROC_SIGNAL_SMP2P>;
422 qcom,local-pid = <0>;
423 qcom,remote-pid = <1>;
425 modem_smp2p_out: master-kernel {
426 qcom,entry-name = "master-kernel";
427 #qcom,smem-state-cells = <1>;
430 modem_smp2p_in: slave-kernel {
431 qcom,entry-name = "slave-kernel";
433 interrupt-controller;
434 #interrupt-cells = <2>;
439 #address-cells = <2>;
441 ranges = <0 0 0 0 0x10 0>;
442 dma-ranges = <0 0 0 0 0x10 0>;
443 compatible = "simple-bus";
445 gcc: clock-controller@100000 {
446 compatible = "qcom,gcc-sm6350";
447 reg = <0 0x00100000 0 0x1f0000>;
450 #power-domain-cells = <1>;
451 clock-names = "bi_tcxo",
454 clocks = <&rpmhcc RPMH_CXO_CLK>,
455 <&rpmhcc RPMH_CXO_CLK_A>,
459 ipcc: mailbox@408000 {
460 compatible = "qcom,sm6350-ipcc", "qcom,ipcc";
461 reg = <0 0x00408000 0 0x1000>;
462 interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
463 interrupt-controller;
464 #interrupt-cells = <3>;
469 compatible = "qcom,prng-ee";
470 reg = <0 0x00793000 0 0x1000>;
471 clocks = <&gcc GCC_PRNG_AHB_CLK>;
472 clock-names = "core";
475 sdhc_1: sdhci@7c4000 {
476 compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
477 reg = <0 0x007c4000 0 0x1000>,
478 <0 0x007c5000 0 0x1000>,
479 <0 0x007c8000 0 0x8000>;
480 reg-names = "hc", "cqhci", "ice";
482 interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
483 <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
484 interrupt-names = "hc_irq", "pwr_irq";
486 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
487 <&gcc GCC_SDCC1_APPS_CLK>,
488 <&rpmhcc RPMH_CXO_CLK>;
489 clock-names = "iface", "core", "xo";
490 qcom,dll-config = <0x000f642c>;
491 qcom,ddr-config = <0x80040868>;
492 power-domains = <&rpmhpd 0>;
493 operating-points-v2 = <&sdhc1_opp_table>;
500 sdhc1_opp_table: sdhc1-opp-table {
501 compatible = "operating-points-v2";
504 opp-hz = /bits/ 64 <19200000>;
505 required-opps = <&rpmhpd_opp_min_svs>;
509 opp-hz = /bits/ 64 <100000000>;
510 required-opps = <&rpmhpd_opp_low_svs>;
514 opp-hz = /bits/ 64 <384000000>;
515 required-opps = <&rpmhpd_opp_svs_l1>;
520 qupv3_id_1: geniqup@9c0000 {
521 compatible = "qcom,geni-se-qup";
522 reg = <0x0 0x9c0000 0x0 0x2000>;
523 clock-names = "m-ahb", "s-ahb";
524 clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
525 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
526 #address-cells = <2>;
528 iommus = <&apps_smmu 0x4c3 0x0>;
532 uart2: serial@98c000 {
533 compatible = "qcom,geni-debug-uart";
534 reg = <0 0x98c000 0 0x4000>;
536 clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
537 pinctrl-names = "default";
538 pinctrl-0 = <&qup_uart2_default>;
539 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
544 tcsr_mutex: hwlock@1f40000 {
545 compatible = "qcom,tcsr-mutex";
546 reg = <0x0 0x01f40000 0x0 0x40000>;
550 adsp: remoteproc@3000000 {
551 compatible = "qcom,sm6350-adsp-pas";
552 reg = <0 0x03000000 0 0x100>;
554 interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
555 <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
556 <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
557 <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
558 <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
559 interrupt-names = "wdog", "fatal", "ready",
560 "handover", "stop-ack";
562 clocks = <&rpmhcc RPMH_CXO_CLK>;
565 power-domains = <&rpmhpd SM6350_LCX>,
566 <&rpmhpd SM6350_LMX>;
567 power-domain-names = "lcx", "lmx";
569 memory-region = <&pil_adsp_mem>;
571 qcom,qmp = <&aoss_qmp>;
573 qcom,smem-states = <&smp2p_adsp_out 0>;
574 qcom,smem-state-names = "stop";
579 interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
580 IPCC_MPROC_SIGNAL_GLINK_QMP
581 IRQ_TYPE_EDGE_RISING>;
582 mboxes = <&ipcc IPCC_CLIENT_LPASS
583 IPCC_MPROC_SIGNAL_GLINK_QMP>;
586 qcom,remote-pid = <2>;
589 compatible = "qcom,fastrpc";
590 qcom,glink-channels = "fastrpcglink-apps-dsp";
592 #address-cells = <1>;
596 compatible = "qcom,fastrpc-compute-cb";
598 iommus = <&apps_smmu 0x1003 0x0>;
602 compatible = "qcom,fastrpc-compute-cb";
604 iommus = <&apps_smmu 0x1004 0x0>;
608 compatible = "qcom,fastrpc-compute-cb";
610 iommus = <&apps_smmu 0x1005 0x0>;
611 qcom,nsessions = <5>;
617 mpss: remoteproc@4080000 {
618 compatible = "qcom,sm6350-mpss-pas";
619 reg = <0x0 0x04080000 0x0 0x4040>;
621 interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
622 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
623 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
624 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
625 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
626 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
627 interrupt-names = "wdog", "fatal", "ready", "handover",
628 "stop-ack", "shutdown-ack";
630 clocks = <&rpmhcc RPMH_CXO_CLK>;
633 power-domains = <&rpmhpd SM6350_CX>,
634 <&rpmhpd SM6350_MSS>;
635 power-domain-names = "cx", "mss";
637 memory-region = <&pil_modem_mem>;
639 qcom,qmp = <&aoss_qmp>;
641 qcom,smem-states = <&modem_smp2p_out 0>;
642 qcom,smem-state-names = "stop";
647 interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
648 IPCC_MPROC_SIGNAL_GLINK_QMP
649 IRQ_TYPE_EDGE_RISING>;
650 mboxes = <&ipcc IPCC_CLIENT_MPSS
651 IPCC_MPROC_SIGNAL_GLINK_QMP>;
653 qcom,remote-pid = <1>;
657 cdsp: remoteproc@8300000 {
658 compatible = "qcom,sm6350-cdsp-pas";
659 reg = <0 0x08300000 0 0x10000>;
661 interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
662 <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
663 <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
664 <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
665 <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
666 interrupt-names = "wdog", "fatal", "ready",
667 "handover", "stop-ack";
669 clocks = <&rpmhcc RPMH_CXO_CLK>;
672 power-domains = <&rpmhpd SM6350_CX>,
674 power-domain-names = "cx", "mx";
676 memory-region = <&pil_cdsp_mem>;
678 qcom,qmp = <&aoss_qmp>;
680 qcom,smem-states = <&smp2p_cdsp_out 0>;
681 qcom,smem-state-names = "stop";
686 interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
687 IPCC_MPROC_SIGNAL_GLINK_QMP
688 IRQ_TYPE_EDGE_RISING>;
689 mboxes = <&ipcc IPCC_CLIENT_CDSP
690 IPCC_MPROC_SIGNAL_GLINK_QMP>;
693 qcom,remote-pid = <5>;
696 compatible = "qcom,fastrpc";
697 qcom,glink-channels = "fastrpcglink-apps-dsp";
699 #address-cells = <1>;
703 compatible = "qcom,fastrpc-compute-cb";
705 iommus = <&apps_smmu 0x1401 0x20>;
709 compatible = "qcom,fastrpc-compute-cb";
711 iommus = <&apps_smmu 0x1402 0x20>;
715 compatible = "qcom,fastrpc-compute-cb";
717 iommus = <&apps_smmu 0x1403 0x20>;
721 compatible = "qcom,fastrpc-compute-cb";
723 iommus = <&apps_smmu 0x1404 0x20>;
727 compatible = "qcom,fastrpc-compute-cb";
729 iommus = <&apps_smmu 0x1405 0x20>;
733 compatible = "qcom,fastrpc-compute-cb";
735 iommus = <&apps_smmu 0x1406 0x20>;
739 compatible = "qcom,fastrpc-compute-cb";
741 iommus = <&apps_smmu 0x1407 0x20>;
745 compatible = "qcom,fastrpc-compute-cb";
747 iommus = <&apps_smmu 0x1408 0x20>;
750 /* note: secure cb9 in downstream */
755 sdhc_2: sdhci@8804000 {
756 compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
757 reg = <0 0x08804000 0 0x1000>;
759 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
760 <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
761 interrupt-names = "hc_irq", "pwr_irq";
763 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
764 <&gcc GCC_SDCC2_APPS_CLK>,
765 <&rpmhcc RPMH_CXO_CLK>;
766 clock-names = "iface", "core", "xo";
767 qcom,dll-config = <0x0007642c>;
768 qcom,ddr-config = <0x80040868>;
769 power-domains = <&rpmhpd 0>;
770 operating-points-v2 = <&sdhc2_opp_table>;
775 sdhc2_opp_table: sdhc2-opp-table {
776 compatible = "operating-points-v2";
779 opp-hz = /bits/ 64 <100000000>;
780 required-opps = <&rpmhpd_opp_svs_l1>;
784 opp-hz = /bits/ 64 <202000000>;
785 required-opps = <&rpmhpd_opp_nom>;
790 usb_1_hsphy: phy@88e3000 {
791 compatible = "qcom,sm6350-qusb2-phy", "qcom,qusb2-v2-phy";
792 reg = <0 0x088e3000 0 0x400>;
796 clocks = <&xo_board>, <&rpmhcc RPMH_CXO_CLK>;
797 clock-names = "cfg_ahb", "ref";
799 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
802 usb_1_qmpphy: phy@88e9000 {
803 compatible = "qcom,sc7180-qmp-usb3-dp-phy";
804 reg = <0 0x088e9000 0 0x200>,
805 <0 0x088e8000 0 0x40>,
806 <0 0x088ea000 0 0x200>;
808 #address-cells = <2>;
812 clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
814 <&rpmhcc RPMH_QLINK_CLK>,
815 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
816 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
818 resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
819 <&gcc GCC_USB3_PHY_PRIM_BCR>;
820 reset-names = "phy", "common";
822 usb_1_ssphy: usb3-phy@88e9200 {
823 reg = <0 0x088e9200 0 0x200>,
824 <0 0x088e9400 0 0x200>,
825 <0 0x088e9c00 0 0x400>,
826 <0 0x088e9600 0 0x200>,
827 <0 0x088e9800 0 0x200>,
828 <0 0x088e9a00 0 0x100>;
831 clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
832 clock-names = "pipe0";
833 clock-output-names = "usb3_phy_pipe_clk_src";
836 dp_phy: dp-phy@88ea200 {
837 reg = <0 0x088ea200 0 0x200>,
838 <0 0x088ea400 0 0x200>,
839 <0 0x088eac00 0 0x400>,
840 <0 0x088ea600 0 0x200>,
841 <0 0x088ea800 0 0x200>,
842 <0 0x088eaa00 0 0x100>;
845 clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
846 clock-names = "pipe0";
847 clock-output-names = "usb3_phy_pipe_clk_src";
851 system-cache-controller@9200000 {
852 compatible = "qcom,sm6350-llcc";
853 reg = <0 0x09200000 0 0x50000>, <0 0x09600000 0 0x50000>;
854 reg-names = "llcc_base", "llcc_broadcast_base";
858 compatible = "qcom,sm6350-dwc3", "qcom,dwc3";
859 reg = <0 0x0a6f8800 0 0x400>;
861 #address-cells = <2>;
865 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
866 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
867 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
868 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
869 <&gcc GCC_USB30_PRIM_SLEEP_CLK>;
870 clock-names = "cfg_noc", "core", "iface", "mock_utmi",
873 interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
874 <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
875 <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
876 <&pdc 14 IRQ_TYPE_EDGE_BOTH>;
878 interrupt-names = "hs_phy_irq", "ss_phy_irq",
879 "dm_hs_phy_irq", "dp_hs_phy_irq";
881 power-domains = <&gcc USB30_PRIM_GDSC>;
883 resets = <&gcc GCC_USB30_PRIM_BCR>;
885 usb_1_dwc3: usb@a600000 {
886 compatible = "snps,dwc3";
887 reg = <0 0x0a600000 0 0xcd00>;
888 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
889 iommus = <&apps_smmu 0x540 0x0>;
890 snps,dis_u2_susphy_quirk;
891 snps,dis_enblslpm_quirk;
892 snps,has-lpm-erratum;
893 snps,hird-threshold = /bits/ 8 <0x10>;
894 phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
895 phy-names = "usb2-phy", "usb3-phy";
899 pdc: interrupt-controller@b220000 {
900 compatible = "qcom,sm6350-pdc", "qcom,pdc";
901 reg = <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x64>;
902 qcom,pdc-ranges = <0 480 94>, <94 609 31>,
903 <125 63 1>, <126 655 12>, <138 139 15>;
904 #interrupt-cells = <2>;
905 interrupt-parent = <&intc>;
906 interrupt-controller;
909 tsens0: thermal-sensor@c263000 {
910 compatible = "qcom,sm6350-tsens", "qcom,tsens-v2";
911 reg = <0 0x0c263000 0 0x1ff>, /* TM */
912 <0 0x0c222000 0 0x8>; /* SROT */
913 #qcom,sensors = <16>;
914 interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
915 <&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
916 interrupt-names = "uplow", "critical";
917 #thermal-sensor-cells = <1>;
920 tsens1: thermal-sensor@c265000 {
921 compatible = "qcom,sm6350-tsens", "qcom,tsens-v2";
922 reg = <0 0x0c265000 0 0x1ff>, /* TM */
923 <0 0x0c223000 0 0x8>; /* SROT */
924 #qcom,sensors = <16>;
925 interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
926 <&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
927 interrupt-names = "uplow", "critical";
928 #thermal-sensor-cells = <1>;
931 aoss_qmp: power-controller@c300000 {
932 compatible = "qcom,sm6350-aoss-qmp", "qcom,aoss-qmp";
933 reg = <0 0x0c300000 0 0x1000>;
934 interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
935 IRQ_TYPE_EDGE_RISING>;
936 mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
941 spmi_bus: spmi@c440000 {
942 compatible = "qcom,spmi-pmic-arb";
943 reg = <0 0xc440000 0 0x1100>,
944 <0 0xc600000 0 0x2000000>,
945 <0 0xe600000 0 0x100000>,
946 <0 0xe700000 0 0xa0000>,
947 <0 0xc40a000 0 0x26000>;
948 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
949 interrupt-names = "periph_irq";
950 interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
953 #address-cells = <2>;
955 interrupt-controller;
956 #interrupt-cells = <4>;
959 tlmm: pinctrl@f100000 {
960 compatible = "qcom,sm6350-tlmm";
961 reg = <0 0x0f100000 0 0x300000>;
962 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
963 <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
964 <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
965 <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
966 <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
967 <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
968 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
969 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
970 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
973 interrupt-controller;
974 #interrupt-cells = <2>;
975 gpio-ranges = <&tlmm 0 0 157>;
977 qup_uart2_default: qup-uart2-default {
978 pins = "gpio25", "gpio26";
979 function = "qup13_f2";
980 drive-strength = <2>;
985 apps_smmu: iommu@15000000 {
986 compatible = "qcom,sm6350-smmu-500", "arm,mmu-500";
987 reg = <0 0x15000000 0 0x100000>;
989 #global-interrupts = <1>;
990 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
991 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
992 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
993 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
994 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
995 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
996 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
997 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
998 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
999 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1000 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1001 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1002 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1003 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1004 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1005 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1006 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1007 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1008 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1009 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1010 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1011 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1012 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1013 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1014 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1015 <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
1016 <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
1017 <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
1018 <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
1019 <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
1020 <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
1021 <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
1022 <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
1023 <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
1024 <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
1025 <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
1026 <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
1027 <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
1028 <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
1029 <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
1030 <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
1031 <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
1032 <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
1033 <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
1034 <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
1035 <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
1036 <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
1037 <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
1038 <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
1039 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
1040 <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
1041 <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
1042 <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
1043 <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
1044 <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
1045 <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
1046 <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
1047 <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
1048 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
1049 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
1050 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
1051 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
1052 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
1053 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
1054 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
1055 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
1056 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
1057 <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
1058 <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
1059 <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
1060 <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
1061 <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
1062 <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
1063 <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
1064 <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
1065 <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
1066 <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
1067 <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
1068 <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
1069 <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
1070 <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>;
1073 intc: interrupt-controller@17a00000 {
1074 compatible = "arm,gic-v3";
1075 #interrupt-cells = <3>;
1076 interrupt-controller;
1077 reg = <0x0 0x17a00000 0x0 0x10000>, /* GICD */
1078 <0x0 0x17a60000 0x0 0x100000>; /* GICR * 8 */
1079 interrupts = <GIC_PPI 8 IRQ_TYPE_LEVEL_HIGH>;
1083 compatible = "qcom,apss-wdt-sm6350", "qcom,kpss-wdt";
1084 reg = <0 0x17c10000 0 0x1000>;
1085 clocks = <&sleep_clk>;
1086 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
1090 compatible = "arm,armv7-timer-mem";
1091 reg = <0x0 0x17c20000 0x0 0x1000>;
1092 clock-frequency = <19200000>;
1093 #address-cells = <2>;
1099 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1100 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1101 reg = <0x0 0x17c21000 0x0 0x1000>,
1102 <0x0 0x17c22000 0x0 0x1000>;
1107 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1108 reg = <0x0 0x17c23000 0x0 0x1000>;
1109 status = "disabled";
1114 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1115 reg = <0x0 0x17c25000 0x0 0x1000>;
1116 status = "disabled";
1121 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1122 reg = <0x0 0x17c27000 0x0 0x1000>;
1123 status = "disabled";
1128 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1129 reg = <0x0 0x17c29000 0x0 0x1000>;
1130 status = "disabled";
1135 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1136 reg = <0x0 0x17c2b000 0x0 0x1000>;
1137 status = "disabled";
1142 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1143 reg = <0x0 0x17c2d000 0x0 0x1000>;
1144 status = "disabled";
1148 apps_rsc: rsc@18200000 {
1149 compatible = "qcom,rpmh-rsc";
1151 reg = <0x0 0x18200000 0x0 0x10000>,
1152 <0x0 0x18210000 0x0 0x10000>,
1153 <0x0 0x18220000 0x0 0x10000>;
1154 reg-names = "drv-0", "drv-1", "drv-2";
1155 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1156 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1157 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1158 qcom,tcs-offset = <0xd00>;
1160 qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
1161 <WAKE_TCS 3>, <CONTROL_TCS 1>;
1163 rpmhcc: clock-controller {
1164 compatible = "qcom,sm6350-rpmh-clk";
1167 clocks = <&xo_board>;
1170 rpmhpd: power-controller {
1171 compatible = "qcom,sm6350-rpmhpd";
1172 #power-domain-cells = <1>;
1173 operating-points-v2 = <&rpmhpd_opp_table>;
1175 rpmhpd_opp_table: opp-table {
1176 compatible = "operating-points-v2";
1178 rpmhpd_opp_ret: opp1 {
1179 opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1182 rpmhpd_opp_min_svs: opp2 {
1183 opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1186 rpmhpd_opp_low_svs: opp3 {
1187 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1190 rpmhpd_opp_svs: opp4 {
1191 opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1194 rpmhpd_opp_svs_l1: opp5 {
1195 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1198 rpmhpd_opp_nom: opp6 {
1199 opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1202 rpmhpd_opp_nom_l1: opp7 {
1203 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1206 rpmhpd_opp_nom_l2: opp8 {
1207 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
1210 rpmhpd_opp_turbo: opp9 {
1211 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1214 rpmhpd_opp_turbo_l1: opp10 {
1215 opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1220 apps_bcm_voter: bcm_voter {
1221 compatible = "qcom,bcm-voter";
1225 cpufreq_hw: cpufreq@18323000 {
1226 compatible = "qcom,cpufreq-hw";
1227 reg = <0 0x18323000 0 0x1000>, <0 0x18325800 0 0x1000>;
1228 reg-names = "freq-domain0", "freq-domain1";
1229 clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
1230 clock-names = "xo", "alternate";
1232 #freq-domain-cells = <1>;
1237 compatible = "arm,armv8-timer";
1238 clock-frequency = <19200000>;
1239 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1240 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1241 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1242 <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;