mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
ARM: OMAP4+: Add support for getting pbias info from board
Palmas driver assumes it is always TPS659xx regulator on all DRA7xx based boards to enable mmc regulator. This is not true always like in case of DRA71x-evm. So get this information based on the board. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com> Signed-off-by: Vignesh R <vigneshr@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> [trini: Delete omap4_vmmc_pbias_config from omap_hsmmc.c] Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
f56e635099
commit
b4b060066f
6 changed files with 82 additions and 48 deletions
|
@ -96,44 +96,6 @@ static int omap_mmc_setup_gpio_in(int gpio, const char *label)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OMAP44XX)
|
||||
static void omap4_vmmc_pbias_config(struct mmc *mmc)
|
||||
{
|
||||
u32 value = 0;
|
||||
|
||||
value = readl((*ctrl)->control_pbiaslite);
|
||||
value &= ~(MMC1_PBIASLITE_PWRDNZ | MMC1_PWRDNZ);
|
||||
writel(value, (*ctrl)->control_pbiaslite);
|
||||
value = readl((*ctrl)->control_pbiaslite);
|
||||
value |= MMC1_PBIASLITE_VMODE | MMC1_PBIASLITE_PWRDNZ | MMC1_PWRDNZ;
|
||||
writel(value, (*ctrl)->control_pbiaslite);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OMAP54XX) && defined(CONFIG_PALMAS_POWER)
|
||||
static void omap5_pbias_config(struct mmc *mmc)
|
||||
{
|
||||
u32 value = 0;
|
||||
|
||||
value = readl((*ctrl)->control_pbias);
|
||||
value &= ~SDCARD_PWRDNZ;
|
||||
writel(value, (*ctrl)->control_pbias);
|
||||
udelay(10); /* wait 10 us */
|
||||
value &= ~SDCARD_BIAS_PWRDNZ;
|
||||
writel(value, (*ctrl)->control_pbias);
|
||||
|
||||
palmas_mmc1_poweron_ldo();
|
||||
|
||||
value = readl((*ctrl)->control_pbias);
|
||||
value |= SDCARD_BIAS_PWRDNZ;
|
||||
writel(value, (*ctrl)->control_pbias);
|
||||
udelay(150); /* wait 150 us */
|
||||
value |= SDCARD_PWRDNZ;
|
||||
writel(value, (*ctrl)->control_pbias);
|
||||
udelay(150); /* wait 150 us */
|
||||
}
|
||||
#endif
|
||||
|
||||
static unsigned char mmc_board_init(struct mmc *mmc)
|
||||
{
|
||||
#if defined(CONFIG_OMAP34XX)
|
||||
|
@ -173,14 +135,10 @@ static unsigned char mmc_board_init(struct mmc *mmc)
|
|||
&prcm_base->iclken1_core);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_OMAP44XX)
|
||||
#if defined(CONFIG_OMAP54XX) || defined(CONFIG_OMAP44XX)
|
||||
/* PBIAS config needed for MMC1 only */
|
||||
if (mmc->block_dev.devnum == 0)
|
||||
omap4_vmmc_pbias_config(mmc);
|
||||
#endif
|
||||
#if defined(CONFIG_OMAP54XX) && defined(CONFIG_PALMAS_POWER)
|
||||
if (mmc->block_dev.devnum == 0)
|
||||
omap5_pbias_config(mmc);
|
||||
vmmc_pbias_config(LDO_VOLT_3V0);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@ -214,7 +172,6 @@ void mmc_init_stream(struct hsmmc *mmc_base)
|
|||
writel(readl(&mmc_base->con) & ~INIT_INITSTREAM, &mmc_base->con);
|
||||
}
|
||||
|
||||
|
||||
static int omap_hsmmc_init_setup(struct mmc *mmc)
|
||||
{
|
||||
struct hsmmc *mmc_base;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue