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

Documentation: devicetree: Add new binding for PSCIv0.2

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>

+36 -1
+36 -1
Documentation/devicetree/bindings/arm/psci.txt
··· 21 21 22 22 Main node required properties: 23 23 24 - - compatible : Must be "arm,psci" 24 + - compatible : should contain at least one of: 25 + 26 + * "arm,psci" : for implementations complying to PSCI versions prior to 27 + 0.2. For these cases function IDs must be provided. 28 + 29 + * "arm,psci-0.2" : for implementations complying to PSCI 0.2. Function 30 + IDs are not required and should be ignored by an OS with PSCI 0.2 31 + support, but are permitted to be present for compatibility with 32 + existing software when "arm,psci" is later in the compatible list. 25 33 26 34 - method : The method of calling the PSCI firmware. Permitted 27 35 values are: ··· 53 45 54 46 Example: 55 47 48 + Case 1: PSCI v0.1 only. 49 + 56 50 psci { 57 51 compatible = "arm,psci"; 58 52 method = "smc"; ··· 62 52 cpu_off = <0x95c10001>; 63 53 cpu_on = <0x95c10002>; 64 54 migrate = <0x95c10003>; 55 + }; 56 + 57 + 58 + Case 2: PSCI v0.2 only 59 + 60 + psci { 61 + compatible = "arm,psci-0.2"; 62 + method = "smc"; 63 + }; 64 + 65 + Case 3: PSCI v0.2 and PSCI v0.1. 66 + 67 + A DTB may provide IDs for use by kernels without PSCI 0.2 support, 68 + enabling firmware and hypervisors to support existing and new kernels. 69 + These IDs will be ignored by kernels with PSCI 0.2 support, which will 70 + use the standard PSCI 0.2 IDs exclusively. 71 + 72 + psci { 73 + compatible = "arm,psci-0.2", "arm,psci"; 74 + method = "hvc"; 75 + 76 + cpu_on = < arbitrary value >; 77 + cpu_off = < arbitrary value >; 78 + 79 + ... 65 80 };