Will Deacon | 65397ed | 2012-12-11 17:28:27 +0000 | [diff] [blame] | 1 | * Power State Coordination Interface (PSCI) |
| 2 | |
| 3 | Firmware implementing the PSCI functions described in ARM document number |
| 4 | ARM DEN 0022A ("Power State Coordination Interface System Software on ARM |
| 5 | processors") can be used by Linux to initiate various CPU-centric power |
| 6 | operations. |
| 7 | |
| 8 | Issue A of the specification describes functions for CPU suspend, hotplug |
| 9 | and migration of secure software. |
| 10 | |
| 11 | Functions are invoked by trapping to the privilege level of the PSCI |
| 12 | firmware (specified as part of the binding below) and passing arguments |
| 13 | in a manner similar to that specified by AAPCS: |
| 14 | |
| 15 | r0 => 32-bit Function ID / return value |
| 16 | {r1 - r3} => Parameters |
| 17 | |
| 18 | Note that the immediate field of the trapping instruction must be set |
| 19 | to #0. |
| 20 | |
| 21 | |
| 22 | Main node required properties: |
| 23 | |
| 24 | - compatible : Must be "arm,psci" |
| 25 | |
| 26 | - method : The method of calling the PSCI firmware. Permitted |
| 27 | values are: |
| 28 | |
| 29 | "smc" : SMC #0, with the register assignments specified |
| 30 | in this binding. |
| 31 | |
| 32 | "hvc" : HVC #0, with the register assignments specified |
| 33 | in this binding. |
| 34 | |
| 35 | Main node optional properties: |
| 36 | |
| 37 | - cpu_suspend : Function ID for CPU_SUSPEND operation |
| 38 | |
| 39 | - cpu_off : Function ID for CPU_OFF operation |
| 40 | |
| 41 | - cpu_on : Function ID for CPU_ON operation |
| 42 | |
| 43 | - migrate : Function ID for MIGRATE operation |
| 44 | |
| 45 | |
| 46 | Example: |
| 47 | |
| 48 | psci { |
| 49 | compatible = "arm,psci"; |
| 50 | method = "smc"; |
| 51 | cpu_suspend = <0x95c10000>; |
| 52 | cpu_off = <0x95c10001>; |
| 53 | cpu_on = <0x95c10002>; |
| 54 | migrate = <0x95c10003>; |
| 55 | }; |