Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1710771
| From | Guodong Xu <guodong.xu@linaro.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v3 01/10] arm64: dts: hi3660: enable idle states |
| Date | 2017-08-14 12:00 +0200 |
| Message-ID | <uekka-2xb-13@gated-at.bofh.it> (permalink) |
| References | <uekk9-2xb-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Leo Yan <leo.yan@linaro.org>
There are two clusters on the Hi3660, the first one is Cortex-A53 based
and the other one is Cortex-A73 based. These two clusters have different
idle states.
Thanks to Daniel Lezcano's recent changes, the generic ARM cpuidle
driver can now support several clusters with different idle states, thus
supporting the big.Little architecture.
In addition to the WFI idle state which is the default shallowest state
for all ARM cpus, the Hi3660 supports the following states:
- CA53 CPUs:
- CPU_SLEEP: CPU power off state
- CLUSTER_SLEEP_0: Cluster power off state
- CA73 CPUs:
- CPU_NAP: CPU retention state
- CPU_SLEEP: CPU power off state
- CLUSTER_SLEEP_1: Cluster power off state
This patch adds the idle states description for the Hi3660 to the device
tree.
Cc: Kevin Wang <jean.wangtao@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
arch/arm64/boot/dts/hisilicon/hi3660.dtsi | 63 +++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
index c6a1961..8921310 100644
--- a/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi3660.dtsi
@@ -58,6 +58,7 @@
device_type = "cpu";
reg = <0x0 0x0>;
enable-method = "psci";
+ cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
};
cpu1: cpu@1 {
@@ -65,6 +66,7 @@
device_type = "cpu";
reg = <0x0 0x1>;
enable-method = "psci";
+ cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
};
cpu2: cpu@2 {
@@ -72,6 +74,7 @@
device_type = "cpu";
reg = <0x0 0x2>;
enable-method = "psci";
+ cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
};
cpu3: cpu@3 {
@@ -79,6 +82,7 @@
device_type = "cpu";
reg = <0x0 0x3>;
enable-method = "psci";
+ cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
};
cpu4: cpu@100 {
@@ -86,6 +90,11 @@
device_type = "cpu";
reg = <0x0 0x100>;
enable-method = "psci";
+ cpu-idle-states = <
+ &CPU_NAP
+ &CPU_SLEEP
+ &CLUSTER_SLEEP_1
+ >;
};
cpu5: cpu@101 {
@@ -93,6 +102,11 @@
device_type = "cpu";
reg = <0x0 0x101>;
enable-method = "psci";
+ cpu-idle-states = <
+ &CPU_NAP
+ &CPU_SLEEP
+ &CLUSTER_SLEEP_1
+ >;
};
cpu6: cpu@102 {
@@ -100,6 +114,11 @@
device_type = "cpu";
reg = <0x0 0x102>;
enable-method = "psci";
+ cpu-idle-states = <
+ &CPU_NAP
+ &CPU_SLEEP
+ &CLUSTER_SLEEP_1
+ >;
};
cpu7: cpu@103 {
@@ -107,6 +126,50 @@
device_type = "cpu";
reg = <0x0 0x103>;
enable-method = "psci";
+ cpu-idle-states = <
+ &CPU_NAP
+ &CPU_SLEEP
+ &CLUSTER_SLEEP_1
+ >;
+ };
+
+ idle-states {
+ entry-method = "psci";
+
+ CPU_NAP: cpu-nap {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x0000001>;
+ entry-latency-us = <7>;
+ exit-latency-us = <2>;
+ min-residency-us = <15>;
+ };
+
+ CPU_SLEEP: cpu-sleep {
+ compatible = "arm,idle-state";
+ local-timer-stop;
+ arm,psci-suspend-param = <0x0010000>;
+ entry-latency-us = <40>;
+ exit-latency-us = <70>;
+ min-residency-us = <3000>;
+ };
+
+ CLUSTER_SLEEP_0: cluster-sleep-0 {
+ compatible = "arm,idle-state";
+ local-timer-stop;
+ arm,psci-suspend-param = <0x1010000>;
+ entry-latency-us = <500>;
+ exit-latency-us = <5000>;
+ min-residency-us = <20000>;
+ };
+
+ CLUSTER_SLEEP_1: cluster-sleep-1 {
+ compatible = "arm,idle-state";
+ local-timer-stop;
+ arm,psci-suspend-param = <0x1010000>;
+ entry-latency-us = <1000>;
+ exit-latency-us = <5000>;
+ min-residency-us = <20000>;
+ };
};
};
--
2.10.2
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v3 00/10] arm64: dts: hi3660: add more device nodes Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 01/10] arm64: dts: hi3660: enable idle states Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 02/10] arm64: dts: hi3660: add L2 cache topology Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 08/10] arm64: dts: hikey960: change bluetooth uart max-speed to 3mbps Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 03/10] arm64: dts: hi3660: add pmu dt node for hi3660 Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 04/10] arm64: dts: hikey960: Add optee node Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 05/10] arm64: dts: hikey960: Add support for syscon-reboot-mode Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 07/10] arm64: dts: hi3660: Reset the mmc hosts Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 09/10] arm64: dts: hi3660: add bindings for DMA Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 [PATCH v3 10/10] arm64: dts: hi3660: enable watchdog Guodong Xu <guodong.xu@linaro.org> - 2017-08-14 12:00 +0200 Re: [PATCH v3 00/10] arm64: dts: hi3660: add more device nodes Wei Xu <xuwei5@hisilicon.com> - 2017-08-15 15:40 +0200
csiph-web