diff options
Diffstat (limited to 'drivers/usb/musb/omap2430.c')
-rw-r--r-- | drivers/usb/musb/omap2430.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index ce6c162920f7..901dffdf23b1 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c | |||
@@ -58,10 +58,10 @@ static void musb_do_idle(unsigned long _musb) | |||
58 | #endif | 58 | #endif |
59 | u8 devctl; | 59 | u8 devctl; |
60 | 60 | ||
61 | devctl = musb_readb(musb->mregs, MUSB_DEVCTL); | ||
62 | |||
63 | spin_lock_irqsave(&musb->lock, flags); | 61 | spin_lock_irqsave(&musb->lock, flags); |
64 | 62 | ||
63 | devctl = musb_readb(musb->mregs, MUSB_DEVCTL); | ||
64 | |||
65 | switch (musb->xceiv.state) { | 65 | switch (musb->xceiv.state) { |
66 | case OTG_STATE_A_WAIT_BCON: | 66 | case OTG_STATE_A_WAIT_BCON: |
67 | devctl &= ~MUSB_DEVCTL_SESSION; | 67 | devctl &= ~MUSB_DEVCTL_SESSION; |
@@ -196,7 +196,7 @@ static int omap_set_power(struct otg_transceiver *x, unsigned mA) | |||
196 | 196 | ||
197 | static int musb_platform_resume(struct musb *musb); | 197 | static int musb_platform_resume(struct musb *musb); |
198 | 198 | ||
199 | void musb_platform_set_mode(struct musb *musb, u8 musb_mode) | 199 | int musb_platform_set_mode(struct musb *musb, u8 musb_mode) |
200 | { | 200 | { |
201 | u8 devctl = musb_readb(musb->mregs, MUSB_DEVCTL); | 201 | u8 devctl = musb_readb(musb->mregs, MUSB_DEVCTL); |
202 | 202 | ||
@@ -204,15 +204,24 @@ void musb_platform_set_mode(struct musb *musb, u8 musb_mode) | |||
204 | musb_writeb(musb->mregs, MUSB_DEVCTL, devctl); | 204 | musb_writeb(musb->mregs, MUSB_DEVCTL, devctl); |
205 | 205 | ||
206 | switch (musb_mode) { | 206 | switch (musb_mode) { |
207 | #ifdef CONFIG_USB_MUSB_HDRC_HCD | ||
207 | case MUSB_HOST: | 208 | case MUSB_HOST: |
208 | otg_set_host(&musb->xceiv, musb->xceiv.host); | 209 | otg_set_host(&musb->xceiv, musb->xceiv.host); |
209 | break; | 210 | break; |
211 | #endif | ||
212 | #ifdef CONFIG_USB_GADGET_MUSB_HDRC | ||
210 | case MUSB_PERIPHERAL: | 213 | case MUSB_PERIPHERAL: |
211 | otg_set_peripheral(&musb->xceiv, musb->xceiv.gadget); | 214 | otg_set_peripheral(&musb->xceiv, musb->xceiv.gadget); |
212 | break; | 215 | break; |
216 | #endif | ||
217 | #ifdef CONFIG_USB_MUSB_OTG | ||
213 | case MUSB_OTG: | 218 | case MUSB_OTG: |
214 | break; | 219 | break; |
220 | #endif | ||
221 | default: | ||
222 | return -EINVAL; | ||
215 | } | 223 | } |
224 | return 0; | ||
216 | } | 225 | } |
217 | 226 | ||
218 | int __init musb_platform_init(struct musb *musb) | 227 | int __init musb_platform_init(struct musb *musb) |