Skip to content
Snippets Groups Projects
Commit fbf1b08a authored by Paul Kocialkowski's avatar Paul Kocialkowski Committed by Tom Rini
Browse files

omap_hsmmc: Board-specific TWL6030 MMC power initialization


Boards using the TWL6030 regulator may not all use the LDOs the same way.
Some might also not use MMC1 at all, so VMMC would't have to be enabled.

This delegates TWL6030 MMC power initializations to board-specific functions,
that may still call twl6030_power_mmc_init for the default behavior.

Signed-off-by: default avatarPaul Kocialkowski <contact@paulk.fr>
parent a85362fb
No related branches found
No related tags found
No related merge requests found
......@@ -115,8 +115,12 @@ int board_mmc_init(bd_t *bis)
{
return omap_mmc_init(0, 0, 0, -1, -1);
}
#endif
void board_mmc_power_init(void)
{
twl6030_power_mmc_init(0);
}
#endif
#if defined(CONFIG_CMD_NET)
......
......@@ -11,6 +11,7 @@
#include <asm/arch/clock.h>
#include <asm/arch/gpio.h>
#include <asm/gpio.h>
#include <twl6030.h>
#include "panda_mux_data.h"
......@@ -291,6 +292,11 @@ int board_mmc_init(bd_t *bis)
{
return omap_mmc_init(0, 0, 0, -1, -1);
}
void board_mmc_power_init(void)
{
twl6030_power_mmc_init(0);
}
#endif
#ifdef CONFIG_USB_EHCI
......
......@@ -80,6 +80,12 @@ int board_mmc_init(bd_t *bis)
omap_mmc_init(1, 0, 0, -1, -1);
return 0;
}
void board_mmc_power_init(void)
{
twl6030_power_mmc_init(0);
twl6030_power_mmc_init(1);
}
#endif
/*
......
......@@ -96,7 +96,7 @@ static int omap_mmc_setup_gpio_in(int gpio, const char *label)
}
#endif
#if defined(CONFIG_OMAP44XX) && defined(CONFIG_TWL6030_POWER)
#if defined(CONFIG_OMAP44XX)
static void omap4_vmmc_pbias_config(struct mmc *mmc)
{
u32 value = 0;
......@@ -104,8 +104,6 @@ static void omap4_vmmc_pbias_config(struct mmc *mmc)
value = readl((*ctrl)->control_pbiaslite);
value &= ~(MMC1_PBIASLITE_PWRDNZ | MMC1_PWRDNZ);
writel(value, (*ctrl)->control_pbiaslite);
twl6030_power_mmc_init(0);
twl6030_power_mmc_init(1);
value = readl((*ctrl)->control_pbiaslite);
value |= MMC1_PBIASLITE_VMODE | MMC1_PBIASLITE_PWRDNZ | MMC1_PWRDNZ;
writel(value, (*ctrl)->control_pbiaslite);
......@@ -175,7 +173,7 @@ static unsigned char mmc_board_init(struct mmc *mmc)
&prcm_base->iclken1_core);
#endif
#if defined(CONFIG_OMAP44XX) && defined(CONFIG_TWL6030_POWER)
#if defined(CONFIG_OMAP44XX)
/* PBIAS config needed for MMC1 only */
if (mmc->block_dev.devnum == 0)
omap4_vmmc_pbias_config(mmc);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment