diff --git a/drivers/usb/musb-new/omap2430.c b/drivers/usb/musb-new/omap2430.c
index 7d15b94..0d1fb03 100644
--- a/drivers/usb/musb-new/omap2430.c
+++ b/drivers/usb/musb-new/omap2430.c
@@ -214,37 +214,35 @@
 
 static int omap2430_musb_probe(struct udevice *dev)
 {
-#ifdef CONFIG_USB_MUSB_HOST
-	struct musb_host_data *host = dev_get_priv(dev);
-#else
-	struct musb *musbp;
-#endif
 	struct omap2430_musb_plat *plat = dev_get_plat(dev);
-	struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
 	struct omap_musb_board_data *otg_board_data;
 	int ret = 0;
 	void *base = dev_read_addr_ptr(dev);
-
-	priv->desc_before_addr = true;
+	struct musb *musbp;
 
 	otg_board_data = &plat->otg_board_data;
 
-#ifdef CONFIG_USB_MUSB_HOST
-	host->host = musb_init_controller(&plat->plat,
-					  (struct device *)otg_board_data,
-					  plat->base);
-	if (!host->host) {
-		return -EIO;
+	if (CONFIG_IS_ENABLED(USB_MUSB_HOST)) {
+		struct musb_host_data *host = dev_get_priv(dev);
+		struct usb_bus_priv *priv = dev_get_uclass_priv(dev);
+
+		priv->desc_before_addr = true;
+
+		host->host = musb_init_controller(&plat->plat,
+						  (struct device *)otg_board_data,
+						  plat->base);
+		if (!host->host)
+			return -EIO;
+
+		return musb_lowlevel_init(host);
 	}
 
-	ret = musb_lowlevel_init(host);
-#else
 	musbp = musb_register(&plat->plat, (struct device *)otg_board_data,
 			      plat->base);
 	if (IS_ERR_OR_NULL(musbp))
 		return -EINVAL;
-#endif
-	return ret;
+
+	return 0;
 }
 
 static int omap2430_musb_remove(struct udevice *dev)
