diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap/omap4_twl6030_mmc.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/arch/arm/mach-omap/omap4_twl6030_mmc.c b/arch/arm/mach-omap/omap4_twl6030_mmc.c index 7d71eb868a..3d34a44631 100644 --- a/arch/arm/mach-omap/omap4_twl6030_mmc.c +++ b/arch/arm/mach-omap/omap4_twl6030_mmc.c @@ -16,7 +16,7 @@ #include <common.h> #include <io.h> -#include <mci/twl6030.h> +#include <mfd/twl6030.h> /* MMC voltage */ #define OMAP4_CONTROL_PBIASLITE 0x4A100600 @@ -24,6 +24,16 @@ #define OMAP4_MMC1_PBIASLITE_PWRDNZ (1<<22) #define OMAP4_MMC1_PWRDNZ (1<<26) +static void twl6030_mci_write(u8 address, u8 data) +{ + int ret; + struct twl6030 *twl6030 = twl6030_get(); + + ret = twl6030_reg_write(twl6030, address, data); + if (ret != 0) + printf("TWL6030 Write[0x%x] Error %d\n", address, ret); +} + void set_up_mmc_voltage_omap4(void) { u32 value; @@ -32,7 +42,11 @@ void set_up_mmc_voltage_omap4(void) value &= ~(OMAP4_MMC1_PBIASLITE_PWRDNZ | OMAP4_MMC1_PWRDNZ); writel(value, OMAP4_CONTROL_PBIASLITE); - twl6030_mci_power_init(); + twl6030_mci_write(TWL6030_PMCS_VMMC_CFG_VOLTAGE, + TWL6030_VMMC_VSEL_0 | TWL6030_VMMC_VSEL_2 | + TWL6030_VMMC_VSEL_4); + twl6030_mci_write(TWL6030_PMCS_VMMC_CFG_STATE, + TWL6030_VMMC_STATE0 | TWL6030_VMMC_GRP_APP); value = readl(OMAP4_CONTROL_PBIASLITE); value |= (OMAP4_MMC1_PBIASLITE_VMODE | OMAP4_MMC1_PBIASLITE_PWRDNZ | |