summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb-new/am35x.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2015-06-17 21:33:54 +0200
committerSimon Glass <sjg@chromium.org>2015-07-21 17:39:37 -0600
commit15837236386191f2a26706b5ee56cdb4ab28e6d5 (patch)
treedd84bb180cbecfe09bbab7bd1950ba7d87485a1b /drivers/usb/musb-new/am35x.c
parentfd1bd21bf07d0770bff7b477d501b706dac9987d (diff)
downloadtalos-obmc-uboot-15837236386191f2a26706b5ee56cdb4ab28e6d5.tar.gz
talos-obmc-uboot-15837236386191f2a26706b5ee56cdb4ab28e6d5.zip
musb: Allow musb_platform_enable to return an error code
Allow musb_platform_enable to return an error code and propagate it up to usb_lowlevel_init(). This allows moving the checks for an external vbus being present to be moved from platform_init to platform_enable, so that the user can unplug a charger, plug in a host adapter with a usb-device, do a "usb reset" and have things working. This also allows adding a check for the id-pin to platform_enable, so that it can short circuit the 1s delay in usb_lowlevel_init() when no host cable is plugged in and thus waiting for a device to show up is useless. Note that all the changes to code shared with the kernel are wrapped in the kernel. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/usb/musb-new/am35x.c')
-rw-r--r--drivers/usb/musb-new/am35x.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/musb-new/am35x.c b/drivers/usb/musb-new/am35x.c
index 857d7eb0cc..d158454a08 100644
--- a/drivers/usb/musb-new/am35x.c
+++ b/drivers/usb/musb-new/am35x.c
@@ -100,7 +100,11 @@ struct am35x_glue {
/*
* am35x_musb_enable - enable interrupts
*/
+#ifndef __UBOOT__
static void am35x_musb_enable(struct musb *musb)
+#else
+static int am35x_musb_enable(struct musb *musb)
+#endif
{
void __iomem *reg_base = musb->ctrl_base;
u32 epmask;
@@ -116,6 +120,9 @@ static void am35x_musb_enable(struct musb *musb)
if (is_otg_enabled(musb))
musb_writel(reg_base, CORE_INTR_SRC_SET_REG,
AM35X_INTR_DRVVBUS << AM35X_INTR_USB_SHIFT);
+#ifdef __UBOOT__
+ return 0;
+#endif
}
/*
OpenPOWER on IntegriCloud