Skip to contentSkip to conversation

mmc: omap: follow TRM procedure to power on cards

PATCH New Grazvydas Ignotas 2 participants 4 messages Mar 19, 2012 MMC, SD and SDIO

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mmc: omap: follow TRM procedure to power on cards

According to OMAP3 TRM, PBIASLITEPWRDNZ bits must be cleared while MMC power supply is being enabled and is ramping up (those bits might be left set by the previous bootloader). It doesn't say what happens if this procedure is violated, but better not to risk here and do things as required.

---
 drivers/mmc/omap_hsmmc.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)
drivers/mmc/omap_hsmmc.c +11 -5
index 12ff0a2..e9e1d2a 100644
@@ -62,15 +62,21 @@ static void omap4_vmmc_pbias_config(struct mmc *mmc)
 
 unsigned char mmc_board_init(struct mmc *mmc)
 {
-#if defined(CONFIG_TWL4030_POWER)
-	twl4030_power_mmc_init();
-#endif
-
 #if defined(CONFIG_OMAP34XX)
 	t2_t *t2_base = (t2_t *)T2_BASE;
 	struct prcm *prcm_base = (struct prcm *)PRCM_BASE;
+	u32 pbias_lite;
 
-	writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 |
+	pbias_lite = readl(&t2_base->pbias_lite);
+	pbias_lite &= ~(PBIASLITEPWRDNZ1 | PBIASLITEPWRDNZ0);
+	writel(pbias_lite, &t2_base->pbias_lite);
+#endif
+#if defined(CONFIG_TWL4030_POWER)
+	twl4030_power_mmc_init();
+	mdelay(100);	/* ramp-up delay from Linux code */
+#endif
+#if defined(CONFIG_OMAP34XX)
+	writel(pbias_lite | PBIASLITEPWRDNZ1 |
 		PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0,
 		&t2_base->pbias_lite);
 
Signature · 1 line
1.7.0.4
#1 lore raw

PATCH 1/1 mmc: omap: follow TRM procedure to power on cards

Quoted 5 lines · Grazvydas Ignotas

According to OMAP3 TRM, PBIASLITEPWRDNZ bits must be cleared while MMC power supply is being enabled and is ramping up (those bits might be left set by the previous bootloader). It doesn't say what happens if this procedure is violated, but better not to risk here and do things as required.

While in favor of correctness (and putting / moving up reconciling Linux and U-Boot omap MMC drivers on my TODO list), does this help with the problem you had reported before? Thanks!

Signature · 1 line
Tom
#2 lore raw

PATCH 1/1 mmc: omap: follow TRM procedure to power on cards

Quoted 9 lines · Tom Rini
Quoted 6 lines · Grazvydas Ignotas

According to OMAP3 TRM, PBIASLITEPWRDNZ bits must be cleared while MMC power supply is being enabled and is ramping up (those bits might be left set by the previous bootloader). It doesn't say what happens if this procedure is violated, but better not to risk here and do things as required.

Quoted 3 lines

While in favor of correctness (and putting / moving up reconciling Linux and U-Boot omap MMC drivers on my TODO list), does this help with the problem you had reported before? ?Thanks!

Unfortunately not, but I'm still looking for a cause and might have some more similar patches.

Signature · 1 line
Gra?vydas
#3 lore raw

PATCH 1/1 mmc: omap: follow TRM procedure to power on cards

In reply to Grazvydas Ignotas
Quoted 7 lines · Grazvydas Ignotas

According to OMAP3 TRM, PBIASLITEPWRDNZ bits must be cleared while MMC power supply is being enabled and is ramping up (those bits might be left set by the previous bootloader). It doesn't say what happens if this procedure is violated, but better not to risk here and do things as required.

Andy, please take this via your tree, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20120319/98fde4bf/attachment.pgp>