diff mbox series

[v2,8/9] arm64: dts: qcom: sdm845: Add PSCI cpuidle low power states

Message ID 67d61032221b069082222347fb56effe17d4a7c3.1558430617.git.amit.kucheria@linaro.org
State New
Headers show
Series None | expand

Commit Message

Amit Kucheria May 21, 2019, 9:35 a.m. UTC
From: "Raju P.L.S.S.S.N" <rplsssn@codeaurora.org>


Add device bindings for cpuidle states for cpu devices.

Cc: <mkshah@codeaurora.org>
Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>

Reviewed-by: Evan Green <evgreen@chromium.org>

[amit: rename the idle-states to more generic names and fixups]
Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>

Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>

---
 arch/arm64/boot/dts/qcom/sdm845.dtsi | 69 ++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

-- 
2.17.1

Comments

Bjorn Andersson May 22, 2019, 3:59 a.m. UTC | #1
On Tue 21 May 02:35 PDT 2019, Amit Kucheria wrote:

> From: "Raju P.L.S.S.S.N" <rplsssn@codeaurora.org>

> 

> Add device bindings for cpuidle states for cpu devices.

> 

> Cc: <mkshah@codeaurora.org>

> Signed-off-by: Raju P.L.S.S.S.N <rplsssn@codeaurora.org>

> Reviewed-by: Evan Green <evgreen@chromium.org>

> [amit: rename the idle-states to more generic names and fixups]

> Signed-off-by: Amit Kucheria <amit.kucheria@linaro.org>

> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>

> ---


Applied

Thanks,
Bjorn

>  arch/arm64/boot/dts/qcom/sdm845.dtsi | 69 ++++++++++++++++++++++++++++

>  1 file changed, 69 insertions(+)

> 

> diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi

> index 5308f1671824..a0ae6bf033ee 100644

> --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi

> +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi

> @@ -119,6 +119,7 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x0>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1 &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 0>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_0>;

> @@ -136,6 +137,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x100>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 0>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_100>;

> @@ -150,6 +153,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x200>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 0>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_200>;

> @@ -164,6 +169,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x300>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 0>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_300>;

> @@ -178,6 +185,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x400>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 1>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_400>;

> @@ -192,6 +201,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x500>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 1>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_500>;

> @@ -206,6 +217,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x600>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 1>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_600>;

> @@ -220,6 +233,8 @@

>  			compatible = "qcom,kryo385";

>  			reg = <0x0 0x700>;

>  			enable-method = "psci";

> +			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1

> +					   &CLUSTER_SLEEP_0>;

>  			qcom,freq-domain = <&cpufreq_hw 1>;

>  			#cooling-cells = <2>;

>  			next-level-cache = <&L2_700>;

> @@ -228,6 +243,60 @@

>  				next-level-cache = <&L3_0>;

>  			};

>  		};

> +

> +		idle-states {

> +			entry-method = "psci";

> +

> +			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {

> +				compatible = "arm,idle-state";

> +				idle-state-name = "little-power-down";

> +				arm,psci-suspend-param = <0x40000003>;

> +				entry-latency-us = <350>;

> +				exit-latency-us = <461>;

> +				min-residency-us = <1890>;

> +				local-timer-stop;

> +			};

> +

> +			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {

> +				compatible = "arm,idle-state";

> +				idle-state-name = "little-rail-power-down";

> +				arm,psci-suspend-param = <0x40000004>;

> +				entry-latency-us = <360>;

> +				exit-latency-us = <531>;

> +				min-residency-us = <3934>;

> +				local-timer-stop;

> +			};

> +

> +			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {

> +				compatible = "arm,idle-state";

> +				idle-state-name = "big-power-down";

> +				arm,psci-suspend-param = <0x40000003>;

> +				entry-latency-us = <264>;

> +				exit-latency-us = <621>;

> +				min-residency-us = <952>;

> +				local-timer-stop;

> +			};

> +

> +			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {

> +				compatible = "arm,idle-state";

> +				idle-state-name = "big-rail-power-down";

> +				arm,psci-suspend-param = <0x40000004>;

> +				entry-latency-us = <702>;

> +				exit-latency-us = <1061>;

> +				min-residency-us = <4488>;

> +				local-timer-stop;

> +			};

> +

> +			CLUSTER_SLEEP_0: cluster-sleep-0 {

> +				compatible = "arm,idle-state";

> +				idle-state-name = "cluster-power-down";

> +				arm,psci-suspend-param = <0x400000F4>;

> +				entry-latency-us = <3263>;

> +				exit-latency-us = <6562>;

> +				min-residency-us = <9987>;

> +				local-timer-stop;

> +			};

> +		};

>  	};

>  

>  	pmu {

> -- 

> 2.17.1

>
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 5308f1671824..a0ae6bf033ee 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -119,6 +119,7 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x0>;
 			enable-method = "psci";
+			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1 &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 0>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_0>;
@@ -136,6 +137,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x100>;
 			enable-method = "psci";
+			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 0>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_100>;
@@ -150,6 +153,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x200>;
 			enable-method = "psci";
+			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 0>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_200>;
@@ -164,6 +169,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x300>;
 			enable-method = "psci";
+			cpu-idle-states = <&LITTLE_CPU_SLEEP_0 &LITTLE_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 0>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_300>;
@@ -178,6 +185,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x400>;
 			enable-method = "psci";
+			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 1>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_400>;
@@ -192,6 +201,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x500>;
 			enable-method = "psci";
+			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 1>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_500>;
@@ -206,6 +217,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x600>;
 			enable-method = "psci";
+			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 1>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_600>;
@@ -220,6 +233,8 @@ 
 			compatible = "qcom,kryo385";
 			reg = <0x0 0x700>;
 			enable-method = "psci";
+			cpu-idle-states = <&BIG_CPU_SLEEP_0 &BIG_CPU_SLEEP_1
+					   &CLUSTER_SLEEP_0>;
 			qcom,freq-domain = <&cpufreq_hw 1>;
 			#cooling-cells = <2>;
 			next-level-cache = <&L2_700>;
@@ -228,6 +243,60 @@ 
 				next-level-cache = <&L3_0>;
 			};
 		};
+
+		idle-states {
+			entry-method = "psci";
+
+			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
+				compatible = "arm,idle-state";
+				idle-state-name = "little-power-down";
+				arm,psci-suspend-param = <0x40000003>;
+				entry-latency-us = <350>;
+				exit-latency-us = <461>;
+				min-residency-us = <1890>;
+				local-timer-stop;
+			};
+
+			LITTLE_CPU_SLEEP_1: cpu-sleep-0-1 {
+				compatible = "arm,idle-state";
+				idle-state-name = "little-rail-power-down";
+				arm,psci-suspend-param = <0x40000004>;
+				entry-latency-us = <360>;
+				exit-latency-us = <531>;
+				min-residency-us = <3934>;
+				local-timer-stop;
+			};
+
+			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
+				compatible = "arm,idle-state";
+				idle-state-name = "big-power-down";
+				arm,psci-suspend-param = <0x40000003>;
+				entry-latency-us = <264>;
+				exit-latency-us = <621>;
+				min-residency-us = <952>;
+				local-timer-stop;
+			};
+
+			BIG_CPU_SLEEP_1: cpu-sleep-1-1 {
+				compatible = "arm,idle-state";
+				idle-state-name = "big-rail-power-down";
+				arm,psci-suspend-param = <0x40000004>;
+				entry-latency-us = <702>;
+				exit-latency-us = <1061>;
+				min-residency-us = <4488>;
+				local-timer-stop;
+			};
+
+			CLUSTER_SLEEP_0: cluster-sleep-0 {
+				compatible = "arm,idle-state";
+				idle-state-name = "cluster-power-down";
+				arm,psci-suspend-param = <0x400000F4>;
+				entry-latency-us = <3263>;
+				exit-latency-us = <6562>;
+				min-residency-us = <9987>;
+				local-timer-stop;
+			};
+		};
 	};
 
 	pmu {