]> git.ipfire.org Git - thirdparty/linux.git/commit
mmc: sdhci-esdhc-imx: Don't change pinctrl in suspend if wakeup source
authorHaibo Chen <haibo.chen@nxp.com>
Wed, 21 May 2025 03:31:34 +0000 (11:31 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 24 Jun 2025 10:43:21 +0000 (12:43 +0200)
commit031d9e30d569ca15ca32f64357c83eee6488e09d
tree0367307a55c40f2555de68177aea7f8e1e2b4510
parent86731a2a651e58953fc949573895f2fa6d456841
mmc: sdhci-esdhc-imx: Don't change pinctrl in suspend if wakeup source

The pinctrl sleep state may config the pin mux to certain function to save
power in system suspend. Unfortunately this doesn't work if usdhc is used
as a wakeup source, like waking up on SDIO irqs or card-detect irqs. In
these cases, we need pin mux to be configured to usdhc function pad.

The issue is found on imx93-11x11-evk board, where WiFI over SDIO with
in-band irqs fails to wakeup the system, because the DATA[1] pin has been
set to GPIO function.

To fix the problem, don't change the pinctrl state in suspend if there is a
system wakeup enabled.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Luke Wang <ziniu.wang_1@nxp.com>
Link: https://lore.kernel.org/r/20250521033134.112671-1-ziniu.wang_1@nxp.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-esdhc-imx.c