Lines Matching full:gadget
3 * aspeed-vhub -- Driver for Aspeed SoC "vHub" USB gadget
5 * dev.c - Individual device/gadget management (ie, a port = a gadget)
27 #include <linux/usb/gadget.h>
66 if (d->gadget.speed == USB_SPEED_HIGH) in ast_vhub_dev_enable()
110 d->gadget.speed = USB_SPEED_UNKNOWN; in ast_vhub_dev_disable()
168 st0 = d->gadget.is_selfpowered << USB_DEVICE_SELF_POWERED; in ast_vhub_dev_status()
233 if (d->gadget.speed == USB_SPEED_UNKNOWN) { in ast_vhub_std_dev_request()
234 d->gadget.speed = ep->vhub->speed; in ast_vhub_std_dev_request()
235 if (d->gadget.speed > d->driver->max_speed) in ast_vhub_std_dev_request()
236 d->gadget.speed = d->driver->max_speed; in ast_vhub_std_dev_request()
238 d->gadget.speed); in ast_vhub_std_dev_request()
271 static int ast_vhub_udc_wakeup(struct usb_gadget* gadget) in ast_vhub_udc_wakeup() argument
273 struct ast_vhub_dev *d = to_ast_dev(gadget); in ast_vhub_udc_wakeup()
291 static int ast_vhub_udc_get_frame(struct usb_gadget* gadget) in ast_vhub_udc_get_frame() argument
293 struct ast_vhub_dev *d = to_ast_dev(gadget); in ast_vhub_udc_get_frame()
309 static int ast_vhub_udc_pullup(struct usb_gadget* gadget, int on) in ast_vhub_udc_pullup() argument
311 struct ast_vhub_dev *d = to_ast_dev(gadget); in ast_vhub_udc_pullup()
335 static int ast_vhub_udc_start(struct usb_gadget *gadget, in ast_vhub_udc_start() argument
338 struct ast_vhub_dev *d = to_ast_dev(gadget); in ast_vhub_udc_start()
347 d->gadget.is_selfpowered = 1; in ast_vhub_udc_start()
354 static struct usb_ep *ast_vhub_udc_match_ep(struct usb_gadget *gadget, in ast_vhub_udc_match_ep() argument
358 struct ast_vhub_dev *d = to_ast_dev(gadget); in ast_vhub_udc_match_ep()
368 * this gadget. This duplicates the code in usb_ep_autoconfig_ss() in ast_vhub_udc_match_ep()
371 list_for_each_entry(u_ep, &gadget->ep_list, ep_list) { in ast_vhub_udc_match_ep()
372 if (usb_gadget_ep_match_desc(gadget, u_ep, desc, ss)) { in ast_vhub_udc_match_ep()
390 if (gadget_is_dualspeed(gadget)) in ast_vhub_udc_match_ep()
396 if (gadget_is_dualspeed(gadget)) in ast_vhub_udc_match_ep()
402 if (gadget_is_dualspeed(gadget)) in ast_vhub_udc_match_ep()
439 static int ast_vhub_udc_stop(struct usb_gadget *gadget) in ast_vhub_udc_stop() argument
441 struct ast_vhub_dev *d = to_ast_dev(gadget); in ast_vhub_udc_stop()
449 d->gadget.speed = USB_SPEED_UNKNOWN; in ast_vhub_udc_stop()
474 d->driver->suspend(&d->gadget); in ast_vhub_dev_suspend()
483 d->driver->resume(&d->gadget); in ast_vhub_dev_resume()
503 usb_gadget_udc_reset(&d->gadget, d->driver); in ast_vhub_dev_reset()
527 usb_del_gadget_udc(&d->gadget); in ast_vhub_del_dev()
577 /* Populate gadget */ in ast_vhub_init_dev()
578 INIT_LIST_HEAD(&d->gadget.ep_list); in ast_vhub_init_dev()
579 d->gadget.ops = &ast_vhub_udc_ops; in ast_vhub_init_dev()
580 d->gadget.ep0 = &d->ep0.ep; in ast_vhub_init_dev()
581 d->gadget.name = KBUILD_MODNAME; in ast_vhub_init_dev()
583 d->gadget.max_speed = USB_SPEED_FULL; in ast_vhub_init_dev()
585 d->gadget.max_speed = USB_SPEED_HIGH; in ast_vhub_init_dev()
586 d->gadget.speed = USB_SPEED_UNKNOWN; in ast_vhub_init_dev()
587 d->gadget.dev.of_node = vhub->pdev->dev.of_node; in ast_vhub_init_dev()
589 rc = usb_add_gadget_udc(d->port_dev, &d->gadget); in ast_vhub_init_dev()