Add a configuration to a device.
int usb_add_config(struct usb_composite_dev * cdev, struct usb_configuration * config, int (*bind) (struct usb_configuration *));
cdev
wraps the USB gadget
config
the configuration, with bConfigurationValue assigned
bind
the configuration's bind function
single threaded during gadget setup
One of the main tasks of a composite bind() routine is to add each of the configurations it supports, using this routine.
This function returns the value of the configuration's bind(), which is zero for success else a negative errno value. Binding configurations assigns global resources including string IDs, and per-configuration resources such as interface IDs and endpoints.
David Brownell <[email protected]>
Author.