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 (volatile dwc_usb3_pcd_t *pcd, int speed) |
| | This routine receives Connect notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_disconnect (volatile dwc_usb3_pcd_t *pcd) |
| | This routine receives Disconnect notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_suspend (volatile dwc_usb3_pcd_t *pcd) |
| | This routine receives Suspend notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_resume (volatile dwc_usb3_pcd_t *pcd) |
| | This routine receives Resume notifications from the PCD. More...
|
| |
| int | dwc_usb3_gadget_setup (volatile 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 (volatile dwc_usb3_pcd_t *pcd, volatile dwc_usb3_pcd_ep_t *pcd_ep, volatile 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 (volatile 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 (volatile 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 (volatile dwc_usb3_pcd_t *pcd, volatile 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 (volatile dwc_usb3_pcd_t *pcd, volatile 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 (volatile dwc_usb3_pcd_t *pcd, volatile 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 (volatile dwc_usb3_pcd_t *pcd, volatile 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 (volatile dwc_usb3_pcd_t *pcd, volatile dwc_usb3_pcd_ep_t *pcd_ep) |
| | This routine marks all pending requests for an EP as not started. More...
|
| |
| volatile usb_ep_t * | dwc_usb3_ep_enable (struct dwc_usb3_device *usb3_dev, const void *epdesc, const void *epcomp) |
| |
| int | dwc_usb3_ep_disable (volatile struct dwc_usb3_device *usb3_dev, volatile usb_ep_t *usb_ep) |
| |
| int | dwc_usb3_close_all_ep (volatile struct dwc_usb3_device *usb3_dev) |
| |
| usb_request_t * | dwc_usb3_alloc_request (struct dwc_usb3_device *usb3_dev, volatile usb_ep_t *usb_ep) |
| |
| void | dwc_usb3_free_request (struct dwc_usb3_device *usb3_dev, volatile usb_ep_t *usb_ep, volatile usb_request_t *usb_req) |
| |
| int | dwc_usb3_ep_queue (struct dwc_usb3_device *usb3_dev, volatile 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) |
| |