1- use core:: { marker:: PhantomData , mem:: transmute, ops :: Deref } ;
1+ use core:: { marker:: PhantomData , mem:: transmute} ;
22
33use super :: { Instance , RegisterBlockImpl , Serial } ;
44use crate :: dma:: {
@@ -67,12 +67,7 @@ pub trait SerialHandleIT {
6767 fn handle_error_interrupt ( & mut self ) ;
6868}
6969
70- impl < Serial_ > Serial < Serial_ >
71- where
72- Serial_ : Instance ,
73- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
74- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
75- {
70+ impl < Serial_ : Instance > Serial < Serial_ > {
7671 /// Converts blocking [Serial] to non-blocking [SerialDma] that use `tx_stream` and `rx_stream` to send/receive data
7772 pub fn use_dma < TX_STREAM , const TX_CH : u8 , RX_STREAM , const RX_CH : u8 > (
7873 self ,
@@ -152,10 +147,7 @@ where
152147///
153148/// The struct can be also used to send/receive bytes in blocking mode with methods:
154149/// [`write`](Self::write()), [`read`](Self::read()), [`write_read`](Self::write_read()).
155- pub struct SerialDma < Serial_ , TX_TRANSFER , RX_TRANSFER >
156- where
157- Serial_ : Instance ,
158- {
150+ pub struct SerialDma < Serial_ : Instance , TX_TRANSFER , RX_TRANSFER > {
159151 hal_serial : Serial < Serial_ > ,
160152 callback : Option < SerialCompleteCallback > ,
161153 tx : TX_TRANSFER ,
@@ -338,11 +330,8 @@ where
338330}
339331
340332/// Common implementation
341- impl < Serial_ , TX_TRANSFER , RX_TRANSFER > SerialDma < Serial_ , TX_TRANSFER , RX_TRANSFER >
333+ impl < Serial_ : Instance , TX_TRANSFER , RX_TRANSFER > SerialDma < Serial_ , TX_TRANSFER , RX_TRANSFER >
342334where
343- Serial_ : Instance ,
344- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
345- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
346335 TX_TRANSFER : DMATransfer < & ' static [ u8 ] > ,
347336 RX_TRANSFER : DMATransfer < & ' static mut [ u8 ] > ,
348337{
@@ -386,13 +375,9 @@ where
386375 }
387376}
388377
389- impl < Serial_ , TX_STREAM , const TX_CH : u8 > SerialHandleIT
378+ impl < Serial_ : Instance , TX_STREAM , const TX_CH : u8 > SerialHandleIT
390379 for SerialDma < Serial_ , TxDMA < Serial_ , TX_STREAM , TX_CH > , NoDMA >
391380where
392- Serial_ : Instance ,
393- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
394- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
395-
396381 TX_STREAM : Stream ,
397382 ChannelX < TX_CH > : Channel ,
398383 Tx < Serial_ > : DMASet < TX_STREAM , TX_CH , MemoryToPeripheral > ,
@@ -428,13 +413,9 @@ where
428413 }
429414}
430415
431- impl < Serial_ , RX_STREAM , const RX_CH : u8 > SerialHandleIT
416+ impl < Serial_ : Instance , RX_STREAM , const RX_CH : u8 > SerialHandleIT
432417 for SerialDma < Serial_ , NoDMA , RxDMA < Serial_ , RX_STREAM , RX_CH > >
433418where
434- Serial_ : Instance ,
435- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
436- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
437-
438419 RX_STREAM : Stream ,
439420 ChannelX < RX_CH > : Channel ,
440421 Rx < Serial_ > : DMASet < RX_STREAM , RX_CH , PeripheralToMemory > ,
@@ -471,13 +452,9 @@ where
471452}
472453
473454/// Only for both TX and RX DMA
474- impl < Serial_ , TX_STREAM , const TX_CH : u8 , RX_STREAM , const RX_CH : u8 > SerialHandleIT
455+ impl < Serial_ : Instance , TX_STREAM , const TX_CH : u8 , RX_STREAM , const RX_CH : u8 > SerialHandleIT
475456 for SerialDma < Serial_ , TxDMA < Serial_ , TX_STREAM , TX_CH > , RxDMA < Serial_ , RX_STREAM , RX_CH > >
476457where
477- Serial_ : Instance ,
478- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
479- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
480-
481458 TX_STREAM : Stream ,
482459 ChannelX < TX_CH > : Channel ,
483460 Tx < Serial_ > : DMASet < TX_STREAM , TX_CH , MemoryToPeripheral > ,
@@ -550,13 +527,9 @@ where
550527}
551528
552529// Write DMA implementations for TX only and TX/RX Serial DMA
553- impl < Serial_ , TX_STREAM , const TX_CH : u8 , RX_TRANSFER > SerialWriteDMA
530+ impl < Serial_ : Instance , TX_STREAM , const TX_CH : u8 , RX_TRANSFER > SerialWriteDMA
554531 for SerialDma < Serial_ , TxDMA < Serial_ , TX_STREAM , TX_CH > , RX_TRANSFER >
555532where
556- Serial_ : Instance ,
557- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
558- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
559-
560533 TX_STREAM : Stream ,
561534 ChannelX < TX_CH > : Channel ,
562535 Tx < Serial_ > : DMASet < TX_STREAM , TX_CH , MemoryToPeripheral > ,
@@ -581,13 +554,9 @@ where
581554}
582555
583556// Read DMA implementations for RX only and TX/RX Serial DMA
584- impl < Serial_ , TX_TRANSFER , RX_STREAM , const RX_CH : u8 > SerialReadDMA
557+ impl < Serial_ : Instance , TX_TRANSFER , RX_STREAM , const RX_CH : u8 > SerialReadDMA
585558 for SerialDma < Serial_ , TX_TRANSFER , RxDMA < Serial_ , RX_STREAM , RX_CH > >
586559where
587- Serial_ : Instance ,
588- Serial_ : Deref < Target = <Serial_ as Instance >:: RegisterBlock > ,
589- <Serial_ as Instance >:: RegisterBlock : RegisterBlockImpl ,
590-
591560 RX_STREAM : Stream ,
592561 ChannelX < RX_CH > : Channel ,
593562 Rx < Serial_ > : DMASet < RX_STREAM , RX_CH , PeripheralToMemory > ,
0 commit comments