MMC: atmel_mci: enable high speed mode support
authorBo Shen <voice.shen@atmel.com>
Thu, 31 Jul 2014 06:39:32 +0000 (14:39 +0800)
committerPantelis Antoniou <panto@antoniou-consulting.com>
Fri, 1 Aug 2014 17:01:33 +0000 (20:01 +0300)
If the MCI IP version >= 0x300, it supports hight speed mode
option, this patch enable it.

Signed-off-by: Bo Shen <voice.shen@atmel.com>
Acked-by: Pantelis Antoniou <panto@antoniou-consulting.com>
drivers/mmc/gen_atmel_mci.c

index 8778a4d81283ceff7ca0ace5bc3f2d801976449b..45bcffb6b2060a7410336cb2e2dec44f47d52767 100644 (file)
@@ -110,6 +110,9 @@ static void mci_set_mode(struct mmc *mmc, u32 hz, u32 blklen)
        if (version >= 0x200)
                writel(MMCI_BF(BLKLEN, blklen), &mci->blkr);
 
+       if (mmc->card_caps & mmc->cfg->host_caps & MMC_MODE_HS)
+               writel(MMCI_BIT(HSMODE), &mci->cfg);
+
        initialized = 1;
 }
 
@@ -404,8 +407,10 @@ int atmel_mci_init(void *regs)
        /* need to be able to pass these in on a board by board basis */
        cfg->voltages = MMC_VDD_32_33 | MMC_VDD_33_34;
        version = atmel_mci_get_version(mci);
-       if ((version & 0xf00) >= 0x300)
+       if ((version & 0xf00) >= 0x300) {
                cfg->host_caps = MMC_MODE_8BIT;
+               cfg->host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
+       }
 
        cfg->host_caps |= MMC_MODE_4BIT;