[PATCH v2 1/4] dt-bindings: arm: psci: Add skip-suspend-mode-switch property

From: Reza Kurniawan

Date: Sun Oct 18 2026 - 00:30:45 EST


From: Alejandro Tafalla <atafalla@xxxxxxxxx>

On some SoCs (e.g. Qualcomm MSM8917 and MSM8937), PSCI_FEATURES reports
that OS-initiated mode is supported, but every PSCI_SET_SUSPEND_MODE
call is rejected with NOT_SUPPORTED.

PSCI provides no call to read back the current suspend mode, so the OS
cannot tell which mode the firmware is operating in or why the switch
is rejected.

Add an optional flag that tells the OS not to issue
PSCI_SET_SUSPEND_MODE on such firmware.

Signed-off-by: Alejandro Tafalla <atafalla@xxxxxxxxx>
[Reza Kurniawan: split out the patch, rewrote the property description,
renamed the property]
Co-developed-by: Reza Kurniawan <imkyufie@xxxxxxxxx>
Signed-off-by: Reza Kurniawan <imkyufie@xxxxxxxxx>
---
Documentation/devicetree/bindings/arm/psci.yaml | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/psci.yaml b/Documentation/devicetree/bindings/arm/psci.yaml
index 0d04389c81..2eee38d155 100644
--- a/Documentation/devicetree/bindings/arm/psci.yaml
+++ b/Documentation/devicetree/bindings/arm/psci.yaml
@@ -98,6 +98,19 @@ properties:
[1] Kernel documentation - ARM idle states bindings
Documentation/devicetree/bindings/cpu/idle-states.yaml

+ skip-suspend-mode-switch:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: |
+ Do not issue PSCI_SET_SUSPEND_MODE.
+
+ Some firmware advertises support for OS-initiated mode but rejects
+ every suspend mode switch with NOT_SUPPORTED. Since PSCI cannot report
+ the current mode, the OS cannot verify the state the firmware is in.
+
+ This property is an assertion that the firmware works correctly without
+ a mode switch. This is a workaround for non-compliant firmware, only set
+ it for devices that ship with firmware known to behave this way.
+
patternProperties:
"^power-domain-":
$ref: /schemas/power/power-domain.yaml#

--
2.55.0