From d372cba266c7a110f314e74dfee589987b892383 Mon Sep 17 00:00:00 2001
From: Adin Ackerman <adinackerman@gmail.com>
Date: Tue, 2 Jan 2024 16:25:51 -0800
Subject: [PATCH] additional chip variants required more clocks

---
 embassy-stm32/src/rcc/g0.rs  | 5 +++++
 embassy-stm32/src/rcc/mod.rs | 6 ++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/embassy-stm32/src/rcc/g0.rs b/embassy-stm32/src/rcc/g0.rs
index 7f62031e5..aedc95bf3 100644
--- a/embassy-stm32/src/rcc/g0.rs
+++ b/embassy-stm32/src/rcc/g0.rs
@@ -299,7 +299,9 @@ pub(crate) unsafe fn init(config: Config) {
     let lse_freq = config.ls.lse.map(|lse| lse.frequency);
 
     let hsi_freq = (sw == Sw::HSI).then_some(HSI_FREQ);
+    let hsi_div_8_freq = hsi_freq.map(|f| f / 8u32);
     let lsi_freq = (sw == Sw::LSI).then_some(super::LSI_FREQ);
+    let hse_freq = (sw == Sw::HSE).then_some(sys_clk);
 
     set_freqs(Clocks {
         sys: sys_clk,
@@ -307,6 +309,9 @@ pub(crate) unsafe fn init(config: Config) {
         pclk1: apb_freq,
         pclk1_tim: apb_tim_freq,
         hsi: hsi_freq,
+        hsi48: None,
+        hsi_div_8: hsi_div_8_freq,
+        hse: hse_freq,
         lse: lse_freq,
         lsi: lsi_freq,
         pll1_q: pll1_q_freq,
diff --git a/embassy-stm32/src/rcc/mod.rs b/embassy-stm32/src/rcc/mod.rs
index c4bee4c95..240ffc6d2 100644
--- a/embassy-stm32/src/rcc/mod.rs
+++ b/embassy-stm32/src/rcc/mod.rs
@@ -162,8 +162,10 @@ pub struct Clocks {
 
     #[cfg(any(stm32h5, stm32h7, rcc_l4, rcc_c0, stm32g0))]
     pub hsi: Option<Hertz>,
-    #[cfg(stm32h5)]
+    #[cfg(any(stm32h5, stm32g0))]
     pub hsi48: Option<Hertz>,
+    #[cfg(stm32g0)]
+    pub hsi_div_8: Option<Hertz>,
     #[cfg(any(stm32g0, stm32h5))]
     pub lsi: Option<Hertz>,
     #[cfg(any(stm32h5, stm32h7))]
@@ -171,7 +173,7 @@ pub struct Clocks {
 
     #[cfg(any(stm32h5, stm32h7, rcc_l4, rcc_c0, stm32g0))]
     pub lse: Option<Hertz>,
-    #[cfg(any(stm32h5, stm32h7, stm32g4))]
+    #[cfg(any(stm32h5, stm32h7, stm32g0, stm32g4))]
     pub hse: Option<Hertz>,
 
     #[cfg(stm32h5)]