Lines Matching +full:suspend +full:- +full:to +full:- +full:idle
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
21 Functions are invoked by trapping to the privilege level of the PSCI
23 in a manner similar to that specified by AAPCS:
25 r0 => 32-bit Function ID / return value
26 {r1 - r3} => Parameters
29 to #0.
40 - description:
41 For implementations complying to PSCI versions prior to 0.2.
44 - description:
45 For implementations complying to PSCI 0.2.
47 PSCI 0.2 support, but are permitted to be present for compatibility
52 - const: arm,psci-0.2
53 - const: arm,psci
55 - description:
56 For implementations complying to PSCI 1.0.
61 - const: arm,psci-1.0
62 - const: arm,psci-0.2
63 - const: arm,psci
67 $ref: /schemas/types.yaml#/definitions/string-array
69 - smc
71 - hvc
89 arm,psci-suspend-param:
92 power_state parameter to pass to the PSCI suspend call.
95 idle state nodes with entry-method property is set to "psci", as per
98 [1] Kernel documentation - ARM idle states bindings
99 Documentation/devicetree/bindings/cpu/idle-states.yaml
102 "^power-domain-":
103 $ref: /schemas/power/power-domain.yaml#
109 arrangement. This often, but not always, maps directly to the processor
113 For these cases, the definitions of the idle states for the CPUs and the
114 CPU topology, must conform to the binding in [3]. The idle states
115 themselves must conform to the binding in [4] and must specify the
116 arm,psci-suspend-param property.
118 It should also be noted that, in PSCI firmware v1.0 the OS-Initiated
119 (OSI) CPU suspend mode is introduced. Using a hierarchical representation
120 helps to implement support for OSI mode and OS implementations may choose
121 to mandate it.
123 [3] Documentation/devicetree/bindings/power/power-domain.yaml
124 [4] Documentation/devicetree/bindings/power/domain-idle-state.yaml
127 - compatible
128 - method
131 - if:
138 - cpu_off
139 - cpu_on
144 - |+
157 - |+
162 compatible = "arm,psci-0.2";
167 - |+
173 * enabling firmware and hypervisors to support existing and new kernels.
179 compatible = "arm,psci-0.2", "arm,psci";
186 - |+
188 // Case 4: CPUs and CPU idle states described using the hierarchical model.
191 #size-cells = <0>;
192 #address-cells = <1>;
196 compatible = "arm,cortex-a53";
198 enable-method = "psci";
199 power-domains = <&CPU_PD0>;
200 power-domain-names = "psci";
205 compatible = "arm,cortex-a53";
207 enable-method = "psci";
208 power-domains = <&CPU_PD1>;
209 power-domain-names = "psci";
212 idle-states {
214 CPU_PWRDN: cpu-power-down {
215 compatible = "arm,idle-state";
216 arm,psci-suspend-param = <0x0000001>;
217 entry-latency-us = <10>;
218 exit-latency-us = <10>;
219 min-residency-us = <100>;
223 domain-idle-states {
225 CLUSTER_RET: cluster-retention {
226 compatible = "domain-idle-state";
227 arm,psci-suspend-param = <0x1000011>;
228 entry-latency-us = <500>;
229 exit-latency-us = <500>;
230 min-residency-us = <2000>;
233 CLUSTER_PWRDN: cluster-power-down {
234 compatible = "domain-idle-state";
235 arm,psci-suspend-param = <0x1000031>;
236 entry-latency-us = <2000>;
237 exit-latency-us = <2000>;
238 min-residency-us = <6000>;
244 compatible = "arm,psci-1.0";
247 CPU_PD0: power-domain-cpu0 {
248 #power-domain-cells = <0>;
249 domain-idle-states = <&CPU_PWRDN>;
250 power-domains = <&CLUSTER_PD>;
253 CPU_PD1: power-domain-cpu1 {
254 #power-domain-cells = <0>;
255 domain-idle-states = <&CPU_PWRDN>;
256 power-domains = <&CLUSTER_PD>;
259 CLUSTER_PD: power-domain-cluster {
260 #power-domain-cells = <0>;
261 domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;