aboutsummaryrefslogtreecommitdiffstats
path: root/usbh/src
Commit message (Collapse)AuthorAgeFilesLines
* Short-circuit out of NAK on interrupt pipes.Brian Cully2019-08-012-8/+14
| | | | | 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-013-145/+322
| | | | | | 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-302-11/+52
| | | | Too bad it's still trfail town after the first, but progress!
* Only make three attempts to get the keyboard report.Brian Cully2019-07-301-2/+11
| | | | I'm tired of the spam, and three should be enough.
* Don't require retries when dispatching.Brian Cully2019-07-301-2/+0
|
* Use `repr(packed)` on pipe descriptors structure.Brian Cully2019-07-307-35/+107
| | | | Ensure offsets and sizes are correct with tests.
* More short packet notes.Brian Cully2019-07-281-1/+3
|
* Rename USBToken/USBPipeType.Brian Cully2019-07-282-26/+28
| | | | These are implementation details of the samd platform as used.
* `control_req` -> `control_transfer`.Brian Cully2019-07-283-9/+13
| | | | | 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-283-6/+11
| | | | | For use in `control_req`'s buffer argument if no data stage is required. It was either this or have a separate function.
* Put word-aligned assert back in addr reg.Brian Cully2019-07-281-2/+1
|
* 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-283-42/+38
|
* Remove DataBuf dependency in tests.Brian Cully2019-07-281-16/+25
|
* Get rid of stuff I can't test yet.Brian Cully2019-07-281-21/+0
|
* Rename RequestType subfields.Brian Cully2019-07-282-79/+78
| | | | | | | 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-283-63/+62
|
* Rename basic USB protocol types.Brian Cully2019-07-284-67/+71
|
* Post-SetAddress settle delay is actually 2ms.Brian Cully2019-07-281-1/+1
|
* Remove delay field from USBHost.Brian Cully2019-07-281-12/+11
| | | | | It was being used for FSM timings, so put it directly on the state discriminant if required.
* WIP: read keyboard report (doesn't work)Brian Cully2019-07-282-3/+68
|
* Minor cleanup.Brian Cully2019-07-271-9/+0
|
* Put size assertions in pcksize writers.Brian Cully2019-07-271-0/+4
|
* 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
|
* Remove un-needed return.Brian Cully2019-07-271-1/+1
|
* Move post-address device config to Device impl.Brian Cully2019-07-273-195/+285
|
* WIP: we have lights on the keyboard!Brian Cully2019-07-274-47/+215
|
* Remove unused structs.Brian Cully2019-07-251-47/+0
|
* Update log levels.Brian Cully2019-07-252-48/+58
|
* Read entire buffers during IN transfers.Brian Cully2019-07-251-27/+32
|
* Add modify method for ADDR.Brian Cully2019-07-251-2/+12
|
* Update PCKSIZE for correct BYTE_COUNT offset and length.Brian Cully2019-07-251-8/+12
|
* Remove duplicate test code.Brian Cully2019-07-251-57/+28
|
* Add deserialize tests for usbproto as well.Brian Cully2019-07-251-0/+40
|
* Make DataBuf hold a mut pointer.Brian Cully2019-07-253-20/+20
| | | | | Since this is being used by hardware DMA, and the hardware treats it as mutable, lets mark it as such.
* Put packet repr back. Add tests.Brian Cully2019-07-251-14/+130
| | | | | Packed was causing problems for logging, so use derived Debug impl instead. Add tests to make sure serialization works as expected.
* Allow dead code in crate.Brian Cully2019-07-251-9/+7
| | | | | We have to stub out a lot of stuff from USB protocol and hardware, and it may or may not get used, so quash the warning.
* Only reset USB during initialization state.Brian Cully2019-07-251-3/+1
| | | | | USBHost::new() sets up the state machine to initialize immediately, so rely on that, rather than initializing twice on CPU reset.
* Move USB host stuff to separate crate.Brian Cully2019-07-259-0/+2829