Application-specific Function Driver interface
Simple applications may wish to implement their entire Function Driver here.
More complex applications, or environments with an existing Function Driver framework (such as the Linux Gadget framework) will implement the interface to their Function Driver here.
See the linux/ subdirectory for an example implementation of a Linux Gadget framework interface.
For historical reasons, the PCD API uses the Linux term "gadget" to refer to a Function Driver.
|
| int | dwc_usb3_gadget_connect (dwc_usb3_pcd_t *pcd, int speed) |
| | This routine receives Connect notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_disconnect (dwc_usb3_pcd_t *pcd) |
| | This routine receives Disconnect notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_suspend (dwc_usb3_pcd_t *pcd) |
| | This routine receives Suspend notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_resume (dwc_usb3_pcd_t *pcd) |
| | This routine receives Resume notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_setup (dwc_usb3_pcd_t *pcd, usb_device_request_t *ctrl) |
| | This routine receives Setup request notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_complete (dwc_usb3_pcd_t *pcd, dwc_usb3_pcd_ep_t *pcd_ep, dwc_usb3_pcd_req_t *pcd_req, int status) |
| | This routine receives Transfer Complete notifications from the PCD. More...
|
| |
| void * | dwc_usb3_gadget_alloc_dma (dwc_usb3_pcd_ep_t *pcd_ep, int size, dwc_dma_t *mem_dma_ret) |
| | This routine allocates coherent DMA memory. It is used by the PCD to allocate memory for TRBs. The block of memory returned must have a start address aligned to a 16-byte boundary. More...
|
| |
| void | dwc_usb3_gadget_free_dma (dwc_usb3_pcd_ep_t *pcd_ep, int size, void *mem, dwc_dma_t mem_dma) |
| | This routine frees DMA memory allocated by dwc_usb3_gadget_alloc_dma(). More...
|
| |
| dwc_usb3_pcd_req_t * | dwc_usb3_gadget_get_request (dwc_usb3_pcd_t *pcd, dwc_usb3_pcd_ep_t *pcd_ep) |
| | This routine returns the PCD request corresponding to the current transfer request for an endpoint. The current transfer request is the first request submitted that has not been completed yet. More...
|
| |
| void | dwc_usb3_gadget_start_next_request (dwc_usb3_pcd_t *pcd, dwc_usb3_pcd_ep_t *pcd_ep) |
| | This routine checks to see if there is another transfer request waiting on an endpoint that has not been started yet. If so then that transfer is started. More...
|
| |
| void | dwc_usb3_gadget_isoc_ep_start (dwc_usb3_pcd_t *pcd, dwc_usb3_pcd_ep_t *pcd_ep, u32 event) |
| | This routine starts an Isoc EP running at the proper interval, after receiving the initial XferNrdy event. More...
|
| |
| void | dwc_usb3_gadget_request_nuke (dwc_usb3_pcd_t *pcd, dwc_usb3_pcd_ep_t *pcd_ep) |
| | This routine terminates all requests which are pending on an endpoint. More...
|
| |
| void | dwc_usb3_gadget_set_ep_not_started (dwc_usb3_pcd_t *pcd, dwc_usb3_pcd_ep_t *pcd_ep) |
| | This routine marks all pending requests for an EP as not started. More...
|
| |
| usb_ep_t * | dwc_usb3_ep_enable (struct dwc_usb3_device *usb3_dev, const void *epdesc, const void *epcomp) |
| |
| int | dwc_usb3_ep_disable (struct dwc_usb3_device *usb3_dev, usb_ep_t *usb_ep) |
| |
| int | dwc_usb3_close_all_ep (struct dwc_usb3_device *usb3_dev) |
| |
| usb_request_t * | dwc_usb3_alloc_request (struct dwc_usb3_device *usb3_dev, usb_ep_t *usb_ep) |
| |
| void | dwc_usb3_free_request (struct dwc_usb3_device *usb3_dev, usb_ep_t *usb_ep, usb_request_t *usb_req) |
| |
| int | dwc_usb3_ep_queue (struct dwc_usb3_device *usb3_dev, usb_ep_t *usb_ep, usb_request_t *usb_req) |
| |
| int | dwc_usb3_ep_dequeue (struct dwc_usb3_device *usb3_dev, usb_ep_t *usb_ep, usb_request_t *usb_req) |
| |
| int | dwc_usb3_gadget_init (dwc_usb3_device_t *usb3_dev) |
| |
| void | dwc_usb3_gadget_remove (dwc_usb3_device_t *usb3_dev) |
| |