aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob McWhirter <[email protected]>2021-07-13 10:46:31 -0400
committerBob McWhirter <[email protected]>2021-07-13 10:46:31 -0400
commit604a25ec5de6f8007f9ad61f315ea03d0d292829 (patch)
treef82400116feea01afb838dbf2d3f502c05f4de9b
parent8fbea38a5b3eada58943a3d3b346ca4944bfc896 (diff)
Reduce number of traits and impls.
-rw-r--r--embassy-stm32/src/bdma/mod.rs46
1 files changed, 10 insertions, 36 deletions
diff --git a/embassy-stm32/src/bdma/mod.rs b/embassy-stm32/src/bdma/mod.rs
index b94563e32..8448185a0 100644
--- a/embassy-stm32/src/bdma/mod.rs
+++ b/embassy-stm32/src/bdma/mod.rs
@@ -394,46 +394,20 @@ pac::interrupts! {
394#[cfg(usart)] 394#[cfg(usart)]
395use crate::usart; 395use crate::usart;
396 396
397#[cfg(not(dmamux))]
398pac::peripheral_dma_channels! {
399 ($peri:ident, usart, $kind:ident, RX, $channel_peri:ident, $dma_peri:ident, $channel_num:expr) => {
400 impl usart::RxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
401 impl usart::sealed::RxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
402 };
403
404 ($peri:ident, usart, $kind:ident, TX, $channel_peri:ident, $dma_peri:ident, $channel_num:expr) => {
405 impl usart::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
406 impl usart::sealed::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
407 };
408
409 ($peri:ident, uart, $kind:ident, RX, $channel_peri:ident, $dma_peri:ident, $channel_num:expr) => {
410 impl usart::RxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
411 impl usart::sealed::RxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
412 };
413
414 ($peri:ident, uart, $kind:ident, TX, $channel_peri:ident, $dma_peri:ident, $channel_num:expr) => {
415 impl usart::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
416 impl usart::sealed::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { }
417 };
418}
419
420#[cfg(dmamux)]
421pac::peripherals! { 397pac::peripherals! {
422 (usart, $peri:ident) => { 398 (usart, $peri:ident) => {
423 pac::bdma_channels! { 399 impl<T:Channel + crate::dma_traits::WriteDma<crate::peripherals::$peri>> usart::TxDma<crate::peripherals::$peri> for T {}
424 ($channel_peri:ident, $dma_peri:ident, $channel_num:expr) => { 400 impl<T:Channel + crate::dma_traits::WriteDma<crate::peripherals::$peri>> usart::sealed::TxDma<crate::peripherals::$peri> for T {}
425 impl usart::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { } 401
426 impl usart::sealed::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { } 402 impl<T:Channel + crate::dma_traits::ReadDma<crate::peripherals::$peri>> usart::RxDma<crate::peripherals::$peri> for T {}
427 }; 403 impl<T:Channel + crate::dma_traits::ReadDma<crate::peripherals::$peri>> usart::sealed::RxDma<crate::peripherals::$peri> for T {}
428 }
429 }; 404 };
430 405
431 (uart, $peri:ident) => { 406 (uart, $peri:ident) => {
432 pac::bdma_channels! { 407 impl<T:Channel + crate::dma_traits::WriteDma<crate::peripherals::$peri>> usart::TxDma<crate::peripherals::$peri> for T {}
433 ($channel_peri:ident, $dma_peri:ident, $channel_num:expr) => { 408 impl<T:Channel + crate::dma_traits::WriteDma<crate::peripherals::$peri>> usart::sealed::TxDma<crate::peripherals::$peri> for T {}
434 impl usart::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { } 409
435 impl usart::sealed::TxDma<crate::peripherals::$peri> for crate::peripherals::$channel_peri { } 410 impl<T:Channel + crate::dma_traits::ReadDma<crate::peripherals::$peri>> usart::RxDma<crate::peripherals::$peri> for T {}
436 }; 411 impl<T:Channel + crate::dma_traits::ReadDma<crate::peripherals::$peri>> usart::sealed::RxDma<crate::peripherals::$peri> for T {}
437 }
438 }; 412 };
439} 413}