[PATCH v1 1/2] dt-bindings: pinctrl: qcom,tlmm-common: Add wakeup-enable
From: Mohammad Rafi Shaik
Date: Thu Oct 15 2026 - 10:44:47 EST
The TLMM can gate whether a toggle of a pad is transferred to the wake up
controller (PDC/MPM) while the system is in a low power mode. The pinctrl
driver arms this for pins it requests as GPIO interrupts, but that path
takes over the pin mux, so it cannot be used for a pin that has to stay
muxed to a peripheral function.
Such a pin exists on boards with a SoundWire codec: while the bus is clock
stopped the codec requests a wake up by toggling the SoundWire data line,
which is muxed to the SoundWire function and not to GPIO. Unless the pad is
armed, the toggle never reaches the wake up controller, the controller is
never resumed and the event - a headset insertion, for instance - is lost
until something else happens to wake the bus.
Add a pin configuration property so such a pin can be armed from its own
pin configuration, without being turned into a GPIO.
Assisted-by: Claude Opus 5
Signed-off-by: Mohammad Rafi Shaik <mohammad.rafi.shaik@xxxxxxxxxxxxxxxx>
---
.../devicetree/bindings/pinctrl/qcom,tlmm-common.yaml | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml
index aec72e8c0..95f539611 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml
@@ -87,6 +87,18 @@ $defs:
output-high: true
output-low: true
+ wakeup-enable:
+ type: boolean
+ description:
+ Allow a toggle of the specified pins to be transferred to the wake up
+ controller while the system is in a low power mode. The driver arms
+ this on its own for pins requested as GPIO interrupts, so it is only
+ needed for pins that stay muxed to a peripheral function and are
+ toggled by an external device to request a wake up, such as a
+ SoundWire data line driven by a codec while the bus is clock stopped.
+ Only supported on pins that are marked as wakeup capable by the
+ hardware.
+
allOf:
- $ref: pincfg-node.yaml#
- $ref: pinmux-node.yaml#
--
2.34.1