[PATCH v24 05/12] dt-bindings: arm: Document reboot mode magic
Shivendra Pratap <[email protected]> Mon, 03 Aug 2026 15:13:36 +0530
| Newsgroups | dev.linux.lists.mfd,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-arm-msm,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pm |
|---|---|
| Message-ID | <20260803-arm-psci-system_reset2-vendor-reboots-v24-5-889281373870@oss.qualcomm.com> |
Add bindings to describe vendor-specific reboot modes. Values here correspond to valid parameters to vendor-specific reset types in PSCI SYSTEM_RESET2 call. Signed-off-by: Shivendra Pratap <[email protected]> --- Documentation/devicetree/bindings/arm/psci.yaml | 58 +++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/psci.yaml b/Documentation/devicetree/bindings/arm/psci.yaml index 6e2e0c551841..7d6a86690a2e 100644 --- a/Documentation/devicetree/bindings/arm/psci.yaml +++ b/Documentation/devicetree/bindings/arm/psci.yaml @@ -98,6 +98,41 @@ properties: [1] Kernel documentation - ARM idle states bindings Documentation/devicetree/bindings/cpu/idle-states.yaml + reboot-mode: + type: object + $ref: /schemas/power/reset/reboot-mode.yaml# + unevaluatedProperties: false + properties: + # "mode-normal" is just SYSTEM_RESET + mode-normal: false + patternProperties: + "^mode-.*$": + minItems: 1 + maxItems: 3 + items: + - description: arg1 (vendor-specific SYSTEM_RESET2 reset_type) + allOf: + - $ref: /schemas/types.yaml#/definitions/uint32 + - minimum: 0x80000000 + - description: arg2 (cookie_lo in 2-cell form, cookie_hi in 3-cell form) + $ref: /schemas/types.yaml#/definitions/uint32 + - description: arg3 (cookie_lo in 3-cell form) + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Describes a PSCI SYSTEM_RESET2 vendor-specific reset type. The string + after "mode-" maps a reboot mode to a vendor-specific reset. + A vendor-specific reset takes two arguments, a 32-bit reset_type and a + 64-bit cookie. The arguments are encoded as up to three 32-bit cells. + Each mode property is encoded as mode-xxx = <arg1[, arg2[, arg3]]>, + where: + - arg1 is reset_type and must be >= 0x80000000. + - In 2-cell form, arg2 is lower 32 bits of cookie. + - In 3-cell form, arg2 is high 32 bits of cookie + and arg3 is low 32 bits of cookie. + + All values should be provided as per the PSCI SYSTEM_RESET2 + specification. + patternProperties: "^power-domain-": $ref: /schemas/power/power-domain.yaml# @@ -137,6 +172,15 @@ allOf: required: - cpu_off - cpu_on + - if: + not: + properties: + compatible: + contains: + const: arm,psci-1.0 + then: + properties: + reboot-mode: false additionalProperties: false @@ -260,4 +304,18 @@ examples: domain-idle-states = <&cluster_ret>, <&cluster_pwrdn>; }; }; + + - |+ + + // Case 5: SYSTEM_RESET2 vendor resets + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + + reboot-mode { + mode-edl = <0x80000000 0x00000001>; + mode-bootloader = <0x80010001 0x00000002>; + mode-vendor = <0x80000000 0x00000001 0x00000002>; + }; + }; ... -- 2.34.1