From df74e0e5f669b136a08f758651771423b8be9c61 Mon Sep 17 00:00:00 2001 From: Konrad Dybcio Date: Mon, 15 Jul 2024 16:16:41 +0200 Subject: [PATCH] arm64: dts: qcom: x1e80100: Add system sleep states Add the missing system-wide sleep states based on the information found in the DSDT. DRIPS is a non-obvious name, but it's the state that the device enters for Modern Standby on Windows (see [1], [2]). The entry latency numbers (which were not provided anywhere) could use some tuning, for starters I set them equal to exit latency, which is not an entirely unreasonable estimate.. [1] https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/prepare-hardware-for-modern-standby [2] https://dl.dell.com/manuals/all-products/esuprt_solutions_int/esuprt_solutions_int_solutions_resources/client-mobile-solution-resources_white-papers45_en-us.pdf Signed-off-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/x1e80100.dtsi | 31 +++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/qcom/x1e80100.dtsi index e80a454fb8df..a35ab4f7cdc9 100644 --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi @@ -302,6 +302,33 @@ CLUSTER_CL5: cluster-sleep-1 { exit-latency-us = <2500>; min-residency-us = <7000>; }; + + SYSTEM_SLEEP0: system-sleep-0 { + compatible = "domain-idle-state"; + idle-state-name = "system-sleep0"; + arm,psci-suspend-param = <0x02000154>; + entry-latency-us = <500>; + exit-latency-us = <500>; + min-residency-us = <7500>; + }; + + SYSTEM_SLEEP1: system-sleep-1 { + compatible = "domain-idle-state"; + idle-state-name = "system-sleep1"; + arm,psci-suspend-param = <0x02000254>; + entry-latency-us = <3000>; + exit-latency-us = <3000>; + min-residency-us = <8000>; + }; + + SYSTEM_DRIPS: system-sleep-2 { + compatible = "domain-idle-state"; + idle-state-name = "drips"; + arm,psci-suspend-param = <0x0200c354>; + entry-latency-us = <5000>; + exit-latency-us = <5000>; + min-residency-us = <9000>; + }; }; }; @@ -435,7 +462,9 @@ CLUSTER_PD2: power-domain-cpu-cluster2 { SYSTEM_PD: power-domain-system { #power-domain-cells = <0>; - /* TODO: system-wide idle states */ + domain-idle-states = <&SYSTEM_SLEEP0>, + <&SYSTEM_SLEEP1>, + <&SYSTEM_DRIPS>; }; }; -- 2.51.0