Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: psci: add devicetree binding for describing PSCI firmware

This patch adds a new devicetree binding for describing PSCI firmware
to Linux.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>

+55
+55
Documentation/devicetree/bindings/arm/psci.txt
··· 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 + };