Re: [PATCH v23 06/13] dt-bindings: arm: Document reboot mode magic
Shivendra Pratap <[email protected]> Thu, 23 Jul 2026 19:03:12 +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 | <[email protected]> |
On 22-07-2026 22:41, Rob Herring wrote: > On Tue, Jul 14, 2026 at 10:46:34PM +0530, Shivendra Pratap wrote: >> 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 | 54 +++++++++++++++++++++++++ >> 1 file changed, 54 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/arm/psci.yaml b/Documentation/devicetree/bindings/arm/psci.yaml >> index 6e2e0c551841..11b90e8affb3 100644 >> --- a/Documentation/devicetree/bindings/arm/psci.yaml >> +++ b/Documentation/devicetree/bindings/arm/psci.yaml >> @@ -98,6 +98,37 @@ 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# >> + additionalProperties: false >> + properties: >> + # "mode-normal" is just SYSTEM_RESET >> + mode-normal: false >> + patternProperties: >> + "^mode-.*$": > > Since your example violates naming rules: > > "^mode-[a-z0-9]+$" > >> + minItems: 1 >> + maxItems: 3 >> + items: >> + - description: arg1 (vendor-specific SYSTEM_RESET2 reset_type) >> + minimum: 0x80000000 >> + - description: arg2 (cookie_lo in 2-cell form, cookie_hi in 3-cell form) >> + - description: arg3 (cookie_lo in 3-cell form) >> + 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 +168,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 +300,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-needscookie_64 = <0x80000000 0x00000001 0x00000002>; > > Don't use '_' in property names. This is a W=2 warning. sure thanks. Will fix this. thanks, Shivendra