ARM: psci: add devicetree binding for describing PSCI firmware
authorWill Deacon <will.deacon@arm.com>
Tue, 11 Dec 2012 17:28:27 +0000 (17:28 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 10 Jan 2013 21:10:20 +0000 (21:10 +0000)
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>
Documentation/devicetree/bindings/arm/psci.txt [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/arm/psci.txt b/Documentation/devicetree/bindings/arm/psci.txt
new file mode 100644 (file)
index 0000000..433afe9
--- /dev/null
@@ -0,0 +1,55 @@
+* Power State Coordination Interface (PSCI)
+
+Firmware implementing the PSCI functions described in ARM document number
+ARM DEN 0022A ("Power State Coordination Interface System Software on ARM
+processors") can be used by Linux to initiate various CPU-centric power
+operations.
+
+Issue A of the specification describes functions for CPU suspend, hotplug
+and migration of secure software.
+
+Functions are invoked by trapping to the privilege level of the PSCI
+firmware (specified as part of the binding below) and passing arguments
+in a manner similar to that specified by AAPCS:
+
+        r0             => 32-bit Function ID / return value
+       {r1 - r3}       => Parameters
+
+Note that the immediate field of the trapping instruction must be set
+to #0.
+
+
+Main node required properties:
+
+ - compatible    : Must be "arm,psci"
+
+ - method        : The method of calling the PSCI firmware. Permitted
+                   values are:
+
+                   "smc" : SMC #0, with the register assignments specified
+                          in this binding.
+
+                   "hvc" : HVC #0, with the register assignments specified
+                          in this binding.
+
+Main node optional properties:
+
+ - cpu_suspend   : Function ID for CPU_SUSPEND operation
+
+ - cpu_off       : Function ID for CPU_OFF operation
+
+ - cpu_on        : Function ID for CPU_ON operation
+
+ - migrate       : Function ID for MIGRATE operation
+
+
+Example:
+
+       psci {
+               compatible      = "arm,psci";
+               method          = "smc";
+               cpu_suspend     = <0x95c10000>;
+               cpu_off         = <0x95c10001>;
+               cpu_on          = <0x95c10002>;
+               migrate         = <0x95c10003>;
+       };