/* 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. */ &soc { qcom,spm@b009000 { compatible = "qcom,spm-v2"; #address-cells = <1>; #size-cells = <1>; reg = <0xb009000 0x1000>; qcom,name = "cpu0"; qcom,cpu = <&CPU0>; qcom,saw2-ver-reg = <0xfd0>; qcom,saw2-cfg = <0x1>; qcom,saw2-spm-dly= <0x3c102800>; qcom,saw2-spm-ctl = <0xe>; qcom,supports-rpm-hs; qcom,mode0 { qcom,label = "qcom,saw2-spm-cmd-wfi"; qcom,sequence = [04 03 04 0f]; qcom,spm_en; }; qcom,mode1 { qcom,label = "qcom,saw2-spm-cmd-spc"; qcom,sequence = [1f 34 04 44 24 54 03 54 44 04 24 34 0f]; qcom,spm_en; qcom,pc_mode; }; qcom,mode2 { qcom,label = "qcom,saw2-spm-cmd-pc"; qcom,sequence = [1f 34 04 44 14 24 54 03 54 44 14 04 04 24 04 34 0f]; qcom,spm_en; qcom,pc_mode; qcom,slp_cmd_mode; }; }; qcom,lpm-levels { compatible = "qcom,lpm-levels"; #address-cells = <1>; #size-cells = <0>; qcom,pm-cluster@0{ #address-cells = <1>; #size-cells = <0>; reg = <0>; label = "system"; qcom,default-level=<0>; qcom,pm-cluster-level@0 { reg = <0>; label = "l2-active"; qcom,latency-us = <270>; qcom,ss-power = <455>; qcom,energy-overhead = <270621>; qcom,time-overhead = <500>; }; qcom,pm-cluster-level@1 { reg = <1>; label = "l2-pc"; qcom,latency-us = <285>; qcom,ss-power = <442>; qcom,energy-overhead = <306621>; qcom,time-overhead = <540>; qcom,min-child-idx = <2>; qcom,notify-rpm; }; qcom,pm-cpu { #address-cells = <1>; #size-cells = <0>; qcom,pm-cpu-level@0{ reg = <0>; qcom,spm-cpu-mode = "wfi"; qcom,latency-us = <1>; qcom,ss-power = <473>; qcom,energy-overhead = <100000>; qcom,time-overhead = <25>; }; qcom,pm-cpu-level@1 { reg = <1>; qcom,spm-cpu-mode ="standalone_pc"; qcom,latency-us = <240>; qcom,ss-power = <467>; qcom,energy-overhead = <202781>; qcom,time-overhead = <420>; qcom,use-broadcast-timer; qcom,is-reset; }; qcom,pm-cpu-level@2 { reg = <2>; qcom,spm-cpu-mode = "pc"; qcom,latency-us = <270>; qcom,ss-power = <455>; qcom,energy-overhead = <270621>; qcom,time-overhead = <500>; qcom,use-broadcast-timer; qcom,is-reset; }; }; }; }; qcom,mpm@601d0 { compatible = "qcom,mpm-v2"; reg = <0x601d0 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,gic-map = <2 216>, /* tsens_upper_lower_int */ <49 172>, /* usb1_hs_async_wakeup_irq */ <51 174>, /* usb2_hs_async_wakeup_irq */ <53 104>, /* mdss_irq */ <58 166>, /* usb_hs_irq */ <62 222>, /* ee0_apps_hlos_spmi_periph_irq */ <0xff 18>, /* WDT_biteInt */ <0xff 19>, /* WDT_barkInt */ <0xff 35>, /* CTI_SPI_intx */ <0xff 38>, /* QTMR_qgicFrm0VirtIrq */ <0xff 47>, <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 77>, /* qpic_bam_irq[1] */ <0xff 114>, /* qdsd_intr_out */ <0xff 130>, /* peripheral_irq[9] */ <0xff 131>, /* qup_irq */ <0xff 140>, /* uart_dm_intr */ <0xff 153>, /* peripheral_irq[4] */ <0xff 155>, /* sdc1_irq(0) */ <0xff 157>, /* sdc2_irq(0) */ <0xff 161>, /* qpic_nandc_op_done_irq */ <0xff 163>, /* qpic_lcdc_irq */ <0xff 164>, /* qpic_bam_irq[0] */ <0xff 168>, <0xff 170>, /* sdc1_pwr_cmd_irq */ <0xff 173>, /* hsic_core_irq */ <0xff 192>, /* audio_out0_irq */ <0xff 198>, /* qdss_etrbytecnt_irq */ <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 208>, /* rbif_irq[0] */ <0xff 215>, /* o_bimc_intr */ <0xff 224>, /* spdm_realtime_irq(1) */ <0xff 239>, /* crypto_bam_irq[1]*/ <0xff 240>, /* summary_irq_kpss */ <0xff 244>, /* bam_irq[2] */ <0xff 253>, /* sdc2_pwr_cmd_irq */ <0xff 269>, /* rpm_wdog_expired_irq */ <0xff 270>, /* bam_irq[0] */ <0xff 275>, /* rpm_ipc(30) */ <0xff 276>; /* rpm_ipc(31) */ qcom,gpio-parent = <&tlmm_pinmux>; qcom,gpio-map = <3 16>, <4 5>, <5 11>, <6 12>, <7 3>, <8 17>, <9 9>, <10 13>, <11 1>, <12 20>, <13 21>, <14 22>, <15 75>, <16 74>, <17 28>, <18 44>, <19 26>, <20 43>, <21 42>, <22 29>, <23 69>, <24 30>, <25 37>, <26 25>, <27 71>, <28 34>, <29 55>, <30 8>, <31 40>, <32 48>, <33 52>, <34 57>, <35 62>, <36 66>, <37 59>, <38 79>, <39 38>, <40 63>, <41 76>; }; qcom,pm@8600664 { compatible = "qcom,pm"; reg = <0x8600664 0x40>; clocks = <&clock_cpu clk_a7ssmux>; clock-names = "cpu0_clk"; qcom,use-sync-timer; qcom,synced-clocks; qcom,tz-flushes-cache; }; qcom,cpu-sleep-status@b088008{ compatible = "qcom,cpu-sleep-status"; reg = <0xb088008 0x100>; qcom,cpu-alias-addr = <0x10000>; qcom,sleep-status-mask= <0x80000>; }; qcom,rpm-log@29dc00 { compatible = "qcom,rpm-log"; reg = <0x29dc00 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@29dba0 { compatible = "qcom,rpm-stats"; reg = <0x29dba0 0x1000>; reg-names = "phys_addr_base"; qcom,sleep-stats-version = <2>; }; qcom,rpm-master-stats@60150 { compatible = "qcom,rpm-master-stats"; reg = <0x60150 0x2030>; qcom,masters = "APSS", "MPSS", "PRONTO"; qcom,master-stats-version = <2>; qcom,master-offset = <4096>; }; qcom,rpm-rbcpr-stats@0x200000 { compatible = "qcom,rpmrbcpr-stats"; reg = <0x200000 0x1000>; qcom,start-offset = <0x90010>; }; };