sunxi: musb: Use device-model for musb host mode
[oweals/u-boot.git] / drivers / usb / musb-new / musb_core.c
index da9357149bc6c9bb8a56fb5aba2d8de6f50de236..f530af4fb73c4e5cb41f84e4b15e1ae6ec0dee90 100644 (file)
@@ -89,7 +89,6 @@
  * Most of the conditional compilation will (someday) vanish.
  */
 
-#define __UBOOT__
 #ifndef __UBOOT__
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -927,10 +926,17 @@ b_host:
 /*
 * Program the HDRC to start (enable interrupts, dma, etc.).
 */
+#ifndef __UBOOT__
 void musb_start(struct musb *musb)
+#else
+int musb_start(struct musb *musb)
+#endif
 {
        void __iomem    *regs = musb->mregs;
        u8              devctl = musb_readb(regs, MUSB_DEVCTL);
+#ifdef __UBOOT__
+       int ret;
+#endif
 
        dev_dbg(musb->controller, "<== devctl %02x\n", devctl);
 
@@ -943,9 +949,7 @@ void musb_start(struct musb *musb)
 
        /* put into basic highspeed mode and start session */
        musb_writeb(regs, MUSB_POWER, MUSB_POWER_ISOUPDATE
-#ifdef CONFIG_USB_GADGET_DUALSPEED
                                                | MUSB_POWER_HSENAB
-#endif
                                                /* ENSUSPEND wedges tusb */
                                                /* | MUSB_POWER_ENSUSPEND */
                                                );
@@ -975,8 +979,21 @@ void musb_start(struct musb *musb)
                if ((devctl & MUSB_DEVCTL_VBUS) == MUSB_DEVCTL_VBUS)
                        musb->is_active = 1;
        }
+
+#ifndef __UBOOT__
        musb_platform_enable(musb);
+#else
+       ret = musb_platform_enable(musb);
+       if (ret) {
+               musb->is_active = 0;
+               return ret;
+       }
+#endif
        musb_writeb(regs, MUSB_DEVCTL, devctl);
+
+#ifdef __UBOOT__
+       return 0;
+#endif
 }
 
 
@@ -1311,9 +1328,7 @@ static int __devinit ep_config_from_table(struct musb *musb)
                break;
        }
 
-       printk(KERN_DEBUG "%s: setup fifo_mode %d\n",
-                       musb_driver_name, fifo_mode);
-
+       pr_debug("%s: setup fifo_mode %d\n", musb_driver_name, fifo_mode);
 
 done:
        offset = fifo_setup(musb, hw_ep, &ep0_cfg, 0);
@@ -1341,10 +1356,9 @@ done:
                musb->nr_endpoints = max(epn, musb->nr_endpoints);
        }
 
-       printk(KERN_DEBUG "%s: %d/%d max ep, %d/%d memory\n",
-                       musb_driver_name,
-                       n + 1, musb->config->num_eps * 2 - 1,
-                       offset, (1 << (musb->config->ram_bits + 2)));
+       pr_debug("%s: %d/%d max ep, %d/%d memory\n", musb_driver_name, n + 1,
+                musb->config->num_eps * 2 - 1, offset,
+                (1 << (musb->config->ram_bits + 2)));
 
        if (!musb->bulk_ep) {
                pr_debug("%s: missing bulk\n", musb_driver_name);
@@ -1447,8 +1461,7 @@ static int __devinit musb_core_init(u16 musb_type, struct musb *musb)
        if (reg & MUSB_CONFIGDATA_SOFTCONE)
                strcat(aInfo, ", SoftConn");
 
-       printk(KERN_DEBUG "%s: ConfigData=0x%02x (%s)\n",
-                       musb_driver_name, reg, aInfo);
+       pr_debug("%s:ConfigData=0x%02x (%s)\n", musb_driver_name, reg, aInfo);
 
        aDate[0] = 0;
        if (MUSB_CONTROLLER_MHDRC == musb_type) {
@@ -1469,8 +1482,8 @@ static int __devinit musb_core_init(u16 musb_type, struct musb *musb)
        snprintf(aRevision, 32, "%d.%d%s", MUSB_HWVERS_MAJOR(musb->hwvers),
                MUSB_HWVERS_MINOR(musb->hwvers),
                (musb->hwvers & MUSB_HWVERS_RC) ? "RC" : "");
-       printk(KERN_DEBUG "%s: %sHDRC RTL version %s %s\n",
-                       musb_driver_name, type, aRevision, aDate);
+       pr_debug("%s: %sHDRC RTL version %s %s\n", musb_driver_name, type,
+                aRevision, aDate);
 
        /* configure ep0 */
        musb_configure_ep0(musb);
@@ -2122,7 +2135,7 @@ musb_init_controller(struct musb_hdrc_platform_data *plat, struct device *dev,
 
        pm_runtime_put(musb->controller);
 
-       dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n",
+       pr_debug("USB %s mode controller at %p using %s, IRQ %d\n",
                        ({char *s;
                         switch (musb->board_mode) {
                         case MUSB_HOST:                s = "Host"; break;