Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7a7b3c76 authored by Mahesh Sivasubramanian's avatar Mahesh Sivasubramanian Committed by Gerrit - the friendly Code Review server
Browse files

ARM: dts: msm: Add sleep driver for sdm845



Adding sleep driver to allow the CPUSS to go different low power modes.

Change-Id: Iaf28019a40c2e8831608d7c4c84fcf503ec3291c
Signed-off-by: default avatarMahesh Sivasubramanian <msivasub@codeaurora.org>
parent 520c7591
Loading
Loading
Loading
Loading
+114 −0
Original line number Diff line number Diff line
/* Copyright (c) 2016-2017, 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/interrupt-controller/arm-gic.h>

&soc {
	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 = "L3";
			qcom,spm-device-names = "L3";
			qcom,cpu = <&CPU0 &CPU1 &CPU2 &CPU3 &CPU4 &CPU5 &CPU6
				&CPU7>;
			qcom,psci-mode-shift = <4>;
			qcom,psci-mode-mask = <0xf>;

			qcom,pm-cluster-level@0{ /* D1 */
				reg = <0>;
				label = "l3-wfi";
				qcom,psci-mode = <0x1>;
				qcom,latency-us = <51>;
				qcom,ss-power = <452>;
				qcom,energy-overhead = <69355>;
				qcom,time-overhead = <99>;
			};
			qcom,pm-cluster-level@1{ /* D2 */
				reg = <1>;
				label = "l3-dyn-ret";
				qcom,psci-mode = <0x2>;
				qcom,latency-us = <659>;
				qcom,ss-power = <434>;
				qcom,energy-overhead = <465725>;
				qcom,time-overhead = <976>;
				qcom,min-child-idx = <1>;
			};

			qcom,pm-cluster-level@2{ /* D4, D3 not supported */
				reg = <2>;
				label = "L3 PC";
				qcom,psci-mode = <0x4>;
				qcom,latency-us = <4562>;
				qcom,ss-power = <408>;
				qcom,energy-overhead = <2421840>;
				qcom,time-overhead = <5376>;
				qcom,min-child-idx = <2>;
				qcom,is-reset;
			};

			qcom,pm-cpu {
				#address-cells = <1>;
				#size-cells = <0>;
				qcom,psci-mode-shift = <0>;
				qcom,psci-mode-mask = <0xf>;

				qcom,pm-cpu-level@0 { /* C1 */
					reg = <0>;
					qcom,spm-cpu-mode = "wfi";
					qcom,psci-cpu-mode = <0x1>;
					qcom,latency-us = <43>;
					qcom,ss-power = <454>;
					qcom,energy-overhead = <38639>;
					qcom,time-overhead = <83>;
				};

				qcom,pm-cpu-level@1 { /* C2D */
					reg = <1>;
					qcom,psci-cpu-mode = <0x2>;
					qcom,spm-cpu-mode = "ret";
					qcom,latency-us = <86>;
					qcom,ss-power = <449>;
					qcom,energy-overhead = <78456>;
					qcom,time-overhead = <167>;
				};

				qcom,pm-cpu-level@2 {  /* C3 */
					reg = <2>;
					qcom,spm-cpu-mode = "pc";
					qcom,psci-cpu-mode = <0x3>;
					qcom,latency-us = <612>;
					qcom,ss-power = <436>;
					qcom,energy-overhead = <418225>;
					qcom,time-overhead = <885>;
					qcom,is-reset;
				};
				qcom,pm-cpu-level@3 {  /* C4 */
					reg = <3>;
					qcom,spm-cpu-mode = "rail-pc";
					qcom,psci-cpu-mode = <0x4>;
					qcom,latency-us = <700>;
					qcom,ss-power = <400>;
					qcom,energy-overhead = <428225>;
					qcom,time-overhead = <1000>;
					qcom,is-reset;
				};
			};
		};

	};

};
+1 −0
Original line number Diff line number Diff line
@@ -1672,3 +1672,4 @@
#include "sdm845-camera.dtsi"
#include "sdm845-bus.dtsi"
#include "sdm845-vidc.dtsi"
#include "sdm845-pm.dtsi"