blob: bd493fd28db4171736faf7abad57276afdf005f3 [file] [log] [blame]
/* Copyright (c) 2017-2019, 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@b089000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xb089000 0x1000>;
qcom,name = "cpu0";
qcom,cpu = <&CPU0>;
qcom,saw2-ver-reg = <0xfd0>;
qcom,saw2-cfg = <0x01>;
qcom,saw2-spm-dly= <0x3c102800>;
qcom,saw2-spm-ctl = <0xe>;
qcom,mode0 {
qcom,label = "qcom,saw2-spm-cmd-wfi";
qcom,sequence = [60 03 60 0b 0f];
qcom,spm_en;
};
qcom,mode1 {
qcom,label = "qcom,saw2-spm-cmd-spc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
qcom,mode2 {
qcom,label = "qcom,saw2-spm-cmd-pc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
};
qcom,spm@b099000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xb099000 0x1000>;
qcom,name = "cpu1";
qcom,cpu = <&CPU1>;
qcom,core-id = <1>;
qcom,saw2-ver-reg = <0xfd0>;
qcom,saw2-cfg = <0x01>;
qcom,saw2-spm-dly= <0x3c102800>;
qcom,saw2-spm-ctl = <0xe>;
qcom,mode0 {
qcom,label = "qcom,saw2-spm-cmd-wfi";
qcom,sequence = [60 03 60 0b 0f];
qcom,spm_en;
};
qcom,mode1 {
qcom,label = "qcom,saw2-spm-cmd-spc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
qcom,mode2 {
qcom,label = "qcom,saw2-spm-cmd-pc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
};
qcom,spm@b0a9000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xb0a9000 0x1000>;
qcom,name = "cpu2";
qcom,cpu = <&CPU2>;
qcom,core-id = <2>;
qcom,saw2-ver-reg = <0xfd0>;
qcom,saw2-cfg = <0x01>;
qcom,saw2-spm-dly= <0x3c102800>;
qcom,saw2-spm-ctl = <0xe>;
qcom,mode0 {
qcom,label = "qcom,saw2-spm-cmd-wfi";
qcom,sequence = [60 03 60 0b 0f];
qcom,spm_en;
};
qcom,mode1 {
qcom,label = "qcom,saw2-spm-cmd-spc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
qcom,mode2 {
qcom,label = "qcom,saw2-spm-cmd-pc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
};
qcom,spm@b0b9000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xb0b9000 0x1000>;
qcom,name = "cpu3";
qcom,cpu = <&CPU3>;
qcom,core-id = <3>;
qcom,saw2-ver-reg = <0xfd0>;
qcom,saw2-cfg = <0x01>;
qcom,saw2-spm-dly= <0x3c102800>;
qcom,saw2-spm-ctl = <0xe>;
qcom,mode0 {
qcom,label = "qcom,saw2-spm-cmd-wfi";
qcom,sequence = [60 03 60 0b 0f];
qcom,spm_en;
};
qcom,mode1 {
qcom,label = "qcom,saw2-spm-cmd-spc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
qcom,mode2 {
qcom,label = "qcom,saw2-spm-cmd-pc";
qcom,sequence = [20 10 80 30 90 5b 60 03 60 3b 76 76
0b 94 5b 80 10 26 30 0f];
qcom,spm_en;
qcom,pc_mode;
};
};
qcom,spm@b012000 {
compatible = "qcom,spm-v2";
#address-cells = <1>;
#size-cells = <1>;
reg = <0xb012000 0x1000>;
qcom,name = "system-l2";
qcom,saw2-ver-reg = <0xfd0>;
qcom,saw2-cfg = <0x14>;
qcom,saw2-spm-dly= <0x3c102800>;
qcom,saw2-spm-ctl = <0xe>;
qcom,saw2-pmic-data0 = <0x05030080>;
qcom,saw2-pmic-data1 = <0x00030000>;
qcom,cpu-vctl-list = <&CPU0 &CPU1 &CPU2 &CPU3>;
qcom,vctl-timeout-us = <500>;
qcom,vctl-port = <0x0>;
qcom,vctl-port-ub = <0x1>;
qcom,pfm-port = <0x2>;
qcom,mode0 {
qcom,label = "qcom,saw2-spm-cmd-ret";
qcom,sequence = [00 03 00 0f];
qcom,spm_en;
};
qcom,mode1 {
qcom,label = "qcom,saw2-spm-cmd-gdhs";
qcom,sequence = [00 20 32 6b c0 e0 d0 42 03 50 4e 02
02 d0 e0 c0 22 6b 02 32 50 0f];
qcom,spm_en;
qcom,pc_mode;
};
qcom,mode2 {
qcom,label = "qcom,saw2-spm-cmd-pc";
qcom,sequence = [00 20 32 b0 6b c0 e0 d0 42 11 07
01 b0 50 4e 02 02 d0 e0 c0 22 6b 02 32 52
0f]; /*APC_L2RAM_ON */
qcom,spm_en;
qcom,pc_mode;
};
};
qcom,lpm-levels {
compatible = "qcom,lpm-levels";
#address-cells = <1>;
#size-cells = <0>;
qcom,pm-cluster@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
label = "system";
qcom,spm-device-names = "l2";
qcom,default-level = <0>;
qcom,pm-cluster-level@0 {
reg = <0>;
label = "l2-cache-active";
qcom,spm-l2-mode = "active";
qcom,latency-us = <270>;
qcom,ss-power = <455>;
qcom,energy-overhead = <250621>;
qcom,time-overhead = <500>;
};
qcom,pm-cluster-level@1{
reg = <1>;
label = "l2-gdhs";
qcom,spm-l2-mode = "gdhs";
qcom,latency-us = <500>;
qcom,ss-power = <427>;
qcom,energy-overhead = <431578>;
qcom,time-overhead = <900>;
qcom,min-child-idx = <1>;
qcom,reset-level = <LPM_RESET_LVL_GDHS>;
};
qcom,pm-cluster-level@2{
reg = <2>;
label = "l2-pc";
qcom,spm-l2-mode = "pc";
qcom,latency-us = <11530>;
qcom,ss-power = <400>;
qcom,energy-overhead = <800000>;
qcom,time-overhead = <2500>;
qcom,min-child-idx = <2>;
qcom,notify-rpm;
qcom,no-cache-flush;
qcom,reset-level = <LPM_RESET_LVL_PC>;
};
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 = <50>;
};
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,reset-level =
<LPM_RESET_LVL_PC>;
};
qcom,pm-cpu-level@2 {
reg = <2>;
qcom,spm-cpu-mode = "pc";
qcom,latency-us = <270>;
qcom,ss-power = <455>;
qcom,energy-overhead = <250621>;
qcom,time-overhead = <500>;
qcom,use-broadcast-timer;
qcom,reset-level =
<LPM_RESET_LVL_PC>;
};
};
};
};
qcom,lpm-workarounds {
compatible = "qcom,lpm-workarounds";
qcom,lpm-wa-skip-l2-spm;
};
qcom,pm@8600664 {
compatible = "qcom,pm";
reg = <0x8600664 0x40>;
clocks = <&clock_cpu clk_a7ssmux>,
<&clock_cpu clk_a7ssmux>,
<&clock_cpu clk_a7ssmux>,
<&clock_cpu clk_a7ssmux>;
clock-names = "cpu0_clk", "cpu1_clk",
"cpu2_clk", "cpu3_clk";
qcom,pc-mode = "tz_l2_int";
qcom,use-sync-timer;
qcom,synced-clocks;
};
qcom,cpu-sleep-status {
compatible = "qcom,cpu-sleep-status";
};
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>;
};
};