Dario Nieuwenhuis
709df0dc1d
nrf: replace PhantomData usages with PeripheralRef.
2022-07-23 15:13:47 +02:00
Dario Nieuwenhuis
4901c34d9c
Rename Unborrowed -> PeripheralRef, Unborrow -> Peripheral
2022-07-23 14:00:19 +02:00
Dario Nieuwenhuis
c40d5f6e6f
nrf/usb: prevent user code from constructing a PowerUsb directly.
...
PowerUsb must be constructed through `new()` so that it sets up the IRQ.
It must have at least one private field, otherwise user code can construct
it directly with `PowerUsb{}`.
2022-07-21 19:47:09 +02:00
huntc
8785fbc6f1
Trait for UsbSupply
...
Eliminated a signal by using a simpler trait method that returns whether VBus power is available. Also includes a UsbSupply that can be signalled for use with the nRF softdevice. Includes the requirement for waiting for power to become available.
2022-07-09 17:57:31 +10:00
huntc
81796d29b4
New constructor to cater for the softdevice
...
Also, correctly sets the initial power management state when using power management
2022-07-08 16:22:25 +10:00
huntc
4a8f117f25
Puts in the machinery to handle power detected/removed
2022-07-07 10:08:57 +10:00
Dario Nieuwenhuis
a8703b7598
Run rustfmt.
2022-06-12 22:22:31 +02:00
Dario Nieuwenhuis
5085100df2
Add embassy-cortex-m crate.
...
- Move Interrupt and InterruptExecutor from `embassy` to `embassy-cortex-m`.
- Move Unborrow from `embassy` to `embassy-hal-common` (nothing in `embassy` requires it anymore)
- Move PeripheralMutex from `embassy-hal-common` to `embassy-cortex-m`.
2022-06-12 21:45:38 +02:00
Dario Nieuwenhuis
a7383840e7
usb: make ControlPipe accept, reject async.
2022-05-30 00:35:27 +02:00
Dario Nieuwenhuis
883e28a0fb
usb: add first, last params to ControlPipe data_in, data_out.
2022-05-30 00:08:28 +02:00
Dario Nieuwenhuis
1ec2e5672f
usb: remove is_stalled, set_stalled from Endpoint.
...
They're unused, and I believe it's not allowed for classes to
stall EPs on their own?
2022-05-30 00:07:15 +02:00
Dario Nieuwenhuis
0764fad587
nrf/usb: fix control out transfers getting corrupted due to ep0rcvout sticking from earlier.
2022-05-12 18:45:10 +02:00
Dario Nieuwenhuis
5fd55f9529
usb: parse request in embassy-usb instead of the driver.
2022-05-12 18:14:48 +02:00
Dario Nieuwenhuis
6af5f8eb2d
usb: merge alloc_control_pipe
and into_bus
into start
.
...
This prevents calling `alloc_control_pipe` twice at compile time, which was
always an error.
2022-05-10 17:30:07 +02:00
Dario Nieuwenhuis
2e104170de
usb: remove address arg from endpoint allocation.
2022-05-09 02:07:48 +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
alexmoon
2915e858ba
Make Driver::disable async and fix comment
2022-04-13 14:55:02 -04:00
alexmoon
3a30b08936
Remove dead code on nrf5340
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
e867364d42
Unify ReadError and WriteError into EndpointError
2022-04-09 01:48:17 +02:00
alexmoon
7f9dd1a37b
Fix spurious ControlPipe::data_in errors
2022-04-07 10:54:21 -04:00
alexmoon
6abbfa9a92
Async-ify Driver::enable and UsbDeviceBuilder::build
2022-04-07 10:51:26 -04: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
alexmoon
2ce435dc34
Add basic device state handling for endpoints.
2022-04-06 05:38:11 +02:00
alexmoon
99f95a33c3
Simplify hid output report handling
2022-04-06 05:38:11 +02:00
alexmoon
c8ad82057d
Reduce memory overhead and simplify logic for merging endpoint and control request output reports.
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
Dario Nieuwenhuis
d7d199f2ac
nrf/usb: unify in/out wakers for ep0
2022-04-06 05:38:11 +02:00
alexmoon
77e0aca03b
Move data chunking from the driver to the lib
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a435d78cf7
usb: cleanup and simplify error handling.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
60d3d11197
usb: cleanup logging.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
d1e4b3d7d5
usb: add -usb-serial crate, fix warnings and stable build.
2022-04-06 05:38:11 +02:00
alexmoon
c06488eb29
Support multi-frame data phase control requests
2022-04-06 05:38:11 +02:00
alexmoon
46bafecb2a
Only copy through RAM when needed
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a062baae38
nrf/usb: fix wrong DMA read size
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
5c0db627fe
nrf/usb: update where clause syntax.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
0320500f0f
Working CDC-ACM device->host
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
77ceced036
Working CDC-ACM host->device
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
37598a5b37
wip: experimental async usb stack
2022-04-06 05:38:11 +02:00
Jacob Rosenthal
cfb5e8df57
undo T:regs in impl UsbPeripheral
2021-12-15 11:00:55 -07:00
Jacob Rosenthal
50f151e6bc
use Instance regs
2021-12-15 10:29:19 -07:00
Jacob Rosenthal
61f12324ff
enable USB peripheral for relevant chips
2021-12-15 10:23:19 -07:00
Jacob Rosenthal
79502330de
rename to UsbBus
2021-12-15 09:59:56 -07:00
Jacob Rosenthal
3debe604fb
sorta works, too many interupts?
2021-12-14 16:48:48 -07:00
Jacob Rosenthal
07cbd41131
dont expose embedded_hal_common::usb
2021-12-14 15:47:54 -07:00
Jacob Rosenthal
f31140a70b
revert
2021-12-14 13:51:50 -07:00
Jacob Rosenthal
535d30335a
make send, consolidate usb types
2021-12-13 18:13:42 -07:00
Jacob Rosenthal
83a1237ea3
stub out the embassy registers for usbd
2021-12-13 18:04:54 -07:00