USB Controller
ROM Location:
ROM_APITABLE is an array of pointers located at 0x0100.0010.
ROM_USBTABLE is an array of pointers located at ROM_APITABLE[16].
ROM_USBEndpointDMAEnable is a function pointer located at ROM_USBTABLE[42].
Parameters:
ui32Base specifies the USB module base address.
ui32Endpoint is the endpoint to access.
ui32Flags specifies which direction and what mode to use when enabling DMA.
Description:
This function will enable DMA on a given endpoint and set the mode according to the val-
ues in the ui32Flags parameter. The ui32Flags parameter should have USB_EP_DEV_IN or
USB_EP_DEV_OUT set.
Returns:
None.
24.3.1.21 ROM_USBEndpointStatus
Returns the current status of an endpoint.
Prototype:
uint32_t
ROM_USBEndpointStatus(uint32_t ui32Base,
uint32_t ui32Endpoint)
ROM Location:
ROM_APITABLE is an array of pointers located at 0x0100.0010.
ROM_USBTABLE is an array of pointers located at ROM_APITABLE[16].
ROM_USBEndpointStatus is a function pointer located at ROM_USBTABLE[14].
Parameters:
ui32Base specifies the USB module base address.
ui32Endpoint is the endpoint to access.
Description:
This function will return the status of a given endpoint. If any of these status
bits need to be cleared, then these these values must be cleared by calling the
ROM_USBDevEndpointStatusClear() or ROM_USBHostEndpointStatusClear() functions.
The following are the status flags for host mode:
USB_HOST_IN_PID_ERROR - PID error on the given endpoint.
USB_HOST_IN_NOT_COMP - The device failed to respond to an IN request.
USB_HOST_IN_STALL - A stall was received on an IN endpoint.
USB_HOST_IN_DATA_ERROR - There was a CRC or bit-stuff error on an IN endpoint in
Isochronous mode.
USB_HOST_IN_NAK_TO - NAKs received on this IN endpoint for more than the specified
timeout period.
USB_HOST_IN_ERROR - Failed to communicate with a device using this IN endpoint.
USB_HOST_IN_FIFO_FULL - This IN endpoint’s FIFO is full.
316 April 8, 2013