Dario Nieuwenhuis
404aa29289
cortex-m: remove owned interrupts.
2023-06-01 03:25:19 +02:00
pennae
14a5d03af2
rp: remove take!, add bind_interrupts!
2023-05-15 15:24:56 +02:00
Dirk Stolle
0584312ef0
Fix some typos
2023-05-08 23:25:01 +02:00
xoviat
ba886b45b8
rustfmt
2023-04-28 16:46:32 -05:00
Lixou
2119b8e1ca
Add Transactional
trait to rp's i2c impl
2023-04-28 21:23:32 +02:00
Dario Nieuwenhuis
be37eee13d
Update embedded-hal crates.
2023-04-06 22:41:50 +02:00
Dario Nieuwenhuis
1e2fb0459d
Switch to async-fn-in-trait
2022-11-25 21:02:06 +01:00
Jeremy Fitzhardinge
02a3cdb507
Associate state with the instance rather than having a separate array
2022-10-17 21:50:40 -07:00
Jeremy Fitzhardinge
e4c2b2aa9a
rp i2c: have separate wakers for each i2c unit
...
If they both share one waker, there's the possibility that some wakeups
could get lost.
2022-10-16 18:00:23 -07:00
Jeremy Fitzhardinge
4fd831e4a8
rp async i2c: raise the tx_empty threshold
...
Assert "tx_empty" interrupt a little early so there's time to wake up
and start refilling the fifo before it drains. This avoids stalling the
i2c bus if the tx fifo completely drains.
2022-10-03 18:50:03 -07:00
Jeremy Fitzhardinge
cae8499179
rp i2c: clean up tx_abrt handling
...
Make sure we always wait for the stop bit if there's a reason to -
either because we sent one, or because there was a hardware tx abort.
2022-10-03 01:18:26 -07:00
Jeremy Fitzhardinge
e8bb8faa23
rp i2c: allow blocking ops on async contexts
2022-10-02 15:09:14 -07:00
Jeremy Fitzhardinge
09afece93d
make I2c::write_async take an iterator
...
There's no other iterator async API right now.
2022-10-01 19:28:27 -07:00
Jeremy Fitzhardinge
5e2c52ee5b
embassy-rp: async i2c implementation
...
This is an interrupt-driven async i2c master implementation. It makes as
best use of the RP2040's i2c block's fifos as possible to minimize
interrupts.
It implements embedded_hal_async::i2c for easy interop.
WIP async impl
2022-10-01 13:43:37 -07:00
Jeremy Fitzhardinge
72b645b0c9
rp i2c: make blocking only for Mode=Blocking
2022-10-01 13:26:13 -07:00
Jeremy Fitzhardinge
8d38eacae4
rp i2c: remove vestiges of DMA
2022-10-01 13:26:13 -07:00
Jeremy Fitzhardinge
90d392205f
embassy-rp: inline I2c::regs
...
It just returns a literal constant, so there's no reason not to always inline it.
2022-10-01 13:26:13 -07:00
Ulf Lilleengen
72c2e985bb
Update embedded-hal versions and explicitly pin
2022-09-29 11:27:46 +02:00
Mathias
bf1da0497c
Allow unused fields temporarily in i2c
2022-09-27 22:08:49 +02:00
Mathias
44c46e3c93
Move async i2c implementation to new PR, to merge working blocking implementation faster
2022-09-27 22:08:49 +02:00
Mathias Koch
b0d91e9f31
Apply suggestions from code review
...
Co-authored-by: Jacob Gonzalez <jacobgonzalez5252@gmail.com>
2022-09-27 22:08:49 +02:00
Mathias
53c34ccc39
Add async API for I2C
2022-09-27 22:08:49 +02:00
Mathias
be68d8ebb7
Add further i2c error types
2022-09-27 22:08:49 +02:00
Mathias
603513e76e
Fix blocking I2C
2022-09-27 22:08:49 +02:00
Mathias
bcd3ab4ba1
Add blocking read & write for I2C
2022-09-27 22:08:49 +02:00
Mathias
820e6462b6
Add preliminary I2C implementation for RP2040
2022-09-27 22:08:49 +02:00