summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/musb_gadget.c
diff options
context:
space:
mode:
authorBin Liu <b-liu@ti.com>2013-09-17 19:43:13 +0200
committerFelipe Balbi <balbi@ti.com>2013-09-17 19:51:32 +0200
commit1374a430f81a67c5c594c3f3c84c58845ed7caec (patch)
tree7b09aa08a9d619434c53e1b20b86fe32e2540587 /drivers/usb/musb/musb_gadget.c
parentusb: s3c-hsotg: do not disconnect gadget when receiving ErlySusp intr (diff)
downloadlinux-1374a430f81a67c5c594c3f3c84c58845ed7caec.tar.xz
linux-1374a430f81a67c5c594c3f3c84c58845ed7caec.zip
usb: musb: fix otg default state
Right after the musb_hdrc driver is loaded, the otg default state is a_idle, and Mode=Host, which are set by musb_host_setup(). This causes the following kernel message during musb gadget enumeration. CAUTION: musb: Babble Interrupt Occurred This patch sets the otg default state to b_idle, and its Mode to Peripheral. It has been validated on TI AM335x GP EVM USB0 port with g_zero. Signed-off-by: Bin Liu <b-liu@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb/musb_gadget.c')
-rw-r--r--drivers/usb/musb/musb_gadget.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
index 9a08679d204d..58c029f1e74c 100644
--- a/drivers/usb/musb/musb_gadget.c
+++ b/drivers/usb/musb/musb_gadget.c
@@ -1790,6 +1790,10 @@ int musb_gadget_setup(struct musb *musb)
musb->g.max_speed = USB_SPEED_HIGH;
musb->g.speed = USB_SPEED_UNKNOWN;
+ MUSB_DEV_MODE(musb);
+ musb->xceiv->otg->default_a = 0;
+ musb->xceiv->state = OTG_STATE_B_IDLE;
+
/* this "gadget" abstracts/virtualizes the controller */
musb->g.name = musb_driver_name;
musb->g.is_otg = 1;