Commit b1c1df7a7d50bf94de89704e963467bc94b1fef9
Committed by
Tony Lindgren
1 parent
e68273baf3
Exists in
master
and in
4 other branches
ARM: OMAP4: MMC: no regulator off during probe for eMMC
eMMC does not handle power off when not in sleep state, Skip regulator disable during probe when eMMC is not in known state - state left by bootloader. Resolves eMMC failure on OMAP4 mmc0: error -110 whilst initialising MMC card Signed-off-by: Balaji T K <balajitk@ti.com> Tested-by: Kishore Kadiyala <kishore.kadiyala@ti.com> Acked-by: Kishore Kadiyala <kishore.kadiyala@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Showing 5 changed files with 11 additions and 0 deletions Side-by-side Diff
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/hsmmc.c
arch/arm/mach-omap2/hsmmc.h
... | ... | @@ -18,6 +18,7 @@ |
18 | 18 | bool nonremovable; /* Nonremovable e.g. eMMC */ |
19 | 19 | bool power_saving; /* Try to sleep or power off when possible */ |
20 | 20 | bool no_off; /* power_saving and power is not to go off */ |
21 | + bool no_off_init; /* no power off when not in MMC sleep state */ | |
21 | 22 | bool vcc_aux_disable_is_sleep; /* Regulator off remapped to sleep */ |
22 | 23 | int gpio_cd; /* or -EINVAL */ |
23 | 24 | int gpio_wp; /* or -EINVAL */ |
arch/arm/plat-omap/include/plat/mmc.h
... | ... | @@ -101,6 +101,9 @@ |
101 | 101 | /* If using power_saving and the MMC power is not to go off */ |
102 | 102 | unsigned no_off:1; |
103 | 103 | |
104 | + /* eMMC does not handle power off when not in sleep state */ | |
105 | + unsigned no_regulator_off_init:1; | |
106 | + | |
104 | 107 | /* Regulator off remapped to sleep */ |
105 | 108 | unsigned vcc_aux_disable_is_sleep:1; |
106 | 109 |
drivers/mmc/host/omap_hsmmc.c
... | ... | @@ -435,6 +435,9 @@ |
435 | 435 | reg = regulator_get(host->dev, "vmmc_aux"); |
436 | 436 | host->vcc_aux = IS_ERR(reg) ? NULL : reg; |
437 | 437 | |
438 | + /* For eMMC do not power off when not in sleep state */ | |
439 | + if (mmc_slot(host).no_regulator_off_init) | |
440 | + return 0; | |
438 | 441 | /* |
439 | 442 | * UGLY HACK: workaround regulator framework bugs. |
440 | 443 | * When the bootloader leaves a supply active, it's |