[PATCH v2 1/2] dt-bindings: mmc: Document no-mmc-sleep property

Kamal Dasu <[email protected]> Fri, 17 Jul 2026 14:05:35 -0400
Newsgroups org.kernel.vger.linux-mmc,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Some (e)MMC devices cannot reliably resume from the SLEEP (CMD5)
state within their advertised S_A_TIMEOUT, which can be problematic
on systems that resume from Suspend-to-DRAM by first pulling boot
code from eMMC using hard wired logic that is not field updatable.
Add a no-mmc-sleep flag property so affected boards can tell the
mmc core to never put the card to sleep.

Signed-off-by: Kamal Dasu <[email protected]>
---
Changes in v2:
  - New patch. v1 used a card-level MMC_QUIRK_BROKEN_SLEEP quirk
    instead of a DT property; this documents the DT property backing
    the host capability added in patch 2, per Ulf's suggestion.
  - Reworded the rationale in the commit message and the binding
    description per Florian's review.

 .../devicetree/bindings/mmc/mmc-controller-common.yaml    | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/mmc/mmc-controller-common.yaml b/Documentation/devicetree/bindings/mmc/mmc-controller-common.yaml
index 3d7195e9461c..11df0524530c 100644
--- a/Documentation/devicetree/bindings/mmc/mmc-controller-common.yaml
+++ b/Documentation/devicetree/bindings/mmc/mmc-controller-common.yaml
@@ -232,6 +232,14 @@ properties:
     description:
       All eMMC HS400 modes are not supported.
 
+  no-mmc-sleep:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      The attached (e)MMC card cannot reliably resume from the SLEEP
+      (CMD5) state within its advertised S_A_TIMEOUT, so the
+      controller must not put it to sleep during suspend or power
+      off.
+
   dsr:
     description:
       Value the card Driver Stage Register (DSR) should be programmed
-- 
2.34.1