Core Objects and Methods

struct usb_request — describes one i/o request
struct usb_ep — device side representation of USB endpoint
usb_ep_enable — configure endpoint, making it usable
usb_ep_disable — endpoint is no longer usable
usb_ep_alloc_request — allocate a request object to use with this endpoint
usb_ep_free_request — frees a request object
usb_ep_queue — queues (submits) an I/O request to an endpoint.
usb_ep_dequeue — dequeues (cancels, unlinks) an I/O request from an endpoint
usb_ep_set_halt — sets the endpoint halt feature.
usb_ep_clear_halt — clears endpoint halt, and resets toggle
usb_ep_set_wedge — sets the halt feature and ignores clear requests
usb_ep_fifo_status — returns number of bytes in fifo, or error
usb_ep_fifo_flush — flushes contents of a fifo
struct usb_gadget — represents a usb slave device
gadget_is_dualspeed — return true iff the hardware handles high speed
gadget_is_otg — return true iff the hardware is OTG-ready
usb_gadget_frame_number — returns the current frame number
usb_gadget_wakeup — tries to wake up the host connected to this gadget
usb_gadget_set_selfpowered — sets the device selfpowered feature.
usb_gadget_clear_selfpowered — clear the device selfpowered feature.
usb_gadget_vbus_connect — Notify controller that VBUS is powered
usb_gadget_vbus_draw — constrain controller's VBUS power usage
usb_gadget_vbus_disconnect — notify controller about VBUS session end
usb_gadget_connect — software-controlled connect to USB host
usb_gadget_disconnect — software-controlled disconnect from USB host
struct usb_gadget_driver — driver for usb 'slave' devices
usb_gadget_register_driver — register a gadget driver
usb_gadget_unregister_driver — unregister a gadget driver
struct usb_string — wraps a C string and its USB id
struct usb_gadget_strings — a set of USB strings in a given language

These are declared in <linux/usb/gadget.h>, and are used by gadget drivers to interact with USB peripheral controller drivers.