summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandeep Gopalpet <sandeep.kumar@freescale.com>2010-03-11 15:49:01 +0530
committerScott Sweeny <scott.sweeny@timesys.com>2010-11-10 14:52:25 -0500
commit6b1c00d651062e4dafb60fe1fb8a108899511036 (patch)
treed8de88659279f2f17abfd4a88894bf2192407dc4
parent815723fe9bc08aecb2e5aca1657d94604287f5b7 (diff)
eSDHC 1.8v erratum workaround for P1022 and P1020
On Rev 1.0 of P1022 and P1020 eSDHC controller can't work at 1.8v. To remove the capability of the controller, this work around has added to unset the 1.8v field in Host capabilities register. Signed-off-by: Huang Changming <R66093@freescale.com>
-rw-r--r--drivers/mmc/fsl_esdhc.c5
-rw-r--r--include/configs/P1_P2_RDB.h5
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 1cf17d650f..d5cc6bdb50 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2007, 2009 Freescale Semiconductor, Inc.
+ * Copyright 2007, 2009-2010 Freescale Semiconductor, Inc.
* Andy Fleming
*
* Based vaguely on the pxa mmc code:
@@ -407,8 +407,11 @@ static int esdhc_initialize(bd_t *bis)
caps = regs->hostcapblt;
+ /* 1.8V incorrectly set in hardware on P1020 & P1022 eSDHC */
+#ifndef ESDHC_ERRATUM_1_8V
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/P1_P2_RDB.h b/include/configs/P1_P2_RDB.h
index 0c2fc6eb56..741da82433 100644
--- a/include/configs/P1_P2_RDB.h
+++ b/include/configs/P1_P2_RDB.h
@@ -1,5 +1,5 @@
/*
- * Copyright 2009 Freescale Semiconductor, Inc.
+ * Copyright 2009-2010 Freescale Semiconductor, Inc.
*
* See file CREDITS for list of people who contributed to this
* project.
@@ -560,6 +560,9 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
#ifdef CONFIG_P2020
#define CONFIG_SYS_FSL_ESDHC_USE_PIO /* P2020 eSDHC DMA is not functional*/
#endif
+#ifdef CONFIG_P1020
+#define ESDHC_ERRATUM_1_8V 1 /* P1020 eSDHC is not functional with 1.8v */
+#endif
#endif
#define CONFIG_USB_EHCI