[U-Boot] [PATCH 1/3] esdhc: Workaround for card can't be detected on T4240QDS

Pantelis Antoniou pantelis.antoniou at gmail.com
Sun Dec 8 12:46:01 CET 2013


Hi Haijun,

On Dec 2, 2013, at 7:25 AM, Haijun Zhang wrote:

> Card detection pin is ineffective on T4240QDS.
> This workaround force sdhc driver scan and initialize the card regardless
> of whether the card is inserted. if no card is in the slot, the error message
> "card is not inserted" will be prompted.
> 
> Signed-off-by: Haijun Zhang <Haijun.Zhang at freescale.com>
> ---
> drivers/mmc/fsl_esdhc.c | 4 ++++
> 1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index e3cd0c7..e330379 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -500,6 +500,10 @@ static int esdhc_getcd(struct mmc *mmc)
> 	struct fsl_esdhc *regs = (struct fsl_esdhc *)cfg->esdhc_base;
> 	int timeout = 1000;
> 
> +/* Card detecting pin is not functional on T4240QDS */
> +#if defined(CONFIG_T4240QDS)
> +	return 1;
> +#endif

Ugh, I don't like that much.

How about a CONFIG_SYS_FSL_ESDHC_BROKEN_CD instead?

We need to do the same for the following fragment in esdhc_xfertyp()

#if defined(CONFIG_MX53) || defined(CONFIG_T4240QDS)
        if (cmd->cmdidx == MMC_CMD_STOP_TRANSMISSION)
                xfertyp |= XFERTYP_CMDTYP_ABORT;
#endif

CONFIG_SYS_FSL_ESDHC_STOP_ABORT

> 	while (!(esdhc_read32(&regs->prsstat) & PRSSTAT_CINS) && --timeout)
> 		udelay(1000);
> 
> -- 
> 1.8.4
> 
> 

Regards

-- Pantelis

P.S. Add me to the CC list on the next version of the patch.


More information about the U-Boot mailing list