ARM: dts: qcom: Add LPM devices for sdxkova

Add idle states for CPU and CPU clusters, add PSCI device to
enable CPU to enter LPMs.

Additionally, update APPS RSC device to be in cluster power
domain to handle RSC activites when cluster is powering off.

Change-Id: Ibe2fa720bc5e81084d380b2e5dc4f8fa8910566c
Signed-off-by: Sneh Mankad <quic_smankad@quicinc.com>
This commit is contained in:
Sneh Mankad
2024-12-27 15:35:22 +05:30
parent 0edbada3c6
commit 3bce742da8

View File

@@ -42,6 +42,24 @@
<GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
};
cpus {
CPU0: cpu@0 {
cpu-idle-states = <&SILVER_OFF &SILVER_RAIL_OFF>;
};
CPU1: cpu@100 {
cpu-idle-states = <&SILVER_OFF &SILVER_RAIL_OFF>;
};
CPU2: cpu@200 {
cpu-idle-states = <&SILVER_OFF &SILVER_RAIL_OFF>;
};
CPU3: cpu@300 {
cpu-idle-states = <&SILVER_OFF &SILVER_RAIL_OFF>;
};
};
/delete-node/ reserved-memory;
reserved_memory: reserved-memory {
@@ -76,7 +94,93 @@
};
/delete-node/ idle-states;
idle-states {
entry-method = "psci";
SILVER_OFF: silver-c3 { /* C3 */
compatible = "arm,idle-state";
idle-state-name = "pc";
entry-latency-us = <235>;
exit-latency-us = <428>;
min-residency-us = <1774>;
arm,psci-suspend-param = <0x40000003>;
local-timer-stop;
};
SILVER_RAIL_OFF: silver-c4 { /* C4 */
compatible = "arm,idle-state";
idle-state-name = "rail-pc";
entry-latency-us = <800>;
exit-latency-us = <750>;
min-residency-us = <4090>;
arm,psci-suspend-param = <0x40000004>;
local-timer-stop;
};
CLUSTER_PWR_DN: cluster-d4 { /* D4 */
compatible = "domain-idle-state";
idle-state-name = "l3-off";
entry-latency-us = <1050>;
exit-latency-us = <2500>;
min-residency-us = <5309>;
arm,psci-suspend-param = <0x41000044>;
};
CX_RET: cx-ret { /* Cx Ret */
compatible = "domain-idle-state";
idle-state-name = "cx-ret";
entry-latency-us = <2761>;
exit-latency-us = <3964>;
min-residency-us = <8467>;
arm,psci-suspend-param = <0x41001344>;
};
APSS_OFF: cluster-e3 { /* E3 */
compatible = "domain-idle-state";
idle-state-name = "llcc-off";
entry-latency-us = <2793>;
exit-latency-us = <4023>;
min-residency-us = <9826>;
arm,psci-suspend-param = <0x4100B344>;
};
};
/delete-node/ psci;
soc: soc {
psci {
compatible = "arm,psci-1.0";
method = "smc";
CPU_PD0: cpu-pd0 {
#power-domain-cells = <0>;
power-domains = <&CLUSTER_PD>;
};
CPU_PD1: cpu-pd1 {
#power-domain-cells = <0>;
power-domains = <&CLUSTER_PD>;
};
CPU_PD2: cpu-pd2 {
#power-domain-cells = <0>;
power-domains = <&CLUSTER_PD>;
};
CPU_PD3: cpu-pd3 {
#power-domain-cells = <0>;
power-domains = <&CLUSTER_PD>;
};
CLUSTER_PD: cluster-pd {
#power-domain-cells = <0>;
domain-idle-states = <&CLUSTER_PWR_DN &CX_RET &APSS_OFF>;
};
};
/delete-node/ rsc@17a00000;
apps_rsc: rsc@17a00000 {
@@ -90,6 +194,7 @@
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&CLUSTER_PD>;
apps_rsc_drv2: drv@2 {
qcom,drv-id = <2>;
@@ -166,6 +271,11 @@
};
};
};
cluster-device {
compatible = "qcom,lpm-cluster-dev";
power-domains = <&CLUSTER_PD>;
};
};
firmware: firmware { };