diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c
index e975abebc9a5fbd832a38980999e3d21d3bf44f5..161d38bf283d753d3b61efdfd86ca8450b4944ea 100644
--- a/common/cmd_dfu.c
+++ b/common/cmd_dfu.c
@@ -68,6 +68,7 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 	}
 exit:
 	g_dnl_unregister();
+	board_usb_cleanup(controller_index, USB_INIT_DEVICE);
 done:
 	dfu_free_entities();
 
diff --git a/common/usb.c b/common/usb.c
index bf76c4159341042a846efda075abe365c12f9833..d94640a99e866d168174be1f11e91428296ba196 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -1090,4 +1090,10 @@ int board_usb_init(int index, enum usb_init_type init)
 {
 	return 0;
 }
+
+__weak
+int board_usb_cleanup(int index, enum usb_init_type init)
+{
+	return 0;
+}
 /* EOF */