diff mbox

[U-Boot,v2,4/4] mmc: fsl_esdhc: enable EVDD automatic control for SD/MMC Legacy Adapter Card

Message ID 1442456868-1344-1-git-send-email-yangbo.lu@freescale.com
State Accepted, archived
Delegated to: York Sun
Headers show

Commit Message

Yangbo Lu Sept. 17, 2015, 2:27 a.m. UTC
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>
---
 board/freescale/common/qixis.h | 3 +++
 drivers/mmc/fsl_esdhc.c        | 3 +++
 2 files changed, 6 insertions(+)

Comments

York Sun Nov. 2, 2015, 9:02 p.m. UTC | #1
On 09/16/2015 07:27 PM, Yangbo Lu wrote:
> 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>
> ---

Applied to u-boot-mpc85xx, awaiting upstream. Thanks.

York
diff mbox

Patch

diff --git a/board/freescale/common/qixis.h b/board/freescale/common/qixis.h
index 450cd0d..0aa56a0 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 639ec02..f400dc9 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -752,6 +752,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]);