diff --git a/board/gumstix/duovero/duovero.c b/board/gumstix/duovero/duovero.c
index 81d6c822191ae4add2840d6c57d27d06f032a6cb..1fb6b5db4eb6c0bf74f5051c1614544d7dec7a6c 100644
--- a/board/gumstix/duovero/duovero.c
+++ b/board/gumstix/duovero/duovero.c
@@ -115,8 +115,12 @@ int board_mmc_init(bd_t *bis)
 {
 	return omap_mmc_init(0, 0, 0, -1, -1);
 }
-#endif
 
+void board_mmc_power_init(void)
+{
+	twl6030_power_mmc_init(0);
+}
+#endif
 
 #if defined(CONFIG_CMD_NET)
 
diff --git a/board/ti/panda/panda.c b/board/ti/panda/panda.c
index eb9ce630dceb7eabc4bddf24910acaa61d28d761..959a23f749b82e484d3bbb34898da1da2a880457 100644
--- a/board/ti/panda/panda.c
+++ b/board/ti/panda/panda.c
@@ -11,6 +11,7 @@
 #include <asm/arch/clock.h>
 #include <asm/arch/gpio.h>
 #include <asm/gpio.h>
+#include <twl6030.h>
 
 #include "panda_mux_data.h"
 
@@ -291,6 +292,11 @@ int board_mmc_init(bd_t *bis)
 {
 	return omap_mmc_init(0, 0, 0, -1, -1);
 }
+
+void board_mmc_power_init(void)
+{
+	twl6030_power_mmc_init(0);
+}
 #endif
 
 #ifdef CONFIG_USB_EHCI
diff --git a/board/ti/sdp4430/sdp.c b/board/ti/sdp4430/sdp.c
index 1e9ef9e38b0d685c23bbbd89f2d42253fab5b54e..c45674509b15af7886c1277980c005b3a01dd373 100644
--- a/board/ti/sdp4430/sdp.c
+++ b/board/ti/sdp4430/sdp.c
@@ -80,6 +80,12 @@ int board_mmc_init(bd_t *bis)
 	omap_mmc_init(1, 0, 0, -1, -1);
 	return 0;
 }
+
+void board_mmc_power_init(void)
+{
+	twl6030_power_mmc_init(0);
+	twl6030_power_mmc_init(1);
+}
 #endif
 
 /*
diff --git a/drivers/mmc/omap_hsmmc.c b/drivers/mmc/omap_hsmmc.c
index 7ee8283ae2dcc20a2ff4ed45de9d34729ce4bd60..afe0b0646d352ef348fe564908ff1c4f8b0e164c 100644
--- a/drivers/mmc/omap_hsmmc.c
+++ b/drivers/mmc/omap_hsmmc.c
@@ -96,7 +96,7 @@ static int omap_mmc_setup_gpio_in(int gpio, const char *label)
 }
 #endif
 
-#if defined(CONFIG_OMAP44XX) && defined(CONFIG_TWL6030_POWER)
+#if defined(CONFIG_OMAP44XX)
 static void omap4_vmmc_pbias_config(struct mmc *mmc)
 {
 	u32 value = 0;
@@ -104,8 +104,6 @@ static void omap4_vmmc_pbias_config(struct mmc *mmc)
 	value = readl((*ctrl)->control_pbiaslite);
 	value &= ~(MMC1_PBIASLITE_PWRDNZ | MMC1_PWRDNZ);
 	writel(value, (*ctrl)->control_pbiaslite);
-	twl6030_power_mmc_init(0);
-	twl6030_power_mmc_init(1);
 	value = readl((*ctrl)->control_pbiaslite);
 	value |= MMC1_PBIASLITE_VMODE | MMC1_PBIASLITE_PWRDNZ | MMC1_PWRDNZ;
 	writel(value, (*ctrl)->control_pbiaslite);
@@ -175,7 +173,7 @@ static unsigned char mmc_board_init(struct mmc *mmc)
 		&prcm_base->iclken1_core);
 #endif
 
-#if defined(CONFIG_OMAP44XX) && defined(CONFIG_TWL6030_POWER)
+#if defined(CONFIG_OMAP44XX)
 	/* PBIAS config needed for MMC1 only */
 	if (mmc->block_dev.devnum == 0)
 		omap4_vmmc_pbias_config(mmc);