Documentation: devicetree: Add new binding for PSCIv0.2
authorAshwin Chaugule <ashwin.chaugule@linaro.org>
Thu, 27 Mar 2014 15:08:57 +0000 (11:08 -0400)
committerAshwin Chaugule <ashwin.chaugule@linaro.org>
Thu, 15 May 2014 14:16:24 +0000 (10:16 -0400)
The PSCI v0.2+ spec defines standard values for PSCI function IDs.
Add a new binding entry so that pre v0.2 implementations can
use DT entries for function IDs and v0.2+ implementations use
standard entries as defined by the PSCIv0.2 specification.

Signed-off-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Documentation/devicetree/bindings/arm/psci.txt

index 433afe9cb59097fd1c445f4e3a79684d1664c634..b4a58f39223cbde877347a65475e63cf1784112a 100644 (file)
@@ -21,7 +21,15 @@ to #0.
 
 Main node required properties:
 
- - compatible    : Must be "arm,psci"
+ - compatible    : should contain at least one of:
+
+                                * "arm,psci" : for implementations complying to PSCI versions prior to
+                                       0.2. For these cases function IDs must be provided.
+
+                                * "arm,psci-0.2" : for implementations complying to PSCI 0.2. Function
+                                       IDs are not required and should be ignored by an OS with PSCI 0.2
+                                       support, but are permitted to be present for compatibility with
+                                       existing software when "arm,psci" is later in the compatible list.
 
  - method        : The method of calling the PSCI firmware. Permitted
                    values are:
@@ -45,6 +53,8 @@ Main node optional properties:
 
 Example:
 
+Case 1: PSCI v0.1 only.
+
        psci {
                compatible      = "arm,psci";
                method          = "smc";
@@ -53,3 +63,28 @@ Example:
                cpu_on          = <0x95c10002>;
                migrate         = <0x95c10003>;
        };
+
+
+Case 2: PSCI v0.2 only
+
+       psci {
+               compatible      = "arm,psci-0.2";
+               method          = "smc";
+       };
+
+Case 3: PSCI v0.2 and PSCI v0.1.
+
+       A DTB may provide IDs for use by kernels without PSCI 0.2 support,
+       enabling firmware and hypervisors to support existing and new kernels.
+       These IDs will be ignored by kernels with PSCI 0.2 support, which will
+       use the standard PSCI 0.2 IDs exclusively.
+
+       psci {
+               compatible = "arm,psci-0.2", "arm,psci";
+               method = "hvc";
+
+               cpu_on = < arbitrary value >;
+               cpu_off = < arbitrary value >;
+
+               ...
+       };