diff --git a/arch/microblaze/include/asm/processor.h b/arch/microblaze/include/asm/processor.h
index a2a58117b8b1c0832640a0de853bd22f9dd287d5..5afc8f9e5a84bbf7eca23d8d518a8b440e64d678 100644
--- a/arch/microblaze/include/asm/processor.h
+++ b/arch/microblaze/include/asm/processor.h
@@ -16,7 +16,6 @@ extern char __text_start[];
 void board_init(void);
 
 /* Watchdog functions */
-extern int hw_watchdog_init(void);
 extern void hw_watchdog_disable(void);
 
 #endif /* __ASM_MICROBLAZE_PROCESSOR_H */
diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c
index f7182f27e9d9d28b834afb76eb8ca5d4b5d5e107..896e73a762fdf66f95571d88e6cbb0d6b98561e6 100644
--- a/arch/microblaze/lib/board.c
+++ b/arch/microblaze/lib/board.c
@@ -46,9 +46,6 @@ init_fnc_t *init_sequence[] = {
 	serial_init,
 	console_init_f,
 	interrupts_init,
-#ifdef CONFIG_XILINX_TB_WATCHDOG
-	hw_watchdog_init,
-#endif
 	timer_init,
 	NULL,
 };
@@ -97,6 +94,9 @@ void board_init_f(ulong not_used)
 
 	serial_initialize();
 
+#ifdef CONFIG_XILINX_TB_WATCHDOG
+	hw_watchdog_init();
+#endif
 	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
 		WATCHDOG_RESET();
 		if ((*init_fnc_ptr) () != 0)
diff --git a/drivers/watchdog/xilinx_tb_wdt.c b/drivers/watchdog/xilinx_tb_wdt.c
index 4e46e4cef785637e7426915eb54638a0c07c0520..6336c9488345bdf8879a3be98152ffaf4751bd6b 100644
--- a/drivers/watchdog/xilinx_tb_wdt.c
+++ b/drivers/watchdog/xilinx_tb_wdt.c
@@ -54,7 +54,7 @@ static void hw_watchdog_isr(void *arg)
 	hw_watchdog_reset();
 }
 
-int hw_watchdog_init(void)
+void hw_watchdog_init(void)
 {
 	int ret;
 
@@ -65,7 +65,5 @@ int hw_watchdog_init(void)
 	ret = install_interrupt_handler(CONFIG_WATCHDOG_IRQ,
 						hw_watchdog_isr, NULL);
 	if (ret)
-		return 1;
-
-	return 0;
+		puts("Watchdog IRQ registration failed.");
 }