arm64: dts: juno: Add idle-states to device tree
authorJon Medhurst (Tixy) <tixy@linaro.org>
Wed, 9 Dec 2015 09:40:53 +0000 (09:40 +0000)
committerAmit Pundir <amit.pundir@linaro.org>
Mon, 10 Apr 2017 07:42:16 +0000 (13:12 +0530)
This patch adds idle-states bindings data collected through a set of
benchmarking experiments (latency and energy consumption) on Juno
boards. Latencies data represents the worst case scenarios as required
by the DT idle-states bindings.

Change-Id: I7b2d81fa66f8ce8b229457cfefff06e9edd545c7
(cherry picked from commit 286896f43b0248960f69660159b507b23751b38a)
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
arch/arm64/boot/dts/arm/juno-r1.dts
arch/arm64/boot/dts/arm/juno.dts

index 93bc3d7d51c0f32f6894e9210ef9f41df3913e0a..8826f834f54f25ca1b1912e9903af68d8c37453b 100644 (file)
                        };
                };
 
+               idle-states {
+                       entry-method = "arm,psci";
+
+                       CPU_SLEEP_0: cpu-sleep-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0010000>;
+                               local-timer-stop;
+                               entry-latency-us = <300>;
+                               exit-latency-us = <1200>;
+                               min-residency-us = <2000>;
+                       };
+
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x1010000>;
+                               local-timer-stop;
+                               entry-latency-us = <300>;
+                               exit-latency-us = <1200>;
+                               min-residency-us = <2500>;
+                       };
+               };
+
                A57_0: cpu@0 {
                        compatible = "arm,cortex-a57","arm,armv8";
                        reg = <0x0 0x0>;
@@ -67,6 +89,7 @@
                        enable-method = "psci";
                        next-level-cache = <&A57_L2>;
                        clocks = <&scpi_dvfs 0>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A57_1: cpu@1 {
@@ -76,6 +99,7 @@
                        enable-method = "psci";
                        next-level-cache = <&A57_L2>;
                        clocks = <&scpi_dvfs 0>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_0: cpu@100 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_1: cpu@101 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_2: cpu@102 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_3: cpu@103 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A57_L2: l2-cache0 {
index 3e1a84b01b500807fea638858ebb2c879a5dae94..2e4f04247aa59ebda2d974dc35bf89bbf1b60df5 100644 (file)
                        };
                };
 
+               idle-states {
+                       entry-method = "arm,psci";
+
+                       CPU_SLEEP_0: cpu-sleep-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0010000>;
+                               local-timer-stop;
+                               entry-latency-us = <300>;
+                               exit-latency-us = <1200>;
+                               min-residency-us = <2000>;
+                       };
+
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x1010000>;
+                               local-timer-stop;
+                               entry-latency-us = <300>;
+                               exit-latency-us = <1200>;
+                               min-residency-us = <2500>;
+                       };
+               };
+
                A57_0: cpu@0 {
                        compatible = "arm,cortex-a57","arm,armv8";
                        reg = <0x0 0x0>;
@@ -67,6 +89,7 @@
                        enable-method = "psci";
                        next-level-cache = <&A57_L2>;
                        clocks = <&scpi_dvfs 0>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A57_1: cpu@1 {
@@ -76,6 +99,7 @@
                        enable-method = "psci";
                        next-level-cache = <&A57_L2>;
                        clocks = <&scpi_dvfs 0>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_0: cpu@100 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_1: cpu@101 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_2: cpu@102 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A53_3: cpu@103 {
                        enable-method = "psci";
                        next-level-cache = <&A53_L2>;
                        clocks = <&scpi_dvfs 1>;
+                       cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
                };
 
                A57_L2: l2-cache0 {