diff options
author | Srikanth Srinivasan <srikanth.srinivasan@freescale.com> | 2010-01-06 14:32:38 +0800 |
---|---|---|
committer | Scott Sweeny <scott.sweeny@timesys.com> | 2010-09-29 17:32:28 -0400 |
commit | 3f4879e4dd0a248ad96dbe11d86709a1edeb57ae (patch) | |
tree | c84e031451afb1e1a5c9b3e97432cce00b45e337 | |
parent | ba2c05a72faf66fd23063cf066d8500539eb4e1c (diff) |
esdhc errata workaround
In Rev 1.0 of P1022, in the esdhc Host Capabilities register
the 1.8V bit is set; it should not be. So we exclude this
setting in the driver.
Signed-off-by: Srikanth Srinivasan <srikanth.srinivasan@freescale.com>
-rw-r--r-- | drivers/mmc/fsl_esdhc.c | 3 | ||||
-rw-r--r-- | include/configs/P1022DS.h | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c index c6e9e6e782..48e7830bd3 100644 --- a/drivers/mmc/fsl_esdhc.c +++ b/drivers/mmc/fsl_esdhc.c @@ -324,8 +324,11 @@ static int esdhc_initialize(bd_t *bis) caps = regs->hostcapblt; + /* 1.8V incorrectly set in hardware on P1022 eSDHC */ +#ifndef P1022_REV1_SDHC_ERRATUM_WORKAROUND if (caps & ESDHC_HOSTCAPBLT_VS18) mmc->voltages |= MMC_VDD_165_195; +#endif if (caps & ESDHC_HOSTCAPBLT_VS30) mmc->voltages |= MMC_VDD_29_30 | MMC_VDD_30_31; if (caps & ESDHC_HOSTCAPBLT_VS33) diff --git a/include/configs/P1022DS.h b/include/configs/P1022DS.h index 4fc39be3d3..85c7a94a61 100644 --- a/include/configs/P1022DS.h +++ b/include/configs/P1022DS.h @@ -555,6 +555,12 @@ extern unsigned long calculate_board_ddr_clk(unsigned long dummy); #define CONFIG_SYS_FSL_ESDHC_ADDR CONFIG_SYS_MPC85xx_ESDHC_ADDR #endif +/* In Rev 1.0 of P1022, in the Host Capabilities register + * the 1.8V bit is set; it should not be. So we exclude this + * setting in the driver. + */ +#define P1022_REV1_SDHC_ERRATUM_WORKAROUND 1 + #if defined(CONFIG_MMC) || defined(CONFIG_USB_EHCI) #define CONFIG_CMD_EXT2 #define CONFIG_CMD_FAT |