diff --git a/arch/arm/lib/board.c b/arch/arm/lib/board.c
index 109a1ac..431ef5b 100644
--- a/arch/arm/lib/board.c
+++ b/arch/arm/lib/board.c
@@ -513,6 +513,10 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	arch_early_init_r();
 #endif
 
+#ifdef CONFIG_POWER_INIT
+	power_board_init();
+#endif
+
 #if !defined(CONFIG_SYS_NO_FLASH)
 	puts("Flash: ");
 
diff --git a/include/common.h b/include/common.h
index a7fb05e..5cc859f 100644
--- a/include/common.h
+++ b/include/common.h
@@ -487,6 +487,9 @@ int board_late_init (void);
 int board_postclk_init (void); /* after clocks/timebase, before env/serial */
 int board_early_init_r (void);
 void board_poweroff (void);
+#ifdef CONFIG_POWER_INIT
+int power_board_init(void);
+#endif
 
 #if defined(CONFIG_SYS_DRAM_TEST)
 int testdram(void);
