struct usb_ep — device side representation of USB endpoint
struct usb_ep {
void * driver_data;
const char * name;
const struct usb_ep_ops * ops;
struct list_head ep_list;
struct usb_ep_caps caps;
unsigned maxpacket:16;
unsigned maxpacket_limit:16;
unsigned max_streams:16;
unsigned mult:2;
unsigned maxburst:5;
u8 address;
const struct usb_endpoint_descriptor * desc;
const struct usb_ss_ep_comp_descriptor * comp_desc;
}; void * driver_datafor use by the gadget driver.
const char * nameidentifier for the endpoint, such as “ep-a” or “ep9in-bulk”
const struct usb_ep_ops * opsFunction pointers used to access hardware-specific operations.
struct list_head ep_listthe gadget's ep_list holds all of its endpoints
struct usb_ep_caps capsThe structure describing types and directions supported by endoint.
unsigned:16 maxpacketThe maximum packet size used on this endpoint. The initial value can sometimes be reduced (hardware allowing), according to the endpoint descriptor used to configure the endpoint.
unsigned:16 maxpacket_limitThe maximum packet size value which can be handled by this endpoint. It's set once by UDC driver when endpoint is initialized, and should not be changed. Should not be confused with maxpacket.
unsigned:16 max_streamsThe maximum number of streams supported by this EP (0 - 16, actual number is 2^n)
unsigned:2 multmultiplier, 'mult' value for SS Isoc EPs
unsigned:5 maxburstthe maximum number of bursts supported by this EP (for usb3)
u8 addressused to identify the endpoint when finding descriptor that matches connection speed
const struct usb_endpoint_descriptor * descendpoint descriptor. This pointer is set before the endpoint is enabled and remains valid until the endpoint is disabled.
const struct usb_ss_ep_comp_descriptor * comp_descIn case of SuperSpeed support, this is the endpoint companion descriptor that is used to configure the endpoint