#include <mmc.h>
 #include <part.h>
 #include <i2c.h>
+#include <twl4030.h>
 #include <asm/io.h>
 #include <asm/arch/mmc.h>
 
        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,
 
                             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);
+}
 
 #define CONFIG_SYS_I2C_BUS_SELECT      1
 #define CONFIG_DRIVER_OMAP34XX_I2C     1
 
+/*
+ * TWL4030
+ */
+#define CONFIG_TWL4030_POWER           1
+
 /*
  * Board NAND Info.
  */
 
 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
  */