Name

usb_add_config — add a configuration to a device.

Synopsis

int usb_add_config (struct usb_composite_dev * cdev,
 struct usb_configuration * config,
 int (*bind) (struct usb_configuration *));
 

Arguments

struct usb_composite_dev * cdev

wraps the USB gadget

struct usb_configuration * config

the configuration, with bConfigurationValue assigned

int (*)(struct usb_configuration *) bind

the configuration's bind function

Context

single threaded during gadget setup

Description

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.