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 <[email protected]>
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#
116 arm,psci-suspend-param property.
118 It should also be noted that, in PSCI firmware v1.0 the OS-Initiated
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:
135 const: arm,psci
138 - cpu_off
139 - cpu_on
144 - |+
146 // Case 1: PSCI v0.1 only.
148 psci {
149 compatible = "arm,psci";
157 - |+
159 // Case 2: PSCI v0.2 only
161 psci {
162 compatible = "arm,psci-0.2";
167 - |+
169 // Case 3: PSCI v0.2 and PSCI v0.1.
172 * A DTB may provide IDs for use by kernels without PSCI 0.2 support,
174 * These IDs will be ignored by kernels with PSCI 0.2 support, which will
175 * use the standard PSCI 0.2 IDs exclusively.
178 psci {
179 compatible = "arm,psci-0.2", "arm,psci";
186 - |+
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";
203 CPU1: cpu@1 {
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>;
243 psci {
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>;