Move set_word_size to mod
This commit is contained in:
parent
a35b7d90bc
commit
bd9e730024
@ -288,6 +288,55 @@ impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
|||||||
_ => 0b111,
|
_ => 0b111,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn set_word_size(&mut self, word_size: WordSize) {
|
||||||
|
if self.current_word_size == word_size {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(any(spi_v1, spi_f1))]
|
||||||
|
unsafe {
|
||||||
|
T::regs().cr1().modify(|reg| {
|
||||||
|
reg.set_spe(false);
|
||||||
|
reg.set_dff(word_size.dff())
|
||||||
|
});
|
||||||
|
T::regs().cr1().modify(|reg| {
|
||||||
|
reg.set_spe(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#[cfg(spi_v2)]
|
||||||
|
unsafe {
|
||||||
|
T::regs().cr1().modify(|w| {
|
||||||
|
w.set_spe(false);
|
||||||
|
});
|
||||||
|
T::regs().cr2().modify(|w| {
|
||||||
|
w.set_frxth(word_size.frxth());
|
||||||
|
w.set_ds(word_size.ds());
|
||||||
|
});
|
||||||
|
T::regs().cr1().modify(|w| {
|
||||||
|
w.set_spe(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
#[cfg(spi_v3)]
|
||||||
|
unsafe {
|
||||||
|
T::regs().cr1().modify(|w| {
|
||||||
|
w.set_csusp(true);
|
||||||
|
});
|
||||||
|
while T::regs().sr().read().eot() {}
|
||||||
|
T::regs().cr1().modify(|w| {
|
||||||
|
w.set_spe(false);
|
||||||
|
});
|
||||||
|
T::regs().cfg1().modify(|w| {
|
||||||
|
w.set_dsize(word_size.dsize());
|
||||||
|
});
|
||||||
|
T::regs().cr1().modify(|w| {
|
||||||
|
w.set_csusp(false);
|
||||||
|
w.set_spe(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
self.current_word_size = word_size;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trait RegsExt {
|
trait RegsExt {
|
||||||
|
@ -13,22 +13,6 @@ use futures::future::join3;
|
|||||||
use super::Spi;
|
use super::Spi;
|
||||||
|
|
||||||
impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
||||||
fn set_word_size(&mut self, word_size: WordSize) {
|
|
||||||
if self.current_word_size == word_size {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
unsafe {
|
|
||||||
T::regs().cr1().modify(|reg| {
|
|
||||||
reg.set_spe(false);
|
|
||||||
reg.set_dff(word_size.dff())
|
|
||||||
});
|
|
||||||
T::regs().cr1().modify(|reg| {
|
|
||||||
reg.set_spe(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
self.current_word_size = word_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
async fn write_dma_u8(&mut self, write: &[u8]) -> Result<(), Error>
|
async fn write_dma_u8(&mut self, write: &[u8]) -> Result<(), Error>
|
||||||
where
|
where
|
||||||
|
@ -12,25 +12,6 @@ use futures::future::{join, join3};
|
|||||||
use super::Spi;
|
use super::Spi;
|
||||||
|
|
||||||
impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
||||||
fn set_word_size(&mut self, word_size: WordSize) {
|
|
||||||
if self.current_word_size == word_size {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
unsafe {
|
|
||||||
T::regs().cr1().modify(|w| {
|
|
||||||
w.set_spe(false);
|
|
||||||
});
|
|
||||||
T::regs().cr2().modify(|w| {
|
|
||||||
w.set_frxth(word_size.frxth());
|
|
||||||
w.set_ds(word_size.ds());
|
|
||||||
});
|
|
||||||
T::regs().cr1().modify(|w| {
|
|
||||||
w.set_spe(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
self.current_word_size = word_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
async fn write_dma_u8(&mut self, write: &[u8]) -> Result<(), Error>
|
async fn write_dma_u8(&mut self, write: &[u8]) -> Result<(), Error>
|
||||||
where
|
where
|
||||||
|
@ -13,29 +13,6 @@ use futures::future::join3;
|
|||||||
use super::Spi;
|
use super::Spi;
|
||||||
|
|
||||||
impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
impl<'d, T: Instance, Tx, Rx> Spi<'d, T, Tx, Rx> {
|
||||||
fn set_word_size(&mut self, word_size: WordSize) {
|
|
||||||
if self.current_word_size == word_size {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
unsafe {
|
|
||||||
T::regs().cr1().modify(|w| {
|
|
||||||
w.set_csusp(true);
|
|
||||||
});
|
|
||||||
while T::regs().sr().read().eot() {}
|
|
||||||
T::regs().cr1().modify(|w| {
|
|
||||||
w.set_spe(false);
|
|
||||||
});
|
|
||||||
T::regs().cfg1().modify(|w| {
|
|
||||||
w.set_dsize(word_size.dsize());
|
|
||||||
});
|
|
||||||
T::regs().cr1().modify(|w| {
|
|
||||||
w.set_csusp(false);
|
|
||||||
w.set_spe(true);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
self.current_word_size = word_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
async fn write_dma_u8(&mut self, write: &[u8]) -> Result<(), Error>
|
async fn write_dma_u8(&mut self, write: &[u8]) -> Result<(), Error>
|
||||||
where
|
where
|
||||||
|
Loading…
Reference in New Issue
Block a user