mmc: atmel-mci: enable 8 bits buswidth support
authorNicolas Ferre <nicolas.ferre@microchip.com>
Tue, 29 Jan 2019 16:49:12 +0000 (17:49 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 25 Feb 2019 07:40:58 +0000 (08:40 +0100)
This patch adds support for 8-bit buswidth.
Relevant SDCR value modified.

Signed-off-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/atmel-mci.c

index 47189f9ed4e20bbb8d7b09a20f36c06c1a6ff14c..735aa5871358fc264f2ee819796e1aaab29ad3b7 100644 (file)
@@ -1410,6 +1410,9 @@ static void atmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
        case MMC_BUS_WIDTH_4:
                slot->sdc_reg |= ATMCI_SDCBUS_4BIT;
                break;
+       case MMC_BUS_WIDTH_8:
+               slot->sdc_reg |= ATMCI_SDCBUS_8BIT;
+               break;
        }
 
        if (ios->clock) {
@@ -2275,8 +2278,11 @@ static int atmci_init_slot(struct atmel_mci *host,
         * use only one bit for data to prevent fifo underruns and overruns
         * which will corrupt data.
         */
-       if ((slot_data->bus_width >= 4) && host->caps.has_rwproof)
+       if ((slot_data->bus_width >= 4) && host->caps.has_rwproof) {
                mmc->caps |= MMC_CAP_4_BIT_DATA;
+               if (slot_data->bus_width >= 8)
+                       mmc->caps |= MMC_CAP_8_BIT_DATA;
+       }
 
        if (atmci_get_version(host) < 0x200) {
                mmc->max_segs = 256;