Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[sfrench/cifs-2.6.git] / arch / arm64 / boot / dts / qcom / msm8916.dtsi
index a6a2ac88f042b4f1232d137d6937ef3ae6c476fd..9f31064f2374e3110b2761ef58e49d8c414f81dd 100644 (file)
                        reg = <0x0>;
                        next-level-cache = <&L2_0>;
                        enable-method = "psci";
-                       cpu-idle-states = <&CPU_SLEEP_0>;
                        clocks = <&apcs>;
                        operating-points-v2 = <&cpu_opp_table>;
                        #cooling-cells = <2>;
+                       power-domains = <&CPU_PD0>;
+                       power-domain-names = "psci";
                };
 
                CPU1: cpu@1 {
                        reg = <0x1>;
                        next-level-cache = <&L2_0>;
                        enable-method = "psci";
-                       cpu-idle-states = <&CPU_SLEEP_0>;
                        clocks = <&apcs>;
                        operating-points-v2 = <&cpu_opp_table>;
                        #cooling-cells = <2>;
+                       power-domains = <&CPU_PD1>;
+                       power-domain-names = "psci";
                };
 
                CPU2: cpu@2 {
                        reg = <0x2>;
                        next-level-cache = <&L2_0>;
                        enable-method = "psci";
-                       cpu-idle-states = <&CPU_SLEEP_0>;
                        clocks = <&apcs>;
                        operating-points-v2 = <&cpu_opp_table>;
                        #cooling-cells = <2>;
+                       power-domains = <&CPU_PD2>;
+                       power-domain-names = "psci";
                };
 
                CPU3: cpu@3 {
                        reg = <0x3>;
                        next-level-cache = <&L2_0>;
                        enable-method = "psci";
-                       cpu-idle-states = <&CPU_SLEEP_0>;
                        clocks = <&apcs>;
                        operating-points-v2 = <&cpu_opp_table>;
                        #cooling-cells = <2>;
+                       power-domains = <&CPU_PD3>;
+                       power-domain-names = "psci";
                };
 
                L2_0: l2-cache {
                                min-residency-us = <2000>;
                                local-timer-stop;
                        };
+
+                       CLUSTER_RET: cluster-retention {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000012>;
+                               entry-latency-us = <500>;
+                               exit-latency-us = <500>;
+                               min-residency-us = <2000>;
+                       };
+
+                       CLUSTER_PWRDN: cluster-gdhs {
+                               compatible = "domain-idle-state";
+                               arm,psci-suspend-param = <0x41000032>;
+                               entry-latency-us = <2000>;
+                               exit-latency-us = <2000>;
+                               min-residency-us = <6000>;
+                       };
                };
        };
 
        psci {
                compatible = "arm,psci-1.0";
                method = "smc";
+
+               CPU_PD0: cpu-pd0 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&CPU_SLEEP_0>;
+               };
+
+               CPU_PD1: cpu-pd1 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&CPU_SLEEP_0>;
+               };
+
+               CPU_PD2: cpu-pd2 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&CPU_SLEEP_0>;
+               };
+
+               CPU_PD3: cpu-pd3 {
+                       #power-domain-cells = <0>;
+                       power-domains = <&CLUSTER_PD>;
+                       domain-idle-states = <&CPU_SLEEP_0>;
+               };
+
+               CLUSTER_PD: cluster-pd {
+                       #power-domain-cells = <0>;
+                       domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
+               };
        };
 
        pmu {