| /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved. |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License version 2 and |
| * only version 2 as published by the Free Software Foundation. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #include <dt-bindings/msm/pm.h> |
| |
| &soc { |
| qcom,spm@b1d2000 { |
| compatible = "qcom,spm-v2"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0xb1d2000 0x1000>; |
| reg-names = "saw-base"; |
| qcom,name = "system-cci"; |
| qcom,saw2-ver-reg = <0xfd0>; |
| qcom,saw2-cfg = <0x14>; |
| qcom,saw2-spm-dly= <0x3C102800>; |
| qcom,saw2-spm-ctl = <0xe>; |
| qcom,saw2-avs-ctl = <0x10>; |
| qcom,cpu-vctl-list = <&CPU0 &CPU1 &CPU2 &CPU3 |
| &CPU4 &CPU5 &CPU6 &CPU7>; |
| qcom,vctl-timeout-us = <50>; |
| qcom,vctl-port = <0x0>; |
| qcom,phase-port = <0x1>; |
| qcom,pfm-port = <0x2>; |
| }; |
| |
| qcom,lpm-levels { |
| compatible = "qcom,lpm-levels"; |
| qcom,use-psci; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| qcom,pm-cluster@0 { |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| label = "system"; |
| qcom,spm-device-names = "cci"; |
| qcom,default-level=<0>; |
| qcom,psci-mode-shift = <8>; |
| qcom,psci-mode-mask = <0xf>; |
| |
| qcom,pm-cluster-level@0{ |
| reg = <0>; |
| label = "system-active"; |
| qcom,psci-mode = <0>; |
| qcom,latency-us = <423>; |
| qcom,ss-power = <349>; |
| qcom,energy-overhead = <299110>; |
| qcom,time-overhead = <719>; |
| }; |
| |
| qcom,pm-cluster-level@1{ |
| reg = <1>; |
| label = "system-wfi"; |
| qcom,psci-mode = <1>; |
| qcom,latency-us = <480>; |
| qcom,ss-power = <348>; |
| qcom,energy-overhead = <313989>; |
| qcom,time-overhead = <753>; |
| qcom,min-child-idx = <3>; |
| }; |
| |
| qcom,pm-cluster-level@2{ |
| reg = <2>; |
| label = "system-pc"; |
| qcom,psci-mode = <3>; |
| qcom,latency-us = <11027>; |
| qcom,ss-power = <340>; |
| qcom,energy-overhead = <616035>; |
| qcom,time-overhead = <1495>; |
| qcom,min-child-idx = <3>; |
| qcom,notify-rpm; |
| qcom,is-reset; |
| qcom,reset-level = <LPM_RESET_LVL_PC>; |
| }; |
| |
| qcom,pm-cluster@0{ |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| label = "pwr"; |
| qcom,spm-device-names = "l2"; |
| qcom,default-level=<0>; |
| qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>; |
| qcom,psci-mode-shift = <4>; |
| qcom,psci-mode-mask = <0xf>; |
| |
| qcom,pm-cluster-level@0{ |
| reg = <0>; |
| label = "pwr-l2-wfi"; |
| qcom,psci-mode = <1>; |
| qcom,latency-us = <180>; |
| qcom,ss-power = <361>; |
| qcom,energy-overhead = <113215>; |
| qcom,time-overhead = <270>; |
| }; |
| |
| qcom,pm-cluster-level@1{ |
| reg = <1>; |
| label = "pwr-l2-retention"; |
| qcom,psci-mode = <3>; |
| qcom,latency-us = <188>; |
| qcom,ss-power = <360>; |
| qcom,energy-overhead = <121271>; |
| qcom,time-overhead = <307>; |
| qcom,min-child-idx = <1>; |
| qcom,reset-level = |
| <LPM_RESET_LVL_RET>; |
| }; |
| |
| qcom,pm-cluster-level@2{ |
| reg = <2>; |
| label = "pwr-l2-gdhs"; |
| qcom,psci-mode = <4>; |
| qcom,latency-us = <212>; |
| qcom,ss-power = <354>; |
| qcom,energy-overhead = <150748>; |
| qcom,time-overhead = <363>; |
| qcom,min-child-idx = <1>; |
| qcom,reset-level = |
| <LPM_RESET_LVL_GDHS>; |
| }; |
| |
| qcom,pm-cluster-level@3{ |
| reg = <3>; |
| label = "pwr-l2-pc"; |
| qcom,psci-mode = <5>; |
| qcom,latency-us = <421>; |
| qcom,ss-power = <350>; |
| qcom,energy-overhead = <277479>; |
| qcom,time-overhead = <690>; |
| qcom,min-child-idx = <1>; |
| qcom,is-reset; |
| qcom,reset-level = |
| <LPM_RESET_LVL_PC>; |
| }; |
| |
| qcom,pm-cpu { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| qcom,psci-mode-shift = <0>; |
| qcom,psci-mode-mask = <0xf>; |
| |
| qcom,pm-cpu-level@0 { |
| reg = <0>; |
| qcom,spm-cpu-mode = "wfi"; |
| qcom,psci-cpu-mode = <1>; |
| qcom,latency-us = <1>; |
| qcom,ss-power = <395>; |
| qcom,energy-overhead = <30424>; |
| qcom,time-overhead = <61>; |
| }; |
| |
| qcom,pm-cpu-level@1 { |
| reg = <1>; |
| qcom,spm-cpu-mode = "pc"; |
| qcom,psci-cpu-mode = <3>; |
| qcom,latency-us = <180>; |
| qcom,ss-power = <361>; |
| qcom,energy-overhead = <113215>; |
| qcom,time-overhead = <270>; |
| qcom,use-broadcast-timer; |
| qcom,is-reset; |
| qcom,reset-level = |
| <LPM_RESET_LVL_PC>; |
| }; |
| }; |
| }; |
| |
| qcom,pm-cluster@1{ |
| reg = <1>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| label = "perf"; |
| qcom,spm-device-names = "l2"; |
| qcom,default-level=<0>; |
| qcom,cpu = <&CPU4 &CPU5 &CPU6 &CPU7>; |
| qcom,psci-mode-shift = <4>; |
| qcom,psci-mode-mask = <0xf>; |
| |
| qcom,pm-cluster-level@0{ |
| reg = <0>; |
| label = "perf-l2-wfi"; |
| qcom,psci-mode = <1>; |
| qcom,latency-us = <179>; |
| qcom,ss-power = <362>; |
| qcom,energy-overhead = <113242>; |
| qcom,time-overhead = <268>; |
| }; |
| |
| qcom,pm-cluster-level@1{ |
| reg = <1>; |
| label = "perf-l2-retention"; |
| qcom,psci-mode = <3>; |
| qcom,latency-us = <186>; |
| qcom,ss-power = <361>; |
| qcom,energy-overhead = <125982>; |
| qcom,time-overhead = <306>; |
| qcom,min-child-idx = <1>; |
| qcom,reset-level = |
| <LPM_RESET_LVL_RET>; |
| }; |
| |
| qcom,pm-cluster-level@2{ |
| reg = <2>; |
| label = "perf-l2-gdhs"; |
| qcom,psci-mode = <4>; |
| qcom,latency-us = <210>; |
| qcom,ss-power = <355>; |
| qcom,energy-overhead = <155728>; |
| qcom,time-overhead = <361>; |
| qcom,min-child-idx = <1>; |
| qcom,reset-level = |
| <LPM_RESET_LVL_GDHS>; |
| }; |
| |
| qcom,pm-cluster-level@3{ |
| reg = <3>; |
| label = "perf-l2-pc"; |
| qcom,psci-mode = <5>; |
| qcom,latency-us = <423>; |
| qcom,ss-power = <349>; |
| qcom,energy-overhead = <299110>; |
| qcom,time-overhead = <719>; |
| qcom,min-child-idx = <1>; |
| qcom,is-reset; |
| qcom,reset-level = |
| <LPM_RESET_LVL_PC>; |
| }; |
| |
| qcom,pm-cpu { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| qcom,psci-mode-shift = <0>; |
| qcom,psci-mode-mask = <0xf>; |
| |
| qcom,pm-cpu-level@0 { |
| reg = <0>; |
| qcom,spm-cpu-mode = "wfi"; |
| qcom,psci-cpu-mode = <1>; |
| qcom,latency-us = <1>; |
| qcom,ss-power = <397>; |
| qcom,energy-overhead = <30424>; |
| qcom,time-overhead = <61>; |
| }; |
| |
| qcom,pm-cpu-level@1 { |
| reg = <1>; |
| qcom,spm-cpu-mode = "pc"; |
| qcom,psci-cpu-mode = <3>; |
| qcom,latency-us = <179>; |
| qcom,ss-power = <362>; |
| qcom,energy-overhead = <113242>; |
| qcom,time-overhead = <268>; |
| qcom,use-broadcast-timer; |
| qcom,is-reset; |
| qcom,reset-level = |
| <LPM_RESET_LVL_PC>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| qcom,mpm@601d4 { |
| compatible = "qcom,mpm-v2"; |
| reg = <0x601d4 0x1000>, /* MSM_RPM_MPM_BASE 4K */ |
| <0xb011008 0x4>; |
| reg-names = "vmpm", "ipc"; |
| interrupts = <0 171 1>; |
| clocks = <&clock_gcc clk_xo_lpm_clk>; |
| clock-names = "xo"; |
| qcom,ipc-bit-offset = <1>; |
| qcom,gic-parent = <&intc>; |
| qcom,num-mpm-irqs = <96>; |
| qcom,gic-map = <2 216>, /* tsens_upper_lower_int */ |
| <58 168>, /* qusb2phy_dmse_hv -> hs_phy_irq*/ |
| <49 168>, /* qusb2phy_dpse_hv -> hs_phy_irq*/ |
| <37 252>, /* qmp_usb3_lfps_rxterm_irq -> ss_phy_irq */ |
| <53 104>, /* mdss_irq */ |
| <88 222>, /* ee0_krait_hlos_spmi_periph_irq */ |
| <0xff 18>, /* APC_qgicQTmrSecPhysIrptReq */ |
| <0xff 19>, /* APC_qgicQTmrNonSecPhysIrptReq */ |
| <0xff 20>, /* qgicQTmrVirtIrptReq */ |
| <0xff 23>, /* apss_hm */ |
| <0xff 35>, /* WDT_barkInt */ |
| <0xff 39>, /* arch_mem_timer */ |
| <0xff 40>, /* qtmr_phy_irq[0] */ |
| <0xff 47>, /* rbif_irq[0] */ |
| <0xff 54>, /* gladiator-error */ |
| <0xff 56>, /* q6_wdog_expired_irq */ |
| <0xff 57>, /* mss_to_apps_irq(0) */ |
| <0xff 58>, /* mss_to_apps_irq(1) */ |
| <0xff 59>, /* mss_to_apps_irq(2) */ |
| <0xff 60>, /* mss_to_apps_irq(3) */ |
| <0xff 61>, /* mss_a2_bam_irq */ |
| <0xff 65>, /* o_gc_sys_irq[0] */ |
| <0xff 69>, /* vbif_irpt */ |
| <0xff 73>, /* app_tcu_gbl_flt_irpt_ns */ |
| <0xff 74>, /* smmu_bus_intr[2] */ |
| <0xff 75>, /* smmu_bus_intr[3] */ |
| <0xff 78>, /* smmu_bus_intr[5] */ |
| <0xff 79>, /* smmu_bus_intr[6] */ |
| <0xff 85>, /* smmu_bus_intr[31] */ |
| <0xff 86>, /* smmu_bus_intr[32] */ |
| <0xff 90>, /* smmu_bus_intr[33] */ |
| <0xff 92>, /* smmu_bus_intr[34] */ |
| <0xff 93>, /* smmu_bus_intr[35] */ |
| <0xff 97>, /* smmu_bus_intr[10] */ |
| <0xff 102>, /* smmu_bus_intr[14] */ |
| <0xff 108>, /* smmu_bus_intr[36] */ |
| <0xff 109>, /* smmu_bus_intr[37] */ |
| <0xff 112>, /* smmu_bus_intr[38] */ |
| <0xff 114>, /* qdsd_intr_out */ |
| <0xff 126>, /* app_tcu_cxt_irpt_vec[11] */ |
| <0xff 128>, /* blsp1_peripheral_irq[3] */ |
| <0xff 131>, /* qup_irq */ |
| <0xff 136>, /* app_tcu_cxt_irpt_vec[15] */ |
| <0xff 137>, /* app_tcu_cxt_irpt_vec[16] */ |
| <0xff 138>, /* app_tcu_cxt_irpt_vec[17] */ |
| <0xff 139>, /* uart_dm_intr */ |
| <0xff 140>, /* uart_dm_intr */ |
| <0xff 141>, /* app_tcu_cxt_irpt_vec[18] */ |
| <0xff 142>, /* smmu_bus_intr[47] */ |
| <0xff 143>, /* smmu_bus_intr[48] */ |
| <0xff 144>, /* smmu_bus_intr[49] */ |
| <0xff 145>, /* smmu_bus_intr[50] */ |
| <0xff 146>, /* smmu_bus_intr[51] */ |
| <0xff 147>, /* smmu_bus_intr[52] */ |
| <0xff 148>, /* smmu_bus_intr[53] */ |
| <0xff 149>, /* smmu_bus_intr[54] */ |
| <0xff 150>, /* smmu_bus_intr[55] */ |
| <0xff 151>, /* smmu_bus_intr[56] */ |
| <0xff 152>, /* smmu_bus_intr[57] */ |
| <0xff 153>, /* smmu_bus_intr[58] */ |
| <0xff 155>, /* sdc1_irq(0) */ |
| <0xff 157>, /* sdc2_irq(0) */ |
| <0xff 166>, /* usb30_pwr_evnt_irq */ |
| <0xff 167>, /* usb30_bam_irq[0] */ |
| <0xff 170>, /* sdc1_pwr_cmd_irq */ |
| <0xff 172>, /* usb30_ctrl_irq[0] */ |
| <0xff 173>, /* o_wcss_apss_smd_hi */ |
| <0xff 174>, /* o_wcss_apss_smd_med */ |
| <0xff 175>, /* o_wcss_apss_smd_low */ |
| <0xff 176>, /* o_wcss_apss_smsm_irq */ |
| <0xff 177>, /* o_wcss_apss_wlan_data_xfer_done */ |
| <0xff 178>, /* o_wcss_apss_wlan_rx_data_avail */ |
| <0xff 179>, /* o_wcss_apss_asic_intr */ |
| <0xff 181>, /* o_wcss_apss_wdog_bite_and_reset_rdy */ |
| <0xff 188>, /* lpass_irq_out_apcs(0) */ |
| <0xff 189>, /* lpass_irq_out_apcs(1) */ |
| <0xff 190>, /* lpass_irq_out_apcs(2) */ |
| <0xff 191>, /* lpass_irq_out_apcs(3) */ |
| <0xff 192>, /* lpass_irq_out_apcs(4) */ |
| <0xff 193>, /* lpass_irq_out_apcs(5) */ |
| <0xff 194>, /* lpass_irq_out_apcs(6) */ |
| <0xff 195>, /* lpass_irq_out_apcs(7) */ |
| <0xff 196>, /* lpass_irq_out_apcs(8) */ |
| <0xff 197>, /* lpass_irq_out_apcs(9) */ |
| <0xff 198>, /* coresight-tmc-etr interrupt */ |
| <0xff 200>, /* rpm_ipc(4) */ |
| <0xff 201>, /* rpm_ipc(5) */ |
| <0xff 202>, /* rpm_ipc(6) */ |
| <0xff 203>, /* rpm_ipc(7) */ |
| <0xff 204>, /* rpm_ipc(24) */ |
| <0xff 205>, /* rpm_ipc(25) */ |
| <0xff 206>, /* rpm_ipc(26) */ |
| <0xff 207>, /* rpm_ipc(27) */ |
| <0xff 212>, /* lpass_slimbus_bam_ee1_irq */ |
| <0xff 215>, /* o_bimc_intr[0] */ |
| <0xff 224>, /* spdm_realtime_irq[1] */ |
| <0xff 231>, /* arm-smmu global fault */ |
| <0xff 239>, /* crypto_bam_irq[1]*/ |
| <0xff 240>, /* summary_irq_kpss */ |
| <0xff 253>, /* sdc2_pwr_cmd_irq */ |
| <0xff 257>, /* osmmu_Cirpt[0] */ |
| <0xff 260>, /* ipa_irq[0] */ |
| <0xff 262>, /* ipa_bam_irq[0] */ |
| <0xff 263>, /* ipa_bam_irq[2] */ |
| <0xff 264>, /* arm-smmu context fault */ |
| <0xff 269>, /* rpm_wdog_expired_irq */ |
| <0xff 270>, /* blsp1_bam_irq[0] */ |
| <0xff 273>, /* smmu_bus_intr[18] */ |
| <0xff 274>, /* smmu_bus_intr[19] */ |
| <0xff 275>, /* rpm_ipc(30) */ |
| <0xff 276>, /* rpm_ipc(31) */ |
| <0xff 285>, /* app_tcu_cxt_irpt_vec[0] */ |
| <0xff 286>, /* app_tcu_cxt_irpt_vec[1] */ |
| <0xff 287>, /* app_tcu_cxt_irpt_vec[2] */ |
| <0xff 305>, /* L2_EXTERRIRQ_C0 */ |
| <0xff 306>, /* L2_EXTERRIRQ_C1 */ |
| <0xff 307>, /* L2_INTERRIRQ_C0 */ |
| <0xff 308>, /* L2_INTERRIRQ_C1 */ |
| <0xff 314>, /* CCISAW_svicInt */ |
| <0xff 321>, /* q6ss_irq_out(4) */ |
| <0xff 322>, /* q6ss_irq_out(5) */ |
| <0xff 323>, /* q6ss_irq_out(6) */ |
| <0xff 325>, /* q6ss_wdog_exp_irq */ |
| <0xff 344>, /* sdcc_ice_nonsec_level_irq */ |
| <0xff 346>; /* tsens_critical_int */ |
| |
| qcom,gpio-parent = <&tlmm>; |
| qcom,gpio-map = <3 38 >, |
| <4 1 >, |
| <5 5 >, |
| <6 9 >, |
| <8 37>, |
| <9 36>, |
| <10 13>, |
| <11 35>, |
| <12 17>, |
| <13 21>, |
| <14 54>, |
| <15 34>, |
| <16 31>, |
| <17 58>, |
| <18 28>, |
| <19 42>, |
| <20 25>, |
| <21 12>, |
| <22 43>, |
| <23 44>, |
| <24 45>, |
| <25 46>, |
| <26 48>, |
| <27 65>, |
| <28 93>, |
| <29 97>, |
| <30 63>, |
| <31 70>, |
| <32 71>, |
| <33 72>, |
| <34 81>, |
| <35 85>, |
| <36 90>, |
| <50 67>, |
| <51 73>, |
| <52 74>, |
| <53 62>, |
| <59 59>, |
| <60 60>, |
| <61 61>, |
| <62 86>, |
| <63 87>, |
| <64 91>, |
| <65 129>, |
| <66 130>, |
| <67 131>, |
| <68 132>, |
| <69 133>, |
| <70 137>, |
| <71 138>, |
| <72 139>, |
| <73 140>, |
| <74 141>, |
| <0xff 88>; |
| }; |
| |
| qcom,cpu-sleep-status{ |
| compatible = "qcom,cpu-sleep-status"; |
| }; |
| |
| qcom,rpm-log@29fc00 { |
| compatible = "qcom,rpm-log"; |
| reg = <0x29fc00 0x4000>; |
| qcom,rpm-addr-phys = <0x200000>; |
| qcom,offset-version = <4>; |
| qcom,offset-page-buffer-addr = <36>; |
| qcom,offset-log-len = <40>; |
| qcom,offset-log-len-mask = <44>; |
| qcom,offset-page-indices = <56>; |
| }; |
| |
| qcom,rpm-stats@200000 { |
| compatible = "qcom,rpm-stats"; |
| reg = <0x200000 0x1000>, |
| <0x290014 0x4>, |
| <0x29001c 0x4>; |
| reg-names = "phys_addr_base", "offset_addr", |
| "heap_phys_addrbase"; |
| qcom,sleep-stats-version = <2>; |
| }; |
| |
| qcom,rpm-master-stats@60150 { |
| compatible = "qcom,rpm-master-stats"; |
| reg = <0x60150 0x5000>; |
| qcom,masters = "APSS", "MPSS", "PRONTO", "TZ", "LPASS"; |
| qcom,master-stats-version = <2>; |
| qcom,master-offset = <4096>; |
| }; |
| }; |