STRUCT USB_COMPOSITE(9) | Kernel Mode Gadget API | STRUCT USB_COMPOSITE(9) |
NAME¶
struct_usb_composite_driver - groups configurations into a gadget
SYNOPSIS¶
struct usb_composite_driver {
const char * name;
const struct usb_device_descriptor * dev;
struct usb_gadget_strings ** strings;
enum usb_device_speed max_speed;
unsigned needs_serial:1;
int (* bind) (struct usb_composite_dev *cdev);
int (* unbind) (struct usb_composite_dev *);
void (* disconnect) (struct usb_composite_dev *);
void (* suspend) (struct usb_composite_dev *);
void (* resume) (struct usb_composite_dev *);
struct usb_gadget_driver gadget_driver; };
MEMBERS¶
const char * name
const struct usb_device_descriptor * dev
struct usb_gadget_strings ** strings
enum usb_device_speed max_speed
unsigned:1 needs_serial
int (*)(struct usb_composite_dev *cdev) bind
int (*)(struct usb_composite_dev *) unbind
void (*)(struct usb_composite_dev *) disconnect
void (*)(struct usb_composite_dev *) suspend
void (*)(struct usb_composite_dev *) resume
struct usb_gadget_driver gadget_driver
DESCRIPTION¶
Devices default to reporting self powered operation. Devices which rely on bus powered operation should report this in their bind method.
Before returning from bind, various fields in the template descriptor may be overridden. These include the idVendor/idProduct/bcdDevice values normally to bind the appropriate host side driver, and the three strings (iManufacturer, iProduct, iSerialNumber) normally used to provide user meaningful device identifiers. (The strings will not be defined unless they are defined in dev and strings.) The correct ep0 maxpacket size is also reported, as defined by the underlying controller driver.
AUTHOR¶
David Brownell <dbrownell@users.sourceforge.net>
COPYRIGHT¶
June 2017 | Kernel Hackers Manual 4.11 |