[PATCH] mmc: fsl_esdhc_imx: Fix clock disable issue

Jaehoon Chung jh80.chung at samsung.com
Wed Aug 25 23:47:56 CEST 2021


On 8/17/21 6:09 PM, Ye Li wrote:
> The SD clock disable is wrapped by MMC_SUPPORTS_TUNING. So it
> only works when UHS is enabled. However, in SD initialization the
> power cycle does not depends on UHS. But the power cycle needs
> disable the SD clock before power down.
> So this causes a problem when UHS is not enabled. Some cards can't
> become ready (ACMD14 timeout) due to the clock is enabled during
> power cycle.
> 
> Signed-off-by: Ye Li <ye.li at nxp.com>
> Reviewed-by: Haibo Chen <haibo.chen at nxp.com>

Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>

Best Regards,
Jaehoon Chung

> ---
>  drivers/mmc/fsl_esdhc_imx.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
> index aabf395..7b67972 100644
> --- a/drivers/mmc/fsl_esdhc_imx.c
> +++ b/drivers/mmc/fsl_esdhc_imx.c
> @@ -971,7 +971,6 @@ static int esdhc_set_ios_common(struct fsl_esdhc_priv *priv, struct mmc *mmc)
>  	if (priv->clock != clock)
>  		set_sysctl(priv, mmc, clock);
>  
> -#ifdef MMC_SUPPORTS_TUNING
>  	if (mmc->clk_disable) {
>  #ifdef CONFIG_FSL_USDHC
>  		esdhc_clrbits32(&regs->vendorspec, VENDORSPEC_CKEN);
> @@ -987,6 +986,7 @@ static int esdhc_set_ios_common(struct fsl_esdhc_priv *priv, struct mmc *mmc)
>  #endif
>  	}
>  
> +#ifdef MMC_SUPPORTS_TUNING
>  	/*
>  	 * For HS400/HS400ES mode, make sure set the strobe dll in the
>  	 * target clock rate. So call esdhc_set_strobe_dll() after the
> 



More information about the U-Boot mailing list