[PATCH 1/2] drivers: mmc: Add wait_dat0 support for Freescale eSDHC driver

Jaehoon Chung jh80.chung at samsung.com
Sat Aug 28 07:08:48 CEST 2021


On 8/18/21 4:46 AM, stcarlso at linux.microsoft.com wrote:
> From: Stephen Carlson <stcarlso at linux.microsoft.com>
> 
> Adds an implementation of the wait_dat0 MMC operation for the Freescale
> eSHDC driver, allowing the driver to continue when the card is ready
> rather than waiting for the worst case time on each MMC switch operation.
> 
> Signed-off-by: Stephen Carlson <stcarlso at linux.microsoft.com>
> ---
>  drivers/mmc/fsl_esdhc.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index 1d98fa65c4..f74289a677 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -27,6 +27,7 @@
>  #include <dm/device_compat.h>
>  #include <linux/bitops.h>
>  #include <linux/delay.h>
> +#include <linux/iopoll.h>
>  #include <linux/dma-mapping.h>
>  #include <sdhci.h>
>  
> @@ -1145,6 +1146,20 @@ int fsl_esdhc_hs400_prepare_ddr(struct udevice *dev)
>  	return 0;
>  }
>  
> +static int fsl_esdhc_wait_dat0(struct udevice *dev, int state,
> +			       int timeout_us)
> +{
> +	int ret;

nitpick, doesn't need to use the ret variable.

> +	u32 tmp;
> +	struct fsl_esdhc_priv *priv = dev_get_priv(dev);
> +	struct fsl_esdhc *regs = priv->esdhc_regs;
> +
> +	ret = readx_poll_timeout(esdhc_read32, &regs->prsstat, tmp,
> +				 !!(tmp & PRSSTAT_DAT0) == !!state,
> +				 timeout_us);
> +	return ret;

return readx_poll_timeout(); ?

Other things look good to me.

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

Best Regards,
Jaehoon Chung

> +}
> +
>  static const struct dm_mmc_ops fsl_esdhc_ops = {
>  	.get_cd		= fsl_esdhc_get_cd,
>  	.send_cmd	= fsl_esdhc_send_cmd,
> @@ -1154,6 +1169,7 @@ static const struct dm_mmc_ops fsl_esdhc_ops = {
>  #endif
>  	.reinit = fsl_esdhc_reinit,
>  	.hs400_prepare_ddr = fsl_esdhc_hs400_prepare_ddr,
> +	.wait_dat0 = fsl_esdhc_wait_dat0,
>  };
>  
>  static const struct udevice_id fsl_esdhc_ids[] = {
> 



More information about the U-Boot mailing list