Lines Matching refs:gadget

1 /* linux/drivers/usb/gadget/s3c-hsudc.c
6 * S3C24XX USB 2.0 High-speed USB controller gadget driver
28 #include <linux/usb/gadget.h>
100 * @ep: USB gadget layer representation of device endpoint.
103 * @desc: Endpoint descriptor obtained from the gadget driver.
122 * struct s3c_hsudc_req - Driver encapsulation of USB gadget transfer request.
123 * @req: Reference to USB gadget transfer request.
133 * @gadget: Instance of usb_gadget which is referenced by gadget driver.
134 * @driver: Reference to currenty active gadget driver.
145 struct usb_gadget gadget;
178 static inline struct s3c_hsudc *to_hsudc(struct usb_gadget *gadget)
180 return container_of(gadget, struct s3c_hsudc, gadget);
288 * @driver: Reference to the gadget driver which is currently active.
298 hsudc->gadget.speed = USB_SPEED_UNKNOWN;
673 ret = hsudc->driver->setup(&hsudc->gadget, &ctrl);
751 * Enables a endpoint when called from the gadget driver. Endpoint stall if
776 if (!hsudc->driver || hsudc->gadget.speed == USB_SPEED_UNKNOWN)
801 * Disables a endpoint when called from the gadget driver.
832 * Allocates a single transfer request structure when called from gadget driver.
852 * Allocates a single transfer request structure when called from gadget driver.
869 * Start or enqueue a request for a endpoint when called from gadget driver.
888 if (!hsudc->driver || hsudc->gadget.speed == USB_SPEED_UNKNOWN)
931 * Dequeue a request from a endpoint when called from gadget driver.
1002 list_add_tail(&hsep->ep.ep_list, &hsudc->gadget.ep_list);
1029 INIT_LIST_HEAD(&hsudc->gadget.ep_list);
1087 hsudc->gadget.speed = (sys_status & S3C_SSR_HSP) ?
1093 if (hsudc->gadget.speed != USB_SPEED_UNKNOWN
1095 hsudc->driver->suspend(&hsudc->gadget);
1100 if (hsudc->gadget.speed != USB_SPEED_UNKNOWN
1102 hsudc->driver->resume(&hsudc->gadget);
1143 static int s3c_hsudc_start(struct usb_gadget *gadget,
1146 struct s3c_hsudc *hsudc = to_hsudc(gadget);
1161 hsudc->gadget.dev.driver = &driver->driver;
1173 &hsudc->gadget);
1176 hsudc->gadget.name);
1197 hsudc->gadget.dev.driver = NULL;
1201 static int s3c_hsudc_stop(struct usb_gadget *gadget,
1204 struct s3c_hsudc *hsudc = to_hsudc(gadget);
1215 hsudc->gadget.dev.driver = NULL;
1216 hsudc->gadget.speed = USB_SPEED_UNKNOWN;
1233 dev_info(hsudc->dev, "unregistered gadget driver '%s'\n",
1243 static int s3c_hsudc_gadget_getframe(struct usb_gadget *gadget)
1245 return s3c_hsudc_read_frameno(to_hsudc(gadget));
1248 static int s3c_hsudc_vbus_draw(struct usb_gadget *gadget, unsigned mA)
1250 struct s3c_hsudc *hsudc = to_hsudc(gadget);
1324 dev_set_name(&hsudc->gadget.dev, "gadget");
1326 hsudc->gadget.max_speed = USB_SPEED_HIGH;
1327 hsudc->gadget.ops = &s3c_hsudc_gadget_ops;
1328 hsudc->gadget.name = dev_name(dev);
1329 hsudc->gadget.dev.parent = dev;
1330 hsudc->gadget.dev.dma_mask = dev->dma_mask;
1331 hsudc->gadget.ep0 = &hsudc->ep[0].ep;
1333 hsudc->gadget.is_otg = 0;
1334 hsudc->gadget.is_a_peripheral = 0;
1335 hsudc->gadget.speed = USB_SPEED_UNKNOWN;
1365 ret = device_register(&hsudc->gadget.dev);
1367 put_device(&hsudc->gadget.dev);
1371 ret = usb_add_gadget_udc(&pdev->dev, &hsudc->gadget);
1379 device_unregister(&hsudc->gadget.dev);