From de15ffcb4cf0db64d46bf49bd0e7bed41cdeacba Mon Sep 17 00:00:00 2001 From: Bernát Süli Date: Thu, 18 Dec 2025 16:32:12 +0100 Subject: stm32: disable HSI if not used --- embassy-stm32/src/rcc/l.rs | 5 +++++ embassy-stm32/src/rcc/u5.rs | 5 +++++ embassy-stm32/src/rcc/wba.rs | 5 +++++ 3 files changed, 15 insertions(+) (limited to 'embassy-stm32/src') diff --git a/embassy-stm32/src/rcc/l.rs b/embassy-stm32/src/rcc/l.rs index 0d668103c..a1dfefd15 100644 --- a/embassy-stm32/src/rcc/l.rs +++ b/embassy-stm32/src/rcc/l.rs @@ -385,6 +385,11 @@ pub(crate) unsafe fn init(config: Config) { while !RCC.extcfgr().read().c2hpref() {} } + // Disable HSI if not used + if !config.hsi { + RCC.cr().modify(|w| w.set_hsion(false)); + } + config.mux.init(); set_clocks!( diff --git a/embassy-stm32/src/rcc/u5.rs b/embassy-stm32/src/rcc/u5.rs index 47cc29c6f..c8c3e4adb 100644 --- a/embassy-stm32/src/rcc/u5.rs +++ b/embassy-stm32/src/rcc/u5.rs @@ -467,6 +467,11 @@ pub(crate) unsafe fn init(config: Config) { let lse = config.ls.lse.map(|l| l.frequency); let lsi = config.ls.lsi.then_some(LSI_FREQ); + // Disable HSI if not used + if !config.hsi { + RCC.cr().modify(|w| w.set_hsion(false)); + } + config.mux.init(); set_clocks!( diff --git a/embassy-stm32/src/rcc/wba.rs b/embassy-stm32/src/rcc/wba.rs index 2528996d5..4ab3067bc 100644 --- a/embassy-stm32/src/rcc/wba.rs +++ b/embassy-stm32/src/rcc/wba.rs @@ -269,6 +269,11 @@ pub(crate) unsafe fn init(config: Config) { let lsi = config.ls.lsi.then_some(LSI_FREQ); + // Disable HSI if not used + if !config.hsi { + RCC.cr().modify(|w| w.set_hsion(false)); + } + config.mux.init(); set_clocks!( -- cgit