From 58475f4599ebd556d47d7f632a78f666d2dfcfd4 Mon Sep 17 00:00:00 2001 From: Andrey Panov Date: Sat, 17 Jan 2015 15:54:35 +0300 Subject: MMC: IMX: Reset MMC_BOOT register after controller reset. This helps with EMMC detection when booting from EMMC directly. Taken from u-boot. Signed-off-by: Andrey Panov Signed-off-by: Sascha Hauer --- drivers/mci/imx-esdhc.c | 3 +++ drivers/mci/sdhci.h | 1 + 2 files changed, 4 insertions(+) (limited to 'drivers/mci') diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c index 239cd375fa..23bdc1fb15 100644 --- a/drivers/mci/imx-esdhc.c +++ b/drivers/mci/imx-esdhc.c @@ -471,6 +471,9 @@ static int esdhc_init(struct mci_host *mci, struct device_d *dev) esdhc_write32(regs + SDHCI_CLOCK_CONTROL__TIMEOUT_CONTROL__SOFTWARE_RESET, SYSCTL_HCKEN | SYSCTL_IPGEN); + /* RSTA doesn't reset MMC_BOOT register, so manually reset it */ + esdhc_write32(regs + SDHCI_MMC_BOOT, 0); + /* Set the initial clock speed */ set_sysctl(mci, 400000); diff --git a/drivers/mci/sdhci.h b/drivers/mci/sdhci.h index b67818485b..82a692e732 100644 --- a/drivers/mci/sdhci.h +++ b/drivers/mci/sdhci.h @@ -18,6 +18,7 @@ #define SDHCI_SIGNAL_ENABLE 0x38 #define SDHCI_ACMD12_ERR__HOST_CONTROL2 0x3C #define SDHCI_CAPABILITIES 0x40 +#define SDHCI_MMC_BOOT 0xC4 #define COMMAND_CMD(x) ((x & 0x3f) << 24) #define COMMAND_CMDTYP_NORMAL 0x0 -- cgit v1.2.3