wpan: fix ipcc delay
This commit is contained in:
parent
e7ab044935
commit
d7ce823d79
@ -93,15 +93,26 @@ pub struct Ipcc;
|
|||||||
|
|
||||||
impl Ipcc {
|
impl Ipcc {
|
||||||
pub fn enable(_config: Config) {
|
pub fn enable(_config: Config) {
|
||||||
|
// TODO: move these lines to the rcc mod
|
||||||
|
|
||||||
|
// set LPTIM1 & LPTIM2 clock source
|
||||||
|
crate::pac::RCC.ccipr().modify(|w| {
|
||||||
|
w.set_lptim1sel(0b00); // PCLK
|
||||||
|
w.set_lptim2sel(0b00); // PCLK
|
||||||
|
});
|
||||||
|
|
||||||
|
// set RF wake-up clock = LSE
|
||||||
|
crate::pac::RCC.csr().modify(|w| w.set_rfwkpsel(0b01));
|
||||||
|
|
||||||
IPCC::enable();
|
IPCC::enable();
|
||||||
IPCC::reset();
|
IPCC::reset();
|
||||||
|
// insert bus access and fence for delay
|
||||||
|
IPCC::enable();
|
||||||
|
|
||||||
|
compiler_fence(Ordering::SeqCst);
|
||||||
IPCC::set_cpu2(true);
|
IPCC::set_cpu2(true);
|
||||||
|
|
||||||
_configure_pwr();
|
IPCC::regs().cpu(0).cr().modify(|w| {
|
||||||
|
|
||||||
let regs = IPCC::regs();
|
|
||||||
|
|
||||||
regs.cpu(0).cr().modify(|w| {
|
|
||||||
w.set_rxoie(true);
|
w.set_rxoie(true);
|
||||||
w.set_txfie(true);
|
w.set_txfie(true);
|
||||||
});
|
});
|
||||||
@ -263,18 +274,3 @@ pub(crate) mod sealed {
|
|||||||
fn state() -> &'static State;
|
fn state() -> &'static State;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn _configure_pwr() {
|
|
||||||
// TODO: move the rest of this to rcc
|
|
||||||
let rcc = crate::pac::RCC;
|
|
||||||
|
|
||||||
// TODO: required
|
|
||||||
// set RF wake-up clock = LSE
|
|
||||||
rcc.csr().modify(|w| w.set_rfwkpsel(0b01));
|
|
||||||
|
|
||||||
// set LPTIM1 & LPTIM2 clock source
|
|
||||||
rcc.ccipr().modify(|w| {
|
|
||||||
w.set_lptim1sel(0b00); // PCLK
|
|
||||||
w.set_lptim2sel(0b00); // PCLK
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
@ -143,6 +143,8 @@ impl BackupDomain {
|
|||||||
Self::modify(|w| {});
|
Self::modify(|w| {});
|
||||||
|
|
||||||
trace!("BDCR ok: {:08x}", Self::read().0);
|
trace!("BDCR ok: {:08x}", Self::read().0);
|
||||||
|
|
||||||
|
compiler_fence(Ordering::SeqCst);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user