summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYangbo Lu <yangbo.lu@freescale.com>2015-09-17 10:27:48 +0800
committerYork Sun <yorksun@freescale.com>2015-11-02 08:50:29 -0800
commitbf50be835ed1c0e2875ff7672381944eeab8695d (patch)
treee8885c6d6d420278b1b51293069ba4ffbc461080
parent12486f38419c54b36dc9b2707bc2912734e9fe2d (diff)
downloadu-boot-bf50be835ed1c0e2875ff7672381944eeab8695d.tar.gz
mmc: fsl_esdhc: enable EVDD automatic control for SD/MMC Legacy Adapter Card
When detecting SDHC Adapter Card Type 2(SD/MMC Legacy Adapter Card), enable EVDD automatic control via SDHC_VS. This could support SD card IO voltage switching for UHS-1 speed mode. Signed-off-by: Yangbo Lu <yangbo.lu@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
-rw-r--r--board/freescale/common/qixis.h3
-rw-r--r--drivers/mmc/fsl_esdhc.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/board/freescale/common/qixis.h b/board/freescale/common/qixis.h
index 450cd0ddbd..0aa56a090e 100644
--- a/board/freescale/common/qixis.h
+++ b/board/freescale/common/qixis.h
@@ -125,10 +125,13 @@ void qixis_write_i2c(unsigned int reg, u8 value);
#define QIXIS_ESDHC_ADAPTER_TYPE_MMC 0x5 /* MMC Card */
#define QIXIS_ESDHC_ADAPTER_TYPE_SD 0x6 /* SD Card Rev2.0 3.0 */
#define QIXIS_ESDHC_NO_ADAPTER 0x7 /* No Card is Present*/
+
#define QIXIS_SDCLKIN 0x08
#define QIXIS_SDCLKOUT 0x02
#define QIXIS_DAT5_6_7 0X02
#define QIXIS_DAT4 0X01
+
+#define QIXIS_EVDD_BY_SDHC_VS 0x0c
#endif
#endif
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 5c20627c1c..c5054d66bd 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -753,6 +753,9 @@ void mmc_adapter_card_type_ident(void)
QIXIS_WRITE(brdcfg[5], value);
break;
case QIXIS_ESDHC_ADAPTER_TYPE_SDMMC_LEGACY:
+ value = QIXIS_READ(pwr_ctl[1]);
+ value |= QIXIS_EVDD_BY_SDHC_VS;
+ QIXIS_WRITE(pwr_ctl[1], value);
break;
case QIXIS_ESDHC_ADAPTER_TYPE_EMMC44:
value = QIXIS_READ(brdcfg[5]);