diff options
| author | Dario Nieuwenhuis <[email protected]> | 2021-01-02 20:31:50 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2021-01-02 20:31:50 +0100 |
| commit | 4ce51795f2f4a9d6803dc4101b04f2a191f8d39d (patch) | |
| tree | 9773a7eb83467e6bbb8c3af2f0cbe2a56a052691 | |
| parent | 8fa3294f35accd1559d5d704d8add8a29e529826 (diff) | |
use hal::Pins for BufferedUarte
| -rw-r--r-- | embassy-nrf/src/buffered_uarte.rs | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs index 6227e332e..9863e3fab 100644 --- a/embassy-nrf/src/buffered_uarte.rs +++ b/embassy-nrf/src/buffered_uarte.rs | |||
| @@ -12,25 +12,18 @@ use core::pin::Pin; | |||
| 12 | use core::ptr; | 12 | use core::ptr; |
| 13 | use core::sync::atomic::{compiler_fence, Ordering}; | 13 | use core::sync::atomic::{compiler_fence, Ordering}; |
| 14 | use core::task::{Context, Poll}; | 14 | use core::task::{Context, Poll}; |
| 15 | |||
| 16 | use embedded_hal::digital::v2::OutputPin; | ||
| 17 | |||
| 18 | use crate::hal::gpio::{Floating, Input, Output, Pin as GpioPin, Port as GpioPort, PushPull}; | ||
| 19 | use crate::interrupt; | ||
| 20 | use crate::interrupt::{CriticalSection, OwnedInterrupt}; | ||
| 21 | #[cfg(any(feature = "52833", feature = "52840", feature = "9160"))] | ||
| 22 | use crate::pac::UARTE1; | ||
| 23 | use crate::pac::{uarte0, UARTE0}; | ||
| 24 | |||
| 25 | // Re-export SVD variants to allow user to directly set values | ||
| 26 | pub use uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | ||
| 27 | |||
| 28 | use embassy::io::{AsyncBufRead, AsyncWrite, Result}; | 15 | use embassy::io::{AsyncBufRead, AsyncWrite, Result}; |
| 29 | use embassy::util::WakerRegistration; | 16 | use embassy::util::WakerRegistration; |
| 17 | use embedded_hal::digital::v2::OutputPin; | ||
| 30 | 18 | ||
| 31 | use crate::fmt::{assert, panic, todo, *}; | 19 | use crate::fmt::{assert, panic, todo, *}; |
| 20 | use crate::hal::gpio::Port as GpioPort; | ||
| 21 | use crate::interrupt::{self, CriticalSection, OwnedInterrupt}; | ||
| 22 | use crate::pac::uarte0; | ||
| 32 | 23 | ||
| 33 | //use crate::trace; | 24 | // Re-export SVD variants to allow user to directly set values |
| 25 | pub use crate::hal::uarte::Pins; | ||
| 26 | pub use uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity}; | ||
| 34 | 27 | ||
| 35 | const RINGBUF_SIZE: usize = 512; | 28 | const RINGBUF_SIZE: usize = 512; |
| 36 | struct RingBuf { | 29 | struct RingBuf { |
| @@ -504,13 +497,6 @@ impl<T: Instance> UarteState<T> { | |||
| 504 | } | 497 | } |
| 505 | } | 498 | } |
| 506 | 499 | ||
| 507 | pub struct Pins { | ||
| 508 | pub rxd: GpioPin<Input<Floating>>, | ||
| 509 | pub txd: GpioPin<Output<PushPull>>, | ||
| 510 | pub cts: Option<GpioPin<Input<Floating>>>, | ||
| 511 | pub rts: Option<GpioPin<Output<PushPull>>>, | ||
| 512 | } | ||
| 513 | |||
| 514 | mod private { | 500 | mod private { |
| 515 | pub trait Sealed {} | 501 | pub trait Sealed {} |
| 516 | 502 | ||
| @@ -529,11 +515,11 @@ pub trait Instance: Deref<Target = uarte0::RegisterBlock> + Sized + private::Sea | |||
| 529 | fn set_state(_cs: &CriticalSection, state: *mut UarteState<Self>); | 515 | fn set_state(_cs: &CriticalSection, state: *mut UarteState<Self>); |
| 530 | } | 516 | } |
| 531 | 517 | ||
| 532 | static mut UARTE0_STATE: *mut UarteState<UARTE0> = ptr::null_mut(); | 518 | static mut UARTE0_STATE: *mut UarteState<crate::pac::UARTE0> = ptr::null_mut(); |
| 533 | #[cfg(any(feature = "52833", feature = "52840", feature = "9160"))] | 519 | #[cfg(any(feature = "52833", feature = "52840", feature = "9160"))] |
| 534 | static mut UARTE1_STATE: *mut UarteState<UARTE1> = ptr::null_mut(); | 520 | static mut UARTE1_STATE: *mut UarteState<crate::pac::UARTE1> = ptr::null_mut(); |
| 535 | 521 | ||
| 536 | impl Instance for UARTE0 { | 522 | impl Instance for crate::pac::UARTE0 { |
| 537 | type Interrupt = interrupt::UARTE0_UART0Interrupt; | 523 | type Interrupt = interrupt::UARTE0_UART0Interrupt; |
| 538 | 524 | ||
| 539 | fn get_state(_cs: &CriticalSection) -> *mut UarteState<Self> { | 525 | fn get_state(_cs: &CriticalSection) -> *mut UarteState<Self> { |
| @@ -545,7 +531,7 @@ impl Instance for UARTE0 { | |||
| 545 | } | 531 | } |
| 546 | 532 | ||
| 547 | #[cfg(any(feature = "52833", feature = "52840", feature = "9160"))] | 533 | #[cfg(any(feature = "52833", feature = "52840", feature = "9160"))] |
| 548 | impl Instance for UARTE1 { | 534 | impl Instance for crate::pac::UARTE1 { |
| 549 | type Interrupt = interrupt::UARTE1Interrupt; | 535 | type Interrupt = interrupt::UARTE1Interrupt; |
| 550 | 536 | ||
| 551 | fn get_state(_cs: &CriticalSection) -> *mut UarteState<Self> { | 537 | fn get_state(_cs: &CriticalSection) -> *mut UarteState<Self> { |
