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¶
name
dev
strings
max_speed
needs_serial
bind
unbind
disconnect
suspend
resume
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 2024 | Kernel Hackers Manual 3.10 |