Lines Matching +full:psci +full:- +full:1
1 # SPDX-License-Identifier: GPL-2.0
3 ---
4 $id: http://devicetree.org/schemas/arm/psci.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Power State Coordination Interface (PSCI)
10 - Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
13 Firmware implementing the PSCI functions described in ARM document number
15 processors") can be used by Linux to initiate various CPU-centric power
21 Functions are invoked by trapping to the privilege level of the PSCI
25 r0 => 32-bit Function ID / return value
26 {r1 - r3} => Parameters
31 [2] Power State Coordination Interface (PSCI) specification
36 const: psci
40 - description:
41 For implementations complying to PSCI versions prior to 0.2.
42 const: arm,psci
44 - description:
45 For implementations complying to PSCI 0.2.
47 PSCI 0.2 support, but are permitted to be present for compatibility
48 with existing software when "arm,psci" is later in the compatible
50 minItems: 1
52 - const: arm,psci-0.2
53 - const: arm,psci
55 - description:
56 For implementations complying to PSCI 1.0.
57 PSCI 1.0 is backward compatible with PSCI 0.2 with minor
58 specification updates, as defined in the PSCI specification[2].
59 minItems: 1
61 - const: arm,psci-1.0
62 - const: arm,psci-0.2
63 - const: arm,psci
66 description: The method of calling the PSCI firmware.
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.
94 Device tree nodes that require usage of PSCI CPU_SUSPEND function (ie
95 idle state nodes with entry-method property is set to "psci", as per
96 bindings in [1]) must specify this property.
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#
115 arm,psci-suspend-param property.
117 It should also be noted that, in PSCI firmware v1.0 the OS-Initiated
122 [3] Documentation/devicetree/bindings/power/power-domain.yaml
123 [4] Documentation/devicetree/bindings/power/domain-idle-state.yaml
126 - compatible
127 - method
130 - if:
134 const: arm,psci
137 - cpu_off
138 - cpu_on
143 - |+
145 // Case 1: PSCI v0.1 only.
147 psci {
148 compatible = "arm,psci";
156 - |+
158 // Case 2: PSCI v0.2 only
160 psci {
161 compatible = "arm,psci-0.2";
166 - |+
168 // Case 3: PSCI v0.2 and PSCI v0.1.
171 * A DTB may provide IDs for use by kernels without PSCI 0.2 support,
173 * These IDs will be ignored by kernels with PSCI 0.2 support, which will
174 * use the standard PSCI 0.2 IDs exclusively.
177 psci {
178 compatible = "arm,psci-0.2", "arm,psci";
185 - |+
190 #size-cells = <0>;
191 #address-cells = <1>;
195 compatible = "arm,cortex-a53";
197 enable-method = "psci";
198 power-domains = <&CPU_PD0>;
199 power-domain-names = "psci";
202 CPU1: cpu@1 {
204 compatible = "arm,cortex-a53";
206 enable-method = "psci";
207 power-domains = <&CPU_PD1>;
208 power-domain-names = "psci";
211 idle-states {
213 CPU_PWRDN: cpu-power-down {
214 compatible = "arm,idle-state";
215 arm,psci-suspend-param = <0x0000001>;
216 entry-latency-us = <10>;
217 exit-latency-us = <10>;
218 min-residency-us = <100>;
222 domain-idle-states {
224 CLUSTER_RET: cluster-retention {
225 compatible = "domain-idle-state";
226 arm,psci-suspend-param = <0x1000011>;
227 entry-latency-us = <500>;
228 exit-latency-us = <500>;
229 min-residency-us = <2000>;
232 CLUSTER_PWRDN: cluster-power-down {
233 compatible = "domain-idle-state";
234 arm,psci-suspend-param = <0x1000031>;
235 entry-latency-us = <2000>;
236 exit-latency-us = <2000>;
237 min-residency-us = <6000>;
242 psci {
243 compatible = "arm,psci-1.0";
246 CPU_PD0: power-domain-cpu0 {
247 #power-domain-cells = <0>;
248 domain-idle-states = <&CPU_PWRDN>;
249 power-domains = <&CLUSTER_PD>;
252 CPU_PD1: power-domain-cpu1 {
253 #power-domain-cells = <0>;
254 domain-idle-states = <&CPU_PWRDN>;
255 power-domains = <&CLUSTER_PD>;
258 CLUSTER_PD: power-domain-cluster {
259 #power-domain-cells = <0>;
260 domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;