• Home
  • Raw
  • Download

Lines Matching refs:musb

32 	struct platform_device	*musb;  member
34 #define glue_to_musb(g) platform_get_drvdata(g->musb)
41 struct musb *musb = hw_ep->musb; in musb_write_fifo() local
50 dev_dbg(musb->controller, "TX ep%d fifo %p count %d buf %p, epio %p\n", in musb_write_fifo()
105 struct musb *musb = hw_ep->musb; in musb_read_fifo() local
162 dev_dbg(musb->controller, "%cX ep%d fifo %p count %d buf %p\n", in musb_read_fifo()
172 struct musb *musb = __hci; in blackfin_interrupt() local
174 spin_lock_irqsave(&musb->lock, flags); in blackfin_interrupt()
176 musb->int_usb = musb_readb(musb->mregs, MUSB_INTRUSB); in blackfin_interrupt()
177 musb->int_tx = musb_readw(musb->mregs, MUSB_INTRTX); in blackfin_interrupt()
178 musb->int_rx = musb_readw(musb->mregs, MUSB_INTRRX); in blackfin_interrupt()
180 if (musb->int_usb || musb->int_tx || musb->int_rx) { in blackfin_interrupt()
181 musb_writeb(musb->mregs, MUSB_INTRUSB, musb->int_usb); in blackfin_interrupt()
182 musb_writew(musb->mregs, MUSB_INTRTX, musb->int_tx); in blackfin_interrupt()
183 musb_writew(musb->mregs, MUSB_INTRRX, musb->int_rx); in blackfin_interrupt()
184 retval = musb_interrupt(musb); in blackfin_interrupt()
188 if ((musb->xceiv->state == OTG_STATE_B_IDLE in blackfin_interrupt()
189 || musb->xceiv->state == OTG_STATE_A_WAIT_BCON) || in blackfin_interrupt()
190 (musb->int_usb & MUSB_INTR_DISCONNECT && is_host_active(musb))) { in blackfin_interrupt()
192 musb->a_wait_bcon = TIMER_DELAY; in blackfin_interrupt()
195 spin_unlock_irqrestore(&musb->lock, flags); in blackfin_interrupt()
202 struct musb *musb = (void *)_musb; in musb_conn_timer_handler() local
207 spin_lock_irqsave(&musb->lock, flags); in musb_conn_timer_handler()
208 switch (musb->xceiv->state) { in musb_conn_timer_handler()
212 val = musb_readw(musb->mregs, MUSB_DEVCTL); in musb_conn_timer_handler()
214 musb_writew(musb->mregs, MUSB_DEVCTL, val); in musb_conn_timer_handler()
216 musb_writew(musb->mregs, MUSB_DEVCTL, val); in musb_conn_timer_handler()
218 val = musb_readw(musb->mregs, MUSB_DEVCTL); in musb_conn_timer_handler()
221 gpio_set_value(musb->config->gpio_vrsel, 1); in musb_conn_timer_handler()
222 musb->xceiv->state = OTG_STATE_A_WAIT_BCON; in musb_conn_timer_handler()
224 gpio_set_value(musb->config->gpio_vrsel, 0); in musb_conn_timer_handler()
226 val = musb_readb(musb->mregs, MUSB_INTRUSBE); in musb_conn_timer_handler()
228 musb_writeb(musb->mregs, MUSB_INTRUSBE, val); in musb_conn_timer_handler()
231 musb_writeb(musb->mregs, MUSB_INTRUSB, val); in musb_conn_timer_handler()
232 musb->xceiv->state = OTG_STATE_B_IDLE; in musb_conn_timer_handler()
241 val = musb_readw(musb->mregs, MUSB_DEVCTL); in musb_conn_timer_handler()
243 musb_writew(musb->mregs, MUSB_DEVCTL, val); in musb_conn_timer_handler()
244 val = musb_readw(musb->mregs, MUSB_DEVCTL); in musb_conn_timer_handler()
247 gpio_set_value(musb->config->gpio_vrsel, 1); in musb_conn_timer_handler()
248 musb->xceiv->state = OTG_STATE_A_WAIT_BCON; in musb_conn_timer_handler()
250 gpio_set_value(musb->config->gpio_vrsel, 0); in musb_conn_timer_handler()
253 val = musb_readb(musb->mregs, MUSB_INTRUSBE); in musb_conn_timer_handler()
255 musb_writeb(musb->mregs, MUSB_INTRUSBE, val); in musb_conn_timer_handler()
258 musb_writeb(musb->mregs, MUSB_INTRUSB, val); in musb_conn_timer_handler()
264 val = musb_readb(musb->mregs, MUSB_POWER); in musb_conn_timer_handler()
266 musb_writeb(musb->mregs, MUSB_POWER, val); in musb_conn_timer_handler()
269 val = musb_readb(musb->mregs, MUSB_POWER); in musb_conn_timer_handler()
271 musb_writeb(musb->mregs, MUSB_POWER, val); in musb_conn_timer_handler()
282 dev_dbg(musb->controller, "%s state not handled\n", in musb_conn_timer_handler()
283 usb_otg_state_string(musb->xceiv->state)); in musb_conn_timer_handler()
286 spin_unlock_irqrestore(&musb->lock, flags); in musb_conn_timer_handler()
288 dev_dbg(musb->controller, "state is %s\n", in musb_conn_timer_handler()
289 usb_otg_state_string(musb->xceiv->state)); in musb_conn_timer_handler()
292 static void bfin_musb_enable(struct musb *musb) in bfin_musb_enable() argument
297 static void bfin_musb_disable(struct musb *musb) in bfin_musb_disable() argument
301 static void bfin_musb_set_vbus(struct musb *musb, int is_on) in bfin_musb_set_vbus() argument
303 int value = musb->config->gpio_vrsel_active; in bfin_musb_set_vbus()
306 gpio_set_value(musb->config->gpio_vrsel, value); in bfin_musb_set_vbus()
308 dev_dbg(musb->controller, "VBUS %s, devctl %02x " in bfin_musb_set_vbus()
310 usb_otg_state_string(musb->xceiv->state), in bfin_musb_set_vbus()
311 musb_readb(musb->mregs, MUSB_DEVCTL)); in bfin_musb_set_vbus()
319 static int bfin_musb_vbus_status(struct musb *musb) in bfin_musb_vbus_status() argument
324 static int bfin_musb_set_mode(struct musb *musb, u8 musb_mode) in bfin_musb_set_mode() argument
350 static void bfin_musb_reg_init(struct musb *musb) in bfin_musb_reg_init() argument
364 ((480/musb->config->clkin) << 1)); in bfin_musb_reg_init()
388 static int bfin_musb_init(struct musb *musb) in bfin_musb_init() argument
398 if (gpio_request(musb->config->gpio_vrsel, "USB_VRSEL")) { in bfin_musb_init()
400 musb->config->gpio_vrsel); in bfin_musb_init()
403 gpio_direction_output(musb->config->gpio_vrsel, 0); in bfin_musb_init()
406 musb->xceiv = usb_get_phy(USB_PHY_TYPE_USB2); in bfin_musb_init()
407 if (IS_ERR_OR_NULL(musb->xceiv)) { in bfin_musb_init()
408 gpio_free(musb->config->gpio_vrsel); in bfin_musb_init()
412 bfin_musb_reg_init(musb); in bfin_musb_init()
415 (unsigned long) musb); in bfin_musb_init()
417 musb->xceiv->set_power = bfin_musb_set_power; in bfin_musb_init()
419 musb->isr = blackfin_interrupt; in bfin_musb_init()
420 musb->double_buffer_not_ok = true; in bfin_musb_init()
425 static int bfin_musb_exit(struct musb *musb) in bfin_musb_exit() argument
427 gpio_free(musb->config->gpio_vrsel); in bfin_musb_exit()
429 usb_put_phy(musb->xceiv); in bfin_musb_exit()
454 struct platform_device *musb; in bfin_probe() local
465 musb = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO); in bfin_probe()
466 if (!musb) { in bfin_probe()
471 musb->dev.parent = &pdev->dev; in bfin_probe()
472 musb->dev.dma_mask = &bfin_dmamask; in bfin_probe()
473 musb->dev.coherent_dma_mask = bfin_dmamask; in bfin_probe()
476 glue->musb = musb; in bfin_probe()
482 ret = platform_device_add_resources(musb, pdev->resource, in bfin_probe()
489 ret = platform_device_add_data(musb, pdata, sizeof(*pdata)); in bfin_probe()
495 ret = platform_device_add(musb); in bfin_probe()
504 platform_device_put(musb); in bfin_probe()
517 platform_device_unregister(glue->musb); in bfin_remove()
527 struct musb *musb = glue_to_musb(glue); in bfin_suspend() local
529 if (is_host_active(musb)) in bfin_suspend()
536 gpio_set_value(musb->config->gpio_vrsel, 0); in bfin_suspend()
544 struct musb *musb = glue_to_musb(glue); in bfin_resume() local
546 bfin_musb_reg_init(musb); in bfin_resume()