pennae
849011b826
rp/gpio: set up gpio interrupts only once
...
doing this setup work repeatedly, on every wait, is unnecessary. with
nothing ever disabling the interrupt it is sufficient to enable it once
during device init and never touch it again.
2023-05-02 14:28:27 +02:00
pennae
8fc92fdf62
rp/gpio: drop critical_section use
...
we don't need critical sections if we just use atomic access aliases.
2023-05-02 08:43:04 +02:00
pennae
c6424fdc11
gp/gpio: fix InputFuture edge waits
...
InputFuture did not use and check edge interrupts correctly.
InterruptTrigger should've checked for not 1,2,3,4 but 1,2,4,8 since the
inte fields are bitmasks, and not clearing INTR would have repeatedly
triggered edge interrupts early.
2023-05-02 08:43:04 +02:00
Brooks J Rady
1fbb8f0b32
feat(rp): add Wait
impl to OutputOpenDrain
...
A while ago `OutputOpenDrain` was made to implement `InputPin`,
something that allowed drivers for various one-wire protocols to be
written, but it's been lacking a `Wait` implementation — something
that's needed to write async versions of these drivers.
This commit also adds `get_level()` to `OutputOpenDrain`, since
`is_high()` and `is_low()` were already implemented, but `get_level()`
itself was missing.
2023-04-09 09:15:57 +01:00
Caleb Jamison
7bdb3abad7
Swap debug! for trace! in rp gpio
...
When using gpio pin changes for things like peripheral interrupts these
debug! calls flood defmt, making it difficult to find what you're
actually looking for.
2023-03-02 13:59:52 -05:00
Grant Miller
7be4337de9
Add #[must_use]
to all futures
2023-02-24 13:01:41 -06:00
Slushee
dfc58ad3a2
Add copy to Level enum in embassy-rp gpio module
2023-02-13 17:29:35 +00:00
Slushee
1626a4a74b
Add clone to embassy_rp::gpio::Level
2023-02-13 17:12:50 +00:00
Matt Johnston
83af513424
rp gpio: make pin_bank() inline
...
This allows set_high() etc to be inlined, toggling pins
should be much faster.
2023-01-19 13:36:40 +08:00
Simon Berg
488e322478
Clear unused pulls in set_pull.
2022-12-09 20:30:17 +01:00
Simon Berg
35db6e639b
PIO support for RPi Pico
2022-12-09 20:18:41 +01:00
Dario Nieuwenhuis
7cbc3aefe6
rp: implement input for OutputOpenDrain
2022-12-06 19:54:39 +01:00
Dario Nieuwenhuis
1e2fb0459d
Switch to async-fn-in-trait
2022-11-25 21:02:06 +01:00
Matt Johnston
aa8ba2115c
Expose Pin::pin() and Pin::bank() as public
2022-10-08 11:44:06 +08:00
Ulf Lilleengen
72c2e985bb
Update embedded-hal versions and explicitly pin
2022-09-29 11:27:46 +02:00
Alex Martens
0c6933fefb
rp: remove extraneous newlines in logs
2022-09-18 14:54:24 -07:00
Dario Nieuwenhuis
f11aa9720b
rp: update PAC
2022-08-24 23:43:28 +02:00
Dario Nieuwenhuis
21072bee48
split embassy-util
into embassy-futures
, embassy-sync
.
2022-08-22 22:18:13 +02:00
Dario Nieuwenhuis
f48391a685
rp: fix nvic prio bits (it's 2, not 3)
2022-08-22 16:29:34 +02:00
Dario Nieuwenhuis
6c10fa44d0
rp/gpio: fix wait_for_* when multiple pins are in use.
2022-08-08 00:22:08 +02:00
Dario Nieuwenhuis
89e2e25d6f
rp/gpio: remove unused lifetimes.
2022-08-07 23:25:50 +02:00
Dario Nieuwenhuis
a0f1b0ee01
Split embassy crate into embassy-executor, embassy-util.
2022-07-29 23:40:36 +02:00
Dario Nieuwenhuis
f02ba35482
Remove PeripheralRef::into_inner()
2022-07-23 14:27:45 +02:00
Dario Nieuwenhuis
4901c34d9c
Rename Unborrowed -> PeripheralRef, Unborrow -> Peripheral
2022-07-23 14:00:19 +02:00
Dario Nieuwenhuis
be6408e202
Rename unsafe_impl_unborrow to impl_unborrow
2022-07-23 01:33:22 +02:00
Grant Miller
bff0ad9286
Update embassy-rp
2022-07-23 01:33:22 +02:00
Daniel Bevenius
e757b1882e
Add inline attribute to embassy-rp async functions
...
This commit adds the inline attribute to the recently added async gpio
functions. This is to enable cross-crate inlining and to be consistent
with the other functions implemented for Input and Flex.
2022-07-22 07:24:14 +02:00
Jan Niehusmann
aff840cf30
Fix build of embassy-rp on stable channel
2022-07-21 20:14:45 +00:00
Daniel Bevenius
8979959dd1
Add embedded_hal_async support for embassy-rp
...
This commit adds support for embedded-hal-async to the Embassy
Raspberry PI crate.
2022-07-14 13:52:22 +02:00
chemicstry
53e40860c1
Move all gpio logic to Flex
2022-07-13 02:45:37 +03:00
chemicstry
a335589f34
Change get_set_level to get_output_level
2022-07-13 02:25:09 +03:00
chemicstry
57002875d6
Add convenience GPIO functions to RP
2022-07-13 02:22:46 +03:00
Dario Nieuwenhuis
5cc5961c94
rp/gpio: add Flex.
2022-07-09 02:14:30 +02: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
Daniel Bevenius
027ab3371e
Impl OutputPin/StatefulOutputPin/ToggleableOutputPin
...
This commit implements embedded_hal_02::digital::v2 OutputPin,
StatefulOutputPin, and ToggleableOutputPin for embassy-rp.
2022-05-21 10:11:12 +02:00
Daniel Bevenius
c8461709e3
Add open-drain support for embassy-rp
...
This commit adds open-drain support for embassy-rp by adding a new type
named embassy_rp::gpio::OutputOpenDrain.
2022-05-21 10:11:06 +02:00
Daniel Bevenius
4b0dca1802
Add new lines between SIO methods
...
The commit adds new lines between the SIO functions which at least for
me improves readability and is consistent with the other methods in the
trait.
2022-05-19 13:45:40 +02:00
Dario Nieuwenhuis
dd7a34fdc8
Merge pull request #773 from danbev/embassy-rp-ouput-drop
...
Impl drop for embassy-rp gpio Output
2022-05-19 07:13:13 +02:00
Daniel Bevenius
99c2defa76
squash! Impl ToggleableOutputPin for embassy-rp Output
...
Use value_xor as suggested in pull request feedback.
2022-05-19 06:07:14 +02:00
Daniel Bevenius
da97944322
Impl ToggleableOutputPin for embassy-rp Output
2022-05-19 05:33:42 +02:00
Daniel Bevenius
a3e0fcef0b
Impl drop for embassy-rp gpio Output
...
This commit implements drop for embassy-rp gpio Output which is
currently a todo.
2022-05-17 08:43:03 +02:00
Daniel Bevenius
0bb428dcc0
squash! Implement Output::is_set_low for embassy-rp
...
Add check for the bit of the current pin.
2022-05-11 18:33:13 +02:00
Daniel Bevenius
6d4a49bca8
Implement Output::is_set_low for embassy-rp
...
This commit implements a suggestion for the method is_set_low which is
currently a 'todo', by reading last value written to GPIO_OUT.
2022-05-11 16:23:31 +02:00
Dario Nieuwenhuis
d9aec181a4
rp: impl eh1.0 blocking traits
2022-02-15 17:29:05 +01:00
Dario Nieuwenhuis
0c9b1abb67
rp: remove OptionalPin
2022-02-12 01:34:41 +01:00
Dario Nieuwenhuis
a76526add6
rp: remove use of never type
2021-09-03 17:17:02 +02:00
Dario Nieuwenhuis
7bfb763e09
Rename embassy-extras to embassy-hal-common
2021-07-29 13:44:51 +02:00
Dario Nieuwenhuis
749f4838d5
rp/gpio: add optional pins
2021-06-30 22:43:15 +02:00
Dario Nieuwenhuis
c7c897bb72
rp/gpio: add infallible inherent methods
2021-06-25 06:24:14 +02:00