On Fri, May 22, 2026 at 03:14:14PM +0800, Ye Li wrote:
>SD initialization failure happens with some UHS-I SD cards on
>iMX8MM/iMX93/iMX91 EVK after
>commit 4fcba5d556b4 ("regulator: implement basic reference counter").
>When sending operation condition to SD card, the OCR does not return
>correct status. The root cause is regulator on/off delay is missed
>in MMC power cycle with above commit, so SD card is not completely
>power off.
>
>When SD startup, the sequence of MMC power cycle is:
>mmc_power_init(get vmmc_supply dev) -> mmc_power_off -> udelay(2000)
>-> mmc_power_on
>
>Before above commit, as a fixed regulator, the GPIO is set as:
>  GPIO inactive (in mmc_power_init) ->
>  GPIO inactive and delay off-on-delay-us (in mmc_power_off) ->
>  udelay(2000) ->
>  GPIO active (in mmc_power_on)
>
>After the commit:
>  GPIO inactive (in mmc_power_init) ->
>  enable_count is 0, regulator_set_enable returns -EALREADY immediately,
>      so GPIO is inactive but No off-on-delay-us (in mmc_power_off) ->
>  udelay(2000) ->
>  GPIO active (in mmc_power_on)
>
>Move the off-on-delay-us delay before setting GPIO active to fix the issue.
>
>Signed-off-by: Ye Li <[email protected]>

Reviewed-by: Peng Fan <[email protected]>

Reply via email to