Skip to content

Commit 209cb62

Browse files
committed
spi: remove Rx/Tx periph traits, use channels directly
1 parent 6792867 commit 209cb62

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/spi/dma.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use futures_util::task::AtomicWaker;
1313
use crate::{
1414
gpdma::{
1515
config::DmaConfig,
16-
periph::{DmaDuplex, DmaRx, DmaTx, Rx, RxAddr, Tx, TxAddr},
16+
periph::{DmaDuplex, DmaRx, DmaTx, RxAddr, TxAddr},
1717
DmaChannel, DmaTransfer, Error as DmaError, Word as DmaWord,
1818
},
1919
interrupt,
@@ -222,16 +222,16 @@ where
222222
}
223223

224224
#[allow(private_bounds)]
225-
impl<SPI, MODE, W> SpiDma<SPI, MODE, W>
225+
impl<SPI, CH, W> SpiDma<SPI, DmaRx<SPI, W, CH>, W>
226226
where
227227
SPI: Instance + Waker,
228228
W: Word + DmaWord,
229-
MODE: Rx<W>,
229+
CH: DmaChannel,
230230
{
231231
pub fn start_dma_read<'a, D>(
232232
&'a mut self,
233233
mut destination: D,
234-
) -> Result<DmaTransfer<'a, <MODE as Rx<W>>::CH>, Error>
234+
) -> Result<DmaTransfer<'a, CH>, Error>
235235
where
236236
D: WriteBuffer<Word = W>,
237237
{
@@ -243,7 +243,7 @@ where
243243
self.setup_read_mode()?;
244244

245245
let spi = &mut self.spi;
246-
let transfer = self.mode.init_rx_transfer(config, destination);
246+
let mut transfer = self.mode.init_rx_transfer(config, destination);
247247

248248
spi.inner.enable_rx_dma();
249249

@@ -264,16 +264,16 @@ where
264264
}
265265

266266
#[allow(private_bounds)]
267-
impl<SPI, MODE, W> SpiDma<SPI, MODE, W>
267+
impl<SPI, CH, W> SpiDma<SPI, DmaTx<SPI, W, CH>, W>
268268
where
269269
SPI: Instance + Waker,
270270
W: Word + DmaWord,
271-
MODE: Tx<W>,
271+
CH: DmaChannel,
272272
{
273273
pub fn start_dma_write<'a, S>(
274274
&'a mut self,
275275
source: S,
276-
) -> Result<DmaTransfer<'a, <MODE as Tx<W>>::CH>, Error>
276+
) -> Result<DmaTransfer<'a, CH>, Error>
277277
where
278278
S: ReadBuffer<Word = W>,
279279
{
@@ -287,7 +287,7 @@ where
287287
self.setup_write_mode()?;
288288

289289
let spi = &mut self.spi;
290-
let transfer = self.mode.init_tx_transfer(config, source);
290+
let mut transfer = self.mode.init_tx_transfer(config, source);
291291

292292
transfer.start_nonblocking();
293293
spi.inner.enable_tx_dma();
@@ -338,8 +338,9 @@ where
338338
self.check_transfer_mode()?;
339339

340340
let spi = &mut self.spi;
341-
let tx_transfer = self.mode.init_tx_transfer(tx_config, source);
342-
let rx_transfer = self.mode.init_rx_transfer(rx_config, destination);
341+
let (mut tx_transfer, mut rx_transfer) = self
342+
.mode
343+
.init_duplex_transfer(tx_config, rx_config, source, destination);
343344

344345
spi.inner.enable_rx_dma();
345346
rx_transfer.start_nonblocking();

0 commit comments

Comments
 (0)