Dario Nieuwenhuis
1d841cc8ac
usb: make max interface count configurable at compile time.
2023-02-08 00:16:04 +01:00
alexmoon
9f9230ae7a
Convert MS OS descriptor builder to a writer API
...
This brings it inline with the other embassy-usb descriptor APIs and allows it to integrate well with the Builder to allow class constructors to add MS OS descriptors.
Also adds a `usb_serial_winusb` example to demonstrate how to use the API.
2023-02-07 14:24:35 -05:00
Matt Ickstadt
f5ff3c4ac3
usb: add support for MS OS Descriptors
2023-02-07 14:24:35 -05:00
bors[bot]
465e4c8b19
Merge #1151
...
1151: USB: allow setting the interface string for interface alt settings r=Dirbaio a=mattico
This is a breaking change to embassy-usb's API.
Co-authored-by: Matt Ickstadt <matt@beckenterprises.com>
2023-02-01 00:36:22 +00:00
Dario Nieuwenhuis
ca10fe7135
usb: docs
2023-01-31 22:27:19 +01:00
nitroxis
c9e2cd6dd4
usb: allow adding isochronous endpoints
2023-01-27 15:53:13 +01:00
Matt Ickstadt
7ecb05ff77
usb: allow setting the interface string for interface alt settings
2023-01-13 12:10:36 -06: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
a8703b7598
Run rustfmt.
2022-06-12 22:22:31 +02:00
Dario Nieuwenhuis
39ab599eed
usb: set default max_packet_size_0 to 64.
...
Supported chips can always do 64 bytes, 8 bytes seems to be more rare.
We can add a way for the driver to specify the default in the future.
2022-05-31 02:01:22 +02:00
Dario Nieuwenhuis
2e104170de
usb: remove address arg from endpoint allocation.
2022-05-09 02:07:48 +02:00
Dario Nieuwenhuis
0476f6b55b
usb: add support for custom string descriptors.
2022-04-23 04:40:57 +02:00
Dario Nieuwenhuis
7c6a88f3dd
usb: set the interface handler in InterfaceBuilder.
2022-04-23 01:29:19 +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
50d257cc7c
usb: improved descriptor building API
...
The same API call allocates interfaces/endpoints/etc and writes their descriptors.
This means less API calls, and less possibility to screw things up.
DescriptorWriter is now private.
2022-04-16 04:30:31 +02:00
Dario Nieuwenhuis
1bf7b4d6c3
usb: rename UsbDeviceBuilder -> Builder.
2022-04-16 04:14:20 +02:00
alexmoon
ff7c6b350e
Remove channel and make run future cancelable
2022-04-13 14:55:02 -04:00
alexmoon
f5656e3544
Add DeviceStateHandler, DeviceCommand channel, and remote wakeup support
2022-04-13 14:55:02 -04:00
alexmoon
6abbfa9a92
Async-ify Driver::enable and UsbDeviceBuilder::build
2022-04-07 10:51:26 -04:00
Dario Nieuwenhuis
a435d78cf7
usb: cleanup and simplify error handling.
2022-04-06 05:38:11 +02:00
alexmoon
13370c28db
Add a control_buf to UsbDevice
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
Dario Nieuwenhuis
15cc97d794
usb: associate ControlHandlers with interfaces, automatically route requests.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a2f5763a67
usb: add add_class
to builder, so that FooBarClass::new(&mut builder)
can set up everything.
2022-04-06 05:38:11 +02:00
alexmoon
52c622b1cd
Use trait objects instead of generics for UsbDevice::classes
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