
From: Jin Qing b24347@freescale.com
Use timeout value to maximum due to hardware problem. The hardware may take longer to timeout, but it's much better than having a too-short timeout value.
Signed-off-by: Jin Qing b24347@freescale.com Signed-off-by: Li Yang leoli@freescale.com --- drivers/mmc/fsl_esdhc.c | 4 ++++ include/configs/P2020DS.h | 1 + 2 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index 4a86365..d30e15a 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -202,6 +202,10 @@ static int esdhc_setup_data(struct mmc *mmc, struct mmc_data *data) if (timeout < 0) timeout = 0;
+#ifdef CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT + timeout = 14; +#endif + clrsetbits_be32(®s->sysctl, SYSCTL_TIMEOUT_MASK, timeout << 16);
return 0; diff --git a/include/configs/P2020DS.h b/include/configs/P2020DS.h index 577d2b5..9bdc9c5 100644 --- a/include/configs/P2020DS.h +++ b/include/configs/P2020DS.h @@ -714,6 +714,7 @@ extern unsigned long calculate_board_ddr_clk(unsigned long dummy); #ifdef CONFIG_MMC #define CONFIG_FSL_ESDHC #define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR +#define CONFIG_SYS_FSL_ESDHC_BROKEN_TIMEOUT #define CONFIG_CMD_MMC #define CONFIG_GENERIC_MMC #define CONFIG_CMD_EXT2