0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * Copyright (c) 2021, Konrad Dybcio <konrad.dybcio@somainline.org>
0004 */
0005
0006 #include <dt-bindings/clock/qcom,gcc-sm6350.h>
0007 #include <dt-bindings/clock/qcom,rpmh.h>
0008 #include <dt-bindings/gpio/gpio.h>
0009 #include <dt-bindings/interrupt-controller/arm-gic.h>
0010 #include <dt-bindings/mailbox/qcom-ipcc.h>
0011 #include <dt-bindings/power/qcom-rpmpd.h>
0012 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
0013
0014 / {
0015 interrupt-parent = <&intc>;
0016 #address-cells = <2>;
0017 #size-cells = <2>;
0018
0019 clocks {
0020 xo_board: xo-board {
0021 compatible = "fixed-clock";
0022 #clock-cells = <0>;
0023 clock-frequency = <76800000>;
0024 clock-output-names = "xo_board";
0025 };
0026
0027 sleep_clk: sleep-clk {
0028 compatible = "fixed-clock";
0029 clock-frequency = <32764>;
0030 #clock-cells = <0>;
0031 };
0032 };
0033
0034 cpus {
0035 #address-cells = <2>;
0036 #size-cells = <0>;
0037
0038 CPU0: cpu@0 {
0039 device_type = "cpu";
0040 compatible = "qcom,kryo560";
0041 reg = <0x0 0x0>;
0042 enable-method = "psci";
0043 capacity-dmips-mhz = <1024>;
0044 dynamic-power-coefficient = <100>;
0045 next-level-cache = <&L2_0>;
0046 qcom,freq-domain = <&cpufreq_hw 0>;
0047 #cooling-cells = <2>;
0048 L2_0: l2-cache {
0049 compatible = "cache";
0050 next-level-cache = <&L3_0>;
0051 L3_0: l3-cache {
0052 compatible = "cache";
0053 };
0054 };
0055 };
0056
0057 CPU1: cpu@100 {
0058 device_type = "cpu";
0059 compatible = "qcom,kryo560";
0060 reg = <0x0 0x100>;
0061 enable-method = "psci";
0062 capacity-dmips-mhz = <1024>;
0063 dynamic-power-coefficient = <100>;
0064 next-level-cache = <&L2_100>;
0065 qcom,freq-domain = <&cpufreq_hw 0>;
0066 #cooling-cells = <2>;
0067 L2_100: l2-cache {
0068 compatible = "cache";
0069 next-level-cache = <&L3_0>;
0070 };
0071 };
0072
0073 CPU2: cpu@200 {
0074 device_type = "cpu";
0075 compatible = "qcom,kryo560";
0076 reg = <0x0 0x200>;
0077 enable-method = "psci";
0078 capacity-dmips-mhz = <1024>;
0079 dynamic-power-coefficient = <100>;
0080 next-level-cache = <&L2_200>;
0081 qcom,freq-domain = <&cpufreq_hw 0>;
0082 #cooling-cells = <2>;
0083 L2_200: l2-cache {
0084 compatible = "cache";
0085 next-level-cache = <&L3_0>;
0086 };
0087 };
0088
0089 CPU3: cpu@300 {
0090 device_type = "cpu";
0091 compatible = "qcom,kryo560";
0092 reg = <0x0 0x300>;
0093 enable-method = "psci";
0094 capacity-dmips-mhz = <1024>;
0095 dynamic-power-coefficient = <100>;
0096 next-level-cache = <&L2_300>;
0097 qcom,freq-domain = <&cpufreq_hw 0>;
0098 #cooling-cells = <2>;
0099 L2_300: l2-cache {
0100 compatible = "cache";
0101 next-level-cache = <&L3_0>;
0102 };
0103 };
0104
0105 CPU4: cpu@400 {
0106 device_type = "cpu";
0107 compatible = "qcom,kryo560";
0108 reg = <0x0 0x400>;
0109 enable-method = "psci";
0110 capacity-dmips-mhz = <1024>;
0111 dynamic-power-coefficient = <100>;
0112 next-level-cache = <&L2_400>;
0113 qcom,freq-domain = <&cpufreq_hw 0>;
0114 #cooling-cells = <2>;
0115 L2_400: l2-cache {
0116 compatible = "cache";
0117 next-level-cache = <&L3_0>;
0118 };
0119 };
0120
0121 CPU5: cpu@500 {
0122 device_type = "cpu";
0123 compatible = "qcom,kryo560";
0124 reg = <0x0 0x500>;
0125 enable-method = "psci";
0126 capacity-dmips-mhz = <1024>;
0127 dynamic-power-coefficient = <100>;
0128 next-level-cache = <&L2_500>;
0129 qcom,freq-domain = <&cpufreq_hw 0>;
0130 #cooling-cells = <2>;
0131 L2_500: l2-cache {
0132 compatible = "cache";
0133 next-level-cache = <&L3_0>;
0134 };
0135
0136 };
0137
0138 CPU6: cpu@600 {
0139 device_type = "cpu";
0140 compatible = "qcom,kryo560";
0141 reg = <0x0 0x600>;
0142 enable-method = "psci";
0143 capacity-dmips-mhz = <1894>;
0144 dynamic-power-coefficient = <703>;
0145 next-level-cache = <&L2_600>;
0146 qcom,freq-domain = <&cpufreq_hw 1>;
0147 #cooling-cells = <2>;
0148 L2_600: l2-cache {
0149 compatible = "cache";
0150 next-level-cache = <&L3_0>;
0151 };
0152 };
0153
0154 CPU7: cpu@700 {
0155 device_type = "cpu";
0156 compatible = "qcom,kryo560";
0157 reg = <0x0 0x700>;
0158 enable-method = "psci";
0159 capacity-dmips-mhz = <1894>;
0160 dynamic-power-coefficient = <703>;
0161 next-level-cache = <&L2_700>;
0162 qcom,freq-domain = <&cpufreq_hw 1>;
0163 #cooling-cells = <2>;
0164 L2_700: l2-cache {
0165 compatible = "cache";
0166 next-level-cache = <&L3_0>;
0167 };
0168 };
0169
0170 cpu-map {
0171 cluster0 {
0172 core0 {
0173 cpu = <&CPU0>;
0174 };
0175
0176 core1 {
0177 cpu = <&CPU1>;
0178 };
0179
0180 core2 {
0181 cpu = <&CPU2>;
0182 };
0183
0184 core3 {
0185 cpu = <&CPU3>;
0186 };
0187
0188 core4 {
0189 cpu = <&CPU4>;
0190 };
0191
0192 core5 {
0193 cpu = <&CPU5>;
0194 };
0195
0196 core6 {
0197 cpu = <&CPU6>;
0198 };
0199
0200 core7 {
0201 cpu = <&CPU7>;
0202 };
0203 };
0204 };
0205 };
0206
0207 firmware {
0208 scm: scm {
0209 compatible = "qcom,scm-sm6350", "qcom,scm";
0210 #reset-cells = <1>;
0211 };
0212 };
0213
0214 memory@80000000 {
0215 device_type = "memory";
0216 /* We expect the bootloader to fill in the size */
0217 reg = <0x0 0x80000000 0x0 0x0>;
0218 };
0219
0220 pmu {
0221 compatible = "arm,armv8-pmuv3";
0222 interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_LOW>;
0223 };
0224
0225 psci {
0226 compatible = "arm,psci-1.0";
0227 method = "smc";
0228 };
0229
0230 reserved_memory: reserved-memory {
0231 #address-cells = <2>;
0232 #size-cells = <2>;
0233 ranges;
0234
0235 hyp_mem: memory@80000000 {
0236 reg = <0 0x80000000 0 0x600000>;
0237 no-map;
0238 };
0239
0240 xbl_aop_mem: memory@80700000 {
0241 reg = <0 0x80700000 0 0x160000>;
0242 no-map;
0243 };
0244
0245 cmd_db: memory@80860000 {
0246 compatible = "qcom,cmd-db";
0247 reg = <0 0x80860000 0 0x20000>;
0248 no-map;
0249 };
0250
0251 sec_apps_mem: memory@808ff000 {
0252 reg = <0 0x808ff000 0 0x1000>;
0253 no-map;
0254 };
0255
0256 smem_mem: memory@80900000 {
0257 reg = <0 0x80900000 0 0x200000>;
0258 no-map;
0259 };
0260
0261 cdsp_sec_mem: memory@80b00000 {
0262 reg = <0 0x80b00000 0 0x1e00000>;
0263 no-map;
0264 };
0265
0266 pil_camera_mem: memory@86000000 {
0267 reg = <0 0x86000000 0 0x500000>;
0268 no-map;
0269 };
0270
0271 pil_npu_mem: memory@86500000 {
0272 reg = <0 0x86500000 0 0x500000>;
0273 no-map;
0274 };
0275
0276 pil_video_mem: memory@86a00000 {
0277 reg = <0 0x86a00000 0 0x500000>;
0278 no-map;
0279 };
0280
0281 pil_cdsp_mem: memory@86f00000 {
0282 reg = <0 0x86f00000 0 0x1e00000>;
0283 no-map;
0284 };
0285
0286 pil_adsp_mem: memory@88d00000 {
0287 reg = <0 0x88d00000 0 0x2800000>;
0288 no-map;
0289 };
0290
0291 wlan_fw_mem: memory@8b500000 {
0292 reg = <0 0x8b500000 0 0x200000>;
0293 no-map;
0294 };
0295
0296 pil_ipa_fw_mem: memory@8b700000 {
0297 reg = <0 0x8b700000 0 0x10000>;
0298 no-map;
0299 };
0300
0301 pil_ipa_gsi_mem: memory@8b710000 {
0302 reg = <0 0x8b710000 0 0x5400>;
0303 no-map;
0304 };
0305
0306 pil_gpu_mem: memory@8b715400 {
0307 reg = <0 0x8b715400 0 0x2000>;
0308 no-map;
0309 };
0310
0311 pil_modem_mem: memory@8b800000 {
0312 reg = <0 0x8b800000 0 0xf800000>;
0313 no-map;
0314 };
0315
0316 cont_splash_memory: memory@a0000000 {
0317 reg = <0 0xa0000000 0 0x2300000>;
0318 no-map;
0319 };
0320
0321 dfps_data_memory: memory@a2300000 {
0322 reg = <0 0xa2300000 0 0x100000>;
0323 no-map;
0324 };
0325
0326 removed_region: memory@c0000000 {
0327 reg = <0 0xc0000000 0 0x3900000>;
0328 no-map;
0329 };
0330
0331 debug_region: memory@ffb00000 {
0332 reg = <0 0xffb00000 0 0xc0000>;
0333 no-map;
0334 };
0335
0336 last_log_region: memory@ffbc0000 {
0337 reg = <0 0xffbc0000 0 0x40000>;
0338 no-map;
0339 };
0340
0341 ramoops: ramoops@ffc00000 {
0342 compatible = "removed-dma-pool", "ramoops";
0343 reg = <0 0xffc00000 0 0x00100000>;
0344 record-size = <0x1000>;
0345 console-size = <0x40000>;
0346 ftrace-size = <0x0>;
0347 msg-size = <0x20000 0x20000>;
0348 cc-size = <0x0>;
0349 no-map;
0350 };
0351
0352 cmdline_region: memory@ffd00000 {
0353 reg = <0 0xffd00000 0 0x1000>;
0354 no-map;
0355 };
0356 };
0357
0358 smem {
0359 compatible = "qcom,smem";
0360 memory-region = <&smem_mem>;
0361 hwlocks = <&tcsr_mutex 3>;
0362 };
0363
0364 smp2p-adsp {
0365 compatible = "qcom,smp2p";
0366 qcom,smem = <443>, <429>;
0367 interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
0368 IPCC_MPROC_SIGNAL_SMP2P
0369 IRQ_TYPE_EDGE_RISING>;
0370 mboxes = <&ipcc IPCC_CLIENT_LPASS
0371 IPCC_MPROC_SIGNAL_SMP2P>;
0372
0373 qcom,local-pid = <0>;
0374 qcom,remote-pid = <2>;
0375
0376 smp2p_adsp_out: master-kernel {
0377 qcom,entry-name = "master-kernel";
0378 #qcom,smem-state-cells = <1>;
0379 };
0380
0381 smp2p_adsp_in: slave-kernel {
0382 qcom,entry-name = "slave-kernel";
0383 interrupt-controller;
0384 #interrupt-cells = <2>;
0385 };
0386 };
0387
0388 smp2p-cdsp {
0389 compatible = "qcom,smp2p";
0390 qcom,smem = <94>, <432>;
0391 interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
0392 IPCC_MPROC_SIGNAL_SMP2P
0393 IRQ_TYPE_EDGE_RISING>;
0394 mboxes = <&ipcc IPCC_CLIENT_CDSP
0395 IPCC_MPROC_SIGNAL_SMP2P>;
0396
0397 qcom,local-pid = <0>;
0398 qcom,remote-pid = <5>;
0399
0400 smp2p_cdsp_out: master-kernel {
0401 qcom,entry-name = "master-kernel";
0402 #qcom,smem-state-cells = <1>;
0403 };
0404
0405 smp2p_cdsp_in: slave-kernel {
0406 qcom,entry-name = "slave-kernel";
0407 interrupt-controller;
0408 #interrupt-cells = <2>;
0409 };
0410 };
0411
0412 smp2p-mpss {
0413 compatible = "qcom,smp2p";
0414 qcom,smem = <435>, <428>;
0415
0416 interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
0417 IPCC_MPROC_SIGNAL_SMP2P
0418 IRQ_TYPE_EDGE_RISING>;
0419 mboxes = <&ipcc IPCC_CLIENT_MPSS
0420 IPCC_MPROC_SIGNAL_SMP2P>;
0421
0422 qcom,local-pid = <0>;
0423 qcom,remote-pid = <1>;
0424
0425 modem_smp2p_out: master-kernel {
0426 qcom,entry-name = "master-kernel";
0427 #qcom,smem-state-cells = <1>;
0428 };
0429
0430 modem_smp2p_in: slave-kernel {
0431 qcom,entry-name = "slave-kernel";
0432
0433 interrupt-controller;
0434 #interrupt-cells = <2>;
0435 };
0436 };
0437
0438 soc: soc@0 {
0439 #address-cells = <2>;
0440 #size-cells = <2>;
0441 ranges = <0 0 0 0 0x10 0>;
0442 dma-ranges = <0 0 0 0 0x10 0>;
0443 compatible = "simple-bus";
0444
0445 gcc: clock-controller@100000 {
0446 compatible = "qcom,gcc-sm6350";
0447 reg = <0 0x00100000 0 0x1f0000>;
0448 #clock-cells = <1>;
0449 #reset-cells = <1>;
0450 #power-domain-cells = <1>;
0451 clock-names = "bi_tcxo",
0452 "bi_tcxo_ao",
0453 "sleep_clk";
0454 clocks = <&rpmhcc RPMH_CXO_CLK>,
0455 <&rpmhcc RPMH_CXO_CLK_A>,
0456 <&sleep_clk>;
0457 };
0458
0459 ipcc: mailbox@408000 {
0460 compatible = "qcom,sm6350-ipcc", "qcom,ipcc";
0461 reg = <0 0x00408000 0 0x1000>;
0462 interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>;
0463 interrupt-controller;
0464 #interrupt-cells = <3>;
0465 #mbox-cells = <2>;
0466 };
0467
0468 rng: rng@793000 {
0469 compatible = "qcom,prng-ee";
0470 reg = <0 0x00793000 0 0x1000>;
0471 clocks = <&gcc GCC_PRNG_AHB_CLK>;
0472 clock-names = "core";
0473 };
0474
0475 sdhc_1: mmc@7c4000 {
0476 compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
0477 reg = <0 0x007c4000 0 0x1000>,
0478 <0 0x007c5000 0 0x1000>,
0479 <0 0x007c8000 0 0x8000>;
0480 reg-names = "hc", "cqhci", "ice";
0481
0482 interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
0483 <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
0484 interrupt-names = "hc_irq", "pwr_irq";
0485
0486 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
0487 <&gcc GCC_SDCC1_APPS_CLK>,
0488 <&rpmhcc RPMH_CXO_CLK>;
0489 clock-names = "iface", "core", "xo";
0490 qcom,dll-config = <0x000f642c>;
0491 qcom,ddr-config = <0x80040868>;
0492 power-domains = <&rpmhpd SM6350_CX>;
0493 operating-points-v2 = <&sdhc1_opp_table>;
0494 bus-width = <8>;
0495 non-removable;
0496 supports-cqe;
0497
0498 status = "disabled";
0499
0500 sdhc1_opp_table: opp-table {
0501 compatible = "operating-points-v2";
0502
0503 opp-19200000 {
0504 opp-hz = /bits/ 64 <19200000>;
0505 required-opps = <&rpmhpd_opp_min_svs>;
0506 };
0507
0508 opp-100000000 {
0509 opp-hz = /bits/ 64 <100000000>;
0510 required-opps = <&rpmhpd_opp_low_svs>;
0511 };
0512
0513 opp-384000000 {
0514 opp-hz = /bits/ 64 <384000000>;
0515 required-opps = <&rpmhpd_opp_svs_l1>;
0516 };
0517 };
0518 };
0519
0520 qupv3_id_0: geniqup@8c0000 {
0521 compatible = "qcom,geni-se-qup";
0522 reg = <0x0 0x8c0000 0x0 0x2000>;
0523 clock-names = "m-ahb", "s-ahb";
0524 clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
0525 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
0526 #address-cells = <2>;
0527 #size-cells = <2>;
0528 iommus = <&apps_smmu 0x43 0x0>;
0529 ranges;
0530 status = "disabled";
0531
0532 i2c0: i2c@880000 {
0533 compatible = "qcom,geni-i2c";
0534 reg = <0 0x00880000 0 0x4000>;
0535 clock-names = "se";
0536 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
0537 pinctrl-names = "default";
0538 pinctrl-0 = <&qup_i2c0_default>;
0539 interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
0540 #address-cells = <1>;
0541 #size-cells = <0>;
0542 status = "disabled";
0543 };
0544
0545 i2c2: i2c@888000 {
0546 compatible = "qcom,geni-i2c";
0547 reg = <0 0x00888000 0 0x4000>;
0548 clock-names = "se";
0549 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
0550 pinctrl-names = "default";
0551 pinctrl-0 = <&qup_i2c2_default>;
0552 interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
0553 #address-cells = <1>;
0554 #size-cells = <0>;
0555 status = "disabled";
0556 };
0557 };
0558
0559 qupv3_id_1: geniqup@9c0000 {
0560 compatible = "qcom,geni-se-qup";
0561 reg = <0x0 0x9c0000 0x0 0x2000>;
0562 clock-names = "m-ahb", "s-ahb";
0563 clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
0564 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
0565 #address-cells = <2>;
0566 #size-cells = <2>;
0567 iommus = <&apps_smmu 0x4c3 0x0>;
0568 ranges;
0569 status = "disabled";
0570
0571 i2c6: i2c@980000 {
0572 compatible = "qcom,geni-i2c";
0573 reg = <0 0x00980000 0 0x4000>;
0574 clock-names = "se";
0575 clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
0576 pinctrl-names = "default";
0577 pinctrl-0 = <&qup_i2c6_default>;
0578 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
0579 #address-cells = <1>;
0580 #size-cells = <0>;
0581 status = "disabled";
0582 };
0583
0584 i2c7: i2c@984000 {
0585 compatible = "qcom,geni-i2c";
0586 reg = <0 0x00984000 0 0x4000>;
0587 clock-names = "se";
0588 clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
0589 pinctrl-names = "default";
0590 pinctrl-0 = <&qup_i2c7_default>;
0591 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
0592 #address-cells = <1>;
0593 #size-cells = <0>;
0594 status = "disabled";
0595 };
0596
0597 i2c8: i2c@988000 {
0598 compatible = "qcom,geni-i2c";
0599 reg = <0 0x00988000 0 0x4000>;
0600 clock-names = "se";
0601 clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
0602 pinctrl-names = "default";
0603 pinctrl-0 = <&qup_i2c8_default>;
0604 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
0605 #address-cells = <1>;
0606 #size-cells = <0>;
0607 status = "disabled";
0608 };
0609
0610 uart9: serial@98c000 {
0611 compatible = "qcom,geni-debug-uart";
0612 reg = <0 0x98c000 0 0x4000>;
0613 clock-names = "se";
0614 clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
0615 pinctrl-names = "default";
0616 pinctrl-0 = <&qup_uart9_default>;
0617 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
0618 status = "disabled";
0619 };
0620
0621 i2c10: i2c@990000 {
0622 compatible = "qcom,geni-i2c";
0623 reg = <0 0x00990000 0 0x4000>;
0624 clock-names = "se";
0625 clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
0626 pinctrl-names = "default";
0627 pinctrl-0 = <&qup_i2c10_default>;
0628 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
0629 #address-cells = <1>;
0630 #size-cells = <0>;
0631 status = "disabled";
0632 };
0633
0634 };
0635
0636 ufs_mem_hc: ufs@1d84000 {
0637 compatible = "qcom,sm6350-ufshc", "qcom,ufshc",
0638 "jedec,ufs-2.0";
0639 reg = <0 0x01d84000 0 0x3000>,
0640 <0 0x01d90000 0 0x8000>;
0641 reg-names = "std", "ice";
0642 interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
0643 phys = <&ufs_mem_phy_lanes>;
0644 phy-names = "ufsphy";
0645 lanes-per-direction = <2>;
0646 #reset-cells = <1>;
0647 resets = <&gcc GCC_UFS_PHY_BCR>;
0648 reset-names = "rst";
0649
0650 power-domains = <&gcc UFS_PHY_GDSC>;
0651
0652 iommus = <&apps_smmu 0x80 0x0>;
0653
0654 clock-names = "core_clk",
0655 "bus_aggr_clk",
0656 "iface_clk",
0657 "core_clk_unipro",
0658 "ref_clk",
0659 "tx_lane0_sync_clk",
0660 "rx_lane0_sync_clk",
0661 "rx_lane1_sync_clk",
0662 "ice_core_clk";
0663 clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
0664 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
0665 <&gcc GCC_UFS_PHY_AHB_CLK>,
0666 <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
0667 <&rpmhcc RPMH_QLINK_CLK>,
0668 <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
0669 <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
0670 <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>,
0671 <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
0672 freq-table-hz =
0673 <50000000 200000000>,
0674 <0 0>,
0675 <0 0>,
0676 <37500000 150000000>,
0677 <75000000 300000000>,
0678 <0 0>,
0679 <0 0>,
0680 <0 0>,
0681 <0 0>;
0682
0683 status = "disabled";
0684 };
0685
0686 ufs_mem_phy: phy@1d87000 {
0687 compatible = "qcom,sm6350-qmp-ufs-phy";
0688 reg = <0 0x01d87000 0 0x18c>;
0689 #address-cells = <2>;
0690 #size-cells = <2>;
0691 ranges;
0692
0693 clock-names = "ref",
0694 "ref_aux";
0695 clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
0696 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
0697
0698 resets = <&ufs_mem_hc 0>;
0699 reset-names = "ufsphy";
0700
0701 status = "disabled";
0702
0703 ufs_mem_phy_lanes: phy@1d87400 {
0704 reg = <0 0x01d87400 0 0x128>,
0705 <0 0x01d87600 0 0x1fc>,
0706 <0 0x01d87c00 0 0x1dc>,
0707 <0 0x01d87800 0 0x128>,
0708 <0 0x01d87a00 0 0x1fc>;
0709 #phy-cells = <0>;
0710 };
0711 };
0712
0713 tcsr_mutex: hwlock@1f40000 {
0714 compatible = "qcom,tcsr-mutex";
0715 reg = <0x0 0x01f40000 0x0 0x40000>;
0716 #hwlock-cells = <1>;
0717 };
0718
0719 adsp: remoteproc@3000000 {
0720 compatible = "qcom,sm6350-adsp-pas";
0721 reg = <0 0x03000000 0 0x100>;
0722
0723 interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
0724 <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
0725 <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
0726 <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
0727 <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
0728 interrupt-names = "wdog", "fatal", "ready",
0729 "handover", "stop-ack";
0730
0731 clocks = <&rpmhcc RPMH_CXO_CLK>;
0732 clock-names = "xo";
0733
0734 power-domains = <&rpmhpd SM6350_LCX>,
0735 <&rpmhpd SM6350_LMX>;
0736 power-domain-names = "lcx", "lmx";
0737
0738 memory-region = <&pil_adsp_mem>;
0739
0740 qcom,qmp = <&aoss_qmp>;
0741
0742 qcom,smem-states = <&smp2p_adsp_out 0>;
0743 qcom,smem-state-names = "stop";
0744
0745 status = "disabled";
0746
0747 glink-edge {
0748 interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
0749 IPCC_MPROC_SIGNAL_GLINK_QMP
0750 IRQ_TYPE_EDGE_RISING>;
0751 mboxes = <&ipcc IPCC_CLIENT_LPASS
0752 IPCC_MPROC_SIGNAL_GLINK_QMP>;
0753
0754 label = "lpass";
0755 qcom,remote-pid = <2>;
0756
0757 fastrpc {
0758 compatible = "qcom,fastrpc";
0759 qcom,glink-channels = "fastrpcglink-apps-dsp";
0760 label = "adsp";
0761 #address-cells = <1>;
0762 #size-cells = <0>;
0763
0764 compute-cb@3 {
0765 compatible = "qcom,fastrpc-compute-cb";
0766 reg = <3>;
0767 iommus = <&apps_smmu 0x1003 0x0>;
0768 };
0769
0770 compute-cb@4 {
0771 compatible = "qcom,fastrpc-compute-cb";
0772 reg = <4>;
0773 iommus = <&apps_smmu 0x1004 0x0>;
0774 };
0775
0776 compute-cb@5 {
0777 compatible = "qcom,fastrpc-compute-cb";
0778 reg = <5>;
0779 iommus = <&apps_smmu 0x1005 0x0>;
0780 qcom,nsessions = <5>;
0781 };
0782 };
0783 };
0784 };
0785
0786 mpss: remoteproc@4080000 {
0787 compatible = "qcom,sm6350-mpss-pas";
0788 reg = <0x0 0x04080000 0x0 0x4040>;
0789
0790 interrupts-extended = <&intc GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
0791 <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
0792 <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
0793 <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
0794 <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
0795 <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
0796 interrupt-names = "wdog", "fatal", "ready", "handover",
0797 "stop-ack", "shutdown-ack";
0798
0799 clocks = <&rpmhcc RPMH_CXO_CLK>;
0800 clock-names = "xo";
0801
0802 power-domains = <&rpmhpd SM6350_CX>,
0803 <&rpmhpd SM6350_MSS>;
0804 power-domain-names = "cx", "mss";
0805
0806 memory-region = <&pil_modem_mem>;
0807
0808 qcom,qmp = <&aoss_qmp>;
0809
0810 qcom,smem-states = <&modem_smp2p_out 0>;
0811 qcom,smem-state-names = "stop";
0812
0813 status = "disabled";
0814
0815 glink-edge {
0816 interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
0817 IPCC_MPROC_SIGNAL_GLINK_QMP
0818 IRQ_TYPE_EDGE_RISING>;
0819 mboxes = <&ipcc IPCC_CLIENT_MPSS
0820 IPCC_MPROC_SIGNAL_GLINK_QMP>;
0821 label = "modem";
0822 qcom,remote-pid = <1>;
0823 };
0824 };
0825
0826 cdsp: remoteproc@8300000 {
0827 compatible = "qcom,sm6350-cdsp-pas";
0828 reg = <0 0x08300000 0 0x10000>;
0829
0830 interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
0831 <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
0832 <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
0833 <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
0834 <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
0835 interrupt-names = "wdog", "fatal", "ready",
0836 "handover", "stop-ack";
0837
0838 clocks = <&rpmhcc RPMH_CXO_CLK>;
0839 clock-names = "xo";
0840
0841 power-domains = <&rpmhpd SM6350_CX>,
0842 <&rpmhpd SM6350_MX>;
0843 power-domain-names = "cx", "mx";
0844
0845 memory-region = <&pil_cdsp_mem>;
0846
0847 qcom,qmp = <&aoss_qmp>;
0848
0849 qcom,smem-states = <&smp2p_cdsp_out 0>;
0850 qcom,smem-state-names = "stop";
0851
0852 status = "disabled";
0853
0854 glink-edge {
0855 interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
0856 IPCC_MPROC_SIGNAL_GLINK_QMP
0857 IRQ_TYPE_EDGE_RISING>;
0858 mboxes = <&ipcc IPCC_CLIENT_CDSP
0859 IPCC_MPROC_SIGNAL_GLINK_QMP>;
0860
0861 label = "cdsp";
0862 qcom,remote-pid = <5>;
0863
0864 fastrpc {
0865 compatible = "qcom,fastrpc";
0866 qcom,glink-channels = "fastrpcglink-apps-dsp";
0867 label = "cdsp";
0868 #address-cells = <1>;
0869 #size-cells = <0>;
0870
0871 compute-cb@1 {
0872 compatible = "qcom,fastrpc-compute-cb";
0873 reg = <1>;
0874 iommus = <&apps_smmu 0x1401 0x20>;
0875 };
0876
0877 compute-cb@2 {
0878 compatible = "qcom,fastrpc-compute-cb";
0879 reg = <2>;
0880 iommus = <&apps_smmu 0x1402 0x20>;
0881 };
0882
0883 compute-cb@3 {
0884 compatible = "qcom,fastrpc-compute-cb";
0885 reg = <3>;
0886 iommus = <&apps_smmu 0x1403 0x20>;
0887 };
0888
0889 compute-cb@4 {
0890 compatible = "qcom,fastrpc-compute-cb";
0891 reg = <4>;
0892 iommus = <&apps_smmu 0x1404 0x20>;
0893 };
0894
0895 compute-cb@5 {
0896 compatible = "qcom,fastrpc-compute-cb";
0897 reg = <5>;
0898 iommus = <&apps_smmu 0x1405 0x20>;
0899 };
0900
0901 compute-cb@6 {
0902 compatible = "qcom,fastrpc-compute-cb";
0903 reg = <6>;
0904 iommus = <&apps_smmu 0x1406 0x20>;
0905 };
0906
0907 compute-cb@7 {
0908 compatible = "qcom,fastrpc-compute-cb";
0909 reg = <7>;
0910 iommus = <&apps_smmu 0x1407 0x20>;
0911 };
0912
0913 compute-cb@8 {
0914 compatible = "qcom,fastrpc-compute-cb";
0915 reg = <8>;
0916 iommus = <&apps_smmu 0x1408 0x20>;
0917 };
0918
0919 /* note: secure cb9 in downstream */
0920 };
0921 };
0922 };
0923
0924 sdhc_2: mmc@8804000 {
0925 compatible = "qcom,sm6350-sdhci", "qcom,sdhci-msm-v5";
0926 reg = <0 0x08804000 0 0x1000>;
0927
0928 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
0929 <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
0930 interrupt-names = "hc_irq", "pwr_irq";
0931
0932 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
0933 <&gcc GCC_SDCC2_APPS_CLK>,
0934 <&rpmhcc RPMH_CXO_CLK>;
0935 clock-names = "iface", "core", "xo";
0936 qcom,dll-config = <0x0007642c>;
0937 qcom,ddr-config = <0x80040868>;
0938 power-domains = <&rpmhpd SM6350_CX>;
0939 operating-points-v2 = <&sdhc2_opp_table>;
0940 bus-width = <4>;
0941
0942 status = "disabled";
0943
0944 sdhc2_opp_table: opp-table {
0945 compatible = "operating-points-v2";
0946
0947 opp-100000000 {
0948 opp-hz = /bits/ 64 <100000000>;
0949 required-opps = <&rpmhpd_opp_svs_l1>;
0950 };
0951
0952 opp-202000000 {
0953 opp-hz = /bits/ 64 <202000000>;
0954 required-opps = <&rpmhpd_opp_nom>;
0955 };
0956 };
0957 };
0958
0959 usb_1_hsphy: phy@88e3000 {
0960 compatible = "qcom,sm6350-qusb2-phy", "qcom,qusb2-v2-phy";
0961 reg = <0 0x088e3000 0 0x400>;
0962 status = "disabled";
0963 #phy-cells = <0>;
0964
0965 clocks = <&xo_board>, <&rpmhcc RPMH_CXO_CLK>;
0966 clock-names = "cfg_ahb", "ref";
0967
0968 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
0969 };
0970
0971 usb_1_qmpphy: phy@88e9000 {
0972 compatible = "qcom,sc7180-qmp-usb3-dp-phy";
0973 reg = <0 0x088e9000 0 0x200>,
0974 <0 0x088e8000 0 0x40>,
0975 <0 0x088ea000 0 0x200>;
0976 status = "disabled";
0977 #address-cells = <2>;
0978 #size-cells = <2>;
0979 ranges;
0980
0981 clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
0982 <&xo_board>,
0983 <&rpmhcc RPMH_QLINK_CLK>,
0984 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
0985 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
0986
0987 resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
0988 <&gcc GCC_USB3_PHY_PRIM_BCR>;
0989 reset-names = "phy", "common";
0990
0991 usb_1_ssphy: usb3-phy@88e9200 {
0992 reg = <0 0x088e9200 0 0x200>,
0993 <0 0x088e9400 0 0x200>,
0994 <0 0x088e9c00 0 0x400>,
0995 <0 0x088e9600 0 0x200>,
0996 <0 0x088e9800 0 0x200>,
0997 <0 0x088e9a00 0 0x100>;
0998 #clock-cells = <0>;
0999 #phy-cells = <0>;
1000 clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
1001 clock-names = "pipe0";
1002 clock-output-names = "usb3_phy_pipe_clk_src";
1003 };
1004
1005 dp_phy: dp-phy@88ea200 {
1006 reg = <0 0x088ea200 0 0x200>,
1007 <0 0x088ea400 0 0x200>,
1008 <0 0x088eac00 0 0x400>,
1009 <0 0x088ea600 0 0x200>,
1010 <0 0x088ea800 0 0x200>,
1011 <0 0x088eaa00 0 0x100>;
1012 #phy-cells = <0>;
1013 #clock-cells = <1>;
1014 clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
1015 clock-names = "pipe0";
1016 clock-output-names = "usb3_phy_pipe_clk_src";
1017 };
1018 };
1019
1020 system-cache-controller@9200000 {
1021 compatible = "qcom,sm6350-llcc";
1022 reg = <0 0x09200000 0 0x50000>, <0 0x09600000 0 0x50000>;
1023 reg-names = "llcc_base", "llcc_broadcast_base";
1024 };
1025
1026 usb_1: usb@a6f8800 {
1027 compatible = "qcom,sm6350-dwc3", "qcom,dwc3";
1028 reg = <0 0x0a6f8800 0 0x400>;
1029 status = "disabled";
1030 #address-cells = <2>;
1031 #size-cells = <2>;
1032 ranges;
1033
1034 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1035 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1036 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
1037 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1038 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
1039 clock-names = "cfg_noc",
1040 "core",
1041 "iface",
1042 "sleep",
1043 "mock_utmi";
1044
1045 interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
1046 <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
1047 <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
1048 <&pdc 14 IRQ_TYPE_EDGE_BOTH>;
1049
1050 interrupt-names = "hs_phy_irq", "ss_phy_irq",
1051 "dm_hs_phy_irq", "dp_hs_phy_irq";
1052
1053 power-domains = <&gcc USB30_PRIM_GDSC>;
1054
1055 resets = <&gcc GCC_USB30_PRIM_BCR>;
1056
1057 usb_1_dwc3: usb@a600000 {
1058 compatible = "snps,dwc3";
1059 reg = <0 0x0a600000 0 0xcd00>;
1060 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
1061 iommus = <&apps_smmu 0x540 0x0>;
1062 snps,dis_u2_susphy_quirk;
1063 snps,dis_enblslpm_quirk;
1064 snps,has-lpm-erratum;
1065 snps,hird-threshold = /bits/ 8 <0x10>;
1066 phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
1067 phy-names = "usb2-phy", "usb3-phy";
1068 };
1069 };
1070
1071 pdc: interrupt-controller@b220000 {
1072 compatible = "qcom,sm6350-pdc", "qcom,pdc";
1073 reg = <0 0x0b220000 0 0x30000>, <0 0x17c000f0 0 0x64>;
1074 qcom,pdc-ranges = <0 480 94>, <94 609 31>,
1075 <125 63 1>, <126 655 12>, <138 139 15>;
1076 #interrupt-cells = <2>;
1077 interrupt-parent = <&intc>;
1078 interrupt-controller;
1079 };
1080
1081 tsens0: thermal-sensor@c263000 {
1082 compatible = "qcom,sm6350-tsens", "qcom,tsens-v2";
1083 reg = <0 0x0c263000 0 0x1ff>, /* TM */
1084 <0 0x0c222000 0 0x8>; /* SROT */
1085 #qcom,sensors = <16>;
1086 interrupts-extended = <&pdc 26 IRQ_TYPE_LEVEL_HIGH>,
1087 <&pdc 28 IRQ_TYPE_LEVEL_HIGH>;
1088 interrupt-names = "uplow", "critical";
1089 #thermal-sensor-cells = <1>;
1090 };
1091
1092 tsens1: thermal-sensor@c265000 {
1093 compatible = "qcom,sm6350-tsens", "qcom,tsens-v2";
1094 reg = <0 0x0c265000 0 0x1ff>, /* TM */
1095 <0 0x0c223000 0 0x8>; /* SROT */
1096 #qcom,sensors = <16>;
1097 interrupts-extended = <&pdc 27 IRQ_TYPE_LEVEL_HIGH>,
1098 <&pdc 29 IRQ_TYPE_LEVEL_HIGH>;
1099 interrupt-names = "uplow", "critical";
1100 #thermal-sensor-cells = <1>;
1101 };
1102
1103 aoss_qmp: power-controller@c300000 {
1104 compatible = "qcom,sm6350-aoss-qmp", "qcom,aoss-qmp";
1105 reg = <0 0x0c300000 0 0x1000>;
1106 interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
1107 IRQ_TYPE_EDGE_RISING>;
1108 mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
1109
1110 #clock-cells = <0>;
1111 };
1112
1113 spmi_bus: spmi@c440000 {
1114 compatible = "qcom,spmi-pmic-arb";
1115 reg = <0 0xc440000 0 0x1100>,
1116 <0 0xc600000 0 0x2000000>,
1117 <0 0xe600000 0 0x100000>,
1118 <0 0xe700000 0 0xa0000>,
1119 <0 0xc40a000 0 0x26000>;
1120 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1121 interrupt-names = "periph_irq";
1122 interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
1123 qcom,ee = <0>;
1124 qcom,channel = <0>;
1125 #address-cells = <2>;
1126 #size-cells = <0>;
1127 interrupt-controller;
1128 #interrupt-cells = <4>;
1129 };
1130
1131 tlmm: pinctrl@f100000 {
1132 compatible = "qcom,sm6350-tlmm";
1133 reg = <0 0x0f100000 0 0x300000>;
1134 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
1135 <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
1136 <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
1137 <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
1138 <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
1139 <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
1140 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
1141 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
1142 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
1143 gpio-controller;
1144 #gpio-cells = <2>;
1145 interrupt-controller;
1146 #interrupt-cells = <2>;
1147 gpio-ranges = <&tlmm 0 0 157>;
1148
1149 qup_uart9_default: qup-uart9-default {
1150 pins = "gpio25", "gpio26";
1151 function = "qup13_f2";
1152 drive-strength = <2>;
1153 bias-disable;
1154 };
1155
1156 qup_i2c0_default: qup-i2c0-default {
1157 pins = "gpio0", "gpio1";
1158 function = "qup00";
1159 drive-strength = <2>;
1160 bias-pull-up;
1161 };
1162
1163 qup_i2c2_default: qup-i2c2-default {
1164 pins = "gpio45", "gpio46";
1165 function = "qup02";
1166 drive-strength = <2>;
1167 bias-pull-up;
1168 };
1169
1170 qup_i2c6_default: qup-i2c6-default {
1171 pins = "gpio13", "gpio14";
1172 function = "qup10";
1173 drive-strength = <2>;
1174 bias-pull-up;
1175 };
1176
1177 qup_i2c7_default: qup-i2c7-default {
1178 pins = "gpio27", "gpio28";
1179 function = "qup11";
1180 drive-strength = <2>;
1181 bias-pull-up;
1182 };
1183
1184 qup_i2c8_default: qup-i2c8-default {
1185 pins = "gpio19", "gpio20";
1186 function = "qup12";
1187 drive-strength = <2>;
1188 bias-pull-up;
1189 };
1190
1191 qup_i2c10_default: qup-i2c10-default {
1192 pins = "gpio4", "gpio5";
1193 function = "qup14";
1194 drive-strength = <2>;
1195 bias-pull-up;
1196 };
1197 };
1198
1199 apps_smmu: iommu@15000000 {
1200 compatible = "qcom,sm6350-smmu-500", "arm,mmu-500";
1201 reg = <0 0x15000000 0 0x100000>;
1202 #iommu-cells = <2>;
1203 #global-interrupts = <1>;
1204 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1205 <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1206 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1207 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1208 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1209 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1210 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1211 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1212 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1213 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1214 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1215 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1216 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1217 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1218 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1219 <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1220 <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1221 <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1222 <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1223 <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1224 <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1225 <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1226 <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1227 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1228 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1229 <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
1230 <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
1231 <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
1232 <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
1233 <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
1234 <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
1235 <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
1236 <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
1237 <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
1238 <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
1239 <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
1240 <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
1241 <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
1242 <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
1243 <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
1244 <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
1245 <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
1246 <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
1247 <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
1248 <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
1249 <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
1250 <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
1251 <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
1252 <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
1253 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
1254 <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
1255 <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
1256 <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
1257 <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
1258 <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
1259 <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
1260 <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
1261 <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
1262 <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
1263 <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
1264 <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
1265 <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
1266 <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
1267 <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
1268 <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
1269 <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
1270 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
1271 <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
1272 <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
1273 <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
1274 <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
1275 <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
1276 <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
1277 <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
1278 <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
1279 <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
1280 <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
1281 <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
1282 <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
1283 <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
1284 <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>;
1285 };
1286
1287 intc: interrupt-controller@17a00000 {
1288 compatible = "arm,gic-v3";
1289 #interrupt-cells = <3>;
1290 interrupt-controller;
1291 reg = <0x0 0x17a00000 0x0 0x10000>, /* GICD */
1292 <0x0 0x17a60000 0x0 0x100000>; /* GICR * 8 */
1293 interrupts = <GIC_PPI 8 IRQ_TYPE_LEVEL_HIGH>;
1294 };
1295
1296 watchdog@17c10000 {
1297 compatible = "qcom,apss-wdt-sm6350", "qcom,kpss-wdt";
1298 reg = <0 0x17c10000 0 0x1000>;
1299 clocks = <&sleep_clk>;
1300 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
1301 };
1302
1303 timer@17c20000 {
1304 compatible = "arm,armv7-timer-mem";
1305 reg = <0x0 0x17c20000 0x0 0x1000>;
1306 clock-frequency = <19200000>;
1307 #address-cells = <1>;
1308 #size-cells = <1>;
1309 ranges = <0 0 0 0x20000000>;
1310
1311 frame@17c21000 {
1312 frame-number = <0>;
1313 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1314 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1315 reg = <0x17c21000 0x1000>,
1316 <0x17c22000 0x1000>;
1317 };
1318
1319 frame@17c23000 {
1320 frame-number = <1>;
1321 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1322 reg = <0x17c23000 0x1000>;
1323 status = "disabled";
1324 };
1325
1326 frame@17c25000 {
1327 frame-number = <2>;
1328 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1329 reg = <0x17c25000 0x1000>;
1330 status = "disabled";
1331 };
1332
1333 frame@17c27000 {
1334 frame-number = <3>;
1335 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1336 reg = <0x17c27000 0x1000>;
1337 status = "disabled";
1338 };
1339
1340 frame@17c29000 {
1341 frame-number = <4>;
1342 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1343 reg = <0x17c29000 0x1000>;
1344 status = "disabled";
1345 };
1346
1347 frame@17c2b000 {
1348 frame-number = <5>;
1349 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1350 reg = <0x17c2b000 0x1000>;
1351 status = "disabled";
1352 };
1353
1354 frame@17c2d000 {
1355 frame-number = <6>;
1356 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1357 reg = <0x17c2d000 0x1000>;
1358 status = "disabled";
1359 };
1360 };
1361
1362 wifi: wifi@18800000 {
1363 compatible = "qcom,wcn3990-wifi";
1364 reg = <0 0x18800000 0 0x800000>;
1365 reg-names = "membase";
1366 memory-region = <&wlan_fw_mem>;
1367 interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
1368 <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
1369 <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
1370 <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
1371 <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
1372 <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
1373 <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
1374 <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
1375 <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
1376 <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
1377 <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
1378 <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
1379 iommus = <&apps_smmu 0x20 0x1>;
1380 qcom,msa-fixed-perm;
1381 status = "disabled";
1382 };
1383
1384 apps_rsc: rsc@18200000 {
1385 compatible = "qcom,rpmh-rsc";
1386 label = "apps_rsc";
1387 reg = <0x0 0x18200000 0x0 0x10000>,
1388 <0x0 0x18210000 0x0 0x10000>,
1389 <0x0 0x18220000 0x0 0x10000>;
1390 reg-names = "drv-0", "drv-1", "drv-2";
1391 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1392 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1393 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1394 qcom,tcs-offset = <0xd00>;
1395 qcom,drv-id = <2>;
1396 qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
1397 <WAKE_TCS 3>, <CONTROL_TCS 1>;
1398
1399 rpmhcc: clock-controller {
1400 compatible = "qcom,sm6350-rpmh-clk";
1401 #clock-cells = <1>;
1402 clock-names = "xo";
1403 clocks = <&xo_board>;
1404 };
1405
1406 rpmhpd: power-controller {
1407 compatible = "qcom,sm6350-rpmhpd";
1408 #power-domain-cells = <1>;
1409 operating-points-v2 = <&rpmhpd_opp_table>;
1410
1411 rpmhpd_opp_table: opp-table {
1412 compatible = "operating-points-v2";
1413
1414 rpmhpd_opp_ret: opp1 {
1415 opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1416 };
1417
1418 rpmhpd_opp_min_svs: opp2 {
1419 opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1420 };
1421
1422 rpmhpd_opp_low_svs: opp3 {
1423 opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1424 };
1425
1426 rpmhpd_opp_svs: opp4 {
1427 opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1428 };
1429
1430 rpmhpd_opp_svs_l1: opp5 {
1431 opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1432 };
1433
1434 rpmhpd_opp_nom: opp6 {
1435 opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1436 };
1437
1438 rpmhpd_opp_nom_l1: opp7 {
1439 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1440 };
1441
1442 rpmhpd_opp_nom_l2: opp8 {
1443 opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
1444 };
1445
1446 rpmhpd_opp_turbo: opp9 {
1447 opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1448 };
1449
1450 rpmhpd_opp_turbo_l1: opp10 {
1451 opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1452 };
1453 };
1454 };
1455
1456 apps_bcm_voter: bcm-voter {
1457 compatible = "qcom,bcm-voter";
1458 };
1459 };
1460
1461 cpufreq_hw: cpufreq@18323000 {
1462 compatible = "qcom,cpufreq-hw";
1463 reg = <0 0x18323000 0 0x1000>, <0 0x18325800 0 0x1000>;
1464 reg-names = "freq-domain0", "freq-domain1";
1465 clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GPLL0>;
1466 clock-names = "xo", "alternate";
1467
1468 #freq-domain-cells = <1>;
1469 };
1470 };
1471
1472 timer {
1473 compatible = "arm,armv8-timer";
1474 clock-frequency = <19200000>;
1475 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1476 <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1477 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1478 <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
1479 };
1480 };