diff --git a/drivers/mmc/omap3_mmc.c b/drivers/mmc/omap3_mmc.c index e90db7ee3..9e09434c1 100644 --- a/drivers/mmc/omap3_mmc.c +++ b/drivers/mmc/omap3_mmc.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -58,21 +59,11 @@ block_dev_desc_t *mmc_get_dev(int dev) return (block_dev_desc_t *) &mmc_blk_dev; } -void twl4030_mmc_config(void) -{ - unsigned char data; - - data = DEV_GRP_P1; - i2c_write(PWRMGT_ADDR_ID4, VMMC1_DEV_GRP, 1, &data, 1); - data = VMMC1_VSEL_30; - i2c_write(PWRMGT_ADDR_ID4, VMMC1_DEDICATED, 1, &data, 1); -} - unsigned char mmc_board_init(void) { t2_t *t2_base = (t2_t *)T2_BASE; - twl4030_mmc_config(); + twl4030_power_mmc_init(); writel(readl(&t2_base->pbias_lite) | PBIASLITEPWRDNZ1 | PBIASSPEEDCTRL0 | PBIASLITEPWRDNZ0, diff --git a/drivers/power/twl4030.c b/drivers/power/twl4030.c index c93b51f69..eb066cb58 100644 --- a/drivers/power/twl4030.c +++ b/drivers/power/twl4030.c @@ -98,3 +98,18 @@ void twl4030_power_init(void) TWL4030_PM_RECEIVER_VDAC_DEDICATED); } +#define VMMC1_VSEL_30 0x02 + +void twl4030_power_mmc_init(void) +{ + unsigned char byte; + + byte = DEV_GRP_P1; + twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, + TWL4030_PM_RECEIVER_VMMC1_DEV_GRP); + + /* 3 Volts */ + byte = VMMC1_VSEL_30; + twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte, + TWL4030_PM_RECEIVER_VMMC1_DEDICATED); +} diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index 3d9d72caf..809198b0f 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -127,6 +127,11 @@ #define CONFIG_SYS_I2C_BUS_SELECT 1 #define CONFIG_DRIVER_OMAP34XX_I2C 1 +/* + * TWL4030 + */ +#define CONFIG_TWL4030_POWER 1 + /* * Board NAND Info. */ diff --git a/include/twl4030.h b/include/twl4030.h index eb27ec5b2..f260ecb8b 100644 --- a/include/twl4030.h +++ b/include/twl4030.h @@ -390,6 +390,9 @@ static inline int twl4030_i2c_read_u8(u8 chip_no, u8 *val, u8 reg) void twl4030_power_reset_init(void); /* For initializing power device */ void twl4030_power_init(void); +/* For initializing mmc power */ +void twl4030_power_mmc_init(void); + /* * LED */