arm64: dts: qcom: sc7280: Update domain-idle-states for cluster sleep
authorMaulik Shah <quic_mkshah@quicinc.com>
Tue, 9 Jan 2024 15:58:52 +0000 (21:28 +0530)
committerBjorn Andersson <andersson@kernel.org>
Tue, 6 Feb 2024 21:54:43 +0000 (15:54 -0600)
QCM6490 uses Trustzone as firmware whereas SC7280 uses arm trusted firmware.
The PSCI suspend param and the number of domain-idle-states supported is
different in Trustzone for cluster sleep.

Move the arm trusted firmware supported domain-idle-states in chrome specific
sc7280-chrome-common.dtsi and add the Trustzone supported sleep states as default
domain-idle-states in sc7280.dtsi

Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
Link: https://lore.kernel.org/r/20240109-qcm6490_cluster_sleep-v2-1-8f94f1ad188d@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/sc7280-chrome-common.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi

index bb365d5848af7d5c316496ce29ce8ad773647555..cecb3e89f7f7b24a4ce2a00419bb808a4afca44d 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 /delete-node/ &cdsp_mem;
+/delete-node/ &domain_idle_states;
 /delete-node/ &gpu_zap_mem;
 /delete-node/ &gpu_zap_shader;
 /delete-node/ &hyp_mem;
 /delete-node/ &sec_apps_mem;
 
 / {
+       cpus {
+               domain_idle_states: domain-idle-states {
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x40003444>;
+                               entry-latency-us = <2752>;
+                               exit-latency-us = <6562>;
+                               min-residency-us = <9926>;
+                       };
+               };
+       };
+
        reserved-memory {
                camera_mem: memory@8ad00000 {
                        reg = <0x0 0x8ad00000 0x0 0x500000>;
        };
 };
 
+&CLUSTER_PD {
+       domain-idle-states = <&CLUSTER_SLEEP_0>;
+};
+
 &lpass_aon {
        status = "okay";
 };
index c3a94c4c6490bc9388d9d7c74010969a496c2b47..581818676a4cdef63ae19b7e6d2de244d03667f1 100644 (file)
                        };
                };
 
-               domain-idle-states {
-                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+               domain_idle_states: domain-idle-states {
+                       CLUSTER_SLEEP_APSS_OFF: cluster-sleep-0 {
                                compatible = "domain-idle-state";
-                               idle-state-name = "cluster-power-down";
-                               arm,psci-suspend-param = <0x40003444>;
+                               arm,psci-suspend-param = <0x41000044>;
+                               entry-latency-us = <2752>;
+                               exit-latency-us = <3048>;
+                               min-residency-us = <6118>;
+                       };
+
+                       CLUSTER_SLEEP_CX_RET: cluster-sleep-1 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41001344>;
                                entry-latency-us = <3263>;
+                               exit-latency-us = <4562>;
+                               min-residency-us = <8467>;
+                       };
+
+                       CLUSTER_SLEEP_LLCC_OFF: cluster-sleep-2 {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x4100b344>;
+                               entry-latency-us = <3638>;
                                exit-latency-us = <6562>;
-                               min-residency-us = <9926>;
-                               local-timer-stop;
+                               min-residency-us = <9826>;
                        };
                };
        };
 
                CLUSTER_PD: power-domain-cluster {
                        #power-domain-cells = <0>;
-                       domain-idle-states = <&CLUSTER_SLEEP_0>;
+                       domain-idle-states = <&CLUSTER_SLEEP_APSS_OFF &CLUSTER_SLEEP_CX_RET &CLUSTER_SLEEP_LLCC_OFF>;
                };
        };