stm32/rcc: add LSE/LSI to all chips, add RTC to more chips.
This commit is contained in:
@@ -10,9 +10,6 @@ use crate::time::Hertz;
|
||||
/// HSI speed
|
||||
pub const HSI_FREQ: Hertz = Hertz(16_000_000);
|
||||
|
||||
/// LSI speed
|
||||
pub const LSI_FREQ: Hertz = Hertz(32_000);
|
||||
|
||||
/// System clock mux source
|
||||
#[derive(Clone, Copy)]
|
||||
pub enum ClockSrc {
|
||||
@@ -73,6 +70,7 @@ pub struct Config {
|
||||
pub ahb_pre: AHBPrescaler,
|
||||
pub apb_pre: APBPrescaler,
|
||||
pub low_power_run: bool,
|
||||
pub ls: super::LsConfig,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
@@ -83,6 +81,7 @@ impl Default for Config {
|
||||
ahb_pre: AHBPrescaler::DIV1,
|
||||
apb_pre: APBPrescaler::DIV1,
|
||||
low_power_run: false,
|
||||
ls: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -193,7 +192,7 @@ pub(crate) unsafe fn init(config: Config) {
|
||||
// Enable LSI
|
||||
RCC.csr().write(|w| w.set_lsion(true));
|
||||
while !RCC.csr().read().lsirdy() {}
|
||||
(LSI_FREQ, Sw::LSI)
|
||||
(super::LSI_FREQ, Sw::LSI)
|
||||
}
|
||||
};
|
||||
|
||||
@@ -272,10 +271,13 @@ pub(crate) unsafe fn init(config: Config) {
|
||||
PWR.cr1().modify(|w| w.set_lpr(true));
|
||||
}
|
||||
|
||||
let rtc = config.ls.init();
|
||||
|
||||
set_freqs(Clocks {
|
||||
sys: sys_clk,
|
||||
ahb1: ahb_freq,
|
||||
apb1: apb_freq,
|
||||
apb1_tim: apb_tim_freq,
|
||||
rtc,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user