This commit adds the preliminary version of the USB Host Library. This commit contains:
- USBH (USB Host Driver)
- Hub Driver that only supports a single device and device enumeration
- USB Host Library (asychronous API)
- Test cases for USB Host Library asychronous API
The following changes were made to the existing HCD:
- Removed HCD_PIPE_STATE_INVALID. Pipes are no longer invalidated
- Changed pipe commands to halt, flush, and clear. Pipes need to be manually
halted, flush, and cleared.
- Halting and flushing a pipe will execute the pipe callback if it causes a
HCD_PIPE_EVENT_URB_DONE event
This commit fixes the following bugs with the HCD and USB Host HAL
- Make the setting to periodic frame list and scheduling to occur after
a reset command
- All port errors states should put the port into the HCD_PORT_STATE_RECOVERY
state.
- Fixed incorrect return type of hcd_port_command() function