arm: omap5+: Add board specific ldo powering

It is not necessary all omap5+ based uses the same PMIC
to poweron mmc. So add support for enabling mmc based on board.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
Lokesh Vutla 2017-08-21 12:50:49 +05:30 committed by Tom Rini
parent bce2629887
commit 91d3e90668
3 changed files with 20 additions and 10 deletions

View file

@ -174,4 +174,5 @@ int omap_mmc_init(int dev_index, uint host_caps_mask, uint f_max, int cd_gpio,
int wp_gpio);
void vmmc_pbias_config(uint voltage);
void board_mmc_poweron_ldo(uint voltage);
#endif /* OMAP_MMC_H_ */

View file

@ -455,10 +455,14 @@ void v7_arch_cp15_set_acr(u32 acr, u32 cpu_midr, u32 cpu_rev_comb,
}
#if defined(CONFIG_PALMAS_POWER)
__weak void board_mmc_poweron_ldo(uint voltage)
{
palmas_mmc1_poweron_ldo(voltage);
}
void vmmc_pbias_config(uint voltage)
{
u32 value = 0;
struct vcores_data const *vcores = *omap_vcores;
value = readl((*ctrl)->control_pbias);
value &= ~SDCARD_PWRDNZ;
@ -467,15 +471,7 @@ void vmmc_pbias_config(uint voltage)
value &= ~SDCARD_BIAS_PWRDNZ;
writel(value, (*ctrl)->control_pbias);
if (vcores->core.pmic->i2c_slave_addr == 0x60) {
if (voltage == LDO_VOLT_3V0)
voltage = 0x19;
else if (voltage == LDO_VOLT_1V8)
voltage = 0xa;
lp873x_mmc1_poweron_ldo(voltage);
} else {
palmas_mmc1_poweron_ldo(voltage);
}
board_mmc_poweron_ldo(voltage);
value = readl((*ctrl)->control_pbias);
value |= SDCARD_BIAS_PWRDNZ;

View file

@ -710,6 +710,19 @@ int board_mmc_init(bd_t *bis)
omap_mmc_init(1, 0, 0, -1, -1);
return 0;
}
void board_mmc_poweron_ldo(uint voltage)
{
if (board_is_dra71x_evm()) {
if (voltage == LDO_VOLT_3V0)
voltage = 0x19;
else if (voltage == LDO_VOLT_1V8)
voltage = 0xa;
lp873x_mmc1_poweron_ldo(voltage);
} else {
palmas_mmc1_poweron_ldo(voltage);
}
}
#endif
#ifdef CONFIG_USB_DWC3