aboutsummaryrefslogtreecommitdiffstats
path: root/usbh/src/pipe.rs
Commit message (Collapse)AuthorAgeFilesLines
* Short-circuit out of NAK on interrupt pipes.Brian Cully2019-08-011-2/+9
| | | | | Don't bother retrying. NAK on an interrupt endpoint means there's no data.
* Minor reorg.Brian Cully2019-08-011-13/+13
|
* Remove debugging code.Brian Cully2019-08-011-57/+0
|
* Refactor so Endpoint controls pipe characteristics.Brian Cully2019-08-011-73/+176
| | | | | | Endpoints know their own address, number, max packet size, and data toggle states. When a pipe is needed, pass in the endpoint its needed for so that configuration can happen according to that endpoint.
* WIP: Holy smokes I read my first keyboard report.Brian Cully2019-07-301-7/+48
| | | | Too bad it's still trfail town after the first, but progress!
* Don't require retries when dispatching.Brian Cully2019-07-301-2/+0
|
* Use `repr(packed)` on pipe descriptors structure.Brian Cully2019-07-301-4/+76
| | | | Ensure offsets and sizes are correct with tests.
* More short packet notes.Brian Cully2019-07-281-1/+3
|
* Rename USBToken/USBPipeType.Brian Cully2019-07-281-24/+26
| | | | These are implementation details of the samd platform as used.
* `control_req` -> `control_transfer`.Brian Cully2019-07-281-1/+1
| | | | | Same as in/out transfer functions now, and matches USB spec terminology.
* Update notes on short packets.Brian Cully2019-07-281-6/+5
|
* Add pipe::NO_DATA_STAGE const for convenience.Brian Cully2019-07-281-1/+6
| | | | | For use in `control_req`'s buffer argument if no data stage is required. It was either this or have a separate function.
* Remove un-needed asserts.Brian Cully2019-07-281-5/+0
|
* Make `dispatch_retries` private.Brian Cully2019-07-281-3/+1
|
* Remove DataBuf exposure outside of pipe impl.Brian Cully2019-07-281-24/+21
|
* Rename RequestType subfields.Brian Cully2019-07-281-4/+4
| | | | | | | Mostly obvious stuff, but change `USBSetupType` to `RequestKind`, so it doesn't conflict with the `RequestType` in which it lives. This also solves the problem with `typ` and `set_typ` methods (now `kind` and `set_kind`).
* Use TryFrom where possible, instead of panicking.Brian Cully2019-07-281-3/+9
|
* Rename basic USB protocol types.Brian Cully2019-07-281-3/+7
|
* WIP: read keyboard report (doesn't work)Brian Cully2019-07-281-0/+4
|
* Minor cleanup.Brian Cully2019-07-271-9/+0
|
* Reduce millis function pointer call to one location.Brian Cully2019-07-271-63/+59
| | | | | Trying to remove this function entirely from pipe/device in order to make it non-blocking. Right now it's only used for dispatch_retries.
* Move log_regs.Brian Cully2019-07-271-34/+37
|
* Make dtgl_set/clear private again.Brian Cully2019-07-271-11/+5
|
* Move post-address device config to Device impl.Brian Cully2019-07-271-3/+87
|
* WIP: we have lights on the keyboard!Brian Cully2019-07-271-24/+67
|
* Update log levels.Brian Cully2019-07-251-19/+27
|
* Read entire buffers during IN transfers.Brian Cully2019-07-251-27/+32
|
* Make DataBuf hold a mut pointer.Brian Cully2019-07-251-4/+4
| | | | | Since this is being used by hardware DMA, and the hardware treats it as mutable, lets mark it as such.
* Move USB host stuff to separate crate.Brian Cully2019-07-251-0/+500