diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-03-15 02:37:08 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2022-03-15 02:37:08 +0100 |
| commit | 059b16423458a80c5cb4e1630260d6c564a88e84 (patch) | |
| tree | cf065e87589733f37d7c15c99d20b5e9132cd4c4 | |
| parent | 4579192832e09efaa657fea1fc975d0548499d2a (diff) | |
stm32/spi: do not clear rxfifo in SPIv3, the hw already does it.
| -rw-r--r-- | embassy-stm32/src/spi/mod.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/embassy-stm32/src/spi/mod.rs b/embassy-stm32/src/spi/mod.rs index 1806fb369..d8ffabb11 100644 --- a/embassy-stm32/src/spi/mod.rs +++ b/embassy-stm32/src/spi/mod.rs | |||
| @@ -462,6 +462,10 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { | |||
| 462 | set_rxdmaen(T::REGS, true); | 462 | set_rxdmaen(T::REGS, true); |
| 463 | } | 463 | } |
| 464 | 464 | ||
| 465 | // SPIv3 clears rxfifo on SPE=0 | ||
| 466 | #[cfg(not(spi_v3))] | ||
| 467 | flush_rx_fifo(T::REGS); | ||
| 468 | |||
| 465 | let clock_byte_count = data.len(); | 469 | let clock_byte_count = data.len(); |
| 466 | 470 | ||
| 467 | let rx_request = self.rxdma.request(); | 471 | let rx_request = self.rxdma.request(); |
| @@ -522,8 +526,8 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> { | |||
| 522 | set_rxdmaen(T::REGS, true); | 526 | set_rxdmaen(T::REGS, true); |
| 523 | } | 527 | } |
| 524 | 528 | ||
| 525 | // TODO: This is unnecessary in some versions because | 529 | // SPIv3 clears rxfifo on SPE=0 |
| 526 | // clearing SPE automatically clears the fifos | 530 | #[cfg(not(spi_v3))] |
| 527 | flush_rx_fifo(T::REGS); | 531 | flush_rx_fifo(T::REGS); |
| 528 | 532 | ||
| 529 | let rx_request = self.rxdma.request(); | 533 | let rx_request = self.rxdma.request(); |
| @@ -723,6 +727,7 @@ fn spin_until_rx_ready(regs: Regs) -> Result<(), Error> { | |||
| 723 | } | 727 | } |
| 724 | } | 728 | } |
| 725 | 729 | ||
| 730 | #[cfg(not(spi_v3))] | ||
| 726 | fn flush_rx_fifo(regs: Regs) { | 731 | fn flush_rx_fifo(regs: Regs) { |
| 727 | unsafe { | 732 | unsafe { |
| 728 | #[cfg(not(spi_v3))] | 733 | #[cfg(not(spi_v3))] |
