aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2021-01-02 20:31:50 +0100
committerDario Nieuwenhuis <[email protected]>2021-01-02 20:31:50 +0100
commit4ce51795f2f4a9d6803dc4101b04f2a191f8d39d (patch)
tree9773a7eb83467e6bbb8c3af2f0cbe2a56a052691
parent8fa3294f35accd1559d5d704d8add8a29e529826 (diff)
use hal::Pins for BufferedUarte
-rw-r--r--embassy-nrf/src/buffered_uarte.rs36
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;
12use core::ptr; 12use core::ptr;
13use core::sync::atomic::{compiler_fence, Ordering}; 13use core::sync::atomic::{compiler_fence, Ordering};
14use core::task::{Context, Poll}; 14use core::task::{Context, Poll};
15
16use embedded_hal::digital::v2::OutputPin;
17
18use crate::hal::gpio::{Floating, Input, Output, Pin as GpioPin, Port as GpioPort, PushPull};
19use crate::interrupt;
20use crate::interrupt::{CriticalSection, OwnedInterrupt};
21#[cfg(any(feature = "52833", feature = "52840", feature = "9160"))]
22use crate::pac::UARTE1;
23use crate::pac::{uarte0, UARTE0};
24
25// Re-export SVD variants to allow user to directly set values
26pub use uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity};
27
28use embassy::io::{AsyncBufRead, AsyncWrite, Result}; 15use embassy::io::{AsyncBufRead, AsyncWrite, Result};
29use embassy::util::WakerRegistration; 16use embassy::util::WakerRegistration;
17use embedded_hal::digital::v2::OutputPin;
30 18
31use crate::fmt::{assert, panic, todo, *}; 19use crate::fmt::{assert, panic, todo, *};
20use crate::hal::gpio::Port as GpioPort;
21use crate::interrupt::{self, CriticalSection, OwnedInterrupt};
22use crate::pac::uarte0;
32 23
33//use crate::trace; 24// Re-export SVD variants to allow user to directly set values
25pub use crate::hal::uarte::Pins;
26pub use uarte0::{baudrate::BAUDRATE_A as Baudrate, config::PARITY_A as Parity};
34 27
35const RINGBUF_SIZE: usize = 512; 28const RINGBUF_SIZE: usize = 512;
36struct RingBuf { 29struct RingBuf {
@@ -504,13 +497,6 @@ impl<T: Instance> UarteState<T> {
504 } 497 }
505} 498}
506 499
507pub 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
514mod private { 500mod 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
532static mut UARTE0_STATE: *mut UarteState<UARTE0> = ptr::null_mut(); 518static 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"))]
534static mut UARTE1_STATE: *mut UarteState<UARTE1> = ptr::null_mut(); 520static mut UARTE1_STATE: *mut UarteState<crate::pac::UARTE1> = ptr::null_mut();
535 521
536impl Instance for UARTE0 { 522impl 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"))]
548impl Instance for UARTE1 { 534impl 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> {