diff mbox

mmc: omap_hsmmc: Add small delay after enabling power

Message ID 1410444665-24492-1-git-send-email-sr@denx.de (mailing list archive)
State New, archived
Headers show

Commit Message

Stefan Roese Sept. 11, 2014, 2:11 p.m. UTC
From: Thorsten Einsbein <thorsten.eisbein@head-acoustics.de>

On the TAO3530 (OMAP3530 based) we noticed that some SD cards are not
detected reliably upon bootup (timeout). Especially the SanDisk Ultra
8GiB seems to be problematic here. The SanDisk Extreme also has this
problem on this platform, but not that often. A Samsung 8 GiB type 6
doesn't show this problem at all.

This patch now adds a short delay after enabling the power on the slot.
With this delay all cards are detected reliably.

Signed-off-by: Thorsten Einsbein <thorsten.eisbein@head-acoustics.de>
Signed-off-by: Stefan Roese <sr@denx.de>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Balaji T K <balajitk@ti.com>
---
 drivers/mmc/host/omap_hsmmc.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Ulf Hansson Sept. 11, 2014, 2:15 p.m. UTC | #1
On 11 September 2014 16:11, Stefan Roese <sr@denx.de> wrote:
> From: Thorsten Einsbein <thorsten.eisbein@head-acoustics.de>
>
> On the TAO3530 (OMAP3530 based) we noticed that some SD cards are not
> detected reliably upon bootup (timeout). Especially the SanDisk Ultra
> 8GiB seems to be problematic here. The SanDisk Extreme also has this
> problem on this platform, but not that often. A Samsung 8 GiB type 6
> doesn't show this problem at all.
>
> This patch now adds a short delay after enabling the power on the slot.
> With this delay all cards are detected reliably.

Is this delay related to regulator ramp up/down time? Then I think it
maybe should be a part of the regulator code/DT.

Kind regards
Uffe

>
> Signed-off-by: Thorsten Einsbein <thorsten.eisbein@head-acoustics.de>
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Cc: Balaji T K <balajitk@ti.com>
> ---
>  drivers/mmc/host/omap_hsmmc.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 9656726..62ff0a7 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -335,6 +335,10 @@ static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on,
>                                 ret = mmc_regulator_set_ocr(host->mmc,
>                                                         host->vcc, 0);
>                 }
> +
> +               dev_dbg(host->dev, "omap_hsmmc_set_power: wait a little (slot %d)\n",
> +                       slot);
> +               msleep(5);
>         } else {
>                 /* Shut down the rail */
>                 if (host->vcc_aux)
> --
> 2.1.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stefan Roese Sept. 12, 2014, 7:26 a.m. UTC | #2
On 11.09.2014 16:15, Ulf Hansson wrote:
> On 11 September 2014 16:11, Stefan Roese <sr@denx.de> wrote:
>> From: Thorsten Einsbein <thorsten.eisbein@head-acoustics.de>
>>
>> On the TAO3530 (OMAP3530 based) we noticed that some SD cards are not
>> detected reliably upon bootup (timeout). Especially the SanDisk Ultra
>> 8GiB seems to be problematic here. The SanDisk Extreme also has this
>> problem on this platform, but not that often. A Samsung 8 GiB type 6
>> doesn't show this problem at all.
>>
>> This patch now adds a short delay after enabling the power on the slot.
>> With this delay all cards are detected reliably.
>
> Is this delay related to regulator ramp up/down time? Then I think it
> maybe should be a part of the regulator code/DT.

Thanks for this feedback. Yes, adding "regulator-enable-ramp-delay" to 
the regulator(s) solves this issue too. I wasn't aware of that one.

The patch can be dropped.

Thanks,
Stefan

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 9656726..62ff0a7 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -335,6 +335,10 @@  static int omap_hsmmc_set_power(struct device *dev, int slot, int power_on,
 				ret = mmc_regulator_set_ocr(host->mmc,
 							host->vcc, 0);
 		}
+
+		dev_dbg(host->dev, "omap_hsmmc_set_power: wait a little (slot %d)\n",
+			slot);
+		msleep(5);
 	} else {
 		/* Shut down the rail */
 		if (host->vcc_aux)