Date:2013-12-17 23:09:25 (9 years 9 months ago)
Author:Apelete Seketeli
Commit:f715ea4ba25eb4e18a5542e2f6fff43c28fc1c51
Message:usb: musb_gadget: use is_otg flag to set gadget peripheral mode on reset

Since jz4740 is not OTG compatible, rely on is_otg flag to set gadget
peripheral mode on reset instead of accessing devct register which
does not exists.

Signed-off-by: Apelete Seketeli <apelete@seketeli.net>
Files: drivers/usb/musb/musb_gadget.c (1 diff)

Change Details

drivers/usb/musb/musb_gadget.c
21152115    /* Normal reset, as B-Device;
21162116     * or else after HNP, as A-Device
21172117     */
2118#if defined(CONFIG_USB_MUSB_JZ4740) || defined(CONFIG_USB_MUSB_JZ4740_MODULE)
2119    /* JZ4740 UDC Controller is not OTG compatible and does not
2120     * have DEVCTL register in silicon: do not rely on devctl for
2121     * setting peripheral mode.
2122     */
2123    musb->xceiv->state = OTG_STATE_B_PERIPHERAL;
2124    musb->g.is_a_peripheral = 0;
2125#else
2126    if (devctl & MUSB_DEVCTL_BDEVICE) {
2118    if (!musb->g.is_otg) {
2119        /* JZ4740 UDC Controller is not OTG compatible, thus
2120         * does not have DEVCTL register in silicon: do not
2121         * rely on devctl for setting peripheral mode.
2122         */
2123        musb->xceiv->state = OTG_STATE_B_PERIPHERAL;
2124        musb->g.is_a_peripheral = 0;
2125    } else if (devctl & MUSB_DEVCTL_BDEVICE) {
21272126        musb->xceiv->state = OTG_STATE_B_PERIPHERAL;
21282127        musb->g.is_a_peripheral = 0;
21292128    } else {
21302129        musb->xceiv->state = OTG_STATE_A_PERIPHERAL;
21312130        musb->g.is_a_peripheral = 1;
21322131    }
2133#endif
2132
21342133
21352134    /* start with default limits on VBUS power draw */
21362135    (void) musb_gadget_vbus_draw(&musb->g, 8);

Archive Download the corresponding diff file



interactive