/* Copyright (c) 2019-2020, 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@f1d2000 { compatible = "qcom,spm-v2"; #address-cells = <1>; #size-cells = <1>; reg = <0xf1d2000 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 = <500>; 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,psci-mode-shift = <8>; qcom,psci-mode-mask = <0xf>; qcom,pm-cluster-level@0{ reg = <0>; label = "system-wfi"; qcom,psci-mode = <0x0>; qcom,entry-latency-us = <640>; qcom,exit-latency-us = <1654>; qcom,min-residency-us = <2294>; }; qcom,pm-cluster-level@1{ /* E3 */ reg = <1>; label = "system-pc"; qcom,psci-mode = <0x3>; qcom,entry-latency-us = <10831>; qcom,exit-latency-us = <4506>; qcom,min-residency-us = <15338>; qcom,min-child-idx = <2>; qcom,notify-rpm; qcom,is-reset; }; qcom,pm-cluster@0{ reg = <0>; #address-cells = <1>; #size-cells = <0>; label = "pwr"; qcom,spm-device-names = "l2"; qcom,psci-mode-shift = <4>; qcom,psci-mode-mask = <0xf>; qcom,pm-cluster-level@0{ /* D1 */ reg = <0>; label = "pwr-l2-wfi"; qcom,psci-mode = <0x1>; qcom,entry-latency-us = <38>; qcom,exit-latency-us = <51>; qcom,min-residency-us = <89>; }; qcom,pm-cluster-level@1{ /* D3G */ reg = <1>; label = "pwr-l2-gdhs"; qcom,psci-mode = <0x2>; qcom,entry-latency-us = <360>; qcom,exit-latency-us = <421>; qcom,min-residency-us = <782>; qcom,min-child-idx = <1>; }; qcom,pm-cluster-level@2{ /* D3 */ reg = <2>; label = "pwr-l2-pc"; qcom,psci-mode = <0x4>; qcom,entry-latency-us = <800>; qcom,exit-latency-us = <2118>; qcom,min-residency-us = <7376>; qcom,min-child-idx = <1>; qcom,is-reset; }; qcom,pm-cpu { #address-cells = <1>; #size-cells = <0>; qcom,psci-mode-shift = <0>; qcom,psci-mode-mask = <0xf>; qcom,disable-ipi-prediction; qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3>; qcom,pm-cpu-level@0 { /* C1 */ reg = <0>; label = "wfi"; qcom,psci-cpu-mode = <0x1>; qcom,entry-latency-us = <49>; qcom,exit-latency-us = <42>; qcom,min-residency-us = <91>; }; qcom,pm-cpu-level@1 { /* C3 */ reg = <1>; label = "pc"; qcom,psci-cpu-mode = <0x3>; qcom,entry-latency-us = <290>; qcom,exit-latency-us = <376>; qcom,min-residency-us = <1182>; qcom,is-reset; qcom,use-broadcast-timer; }; }; }; qcom,pm-cluster@1{ reg = <1>; #address-cells = <1>; #size-cells = <0>; label = "perf"; qcom,spm-device-names = "l2"; qcom,psci-mode-shift = <4>; qcom,psci-mode-mask = <0xf>; qcom,pm-cluster-level@0{ /* D1 */ reg = <0>; label = "perf-l2-wfi"; qcom,psci-mode = <0x1>; qcom,entry-latency-us = <38>; qcom,exit-latency-us = <51>; qcom,min-residency-us = <89>; }; qcom,pm-cluster-level@1{ /* D3G*/ reg = <1>; label = "perf-l2-gdhs"; qcom,psci-mode = <2>; qcom,entry-latency-us = <314>; qcom,exit-latency-us = <345>; qcom,min-residency-us = <660>; qcom,min-child-idx = <1>; }; qcom,pm-cluster-level@2{ /* D3 */ reg = <2>; label = "perf-l2-pc"; qcom,psci-mode = <0x4>; qcom,entry-latency-us = <640>; qcom,exit-latency-us = <1654>; qcom,min-residency-us = <8094>; qcom,min-child-idx = <1>; qcom,is-reset; }; qcom,pm-cpu { #address-cells = <1>; #size-cells = <0>; qcom,psci-mode-shift = <0>; qcom,psci-mode-mask = <0xf>; qcom,disable-ipi-prediction; qcom,cpu = <&CPU4 &CPU5 &CPU6 &CPU7>; qcom,pm-cpu-level@0 { /* C1 */ reg = <0>; label = "wfi"; qcom,psci-cpu-mode = <0x1>; qcom,entry-latency-us = <29>; qcom,exit-latency-us = <39>; qcom,min-residency-us = <68>; }; qcom,pm-cpu-level@1 { /* C3 */ reg = <1>; label = "pc"; qcom,psci-cpu-mode = <0x3>; qcom,entry-latency-us = <297>; qcom,exit-latency-us = <324>; qcom,min-residency-us = <1110>; qcom,is-reset; qcom,use-broadcast-timer; }; }; }; }; }; qcom,rpm-stats@4600000 { compatible = "qcom,rpm-stats"; reg = <0x04600000 0x1000>, <0x04690014 0x4>, <0x0469001c 0x4>; reg-names = "phys_addr_base", "offset_addr", "heap_phys_addrbase"; qcom,sleep-stats-version = <2>; }; qcom,rpm-master-stats@45f0150 { compatible = "qcom,rpm-master-stats"; reg = <0x45f0150 0x5000>; qcom,masters = "APSS", "MPSS", "ADSP", "CDSP", "TZ"; qcom,master-stats-version = <2>; qcom,master-offset = <4096>; }; };