diff options
Diffstat (limited to 'drivers/mmc')
| -rw-r--r-- | drivers/mmc/omap_hsmmc.c | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c index 2400db2f3..2b1292957 100644 --- a/drivers/mmc/omap_hsmmc.c +++ b/drivers/mmc/omap_hsmmc.c @@ -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); |