* 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    : 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.

     * "arm,psci-1.0" : For implementations complying to PSCI 1.0.
			PSCI 1.0 is backward compatible with PSCI 0.2 with
			minor specification updates, as defined in the PSCI
			specification[2].

 - 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

Device tree nodes that require usage of PSCI CPU_SUSPEND function (ie idle
state nodes, as per bindings in [1]) must specify the following properties:

- arm,psci-suspend-param
		Usage: Required for state nodes[1] if the corresponding
                       idle-states node entry-method property is set
                       to "psci".
		Value type: <u32>
		Definition: power_state parameter to pass to the PSCI
			    suspend call.

Example:

Case 1: PSCI v0.1 only.

	psci {
		compatible	= "arm,psci";
		method		= "smc";
		cpu_suspend	= <0x95c10000>;
		cpu_off		= <0x95c10001>;
		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 >;

		...
	};

[1] Kernel documentation - ARM idle states bindings
    Documentation/devicetree/bindings/arm/idle-states.txt
[2] Power State Coordination Interface (PSCI) specification
    http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_Interface.pdf
