diff options
author | Lokesh Vutla | 2017-07-24 10:11:50 -0500 |
---|---|---|
committer | Jean-Jacques Hiblot | 2017-08-02 09:11:37 -0500 |
commit | 6448a4072f7ccd4608e7995c845f4d732313d52d (patch) | |
tree | 417c30fe47e1004b823cc9e8e71e88c2b530bf7b | |
parent | 04faefb0b0eabc22f3794e58e481c29bfb5fa9cb (diff) | |
download | infoadas-u-boot-6448a4072f7ccd4608e7995c845f4d732313d52d.tar.gz infoadas-u-boot-6448a4072f7ccd4608e7995c845f4d732313d52d.tar.xz infoadas-u-boot-6448a4072f7ccd4608e7995c845f4d732313d52d.zip |
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.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
-rw-r--r-- | arch/arm/cpu/armv7/omap5/hwinit.c | 16 | ||||
-rw-r--r-- | arch/arm/include/asm/omap_mmc.h | 1 | ||||
-rw-r--r-- | board/ti/dra7xx/evm.c | 13 |
3 files changed, 20 insertions, 10 deletions
diff --git a/arch/arm/cpu/armv7/omap5/hwinit.c b/arch/arm/cpu/armv7/omap5/hwinit.c index 839d79d10204..cd56067bdc8c 100644 --- a/arch/arm/cpu/armv7/omap5/hwinit.c +++ b/arch/arm/cpu/armv7/omap5/hwinit.c | |||
@@ -454,10 +454,14 @@ void v7_arch_cp15_set_acr(u32 acr, u32 cpu_midr, u32 cpu_rev_comb, | |||
454 | } | 454 | } |
455 | 455 | ||
456 | #if defined(CONFIG_PALMAS_POWER) | 456 | #if defined(CONFIG_PALMAS_POWER) |
457 | __weak void board_mmc_poweron_ldo(uint voltage) | ||
458 | { | ||
459 | palmas_mmc1_poweron_ldo(voltage); | ||
460 | } | ||
461 | |||
457 | void vmmc_pbias_config(uint voltage) | 462 | void vmmc_pbias_config(uint voltage) |
458 | { | 463 | { |
459 | u32 value = 0; | 464 | u32 value = 0; |
460 | struct vcores_data const *vcores = *omap_vcores; | ||
461 | 465 | ||
462 | value = readl((*ctrl)->control_pbias); | 466 | value = readl((*ctrl)->control_pbias); |
463 | value &= ~SDCARD_PWRDNZ; | 467 | value &= ~SDCARD_PWRDNZ; |
@@ -466,15 +470,7 @@ void vmmc_pbias_config(uint voltage) | |||
466 | value &= ~SDCARD_BIAS_PWRDNZ; | 470 | value &= ~SDCARD_BIAS_PWRDNZ; |
467 | writel(value, (*ctrl)->control_pbias); | 471 | writel(value, (*ctrl)->control_pbias); |
468 | 472 | ||
469 | if (vcores->core.pmic->i2c_slave_addr == 0x60) { | 473 | board_mmc_poweron_ldo(voltage); |
470 | if (voltage == LDO_VOLT_3V0) | ||
471 | voltage = 0x19; | ||
472 | else if (voltage == LDO_VOLT_1V8) | ||
473 | voltage = 0xa; | ||
474 | lp873x_mmc1_poweron_ldo(voltage); | ||
475 | } else { | ||
476 | palmas_mmc1_poweron_ldo(voltage); | ||
477 | } | ||
478 | 474 | ||
479 | value = readl((*ctrl)->control_pbias); | 475 | value = readl((*ctrl)->control_pbias); |
480 | value |= SDCARD_BIAS_PWRDNZ; | 476 | value |= SDCARD_BIAS_PWRDNZ; |
diff --git a/arch/arm/include/asm/omap_mmc.h b/arch/arm/include/asm/omap_mmc.h index 406010bbbe93..abfdc2ef4f64 100644 --- a/arch/arm/include/asm/omap_mmc.h +++ b/arch/arm/include/asm/omap_mmc.h | |||
@@ -229,4 +229,5 @@ int platform_fixup_disable_uhs_mode(void); | |||
229 | struct omap_hsmmc_pinctrl_state *platform_fixup_get_pinctrl_by_mode | 229 | struct omap_hsmmc_pinctrl_state *platform_fixup_get_pinctrl_by_mode |
230 | (struct hsmmc *base, const char *mode); | 230 | (struct hsmmc *base, const char *mode); |
231 | void vmmc_pbias_config(uint voltage); | 231 | void vmmc_pbias_config(uint voltage); |
232 | void board_mmc_poweron_ldo(uint voltage); | ||
232 | #endif /* OMAP_MMC_H_ */ | 233 | #endif /* OMAP_MMC_H_ */ |
diff --git a/board/ti/dra7xx/evm.c b/board/ti/dra7xx/evm.c index 39808474ccb4..558a7fdc2c9a 100644 --- a/board/ti/dra7xx/evm.c +++ b/board/ti/dra7xx/evm.c | |||
@@ -707,6 +707,19 @@ int board_mmc_init(bd_t *bis) | |||
707 | omap_mmc_init(1, 0, 0, -1, -1); | 707 | omap_mmc_init(1, 0, 0, -1, -1); |
708 | return 0; | 708 | return 0; |
709 | } | 709 | } |
710 | |||
711 | void board_mmc_poweron_ldo(uint voltage) | ||
712 | { | ||
713 | if (board_is_dra71x_evm()) { | ||
714 | if (voltage == LDO_VOLT_3V0) | ||
715 | voltage = 0x19; | ||
716 | else if (voltage == LDO_VOLT_1V8) | ||
717 | voltage = 0xa; | ||
718 | lp873x_mmc1_poweron_ldo(voltage); | ||
719 | } else { | ||
720 | palmas_mmc1_poweron_ldo(voltage); | ||
721 | } | ||
722 | } | ||
710 | #endif | 723 | #endif |
711 | 724 | ||
712 | #ifdef CONFIG_OMAP_HSMMC | 725 | #ifdef CONFIG_OMAP_HSMMC |