@@ -16,6 +16,7 @@ use crate::dma::{
1616 dma1, CircBuffer , DMAFrame , FrameReader , FrameSender , Receive , RxDma , TransferPayload ,
1717 Transmit , TxDma ,
1818} ;
19+ use crate :: dmamux:: { DmaInput , DmaMux } ;
1920use crate :: gpio:: { self , Alternate , OpenDrain , PushPull } ;
2021use crate :: pac;
2122use crate :: rcc:: { Clocks , Enable , RccBus , Reset } ;
@@ -216,8 +217,8 @@ macro_rules! hal {
216217 $USARTX: ident: (
217218 $usartX: ident,
218219 $pclkX: ident,
219- tx: ( $txdma: ident, $dmacst : ident , $dmatxch : path) ,
220- rx: ( $rxdma: ident, $dmacsr : ident , $dmarxch : path)
220+ tx: ( $txdma: ident, $dmatxch : path , $dmatxsel : path) ,
221+ rx: ( $rxdma: ident, $dmarxch : path , $dmarxsel : path)
221222 ) ,
222223 ) +) => {
223224 $(
@@ -710,9 +711,7 @@ macro_rules! hal {
710711 self . channel. set_transfer_length( len as u16 ) ;
711712
712713 // Tell DMA to request from serial
713- self . channel. cselr( ) . modify( |_, w| {
714- w. $dmacsr( ) . map2( )
715- } ) ;
714+ self . channel. set_request_line( $dmarxsel) . unwrap( ) ;
716715
717716 self . channel. ccr( ) . modify( |_, w| {
718717 w
@@ -765,9 +764,7 @@ macro_rules! hal {
765764 self . channel. set_transfer_length( buf. max_len( ) as u16 ) ;
766765
767766 // Tell DMA to request from serial
768- self . channel. cselr( ) . modify( |_, w| {
769- w. $dmacsr( ) . map2( )
770- } ) ;
767+ self . channel. set_request_line( $dmarxsel) . unwrap( ) ;
771768
772769 self . channel. ccr( ) . modify( |_, w| {
773770 w
@@ -812,9 +809,7 @@ macro_rules! hal {
812809 self . channel. set_peripheral_address( & usart. tdr as * const _ as u32 , false ) ;
813810
814811 // Tell DMA to request from serial
815- self . channel. cselr( ) . modify( |_, w| {
816- w. $dmacst( ) . map2( )
817- } ) ;
812+ self . channel. set_request_line( $dmatxsel) . unwrap( ) ;
818813
819814 self . channel. ccr( ) . modify( |_, w| unsafe {
820815 w. mem2mem( )
@@ -841,13 +836,13 @@ macro_rules! hal {
841836}
842837
843838hal ! {
844- USART1 : ( usart1, pclk2, tx: ( TxDma1 , c4s , dma1:: C4 ) , rx: ( RxDma1 , c5s , dma1:: C5 ) ) ,
845- USART2 : ( usart2, pclk1, tx: ( TxDma2 , c7s , dma1:: C7 ) , rx: ( RxDma2 , c6s , dma1:: C6 ) ) ,
839+ USART1 : ( usart1, pclk2, tx: ( TxDma1 , dma1:: C4 , DmaInput :: Usart1Tx ) , rx: ( RxDma1 , dma1:: C5 , DmaInput :: Usart1Rx ) ) ,
840+ USART2 : ( usart2, pclk1, tx: ( TxDma2 , dma1:: C7 , DmaInput :: Usart2Tx ) , rx: ( RxDma2 , dma1:: C6 , DmaInput :: Usart2Rx ) ) ,
846841}
847842
848843#[ cfg( not( any( feature = "stm32l432" , feature = "stm32l442" ) ) ) ]
849844hal ! {
850- USART3 : ( usart3, pclk1, tx: ( TxDma3 , c2s , dma1:: C2 ) , rx: ( RxDma3 , c3s , dma1:: C3 ) ) ,
845+ USART3 : ( usart3, pclk1, tx: ( TxDma3 , dma1:: C2 , DmaInput :: Usart3Tx ) , rx: ( RxDma3 , dma1:: C3 , DmaInput :: Usart3Rx ) ) ,
851846}
852847
853848#[ cfg( any(
@@ -871,7 +866,7 @@ hal! {
871866 feature = "stm32l4s9" ,
872867) ) ]
873868hal ! {
874- UART4 : ( uart4, pclk1, tx: ( TxDma4 , c3s , dma2:: C3 ) , rx: ( RxDma4 , c5s , dma2:: C5 ) ) ,
869+ UART4 : ( uart4, pclk1, tx: ( TxDma4 , dma2:: C3 , DmaInput :: Uart4Tx ) , rx: ( RxDma4 , dma2:: C5 , DmaInput :: Uart4Rx ) ) ,
875870}
876871
877872#[ cfg( any(
@@ -892,7 +887,7 @@ hal! {
892887 feature = "stm32l4s9" ,
893888) ) ]
894889hal ! {
895- UART5 : ( uart5, pclk1, tx: ( TxDma5 , c1s , dma2:: C1 ) , rx: ( RxDma5 , c2s , dma2:: C2 ) ) ,
890+ UART5 : ( uart5, pclk1, tx: ( TxDma5 , dma2:: C1 , DmaInput :: Uart5Tx ) , rx: ( RxDma5 , dma2:: C2 , DmaInput :: Uart5Rx ) ) ,
896891}
897892
898893impl < USART , PINS > fmt:: Write for Serial < USART , PINS >
0 commit comments