diff --git a/qcom/sdxkova.dtsi b/qcom/sdxkova.dtsi index 1d3434d0..5130ff86 100644 --- a/qcom/sdxkova.dtsi +++ b/qcom/sdxkova.dtsi @@ -42,6 +42,24 @@ ; }; + 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 = , , ; + 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 { };