Dario Nieuwenhuis
3af991ab63
usb: unify ControlHandler+DeviceStateHandler, route all control requests to all handlers.
...
- Allows classes to handle vendor requests.
- Allows classes to use a single handler for multiple interfaces.
- Allows classes to access the other events (previously only `reset` was available).
2023-02-08 00:17:08 +01:00
Dario Nieuwenhuis
ca10fe7135
usb: docs
2023-01-31 22:27:19 +01:00
Dario Nieuwenhuis
f4f5824972
usb: do not allow converting Directon to/from u8
2022-09-26 12:35:33 +02:00
Dario Nieuwenhuis
7f7c14b7bc
usb: split driver trait to separate crate.
2022-09-26 12:29:27 +02:00
Ulf Lilleengen
3e155d2ec3
nRF documentation warning fixes
2022-08-22 16:37:35 +02:00
Dario Nieuwenhuis
02ae1138e1
usb: merge Control logic into main code.
...
Now that control stuff is called from just one place, there's
no need to keep it as a separate struct.
2022-05-09 03:43:24 +02:00
Dario Nieuwenhuis
7ed462a657
usb: simplify control in/out handlng, calling response from a single place.
2022-05-09 02:11:02 +02:00
Dario Nieuwenhuis
0476f6b55b
usb: add support for custom string descriptors.
2022-04-23 04:40:57 +02:00
Dario Nieuwenhuis
092c2b7dfe
usb: builtin handling of interface alternate settings
...
The stack reads its own descriptors to figure out which endpoints
are used in which alt settings, and enables/disables them as needed.
The ControlHandler has a callback so it can get notified of alternate
setting changes, which is purely informative (it doesn't have to do anything).
2022-04-23 01:11:10 +02:00
Dario Nieuwenhuis
94090e068e
usb: fix wrong logging of CONTROL OUT data.
2022-04-15 18:45:52 +02:00
alexmoon
e867364d42
Unify ReadError and WriteError into EndpointError
2022-04-09 01:48:17 +02:00
Dario Nieuwenhuis
22a47aeeb2
usb: abort control data in/out on reset or when receiving another SETUP.
...
This removes the horrible timeout hack.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
f6d11dfba5
usb: fix slow enumeration with EP0 max_packet_size of 8 or 16.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
522a87ae42
usb: centralize all control logging in control.rs
2022-04-06 05:38:11 +02:00
alexmoon
f5ba022257
Refactor ControlPipe to use the typestate pattern for safety
2022-04-06 05:38:11 +02:00
alexmoon
d40ebcccf6
Add handlers for standard reqs to ControlHandler
2022-04-06 05:38:11 +02:00
alexmoon
13370c28db
Add a control_buf to UsbDevice
2022-04-06 05:38:11 +02:00
alexmoon
c53bb7394a
Switch to ControlHandler owned bufs for control_in()
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
d7b1f8ca57
usb: update docs on ControlHandler.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
e99a3a1da4
usb: simplify buffer handling for Control IN transfers.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
bfce731982
usb: nicer names for control structs.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
2b547f311e
usb: move all control-related stuff to mod control
.
2022-04-06 05:38:11 +02:00
alexmoon
bdc6e0481c
Add support for USB classes handling control requests.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
37598a5b37
wip: experimental async usb stack
2022-04-06 05:38:11 +02:00