0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
0004 */
0005
0006 #include <dt-bindings/arm/coresight-cti-dt.h>
0007 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
0008 #include <dt-bindings/clock/qcom,rpmcc.h>
0009 #include <dt-bindings/interconnect/qcom,msm8916.h>
0010 #include <dt-bindings/interrupt-controller/arm-gic.h>
0011 #include <dt-bindings/power/qcom-rpmpd.h>
0012 #include <dt-bindings/reset/qcom,gcc-msm8916.h>
0013 #include <dt-bindings/thermal/thermal.h>
0014
0015 / {
0016 interrupt-parent = <&intc>;
0017
0018 #address-cells = <2>;
0019 #size-cells = <2>;
0020
0021 aliases {
0022 mmc0 = &sdhc_1; /* SDC1 eMMC slot */
0023 mmc1 = &sdhc_2; /* SDC2 SD card slot */
0024 };
0025
0026 chosen { };
0027
0028 memory@80000000 {
0029 device_type = "memory";
0030 /* We expect the bootloader to fill in the reg */
0031 reg = <0 0x80000000 0 0>;
0032 };
0033
0034 reserved-memory {
0035 #address-cells = <2>;
0036 #size-cells = <2>;
0037 ranges;
0038
0039 tz-apps@86000000 {
0040 reg = <0x0 0x86000000 0x0 0x300000>;
0041 no-map;
0042 };
0043
0044 smem@86300000 {
0045 compatible = "qcom,smem";
0046 reg = <0x0 0x86300000 0x0 0x100000>;
0047 no-map;
0048
0049 hwlocks = <&tcsr_mutex 3>;
0050 qcom,rpm-msg-ram = <&rpm_msg_ram>;
0051 };
0052
0053 hypervisor@86400000 {
0054 reg = <0x0 0x86400000 0x0 0x100000>;
0055 no-map;
0056 };
0057
0058 tz@86500000 {
0059 reg = <0x0 0x86500000 0x0 0x180000>;
0060 no-map;
0061 };
0062
0063 reserved@86680000 {
0064 reg = <0x0 0x86680000 0x0 0x80000>;
0065 no-map;
0066 };
0067
0068 rmtfs@86700000 {
0069 compatible = "qcom,rmtfs-mem";
0070 reg = <0x0 0x86700000 0x0 0xe0000>;
0071 no-map;
0072
0073 qcom,client-id = <1>;
0074 };
0075
0076 rfsa@867e0000 {
0077 reg = <0x0 0x867e0000 0x0 0x20000>;
0078 no-map;
0079 };
0080
0081 mpss_mem: mpss@86800000 {
0082 reg = <0x0 0x86800000 0x0 0x2b00000>;
0083 no-map;
0084 };
0085
0086 wcnss_mem: wcnss@89300000 {
0087 reg = <0x0 0x89300000 0x0 0x600000>;
0088 no-map;
0089 };
0090
0091 venus_mem: venus@89900000 {
0092 reg = <0x0 0x89900000 0x0 0x600000>;
0093 no-map;
0094 };
0095
0096 mba_mem: mba@8ea00000 {
0097 no-map;
0098 reg = <0 0x8ea00000 0 0x100000>;
0099 };
0100 };
0101
0102 clocks {
0103 xo_board: xo-board {
0104 compatible = "fixed-clock";
0105 #clock-cells = <0>;
0106 clock-frequency = <19200000>;
0107 };
0108
0109 sleep_clk: sleep-clk {
0110 compatible = "fixed-clock";
0111 #clock-cells = <0>;
0112 clock-frequency = <32768>;
0113 };
0114 };
0115
0116 cpus {
0117 #address-cells = <1>;
0118 #size-cells = <0>;
0119
0120 CPU0: cpu@0 {
0121 device_type = "cpu";
0122 compatible = "arm,cortex-a53";
0123 reg = <0x0>;
0124 next-level-cache = <&L2_0>;
0125 enable-method = "psci";
0126 clocks = <&apcs>;
0127 operating-points-v2 = <&cpu_opp_table>;
0128 #cooling-cells = <2>;
0129 power-domains = <&CPU_PD0>;
0130 power-domain-names = "psci";
0131 qcom,acc = <&cpu0_acc>;
0132 qcom,saw = <&cpu0_saw>;
0133 };
0134
0135 CPU1: cpu@1 {
0136 device_type = "cpu";
0137 compatible = "arm,cortex-a53";
0138 reg = <0x1>;
0139 next-level-cache = <&L2_0>;
0140 enable-method = "psci";
0141 clocks = <&apcs>;
0142 operating-points-v2 = <&cpu_opp_table>;
0143 #cooling-cells = <2>;
0144 power-domains = <&CPU_PD1>;
0145 power-domain-names = "psci";
0146 qcom,acc = <&cpu1_acc>;
0147 qcom,saw = <&cpu1_saw>;
0148 };
0149
0150 CPU2: cpu@2 {
0151 device_type = "cpu";
0152 compatible = "arm,cortex-a53";
0153 reg = <0x2>;
0154 next-level-cache = <&L2_0>;
0155 enable-method = "psci";
0156 clocks = <&apcs>;
0157 operating-points-v2 = <&cpu_opp_table>;
0158 #cooling-cells = <2>;
0159 power-domains = <&CPU_PD2>;
0160 power-domain-names = "psci";
0161 qcom,acc = <&cpu2_acc>;
0162 qcom,saw = <&cpu2_saw>;
0163 };
0164
0165 CPU3: cpu@3 {
0166 device_type = "cpu";
0167 compatible = "arm,cortex-a53";
0168 reg = <0x3>;
0169 next-level-cache = <&L2_0>;
0170 enable-method = "psci";
0171 clocks = <&apcs>;
0172 operating-points-v2 = <&cpu_opp_table>;
0173 #cooling-cells = <2>;
0174 power-domains = <&CPU_PD3>;
0175 power-domain-names = "psci";
0176 qcom,acc = <&cpu3_acc>;
0177 qcom,saw = <&cpu3_saw>;
0178 };
0179
0180 L2_0: l2-cache {
0181 compatible = "cache";
0182 cache-level = <2>;
0183 };
0184
0185 idle-states {
0186 entry-method = "psci";
0187
0188 CPU_SLEEP_0: cpu-sleep-0 {
0189 compatible = "arm,idle-state";
0190 idle-state-name = "standalone-power-collapse";
0191 arm,psci-suspend-param = <0x40000002>;
0192 entry-latency-us = <130>;
0193 exit-latency-us = <150>;
0194 min-residency-us = <2000>;
0195 local-timer-stop;
0196 };
0197 };
0198
0199 domain-idle-states {
0200
0201 CLUSTER_RET: cluster-retention {
0202 compatible = "domain-idle-state";
0203 arm,psci-suspend-param = <0x41000012>;
0204 entry-latency-us = <500>;
0205 exit-latency-us = <500>;
0206 min-residency-us = <2000>;
0207 };
0208
0209 CLUSTER_PWRDN: cluster-gdhs {
0210 compatible = "domain-idle-state";
0211 arm,psci-suspend-param = <0x41000032>;
0212 entry-latency-us = <2000>;
0213 exit-latency-us = <2000>;
0214 min-residency-us = <6000>;
0215 };
0216 };
0217 };
0218
0219 cpu_opp_table: opp-table-cpu {
0220 compatible = "operating-points-v2";
0221 opp-shared;
0222
0223 opp-200000000 {
0224 opp-hz = /bits/ 64 <200000000>;
0225 };
0226 opp-400000000 {
0227 opp-hz = /bits/ 64 <400000000>;
0228 };
0229 opp-800000000 {
0230 opp-hz = /bits/ 64 <800000000>;
0231 };
0232 opp-998400000 {
0233 opp-hz = /bits/ 64 <998400000>;
0234 };
0235 };
0236
0237 firmware {
0238 scm: scm {
0239 compatible = "qcom,scm-msm8916", "qcom,scm";
0240 clocks = <&gcc GCC_CRYPTO_CLK>,
0241 <&gcc GCC_CRYPTO_AXI_CLK>,
0242 <&gcc GCC_CRYPTO_AHB_CLK>;
0243 clock-names = "core", "bus", "iface";
0244 #reset-cells = <1>;
0245
0246 qcom,dload-mode = <&tcsr 0x6100>;
0247 };
0248 };
0249
0250 pmu {
0251 compatible = "arm,cortex-a53-pmu";
0252 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
0253 };
0254
0255 psci {
0256 compatible = "arm,psci-1.0";
0257 method = "smc";
0258
0259 CPU_PD0: power-domain-cpu0 {
0260 #power-domain-cells = <0>;
0261 power-domains = <&CLUSTER_PD>;
0262 domain-idle-states = <&CPU_SLEEP_0>;
0263 };
0264
0265 CPU_PD1: power-domain-cpu1 {
0266 #power-domain-cells = <0>;
0267 power-domains = <&CLUSTER_PD>;
0268 domain-idle-states = <&CPU_SLEEP_0>;
0269 };
0270
0271 CPU_PD2: power-domain-cpu2 {
0272 #power-domain-cells = <0>;
0273 power-domains = <&CLUSTER_PD>;
0274 domain-idle-states = <&CPU_SLEEP_0>;
0275 };
0276
0277 CPU_PD3: power-domain-cpu3 {
0278 #power-domain-cells = <0>;
0279 power-domains = <&CLUSTER_PD>;
0280 domain-idle-states = <&CPU_SLEEP_0>;
0281 };
0282
0283 CLUSTER_PD: power-domain-cluster {
0284 #power-domain-cells = <0>;
0285 domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
0286 };
0287 };
0288
0289 smd {
0290 compatible = "qcom,smd";
0291
0292 rpm {
0293 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
0294 qcom,ipc = <&apcs 8 0>;
0295 qcom,smd-edge = <15>;
0296
0297 rpm_requests: rpm-requests {
0298 compatible = "qcom,rpm-msm8916";
0299 qcom,smd-channels = "rpm_requests";
0300
0301 rpmcc: clock-controller {
0302 compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
0303 #clock-cells = <1>;
0304 clocks = <&xo_board>;
0305 clock-names = "xo";
0306 };
0307
0308 rpmpd: power-controller {
0309 compatible = "qcom,msm8916-rpmpd";
0310 #power-domain-cells = <1>;
0311 operating-points-v2 = <&rpmpd_opp_table>;
0312
0313 rpmpd_opp_table: opp-table {
0314 compatible = "operating-points-v2";
0315
0316 rpmpd_opp_ret: opp1 {
0317 opp-level = <1>;
0318 };
0319 rpmpd_opp_svs_krait: opp2 {
0320 opp-level = <2>;
0321 };
0322 rpmpd_opp_svs_soc: opp3 {
0323 opp-level = <3>;
0324 };
0325 rpmpd_opp_nom: opp4 {
0326 opp-level = <4>;
0327 };
0328 rpmpd_opp_turbo: opp5 {
0329 opp-level = <5>;
0330 };
0331 rpmpd_opp_super_turbo: opp6 {
0332 opp-level = <6>;
0333 };
0334 };
0335 };
0336 };
0337 };
0338 };
0339
0340 smp2p-hexagon {
0341 compatible = "qcom,smp2p";
0342 qcom,smem = <435>, <428>;
0343
0344 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
0345
0346 qcom,ipc = <&apcs 8 14>;
0347
0348 qcom,local-pid = <0>;
0349 qcom,remote-pid = <1>;
0350
0351 hexagon_smp2p_out: master-kernel {
0352 qcom,entry-name = "master-kernel";
0353
0354 #qcom,smem-state-cells = <1>;
0355 };
0356
0357 hexagon_smp2p_in: slave-kernel {
0358 qcom,entry-name = "slave-kernel";
0359
0360 interrupt-controller;
0361 #interrupt-cells = <2>;
0362 };
0363 };
0364
0365 smp2p-wcnss {
0366 compatible = "qcom,smp2p";
0367 qcom,smem = <451>, <431>;
0368
0369 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
0370
0371 qcom,ipc = <&apcs 8 18>;
0372
0373 qcom,local-pid = <0>;
0374 qcom,remote-pid = <4>;
0375
0376 wcnss_smp2p_out: master-kernel {
0377 qcom,entry-name = "master-kernel";
0378
0379 #qcom,smem-state-cells = <1>;
0380 };
0381
0382 wcnss_smp2p_in: slave-kernel {
0383 qcom,entry-name = "slave-kernel";
0384
0385 interrupt-controller;
0386 #interrupt-cells = <2>;
0387 };
0388 };
0389
0390 smsm {
0391 compatible = "qcom,smsm";
0392
0393 #address-cells = <1>;
0394 #size-cells = <0>;
0395
0396 qcom,ipc-1 = <&apcs 8 13>;
0397 qcom,ipc-3 = <&apcs 8 19>;
0398
0399 apps_smsm: apps@0 {
0400 reg = <0>;
0401
0402 #qcom,smem-state-cells = <1>;
0403 };
0404
0405 hexagon_smsm: hexagon@1 {
0406 reg = <1>;
0407 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
0408
0409 interrupt-controller;
0410 #interrupt-cells = <2>;
0411 };
0412
0413 wcnss_smsm: wcnss@6 {
0414 reg = <6>;
0415 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
0416
0417 interrupt-controller;
0418 #interrupt-cells = <2>;
0419 };
0420 };
0421
0422 soc: soc@0 {
0423 #address-cells = <1>;
0424 #size-cells = <1>;
0425 ranges = <0 0 0 0xffffffff>;
0426 compatible = "simple-bus";
0427
0428 rng@22000 {
0429 compatible = "qcom,prng";
0430 reg = <0x00022000 0x200>;
0431 clocks = <&gcc GCC_PRNG_AHB_CLK>;
0432 clock-names = "core";
0433 };
0434
0435 restart@4ab000 {
0436 compatible = "qcom,pshold";
0437 reg = <0x004ab000 0x4>;
0438 };
0439
0440 qfprom: qfprom@5c000 {
0441 compatible = "qcom,msm8916-qfprom", "qcom,qfprom";
0442 reg = <0x0005c000 0x1000>;
0443 #address-cells = <1>;
0444 #size-cells = <1>;
0445 tsens_caldata: caldata@d0 {
0446 reg = <0xd0 0x8>;
0447 };
0448 tsens_calsel: calsel@ec {
0449 reg = <0xec 0x4>;
0450 };
0451 };
0452
0453 rpm_msg_ram: sram@60000 {
0454 compatible = "qcom,rpm-msg-ram";
0455 reg = <0x00060000 0x8000>;
0456 };
0457
0458 sram@290000 {
0459 compatible = "qcom,msm8916-rpm-stats";
0460 reg = <0x00290000 0x10000>;
0461 };
0462
0463 bimc: interconnect@400000 {
0464 compatible = "qcom,msm8916-bimc";
0465 reg = <0x00400000 0x62000>;
0466 #interconnect-cells = <1>;
0467 clock-names = "bus", "bus_a";
0468 clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
0469 <&rpmcc RPM_SMD_BIMC_A_CLK>;
0470 };
0471
0472 tsens: thermal-sensor@4a9000 {
0473 compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
0474 reg = <0x004a9000 0x1000>, /* TM */
0475 <0x004a8000 0x1000>; /* SROT */
0476 nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
0477 nvmem-cell-names = "calib", "calib_sel";
0478 #qcom,sensors = <5>;
0479 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
0480 interrupt-names = "uplow";
0481 #thermal-sensor-cells = <1>;
0482 };
0483
0484 pcnoc: interconnect@500000 {
0485 compatible = "qcom,msm8916-pcnoc";
0486 reg = <0x00500000 0x11000>;
0487 #interconnect-cells = <1>;
0488 clock-names = "bus", "bus_a";
0489 clocks = <&rpmcc RPM_SMD_PCNOC_CLK>,
0490 <&rpmcc RPM_SMD_PCNOC_A_CLK>;
0491 };
0492
0493 snoc: interconnect@580000 {
0494 compatible = "qcom,msm8916-snoc";
0495 reg = <0x00580000 0x14000>;
0496 #interconnect-cells = <1>;
0497 clock-names = "bus", "bus_a";
0498 clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
0499 <&rpmcc RPM_SMD_SNOC_A_CLK>;
0500 };
0501
0502 stm: stm@802000 {
0503 compatible = "arm,coresight-stm", "arm,primecell";
0504 reg = <0x00802000 0x1000>,
0505 <0x09280000 0x180000>;
0506 reg-names = "stm-base", "stm-stimulus-base";
0507
0508 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0509 clock-names = "apb_pclk", "atclk";
0510
0511 status = "disabled";
0512
0513 out-ports {
0514 port {
0515 stm_out: endpoint {
0516 remote-endpoint = <&funnel0_in7>;
0517 };
0518 };
0519 };
0520 };
0521
0522 /* System CTIs */
0523 /* CTI 0 - TMC connections */
0524 cti0: cti@810000 {
0525 compatible = "arm,coresight-cti", "arm,primecell";
0526 reg = <0x00810000 0x1000>;
0527
0528 clocks = <&rpmcc RPM_QDSS_CLK>;
0529 clock-names = "apb_pclk";
0530
0531 status = "disabled";
0532 };
0533
0534 /* CTI 1 - TPIU connections */
0535 cti1: cti@811000 {
0536 compatible = "arm,coresight-cti", "arm,primecell";
0537 reg = <0x00811000 0x1000>;
0538
0539 clocks = <&rpmcc RPM_QDSS_CLK>;
0540 clock-names = "apb_pclk";
0541
0542 status = "disabled";
0543 };
0544
0545 /* CTIs 2-11 - no information - not instantiated */
0546
0547 tpiu: tpiu@820000 {
0548 compatible = "arm,coresight-tpiu", "arm,primecell";
0549 reg = <0x00820000 0x1000>;
0550
0551 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0552 clock-names = "apb_pclk", "atclk";
0553
0554 status = "disabled";
0555
0556 in-ports {
0557 port {
0558 tpiu_in: endpoint {
0559 remote-endpoint = <&replicator_out1>;
0560 };
0561 };
0562 };
0563 };
0564
0565 funnel0: funnel@821000 {
0566 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
0567 reg = <0x00821000 0x1000>;
0568
0569 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0570 clock-names = "apb_pclk", "atclk";
0571
0572 status = "disabled";
0573
0574 in-ports {
0575 #address-cells = <1>;
0576 #size-cells = <0>;
0577
0578 /*
0579 * Not described input ports:
0580 * 0 - connected to Resource and Power Manger CPU ETM
0581 * 1 - not-connected
0582 * 2 - connected to Modem CPU ETM
0583 * 3 - not-connected
0584 * 5 - not-connected
0585 * 6 - connected trought funnel to Wireless CPU ETM
0586 * 7 - connected to STM component
0587 */
0588
0589 port@4 {
0590 reg = <4>;
0591 funnel0_in4: endpoint {
0592 remote-endpoint = <&funnel1_out>;
0593 };
0594 };
0595
0596 port@7 {
0597 reg = <7>;
0598 funnel0_in7: endpoint {
0599 remote-endpoint = <&stm_out>;
0600 };
0601 };
0602 };
0603
0604 out-ports {
0605 port {
0606 funnel0_out: endpoint {
0607 remote-endpoint = <&etf_in>;
0608 };
0609 };
0610 };
0611 };
0612
0613 replicator: replicator@824000 {
0614 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
0615 reg = <0x00824000 0x1000>;
0616
0617 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0618 clock-names = "apb_pclk", "atclk";
0619
0620 status = "disabled";
0621
0622 out-ports {
0623 #address-cells = <1>;
0624 #size-cells = <0>;
0625
0626 port@0 {
0627 reg = <0>;
0628 replicator_out0: endpoint {
0629 remote-endpoint = <&etr_in>;
0630 };
0631 };
0632 port@1 {
0633 reg = <1>;
0634 replicator_out1: endpoint {
0635 remote-endpoint = <&tpiu_in>;
0636 };
0637 };
0638 };
0639
0640 in-ports {
0641 port {
0642 replicator_in: endpoint {
0643 remote-endpoint = <&etf_out>;
0644 };
0645 };
0646 };
0647 };
0648
0649 etf: etf@825000 {
0650 compatible = "arm,coresight-tmc", "arm,primecell";
0651 reg = <0x00825000 0x1000>;
0652
0653 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0654 clock-names = "apb_pclk", "atclk";
0655
0656 status = "disabled";
0657
0658 in-ports {
0659 port {
0660 etf_in: endpoint {
0661 remote-endpoint = <&funnel0_out>;
0662 };
0663 };
0664 };
0665
0666 out-ports {
0667 port {
0668 etf_out: endpoint {
0669 remote-endpoint = <&replicator_in>;
0670 };
0671 };
0672 };
0673 };
0674
0675 etr: etr@826000 {
0676 compatible = "arm,coresight-tmc", "arm,primecell";
0677 reg = <0x00826000 0x1000>;
0678
0679 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0680 clock-names = "apb_pclk", "atclk";
0681
0682 status = "disabled";
0683
0684 in-ports {
0685 port {
0686 etr_in: endpoint {
0687 remote-endpoint = <&replicator_out0>;
0688 };
0689 };
0690 };
0691 };
0692
0693 funnel1: funnel@841000 { /* APSS funnel only 4 inputs are used */
0694 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
0695 reg = <0x00841000 0x1000>;
0696
0697 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0698 clock-names = "apb_pclk", "atclk";
0699
0700 status = "disabled";
0701
0702 in-ports {
0703 #address-cells = <1>;
0704 #size-cells = <0>;
0705
0706 port@0 {
0707 reg = <0>;
0708 funnel1_in0: endpoint {
0709 remote-endpoint = <&etm0_out>;
0710 };
0711 };
0712 port@1 {
0713 reg = <1>;
0714 funnel1_in1: endpoint {
0715 remote-endpoint = <&etm1_out>;
0716 };
0717 };
0718 port@2 {
0719 reg = <2>;
0720 funnel1_in2: endpoint {
0721 remote-endpoint = <&etm2_out>;
0722 };
0723 };
0724 port@3 {
0725 reg = <3>;
0726 funnel1_in3: endpoint {
0727 remote-endpoint = <&etm3_out>;
0728 };
0729 };
0730 };
0731
0732 out-ports {
0733 port {
0734 funnel1_out: endpoint {
0735 remote-endpoint = <&funnel0_in4>;
0736 };
0737 };
0738 };
0739 };
0740
0741 debug0: debug@850000 {
0742 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0743 reg = <0x00850000 0x1000>;
0744 clocks = <&rpmcc RPM_QDSS_CLK>;
0745 clock-names = "apb_pclk";
0746 cpu = <&CPU0>;
0747 status = "disabled";
0748 };
0749
0750 debug1: debug@852000 {
0751 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0752 reg = <0x00852000 0x1000>;
0753 clocks = <&rpmcc RPM_QDSS_CLK>;
0754 clock-names = "apb_pclk";
0755 cpu = <&CPU1>;
0756 status = "disabled";
0757 };
0758
0759 debug2: debug@854000 {
0760 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0761 reg = <0x00854000 0x1000>;
0762 clocks = <&rpmcc RPM_QDSS_CLK>;
0763 clock-names = "apb_pclk";
0764 cpu = <&CPU2>;
0765 status = "disabled";
0766 };
0767
0768 debug3: debug@856000 {
0769 compatible = "arm,coresight-cpu-debug", "arm,primecell";
0770 reg = <0x00856000 0x1000>;
0771 clocks = <&rpmcc RPM_QDSS_CLK>;
0772 clock-names = "apb_pclk";
0773 cpu = <&CPU3>;
0774 status = "disabled";
0775 };
0776
0777 /* Core CTIs; CTIs 12-15 */
0778 /* CTI - CPU-0 */
0779 cti12: cti@858000 {
0780 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0781 "arm,primecell";
0782 reg = <0x00858000 0x1000>;
0783
0784 clocks = <&rpmcc RPM_QDSS_CLK>;
0785 clock-names = "apb_pclk";
0786
0787 cpu = <&CPU0>;
0788 arm,cs-dev-assoc = <&etm0>;
0789
0790 status = "disabled";
0791 };
0792
0793 /* CTI - CPU-1 */
0794 cti13: cti@859000 {
0795 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0796 "arm,primecell";
0797 reg = <0x00859000 0x1000>;
0798
0799 clocks = <&rpmcc RPM_QDSS_CLK>;
0800 clock-names = "apb_pclk";
0801
0802 cpu = <&CPU1>;
0803 arm,cs-dev-assoc = <&etm1>;
0804
0805 status = "disabled";
0806 };
0807
0808 /* CTI - CPU-2 */
0809 cti14: cti@85a000 {
0810 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0811 "arm,primecell";
0812 reg = <0x0085a000 0x1000>;
0813
0814 clocks = <&rpmcc RPM_QDSS_CLK>;
0815 clock-names = "apb_pclk";
0816
0817 cpu = <&CPU2>;
0818 arm,cs-dev-assoc = <&etm2>;
0819
0820 status = "disabled";
0821 };
0822
0823 /* CTI - CPU-3 */
0824 cti15: cti@85b000 {
0825 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
0826 "arm,primecell";
0827 reg = <0x0085b000 0x1000>;
0828
0829 clocks = <&rpmcc RPM_QDSS_CLK>;
0830 clock-names = "apb_pclk";
0831
0832 cpu = <&CPU3>;
0833 arm,cs-dev-assoc = <&etm3>;
0834
0835 status = "disabled";
0836 };
0837
0838 etm0: etm@85c000 {
0839 compatible = "arm,coresight-etm4x", "arm,primecell";
0840 reg = <0x0085c000 0x1000>;
0841
0842 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0843 clock-names = "apb_pclk", "atclk";
0844 arm,coresight-loses-context-with-cpu;
0845
0846 cpu = <&CPU0>;
0847
0848 status = "disabled";
0849
0850 out-ports {
0851 port {
0852 etm0_out: endpoint {
0853 remote-endpoint = <&funnel1_in0>;
0854 };
0855 };
0856 };
0857 };
0858
0859 etm1: etm@85d000 {
0860 compatible = "arm,coresight-etm4x", "arm,primecell";
0861 reg = <0x0085d000 0x1000>;
0862
0863 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0864 clock-names = "apb_pclk", "atclk";
0865 arm,coresight-loses-context-with-cpu;
0866
0867 cpu = <&CPU1>;
0868
0869 status = "disabled";
0870
0871 out-ports {
0872 port {
0873 etm1_out: endpoint {
0874 remote-endpoint = <&funnel1_in1>;
0875 };
0876 };
0877 };
0878 };
0879
0880 etm2: etm@85e000 {
0881 compatible = "arm,coresight-etm4x", "arm,primecell";
0882 reg = <0x0085e000 0x1000>;
0883
0884 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0885 clock-names = "apb_pclk", "atclk";
0886 arm,coresight-loses-context-with-cpu;
0887
0888 cpu = <&CPU2>;
0889
0890 status = "disabled";
0891
0892 out-ports {
0893 port {
0894 etm2_out: endpoint {
0895 remote-endpoint = <&funnel1_in2>;
0896 };
0897 };
0898 };
0899 };
0900
0901 etm3: etm@85f000 {
0902 compatible = "arm,coresight-etm4x", "arm,primecell";
0903 reg = <0x0085f000 0x1000>;
0904
0905 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
0906 clock-names = "apb_pclk", "atclk";
0907 arm,coresight-loses-context-with-cpu;
0908
0909 cpu = <&CPU3>;
0910
0911 status = "disabled";
0912
0913 out-ports {
0914 port {
0915 etm3_out: endpoint {
0916 remote-endpoint = <&funnel1_in3>;
0917 };
0918 };
0919 };
0920 };
0921
0922 msmgpio: pinctrl@1000000 {
0923 compatible = "qcom,msm8916-pinctrl";
0924 reg = <0x01000000 0x300000>;
0925 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
0926 gpio-controller;
0927 gpio-ranges = <&msmgpio 0 0 122>;
0928 #gpio-cells = <2>;
0929 interrupt-controller;
0930 #interrupt-cells = <2>;
0931 };
0932
0933 gcc: clock-controller@1800000 {
0934 compatible = "qcom,gcc-msm8916";
0935 #clock-cells = <1>;
0936 #reset-cells = <1>;
0937 #power-domain-cells = <1>;
0938 reg = <0x01800000 0x80000>;
0939 };
0940
0941 tcsr_mutex: hwlock@1905000 {
0942 compatible = "qcom,tcsr-mutex";
0943 reg = <0x01905000 0x20000>;
0944 #hwlock-cells = <1>;
0945 };
0946
0947 tcsr: syscon@1937000 {
0948 compatible = "qcom,tcsr-msm8916", "syscon";
0949 reg = <0x01937000 0x30000>;
0950 };
0951
0952 mdss: mdss@1a00000 {
0953 status = "disabled";
0954 compatible = "qcom,mdss";
0955 reg = <0x01a00000 0x1000>,
0956 <0x01ac8000 0x3000>;
0957 reg-names = "mdss_phys", "vbif_phys";
0958
0959 power-domains = <&gcc MDSS_GDSC>;
0960
0961 clocks = <&gcc GCC_MDSS_AHB_CLK>,
0962 <&gcc GCC_MDSS_AXI_CLK>,
0963 <&gcc GCC_MDSS_VSYNC_CLK>;
0964 clock-names = "iface",
0965 "bus",
0966 "vsync";
0967
0968 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
0969
0970 interrupt-controller;
0971 #interrupt-cells = <1>;
0972
0973 #address-cells = <1>;
0974 #size-cells = <1>;
0975 ranges;
0976
0977 mdp: mdp@1a01000 {
0978 compatible = "qcom,mdp5";
0979 reg = <0x01a01000 0x89000>;
0980 reg-names = "mdp_phys";
0981
0982 interrupt-parent = <&mdss>;
0983 interrupts = <0>;
0984
0985 clocks = <&gcc GCC_MDSS_AHB_CLK>,
0986 <&gcc GCC_MDSS_AXI_CLK>,
0987 <&gcc GCC_MDSS_MDP_CLK>,
0988 <&gcc GCC_MDSS_VSYNC_CLK>;
0989 clock-names = "iface",
0990 "bus",
0991 "core",
0992 "vsync";
0993
0994 iommus = <&apps_iommu 4>;
0995
0996 ports {
0997 #address-cells = <1>;
0998 #size-cells = <0>;
0999
1000 port@0 {
1001 reg = <0>;
1002 mdp5_intf1_out: endpoint {
1003 remote-endpoint = <&dsi0_in>;
1004 };
1005 };
1006 };
1007 };
1008
1009 dsi0: dsi@1a98000 {
1010 compatible = "qcom,mdss-dsi-ctrl";
1011 reg = <0x01a98000 0x25c>;
1012 reg-names = "dsi_ctrl";
1013
1014 interrupt-parent = <&mdss>;
1015 interrupts = <4>;
1016
1017 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
1018 <&gcc PCLK0_CLK_SRC>;
1019 assigned-clock-parents = <&dsi_phy0 0>,
1020 <&dsi_phy0 1>;
1021
1022 clocks = <&gcc GCC_MDSS_MDP_CLK>,
1023 <&gcc GCC_MDSS_AHB_CLK>,
1024 <&gcc GCC_MDSS_AXI_CLK>,
1025 <&gcc GCC_MDSS_BYTE0_CLK>,
1026 <&gcc GCC_MDSS_PCLK0_CLK>,
1027 <&gcc GCC_MDSS_ESC0_CLK>;
1028 clock-names = "mdp_core",
1029 "iface",
1030 "bus",
1031 "byte",
1032 "pixel",
1033 "core";
1034 phys = <&dsi_phy0>;
1035 phy-names = "dsi-phy";
1036
1037 #address-cells = <1>;
1038 #size-cells = <0>;
1039
1040 ports {
1041 #address-cells = <1>;
1042 #size-cells = <0>;
1043
1044 port@0 {
1045 reg = <0>;
1046 dsi0_in: endpoint {
1047 remote-endpoint = <&mdp5_intf1_out>;
1048 };
1049 };
1050
1051 port@1 {
1052 reg = <1>;
1053 dsi0_out: endpoint {
1054 };
1055 };
1056 };
1057 };
1058
1059 dsi_phy0: dsi-phy@1a98300 {
1060 compatible = "qcom,dsi-phy-28nm-lp";
1061 reg = <0x01a98300 0xd4>,
1062 <0x01a98500 0x280>,
1063 <0x01a98780 0x30>;
1064 reg-names = "dsi_pll",
1065 "dsi_phy",
1066 "dsi_phy_regulator";
1067
1068 #clock-cells = <1>;
1069 #phy-cells = <0>;
1070
1071 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1072 <&xo_board>;
1073 clock-names = "iface", "ref";
1074 };
1075 };
1076
1077 camss: camss@1b00000 {
1078 compatible = "qcom,msm8916-camss";
1079 reg = <0x01b0ac00 0x200>,
1080 <0x01b00030 0x4>,
1081 <0x01b0b000 0x200>,
1082 <0x01b00038 0x4>,
1083 <0x01b08000 0x100>,
1084 <0x01b08400 0x100>,
1085 <0x01b0a000 0x500>,
1086 <0x01b00020 0x10>,
1087 <0x01b10000 0x1000>;
1088 reg-names = "csiphy0",
1089 "csiphy0_clk_mux",
1090 "csiphy1",
1091 "csiphy1_clk_mux",
1092 "csid0",
1093 "csid1",
1094 "ispif",
1095 "csi_clk_mux",
1096 "vfe0";
1097 interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
1098 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
1099 <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
1100 <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
1101 <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
1102 <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
1103 interrupt-names = "csiphy0",
1104 "csiphy1",
1105 "csid0",
1106 "csid1",
1107 "ispif",
1108 "vfe0";
1109 power-domains = <&gcc VFE_GDSC>;
1110 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1111 <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
1112 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
1113 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
1114 <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
1115 <&gcc GCC_CAMSS_CSI0_CLK>,
1116 <&gcc GCC_CAMSS_CSI0PHY_CLK>,
1117 <&gcc GCC_CAMSS_CSI0PIX_CLK>,
1118 <&gcc GCC_CAMSS_CSI0RDI_CLK>,
1119 <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
1120 <&gcc GCC_CAMSS_CSI1_CLK>,
1121 <&gcc GCC_CAMSS_CSI1PHY_CLK>,
1122 <&gcc GCC_CAMSS_CSI1PIX_CLK>,
1123 <&gcc GCC_CAMSS_CSI1RDI_CLK>,
1124 <&gcc GCC_CAMSS_AHB_CLK>,
1125 <&gcc GCC_CAMSS_VFE0_CLK>,
1126 <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
1127 <&gcc GCC_CAMSS_VFE_AHB_CLK>,
1128 <&gcc GCC_CAMSS_VFE_AXI_CLK>;
1129 clock-names = "top_ahb",
1130 "ispif_ahb",
1131 "csiphy0_timer",
1132 "csiphy1_timer",
1133 "csi0_ahb",
1134 "csi0",
1135 "csi0_phy",
1136 "csi0_pix",
1137 "csi0_rdi",
1138 "csi1_ahb",
1139 "csi1",
1140 "csi1_phy",
1141 "csi1_pix",
1142 "csi1_rdi",
1143 "ahb",
1144 "vfe0",
1145 "csi_vfe0",
1146 "vfe_ahb",
1147 "vfe_axi";
1148 iommus = <&apps_iommu 3>;
1149 status = "disabled";
1150 ports {
1151 #address-cells = <1>;
1152 #size-cells = <0>;
1153 };
1154 };
1155
1156 cci: cci@1b0c000 {
1157 compatible = "qcom,msm8916-cci";
1158 #address-cells = <1>;
1159 #size-cells = <0>;
1160 reg = <0x01b0c000 0x1000>;
1161 interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
1162 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1163 <&gcc GCC_CAMSS_CCI_AHB_CLK>,
1164 <&gcc GCC_CAMSS_CCI_CLK>,
1165 <&gcc GCC_CAMSS_AHB_CLK>;
1166 clock-names = "camss_top_ahb", "cci_ahb",
1167 "cci", "camss_ahb";
1168 assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
1169 <&gcc GCC_CAMSS_CCI_CLK>;
1170 assigned-clock-rates = <80000000>, <19200000>;
1171 pinctrl-names = "default";
1172 pinctrl-0 = <&cci0_default>;
1173 status = "disabled";
1174
1175 cci_i2c0: i2c-bus@0 {
1176 reg = <0>;
1177 clock-frequency = <400000>;
1178 #address-cells = <1>;
1179 #size-cells = <0>;
1180 };
1181 };
1182
1183 gpu@1c00000 {
1184 compatible = "qcom,adreno-306.0", "qcom,adreno";
1185 reg = <0x01c00000 0x20000>;
1186 reg-names = "kgsl_3d0_reg_memory";
1187 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1188 interrupt-names = "kgsl_3d0_irq";
1189 clock-names =
1190 "core",
1191 "iface",
1192 "mem",
1193 "mem_iface",
1194 "alt_mem_iface",
1195 "gfx3d";
1196 clocks =
1197 <&gcc GCC_OXILI_GFX3D_CLK>,
1198 <&gcc GCC_OXILI_AHB_CLK>,
1199 <&gcc GCC_OXILI_GMEM_CLK>,
1200 <&gcc GCC_BIMC_GFX_CLK>,
1201 <&gcc GCC_BIMC_GPU_CLK>,
1202 <&gcc GFX3D_CLK_SRC>;
1203 power-domains = <&gcc OXILI_GDSC>;
1204 operating-points-v2 = <&gpu_opp_table>;
1205 iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
1206
1207 gpu_opp_table: opp-table {
1208 compatible = "operating-points-v2";
1209
1210 opp-400000000 {
1211 opp-hz = /bits/ 64 <400000000>;
1212 };
1213 opp-19200000 {
1214 opp-hz = /bits/ 64 <19200000>;
1215 };
1216 };
1217 };
1218
1219 venus: video-codec@1d00000 {
1220 compatible = "qcom,msm8916-venus";
1221 reg = <0x01d00000 0xff000>;
1222 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1223 power-domains = <&gcc VENUS_GDSC>;
1224 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
1225 <&gcc GCC_VENUS0_AHB_CLK>,
1226 <&gcc GCC_VENUS0_AXI_CLK>;
1227 clock-names = "core", "iface", "bus";
1228 iommus = <&apps_iommu 5>;
1229 memory-region = <&venus_mem>;
1230 status = "okay";
1231
1232 video-decoder {
1233 compatible = "venus-decoder";
1234 };
1235
1236 video-encoder {
1237 compatible = "venus-encoder";
1238 };
1239 };
1240
1241 apps_iommu: iommu@1ef0000 {
1242 #address-cells = <1>;
1243 #size-cells = <1>;
1244 #iommu-cells = <1>;
1245 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1246 ranges = <0 0x01e20000 0x40000>;
1247 reg = <0x01ef0000 0x3000>;
1248 clocks = <&gcc GCC_SMMU_CFG_CLK>,
1249 <&gcc GCC_APSS_TCU_CLK>;
1250 clock-names = "iface", "bus";
1251 qcom,iommu-secure-id = <17>;
1252
1253 // vfe:
1254 iommu-ctx@3000 {
1255 compatible = "qcom,msm-iommu-v1-sec";
1256 reg = <0x3000 0x1000>;
1257 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1258 };
1259
1260 // mdp_0:
1261 iommu-ctx@4000 {
1262 compatible = "qcom,msm-iommu-v1-ns";
1263 reg = <0x4000 0x1000>;
1264 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1265 };
1266
1267 // venus_ns:
1268 iommu-ctx@5000 {
1269 compatible = "qcom,msm-iommu-v1-sec";
1270 reg = <0x5000 0x1000>;
1271 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1272 };
1273 };
1274
1275 gpu_iommu: iommu@1f08000 {
1276 #address-cells = <1>;
1277 #size-cells = <1>;
1278 #iommu-cells = <1>;
1279 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1280 ranges = <0 0x01f08000 0x10000>;
1281 clocks = <&gcc GCC_SMMU_CFG_CLK>,
1282 <&gcc GCC_GFX_TCU_CLK>;
1283 clock-names = "iface", "bus";
1284 qcom,iommu-secure-id = <18>;
1285
1286 // gfx3d_user:
1287 iommu-ctx@1000 {
1288 compatible = "qcom,msm-iommu-v1-ns";
1289 reg = <0x1000 0x1000>;
1290 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
1291 };
1292
1293 // gfx3d_priv:
1294 iommu-ctx@2000 {
1295 compatible = "qcom,msm-iommu-v1-ns";
1296 reg = <0x2000 0x1000>;
1297 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
1298 };
1299 };
1300
1301 spmi_bus: spmi@200f000 {
1302 compatible = "qcom,spmi-pmic-arb";
1303 reg = <0x0200f000 0x001000>,
1304 <0x02400000 0x400000>,
1305 <0x02c00000 0x400000>,
1306 <0x03800000 0x200000>,
1307 <0x0200a000 0x002100>;
1308 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1309 interrupt-names = "periph_irq";
1310 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1311 qcom,ee = <0>;
1312 qcom,channel = <0>;
1313 #address-cells = <2>;
1314 #size-cells = <0>;
1315 interrupt-controller;
1316 #interrupt-cells = <4>;
1317 };
1318
1319 bam_dmux_dma: dma-controller@4044000 {
1320 compatible = "qcom,bam-v1.7.0";
1321 reg = <0x04044000 0x19000>;
1322 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1323 #dma-cells = <1>;
1324 qcom,ee = <0>;
1325
1326 num-channels = <6>;
1327 qcom,num-ees = <1>;
1328 qcom,powered-remotely;
1329
1330 status = "disabled";
1331 };
1332
1333 mpss: remoteproc@4080000 {
1334 compatible = "qcom,msm8916-mss-pil", "qcom,q6v5-pil";
1335 reg = <0x04080000 0x100>,
1336 <0x04020000 0x040>;
1337
1338 reg-names = "qdsp6", "rmb";
1339
1340 interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
1341 <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1342 <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1343 <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1344 <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1345 interrupt-names = "wdog", "fatal", "ready",
1346 "handover", "stop-ack";
1347
1348 power-domains = <&rpmpd MSM8916_VDDCX>,
1349 <&rpmpd MSM8916_VDDMX>;
1350 power-domain-names = "cx", "mx";
1351
1352 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1353 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
1354 <&gcc GCC_BOOT_ROM_AHB_CLK>,
1355 <&xo_board>;
1356 clock-names = "iface", "bus", "mem", "xo";
1357
1358 qcom,smem-states = <&hexagon_smp2p_out 0>;
1359 qcom,smem-state-names = "stop";
1360
1361 resets = <&scm 0>;
1362 reset-names = "mss_restart";
1363
1364 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
1365
1366 status = "disabled";
1367
1368 mba {
1369 memory-region = <&mba_mem>;
1370 };
1371
1372 mpss {
1373 memory-region = <&mpss_mem>;
1374 };
1375
1376 bam_dmux: bam-dmux {
1377 compatible = "qcom,bam-dmux";
1378
1379 interrupt-parent = <&hexagon_smsm>;
1380 interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
1381 interrupt-names = "pc", "pc-ack";
1382
1383 qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
1384 qcom,smem-state-names = "pc", "pc-ack";
1385
1386 dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
1387 dma-names = "tx", "rx";
1388
1389 status = "disabled";
1390 };
1391
1392 smd-edge {
1393 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1394
1395 qcom,smd-edge = <0>;
1396 qcom,ipc = <&apcs 8 12>;
1397 qcom,remote-pid = <1>;
1398
1399 label = "hexagon";
1400
1401 fastrpc {
1402 compatible = "qcom,fastrpc";
1403 qcom,smd-channels = "fastrpcsmd-apps-dsp";
1404 label = "adsp";
1405 qcom,non-secure-domain;
1406
1407 #address-cells = <1>;
1408 #size-cells = <0>;
1409
1410 cb@1 {
1411 compatible = "qcom,fastrpc-compute-cb";
1412 reg = <1>;
1413 };
1414 };
1415 };
1416 };
1417
1418 sound: sound@7702000 {
1419 status = "disabled";
1420 compatible = "qcom,apq8016-sbc-sndcard";
1421 reg = <0x07702000 0x4>, <0x07702004 0x4>;
1422 reg-names = "mic-iomux", "spkr-iomux";
1423 };
1424
1425 lpass: audio-controller@7708000 {
1426 status = "disabled";
1427 compatible = "qcom,lpass-cpu-apq8016";
1428
1429 /*
1430 * Note: Unlike the name would suggest, the SEC_I2S_CLK
1431 * is actually only used by Tertiary MI2S while
1432 * Primary/Secondary MI2S both use the PRI_I2S_CLK.
1433 */
1434 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
1435 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
1436 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
1437 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
1438 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
1439 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
1440 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
1441
1442 clock-names = "ahbix-clk",
1443 "pcnoc-mport-clk",
1444 "pcnoc-sway-clk",
1445 "mi2s-bit-clk0",
1446 "mi2s-bit-clk1",
1447 "mi2s-bit-clk2",
1448 "mi2s-bit-clk3";
1449 #sound-dai-cells = <1>;
1450
1451 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
1452 interrupt-names = "lpass-irq-lpaif";
1453 reg = <0x07708000 0x10000>;
1454 reg-names = "lpass-lpaif";
1455
1456 #address-cells = <1>;
1457 #size-cells = <0>;
1458 };
1459
1460 lpass_codec: audio-codec@771c000 {
1461 compatible = "qcom,msm8916-wcd-digital-codec";
1462 reg = <0x0771c000 0x400>;
1463 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
1464 <&gcc GCC_CODEC_DIGCODEC_CLK>;
1465 clock-names = "ahbix-clk", "mclk";
1466 #sound-dai-cells = <1>;
1467 };
1468
1469 sdhc_1: mmc@7824000 {
1470 compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
1471 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
1472 reg-names = "hc_mem", "core_mem";
1473
1474 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1475 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1476 interrupt-names = "hc_irq", "pwr_irq";
1477 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1478 <&gcc GCC_SDCC1_APPS_CLK>,
1479 <&xo_board>;
1480 clock-names = "iface", "core", "xo";
1481 mmc-ddr-1_8v;
1482 bus-width = <8>;
1483 non-removable;
1484 status = "disabled";
1485 };
1486
1487 sdhc_2: mmc@7864000 {
1488 compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
1489 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
1490 reg-names = "hc_mem", "core_mem";
1491
1492 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1493 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1494 interrupt-names = "hc_irq", "pwr_irq";
1495 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1496 <&gcc GCC_SDCC2_APPS_CLK>,
1497 <&xo_board>;
1498 clock-names = "iface", "core", "xo";
1499 bus-width = <4>;
1500 status = "disabled";
1501 };
1502
1503 blsp_dma: dma-controller@7884000 {
1504 compatible = "qcom,bam-v1.7.0";
1505 reg = <0x07884000 0x23000>;
1506 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1507 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
1508 clock-names = "bam_clk";
1509 #dma-cells = <1>;
1510 qcom,ee = <0>;
1511 status = "disabled";
1512 };
1513
1514 blsp1_uart1: serial@78af000 {
1515 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1516 reg = <0x078af000 0x200>;
1517 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1518 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1519 clock-names = "core", "iface";
1520 dmas = <&blsp_dma 0>, <&blsp_dma 1>;
1521 dma-names = "tx", "rx";
1522 pinctrl-names = "default", "sleep";
1523 pinctrl-0 = <&blsp1_uart1_default>;
1524 pinctrl-1 = <&blsp1_uart1_sleep>;
1525 status = "disabled";
1526 };
1527
1528 blsp1_uart2: serial@78b0000 {
1529 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1530 reg = <0x078b0000 0x200>;
1531 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1532 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
1533 clock-names = "core", "iface";
1534 dmas = <&blsp_dma 2>, <&blsp_dma 3>;
1535 dma-names = "tx", "rx";
1536 pinctrl-names = "default", "sleep";
1537 pinctrl-0 = <&blsp1_uart2_default>;
1538 pinctrl-1 = <&blsp1_uart2_sleep>;
1539 status = "disabled";
1540 };
1541
1542 blsp_i2c1: i2c@78b5000 {
1543 compatible = "qcom,i2c-qup-v2.2.1";
1544 reg = <0x078b5000 0x500>;
1545 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1546 clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
1547 <&gcc GCC_BLSP1_AHB_CLK>;
1548 clock-names = "core", "iface";
1549 pinctrl-names = "default", "sleep";
1550 pinctrl-0 = <&i2c1_default>;
1551 pinctrl-1 = <&i2c1_sleep>;
1552 #address-cells = <1>;
1553 #size-cells = <0>;
1554 status = "disabled";
1555 };
1556
1557 blsp_spi1: spi@78b5000 {
1558 compatible = "qcom,spi-qup-v2.2.1";
1559 reg = <0x078b5000 0x500>;
1560 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1561 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
1562 <&gcc GCC_BLSP1_AHB_CLK>;
1563 clock-names = "core", "iface";
1564 dmas = <&blsp_dma 4>, <&blsp_dma 5>;
1565 dma-names = "tx", "rx";
1566 pinctrl-names = "default", "sleep";
1567 pinctrl-0 = <&spi1_default>;
1568 pinctrl-1 = <&spi1_sleep>;
1569 #address-cells = <1>;
1570 #size-cells = <0>;
1571 status = "disabled";
1572 };
1573
1574 blsp_i2c2: i2c@78b6000 {
1575 compatible = "qcom,i2c-qup-v2.2.1";
1576 reg = <0x078b6000 0x500>;
1577 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1578 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1579 <&gcc GCC_BLSP1_AHB_CLK>;
1580 clock-names = "core", "iface";
1581 pinctrl-names = "default", "sleep";
1582 pinctrl-0 = <&i2c2_default>;
1583 pinctrl-1 = <&i2c2_sleep>;
1584 #address-cells = <1>;
1585 #size-cells = <0>;
1586 status = "disabled";
1587 };
1588
1589 blsp_spi2: spi@78b6000 {
1590 compatible = "qcom,spi-qup-v2.2.1";
1591 reg = <0x078b6000 0x500>;
1592 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1593 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
1594 <&gcc GCC_BLSP1_AHB_CLK>;
1595 clock-names = "core", "iface";
1596 dmas = <&blsp_dma 6>, <&blsp_dma 7>;
1597 dma-names = "tx", "rx";
1598 pinctrl-names = "default", "sleep";
1599 pinctrl-0 = <&spi2_default>;
1600 pinctrl-1 = <&spi2_sleep>;
1601 #address-cells = <1>;
1602 #size-cells = <0>;
1603 status = "disabled";
1604 };
1605
1606 blsp_i2c3: i2c@78b7000 {
1607 compatible = "qcom,i2c-qup-v2.2.1";
1608 reg = <0x078b7000 0x500>;
1609 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1610 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1611 <&gcc GCC_BLSP1_AHB_CLK>;
1612 clock-names = "core", "iface";
1613 pinctrl-names = "default", "sleep";
1614 pinctrl-0 = <&i2c3_default>;
1615 pinctrl-1 = <&i2c3_sleep>;
1616 #address-cells = <1>;
1617 #size-cells = <0>;
1618 status = "disabled";
1619 };
1620
1621 blsp_spi3: spi@78b7000 {
1622 compatible = "qcom,spi-qup-v2.2.1";
1623 reg = <0x078b7000 0x500>;
1624 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1625 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1626 <&gcc GCC_BLSP1_AHB_CLK>;
1627 clock-names = "core", "iface";
1628 dmas = <&blsp_dma 8>, <&blsp_dma 9>;
1629 dma-names = "tx", "rx";
1630 pinctrl-names = "default", "sleep";
1631 pinctrl-0 = <&spi3_default>;
1632 pinctrl-1 = <&spi3_sleep>;
1633 #address-cells = <1>;
1634 #size-cells = <0>;
1635 status = "disabled";
1636 };
1637
1638 blsp_i2c4: i2c@78b8000 {
1639 compatible = "qcom,i2c-qup-v2.2.1";
1640 reg = <0x078b8000 0x500>;
1641 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1642 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1643 <&gcc GCC_BLSP1_AHB_CLK>;
1644 clock-names = "core", "iface";
1645 pinctrl-names = "default", "sleep";
1646 pinctrl-0 = <&i2c4_default>;
1647 pinctrl-1 = <&i2c4_sleep>;
1648 #address-cells = <1>;
1649 #size-cells = <0>;
1650 status = "disabled";
1651 };
1652
1653 blsp_spi4: spi@78b8000 {
1654 compatible = "qcom,spi-qup-v2.2.1";
1655 reg = <0x078b8000 0x500>;
1656 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1657 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
1658 <&gcc GCC_BLSP1_AHB_CLK>;
1659 clock-names = "core", "iface";
1660 dmas = <&blsp_dma 10>, <&blsp_dma 11>;
1661 dma-names = "tx", "rx";
1662 pinctrl-names = "default", "sleep";
1663 pinctrl-0 = <&spi4_default>;
1664 pinctrl-1 = <&spi4_sleep>;
1665 #address-cells = <1>;
1666 #size-cells = <0>;
1667 status = "disabled";
1668 };
1669
1670 blsp_i2c5: i2c@78b9000 {
1671 compatible = "qcom,i2c-qup-v2.2.1";
1672 reg = <0x078b9000 0x500>;
1673 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1674 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
1675 <&gcc GCC_BLSP1_AHB_CLK>;
1676 clock-names = "core", "iface";
1677 pinctrl-names = "default", "sleep";
1678 pinctrl-0 = <&i2c5_default>;
1679 pinctrl-1 = <&i2c5_sleep>;
1680 #address-cells = <1>;
1681 #size-cells = <0>;
1682 status = "disabled";
1683 };
1684
1685 blsp_spi5: spi@78b9000 {
1686 compatible = "qcom,spi-qup-v2.2.1";
1687 reg = <0x078b9000 0x500>;
1688 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1689 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
1690 <&gcc GCC_BLSP1_AHB_CLK>;
1691 clock-names = "core", "iface";
1692 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
1693 dma-names = "tx", "rx";
1694 pinctrl-names = "default", "sleep";
1695 pinctrl-0 = <&spi5_default>;
1696 pinctrl-1 = <&spi5_sleep>;
1697 #address-cells = <1>;
1698 #size-cells = <0>;
1699 status = "disabled";
1700 };
1701
1702 blsp_i2c6: i2c@78ba000 {
1703 compatible = "qcom,i2c-qup-v2.2.1";
1704 reg = <0x078ba000 0x500>;
1705 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1706 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
1707 <&gcc GCC_BLSP1_AHB_CLK>;
1708 clock-names = "core", "iface";
1709 pinctrl-names = "default", "sleep";
1710 pinctrl-0 = <&i2c6_default>;
1711 pinctrl-1 = <&i2c6_sleep>;
1712 #address-cells = <1>;
1713 #size-cells = <0>;
1714 status = "disabled";
1715 };
1716
1717 blsp_spi6: spi@78ba000 {
1718 compatible = "qcom,spi-qup-v2.2.1";
1719 reg = <0x078ba000 0x500>;
1720 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
1721 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
1722 <&gcc GCC_BLSP1_AHB_CLK>;
1723 clock-names = "core", "iface";
1724 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
1725 dma-names = "tx", "rx";
1726 pinctrl-names = "default", "sleep";
1727 pinctrl-0 = <&spi6_default>;
1728 pinctrl-1 = <&spi6_sleep>;
1729 #address-cells = <1>;
1730 #size-cells = <0>;
1731 status = "disabled";
1732 };
1733
1734 usb: usb@78d9000 {
1735 compatible = "qcom,ci-hdrc";
1736 reg = <0x078d9000 0x200>,
1737 <0x078d9200 0x200>;
1738 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1739 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1740 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
1741 <&gcc GCC_USB_HS_SYSTEM_CLK>;
1742 clock-names = "iface", "core";
1743 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
1744 assigned-clock-rates = <80000000>;
1745 resets = <&gcc GCC_USB_HS_BCR>;
1746 reset-names = "core";
1747 phy_type = "ulpi";
1748 dr_mode = "otg";
1749 hnp-disable;
1750 srp-disable;
1751 adp-disable;
1752 ahb-burst-config = <0>;
1753 phy-names = "usb-phy";
1754 phys = <&usb_hs_phy>;
1755 status = "disabled";
1756 #reset-cells = <1>;
1757
1758 ulpi {
1759 usb_hs_phy: phy {
1760 compatible = "qcom,usb-hs-phy-msm8916",
1761 "qcom,usb-hs-phy";
1762 #phy-cells = <0>;
1763 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
1764 clock-names = "ref", "sleep";
1765 resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
1766 reset-names = "phy", "por";
1767 qcom,init-seq = /bits/ 8 <0x0 0x44>,
1768 <0x1 0x6b>,
1769 <0x2 0x24>,
1770 <0x3 0x13>;
1771 };
1772 };
1773 };
1774
1775 pronto: remoteproc@a21b000 {
1776 compatible = "qcom,pronto-v2-pil", "qcom,pronto";
1777 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
1778 reg-names = "ccu", "dxe", "pmu";
1779
1780 memory-region = <&wcnss_mem>;
1781
1782 interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1783 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1784 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1785 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1786 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1787 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
1788
1789 power-domains = <&rpmpd MSM8916_VDDCX>,
1790 <&rpmpd MSM8916_VDDMX>;
1791 power-domain-names = "cx", "mx";
1792
1793 qcom,smem-states = <&wcnss_smp2p_out 0>;
1794 qcom,smem-state-names = "stop";
1795
1796 pinctrl-names = "default";
1797 pinctrl-0 = <&wcnss_pin_a>;
1798
1799 status = "disabled";
1800
1801 iris {
1802 compatible = "qcom,wcn3620";
1803
1804 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1805 clock-names = "xo";
1806 };
1807
1808 smd-edge {
1809 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1810
1811 qcom,ipc = <&apcs 8 17>;
1812 qcom,smd-edge = <6>;
1813 qcom,remote-pid = <4>;
1814
1815 label = "pronto";
1816
1817 wcnss_ctrl: wcnss {
1818 compatible = "qcom,wcnss";
1819 qcom,smd-channels = "WCNSS_CTRL";
1820
1821 qcom,mmio = <&pronto>;
1822
1823 bluetooth {
1824 compatible = "qcom,wcnss-bt";
1825 };
1826
1827 wifi {
1828 compatible = "qcom,wcnss-wlan";
1829
1830 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1831 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1832 interrupt-names = "tx", "rx";
1833
1834 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1835 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1836 };
1837 };
1838 };
1839 };
1840
1841 intc: interrupt-controller@b000000 {
1842 compatible = "qcom,msm-qgic2";
1843 interrupt-controller;
1844 #interrupt-cells = <3>;
1845 reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
1846 <0x0b001000 0x1000>, <0x0b004000 0x2000>;
1847 interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1848 };
1849
1850 apcs: mailbox@b011000 {
1851 compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
1852 reg = <0x0b011000 0x1000>;
1853 #mbox-cells = <1>;
1854 clocks = <&a53pll>, <&gcc GPLL0_VOTE>;
1855 clock-names = "pll", "aux";
1856 #clock-cells = <0>;
1857 };
1858
1859 a53pll: clock@b016000 {
1860 compatible = "qcom,msm8916-a53pll";
1861 reg = <0x0b016000 0x40>;
1862 #clock-cells = <0>;
1863 clocks = <&xo_board>;
1864 clock-names = "xo";
1865 };
1866
1867 timer@b020000 {
1868 #address-cells = <1>;
1869 #size-cells = <1>;
1870 ranges;
1871 compatible = "arm,armv7-timer-mem";
1872 reg = <0x0b020000 0x1000>;
1873 clock-frequency = <19200000>;
1874
1875 frame@b021000 {
1876 frame-number = <0>;
1877 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1878 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1879 reg = <0x0b021000 0x1000>,
1880 <0x0b022000 0x1000>;
1881 };
1882
1883 frame@b023000 {
1884 frame-number = <1>;
1885 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1886 reg = <0x0b023000 0x1000>;
1887 status = "disabled";
1888 };
1889
1890 frame@b024000 {
1891 frame-number = <2>;
1892 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1893 reg = <0x0b024000 0x1000>;
1894 status = "disabled";
1895 };
1896
1897 frame@b025000 {
1898 frame-number = <3>;
1899 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1900 reg = <0x0b025000 0x1000>;
1901 status = "disabled";
1902 };
1903
1904 frame@b026000 {
1905 frame-number = <4>;
1906 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1907 reg = <0x0b026000 0x1000>;
1908 status = "disabled";
1909 };
1910
1911 frame@b027000 {
1912 frame-number = <5>;
1913 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1914 reg = <0x0b027000 0x1000>;
1915 status = "disabled";
1916 };
1917
1918 frame@b028000 {
1919 frame-number = <6>;
1920 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1921 reg = <0x0b028000 0x1000>;
1922 status = "disabled";
1923 };
1924 };
1925
1926 cpu0_acc: power-manager@b088000 {
1927 compatible = "qcom,msm8916-acc";
1928 reg = <0x0b088000 0x1000>;
1929 status = "reserved"; /* Controlled by PSCI firmware */
1930 };
1931
1932 cpu0_saw: power-manager@b089000 {
1933 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
1934 reg = <0x0b089000 0x1000>;
1935 status = "reserved"; /* Controlled by PSCI firmware */
1936 };
1937
1938 cpu1_acc: power-manager@b098000 {
1939 compatible = "qcom,msm8916-acc";
1940 reg = <0x0b098000 0x1000>;
1941 status = "reserved"; /* Controlled by PSCI firmware */
1942 };
1943
1944 cpu1_saw: power-manager@b099000 {
1945 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
1946 reg = <0x0b099000 0x1000>;
1947 status = "reserved"; /* Controlled by PSCI firmware */
1948 };
1949
1950 cpu2_acc: power-manager@b0a8000 {
1951 compatible = "qcom,msm8916-acc";
1952 reg = <0x0b0a8000 0x1000>;
1953 status = "reserved"; /* Controlled by PSCI firmware */
1954 };
1955
1956 cpu2_saw: power-manager@b0a9000 {
1957 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
1958 reg = <0x0b0a9000 0x1000>;
1959 status = "reserved"; /* Controlled by PSCI firmware */
1960 };
1961
1962 cpu3_acc: power-manager@b0b8000 {
1963 compatible = "qcom,msm8916-acc";
1964 reg = <0x0b0b8000 0x1000>;
1965 status = "reserved"; /* Controlled by PSCI firmware */
1966 };
1967
1968 cpu3_saw: power-manager@b0b9000 {
1969 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
1970 reg = <0x0b0b9000 0x1000>;
1971 status = "reserved"; /* Controlled by PSCI firmware */
1972 };
1973 };
1974
1975 thermal-zones {
1976 cpu0-1-thermal {
1977 polling-delay-passive = <250>;
1978 polling-delay = <1000>;
1979
1980 thermal-sensors = <&tsens 5>;
1981
1982 trips {
1983 cpu0_1_alert0: trip-point0 {
1984 temperature = <75000>;
1985 hysteresis = <2000>;
1986 type = "passive";
1987 };
1988 cpu0_1_crit: cpu_crit {
1989 temperature = <110000>;
1990 hysteresis = <2000>;
1991 type = "critical";
1992 };
1993 };
1994
1995 cooling-maps {
1996 map0 {
1997 trip = <&cpu0_1_alert0>;
1998 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1999 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2000 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2001 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2002 };
2003 };
2004 };
2005
2006 cpu2-3-thermal {
2007 polling-delay-passive = <250>;
2008 polling-delay = <1000>;
2009
2010 thermal-sensors = <&tsens 4>;
2011
2012 trips {
2013 cpu2_3_alert0: trip-point0 {
2014 temperature = <75000>;
2015 hysteresis = <2000>;
2016 type = "passive";
2017 };
2018 cpu2_3_crit: cpu_crit {
2019 temperature = <110000>;
2020 hysteresis = <2000>;
2021 type = "critical";
2022 };
2023 };
2024
2025 cooling-maps {
2026 map0 {
2027 trip = <&cpu2_3_alert0>;
2028 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2029 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2030 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2031 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2032 };
2033 };
2034 };
2035
2036 gpu-thermal {
2037 polling-delay-passive = <250>;
2038 polling-delay = <1000>;
2039
2040 thermal-sensors = <&tsens 2>;
2041
2042 trips {
2043 gpu_alert0: trip-point0 {
2044 temperature = <75000>;
2045 hysteresis = <2000>;
2046 type = "passive";
2047 };
2048 gpu_crit: gpu_crit {
2049 temperature = <95000>;
2050 hysteresis = <2000>;
2051 type = "critical";
2052 };
2053 };
2054 };
2055
2056 camera-thermal {
2057 polling-delay-passive = <250>;
2058 polling-delay = <1000>;
2059
2060 thermal-sensors = <&tsens 1>;
2061
2062 trips {
2063 cam_alert0: trip-point0 {
2064 temperature = <75000>;
2065 hysteresis = <2000>;
2066 type = "hot";
2067 };
2068 };
2069 };
2070
2071 modem-thermal {
2072 polling-delay-passive = <250>;
2073 polling-delay = <1000>;
2074
2075 thermal-sensors = <&tsens 0>;
2076
2077 trips {
2078 modem_alert0: trip-point0 {
2079 temperature = <85000>;
2080 hysteresis = <2000>;
2081 type = "hot";
2082 };
2083 };
2084 };
2085
2086 };
2087
2088 timer {
2089 compatible = "arm,armv8-timer";
2090 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2091 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2092 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2093 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
2094 };
2095 };
2096
2097 #include "msm8916-pins.dtsi"