Name

usb_ep_enable — configure endpoint, making it usable

Synopsis

int usb_ep_enable (struct usb_ep * ep, const struct usb_endpoint_descriptor * desc);

Arguments

ep

the endpoint being configured. may not be the endpoint named “ep0”. drivers discover endpoints through the ep_list of a usb_gadget.

desc

descriptor for desired behavior. caller guarantees this pointer remains valid until the endpoint is disabled; the data byte order is little-endian (usb-standard).

Description

when configurations are set, or when interface settings change, the driver will enable or disable the relevant endpoints. while it is enabled, an endpoint may be used for i/o until the driver receives a disconnect from the host or until the endpoint is disabled.

the ep0 implementation (which calls this routine) must ensure that the hardware capabilities of each endpoint match the descriptor provided for it. for example, an endpoint named “ep2in-bulk” would be usable for interrupt transfers as well as bulk, but it likely couldn't be used for iso transfers or for endpoint 14. some endpoints are fully configurable, with more generic names like “ep-a”. (remember that for USB, “in” means “towards the USB master”.)

returns zero, or a negative error code.