]> git.sur5r.net Git - u-boot/blobdiff - drivers/mmc/dw_mmc.c
usb: dwc3: Add DWC3 controller driver support
[u-boot] / drivers / mmc / dw_mmc.c
index 4c16e7f602ea7e1d98f94bf399da40d3b29febaa..53a8aca84b615e9a8e5e185ac4ad28f6fc00a841 100644 (file)
@@ -119,7 +119,7 @@ static int dwmci_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
 
        while (dwmci_readl(host, DWMCI_STATUS) & DWMCI_BUSY) {
                if (get_timer(start) > timeout) {
-                       printf("Timeout on data busy\n");
+                       printf("%s: Timeout on data busy\n", __func__);
                        return TIMEOUT;
                }
        }
@@ -178,15 +178,23 @@ static int dwmci_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
        }
 
        if (i == retry) {
-               printf("dwmci_send_cmd: timeout..\n");
+               printf("%s: Timeout.\n", __func__);
                return TIMEOUT;
        }
 
        if (mask & DWMCI_INTMSK_RTO) {
-               printf("dwmci_send_cmd: Response Timeout..\n");
+               /*
+                * Timeout here is not necessarily fatal. (e)MMC cards
+                * will splat here when they receive CMD55 as they do
+                * not support this command and that is exactly the way
+                * to tell them apart from SD cards. Thus, this output
+                * below shall be debug(). eMMC cards also do not favor
+                * CMD8, please keep that in mind.
+                */
+               debug("%s: Response Timeout.\n", __func__);
                return TIMEOUT;
        } else if (mask & DWMCI_INTMSK_RE) {
-               printf("dwmci_send_cmd: Response Error..\n");
+               printf("%s: Response Error.\n", __func__);
                return -1;
        }
 
@@ -206,7 +214,7 @@ static int dwmci_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
                do {
                        mask = dwmci_readl(host, DWMCI_RINTSTS);
                        if (mask & (DWMCI_DATA_ERR | DWMCI_DATA_TOUT)) {
-                               printf("dwmci_send_cmd: DATA ERROR!\n");
+                               printf("%s: DATA ERROR!\n", __func__);
                                return -1;
                        }
                } while (!(mask & DWMCI_INTMSK_DTO));
@@ -243,7 +251,7 @@ static int dwmci_setup_bus(struct dwmci_host *host, u32 freq)
        else if (host->bus_hz)
                sclk = host->bus_hz;
        else {
-               printf("dwmci_setup_bus: Didn't get source clock value..\n");
+               printf("%s: Didn't get source clock value.\n", __func__);
                return -EINVAL;
        }
 
@@ -262,7 +270,7 @@ static int dwmci_setup_bus(struct dwmci_host *host, u32 freq)
        do {
                status = dwmci_readl(host, DWMCI_CMD);
                if (timeout-- < 0) {
-                       printf("dwmci_setup_bus: timeout!\n");
+                       printf("%s: Timeout!\n", __func__);
                        return -ETIMEDOUT;
                }
        } while (status & DWMCI_CMD_START);
@@ -277,7 +285,7 @@ static int dwmci_setup_bus(struct dwmci_host *host, u32 freq)
        do {
                status = dwmci_readl(host, DWMCI_CMD);
                if (timeout-- < 0) {
-                       printf("dwmci_setup_bus: timeout!\n");
+                       printf("%s: Timeout!\n", __func__);
                        return -ETIMEDOUT;
                }
        } while (status & DWMCI_CMD_START);
@@ -310,10 +318,10 @@ static void dwmci_set_ios(struct mmc *mmc)
        dwmci_writel(host, DWMCI_CTYPE, ctype);
 
        regs = dwmci_readl(host, DWMCI_UHS_REG);
-       if (mmc->card_caps & MMC_MODE_DDR_52MHz)
+       if (mmc->ddr_mode)
                regs |= DWMCI_DDR_MODE;
        else
-               regs &= DWMCI_DDR_MODE;
+               regs &= ~DWMCI_DDR_MODE;
 
        dwmci_writel(host, DWMCI_UHS_REG, regs);
 
@@ -380,7 +388,7 @@ int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk)
                host->cfg.host_caps |= MMC_MODE_4BIT;
                host->cfg.host_caps &= ~MMC_MODE_8BIT;
        }
-       host->cfg.host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz | MMC_MODE_HC;
+       host->cfg.host_caps |= MMC_MODE_HS | MMC_MODE_HS_52MHz;
 
        host->cfg.b_max = CONFIG_SYS_MMC_MAX_BLK_COUNT;