Lines Matching +full:cpu +full:- +full:idle +full:- +full:states
1 # SPDX-License-Identifier: GPL-2.0
3 ---
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
15 processors") can be used by Linux to initiate various CPU-centric power
18 Issue A of the specification describes functions for CPU suspend, hotplug
25 r0 => 32-bit Function ID / return value
26 {r1 - r3} => Parameters
40 - description:
44 - description:
46 const: arm,psci-0.2
48 - description:
55 - const: arm,psci-0.2
56 - const: arm,psci
58 - description:
60 const: arm,psci-1.0
62 - description:
67 - const: arm,psci-1.0
68 - const: arm,psci-0.2
72 $ref: /schemas/types.yaml#/definitions/string-array
74 - smc
76 - hvc
94 arm,psci-suspend-param:
100 idle state nodes with entry-method property is set to "psci", as per
103 [1] Kernel documentation - ARM idle states bindings
104 Documentation/devicetree/bindings/arm/idle-states.yaml
107 "^power-domain-":
108 $ref: "../power/power-domain.yaml#"
115 own specific power states and can be better represented hierarchically.
117 For these cases, the definitions of the idle states for the CPUs and the
118 CPU topology, must conform to the binding in [3]. The idle states
120 arm,psci-suspend-param property.
122 It should also be noted that, in PSCI firmware v1.0 the OS-Initiated
123 (OSI) CPU suspend mode is introduced. Using a hierarchical representation
127 [3] Documentation/devicetree/bindings/power/power-domain.yaml
128 [4] Documentation/devicetree/bindings/power/domain-idle-state.yaml
131 - compatible
132 - method
135 - if:
142 - cpu_off
143 - cpu_on
148 - |+
161 - |+
166 compatible = "arm,psci-0.2";
171 - |+
183 compatible = "arm,psci-0.2", "arm,psci";
190 - |+
192 // Case 4: CPUs and CPU idle states described using the hierarchical model.
195 #size-cells = <0>;
196 #address-cells = <1>;
198 CPU0: cpu@0 {
199 device_type = "cpu";
200 compatible = "arm,cortex-a53";
202 enable-method = "psci";
203 power-domains = <&CPU_PD0>;
204 power-domain-names = "psci";
207 CPU1: cpu@1 {
208 device_type = "cpu";
209 compatible = "arm,cortex-a53";
211 enable-method = "psci";
212 power-domains = <&CPU_PD1>;
213 power-domain-names = "psci";
216 idle-states {
218 CPU_PWRDN: cpu-power-down {
219 compatible = "arm,idle-state";
220 arm,psci-suspend-param = <0x0000001>;
221 entry-latency-us = <10>;
222 exit-latency-us = <10>;
223 min-residency-us = <100>;
227 domain-idle-states {
229 CLUSTER_RET: cluster-retention {
230 compatible = "domain-idle-state";
231 arm,psci-suspend-param = <0x1000011>;
232 entry-latency-us = <500>;
233 exit-latency-us = <500>;
234 min-residency-us = <2000>;
237 CLUSTER_PWRDN: cluster-power-down {
238 compatible = "domain-idle-state";
239 arm,psci-suspend-param = <0x1000031>;
240 entry-latency-us = <2000>;
241 exit-latency-us = <2000>;
242 min-residency-us = <6000>;
248 compatible = "arm,psci-1.0";
251 CPU_PD0: power-domain-cpu0 {
252 #power-domain-cells = <0>;
253 domain-idle-states = <&CPU_PWRDN>;
254 power-domains = <&CLUSTER_PD>;
257 CPU_PD1: power-domain-cpu1 {
258 #power-domain-cells = <0>;
259 domain-idle-states = <&CPU_PWRDN>;
260 power-domains = <&CLUSTER_PD>;
263 CLUSTER_PD: power-domain-cluster {
264 #power-domain-cells = <0>;
265 domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;