aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-10-16 00:52:47 +0000
committerGitHub <[email protected]>2023-10-16 00:52:47 +0000
commitf54753beaade16a5c56c27c70b51adaac175e0ae (patch)
treee953c09c0a5fa93c098516e0f16175857c506096
parentcd92bc3145f1cc7e0182a45dd898bc737e5587b6 (diff)
parentb24520579a9fc8ec46c10d066c24231de0e124c1 (diff)
Merge pull request #2067 from xoviat/rcc
rcc: update pll clock naming
-rw-r--r--embassy-stm32/Cargo.toml4
-rw-r--r--embassy-stm32/build.rs10
-rw-r--r--embassy-stm32/src/dac/mod.rs2
-rw-r--r--embassy-stm32/src/eth/v1/mod.rs2
-rw-r--r--embassy-stm32/src/eth/v2/mod.rs2
-rw-r--r--embassy-stm32/src/i2s.rs2
-rw-r--r--embassy-stm32/src/rcc/bd.rs8
-rw-r--r--embassy-stm32/src/rcc/c0.rs6
-rw-r--r--embassy-stm32/src/rcc/f0.rs10
-rw-r--r--embassy-stm32/src/rcc/f1.rs10
-rw-r--r--embassy-stm32/src/rcc/f2.rs16
-rw-r--r--embassy-stm32/src/rcc/f3.rs10
-rw-r--r--embassy-stm32/src/rcc/f4.rs24
-rw-r--r--embassy-stm32/src/rcc/f7.rs16
-rw-r--r--embassy-stm32/src/rcc/g0.rs10
-rw-r--r--embassy-stm32/src/rcc/g4.rs20
-rw-r--r--embassy-stm32/src/rcc/h.rs26
-rw-r--r--embassy-stm32/src/rcc/l0l1.rs10
-rw-r--r--embassy-stm32/src/rcc/l4.rs14
-rw-r--r--embassy-stm32/src/rcc/l5.rs14
-rw-r--r--embassy-stm32/src/rcc/mod.rs39
-rw-r--r--embassy-stm32/src/rcc/u5.rs16
-rw-r--r--embassy-stm32/src/rcc/wb.rs14
-rw-r--r--embassy-stm32/src/rcc/wba.rs16
-rw-r--r--embassy-stm32/src/rcc/wl.rs16
-rw-r--r--embassy-stm32/src/sdmmc/mod.rs6
26 files changed, 167 insertions, 156 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index 0629bc095..290bcf6aa 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -58,7 +58,7 @@ rand_core = "0.6.3"
58sdio-host = "0.5.0" 58sdio-host = "0.5.0"
59embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } 59embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true }
60critical-section = "1.1" 60critical-section = "1.1"
61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-7dafe9d8bbc739be48199185f0caa1582b1da3f7" } 61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-01a757e40df688efcda23607185640e1c2396ba9" }
62vcell = "0.1.3" 62vcell = "0.1.3"
63bxcan = "0.7.0" 63bxcan = "0.7.0"
64nb = "1.0.0" 64nb = "1.0.0"
@@ -76,7 +76,7 @@ critical-section = { version = "1.1", features = ["std"] }
76[build-dependencies] 76[build-dependencies]
77proc-macro2 = "1.0.36" 77proc-macro2 = "1.0.36"
78quote = "1.0.15" 78quote = "1.0.15"
79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-7dafe9d8bbc739be48199185f0caa1582b1da3f7", default-features = false, features = ["metadata"]} 79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-01a757e40df688efcda23607185640e1c2396ba9", default-features = false, features = ["metadata"]}
80 80
81 81
82[features] 82[features]
diff --git a/embassy-stm32/build.rs b/embassy-stm32/build.rs
index 45aad027d..d118b851e 100644
--- a/embassy-stm32/build.rs
+++ b/embassy-stm32/build.rs
@@ -466,7 +466,13 @@ fn main() {
466 466
467 let ptype = if let Some(reg) = &p.registers { reg.kind } else { "" }; 467 let ptype = if let Some(reg) = &p.registers { reg.kind } else { "" };
468 let pname = format_ident!("{}", p.name); 468 let pname = format_ident!("{}", p.name);
469 let clk = format_ident!("{}", rcc.clock.to_ascii_lowercase()); 469 let clk = format_ident!(
470 "{}",
471 rcc.clock
472 .to_ascii_lowercase()
473 .replace("ahb", "hclk")
474 .replace("apb", "pclk")
475 );
470 let en_reg = format_ident!("{}", en.register.to_ascii_lowercase()); 476 let en_reg = format_ident!("{}", en.register.to_ascii_lowercase());
471 let set_en_field = format_ident!("set_{}", en.field.to_ascii_lowercase()); 477 let set_en_field = format_ident!("set_{}", en.field.to_ascii_lowercase());
472 478
@@ -523,7 +529,7 @@ fn main() {
523 let variant_name = format_ident!("{}", v.name); 529 let variant_name = format_ident!("{}", v.name);
524 let clock_name = format_ident!("{}", v.name.to_ascii_lowercase()); 530 let clock_name = format_ident!("{}", v.name.to_ascii_lowercase());
525 531
526 if v.name.starts_with("AHB") || v.name.starts_with("APB") || v.name == "SYS" { 532 if v.name.starts_with("HCLK") || v.name.starts_with("PCLK") || v.name == "SYS" {
527 quote! { 533 quote! {
528 #enum_name::#variant_name => unsafe { crate::rcc::get_freqs().#clock_name }, 534 #enum_name::#variant_name => unsafe { crate::rcc::get_freqs().#clock_name },
529 } 535 }
diff --git a/embassy-stm32/src/dac/mod.rs b/embassy-stm32/src/dac/mod.rs
index a3c7823cf..3d1a820ed 100644
--- a/embassy-stm32/src/dac/mod.rs
+++ b/embassy-stm32/src/dac/mod.rs
@@ -564,7 +564,7 @@ foreach_peripheral!(
564 #[cfg(any(rcc_h7, rcc_h7rm0433))] 564 #[cfg(any(rcc_h7, rcc_h7rm0433))]
565 impl crate::rcc::sealed::RccPeripheral for peripherals::$inst { 565 impl crate::rcc::sealed::RccPeripheral for peripherals::$inst {
566 fn frequency() -> crate::time::Hertz { 566 fn frequency() -> crate::time::Hertz {
567 critical_section::with(|_| unsafe { crate::rcc::get_freqs().apb1 }) 567 critical_section::with(|_| unsafe { crate::rcc::get_freqs().pclk1 })
568 } 568 }
569 569
570 fn enable_and_reset_with_cs(_cs: critical_section::CriticalSection) { 570 fn enable_and_reset_with_cs(_cs: critical_section::CriticalSection) {
diff --git a/embassy-stm32/src/eth/v1/mod.rs b/embassy-stm32/src/eth/v1/mod.rs
index 631a9377f..13e53f687 100644
--- a/embassy-stm32/src/eth/v1/mod.rs
+++ b/embassy-stm32/src/eth/v1/mod.rs
@@ -191,7 +191,7 @@ impl<'d, T: Instance, P: PHY> Ethernet<'d, T, P> {
191 // TODO MTU size setting not found for v1 ethernet, check if correct 191 // TODO MTU size setting not found for v1 ethernet, check if correct
192 192
193 // NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called 193 // NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called
194 let hclk = unsafe { crate::rcc::get_freqs() }.ahb1; 194 let hclk = unsafe { crate::rcc::get_freqs() }.hclk1;
195 let hclk_mhz = hclk.0 / 1_000_000; 195 let hclk_mhz = hclk.0 / 1_000_000;
196 196
197 // Set the MDC clock frequency in the range 1MHz - 2.5MHz 197 // Set the MDC clock frequency in the range 1MHz - 2.5MHz
diff --git a/embassy-stm32/src/eth/v2/mod.rs b/embassy-stm32/src/eth/v2/mod.rs
index 12cf618aa..c77155fea 100644
--- a/embassy-stm32/src/eth/v2/mod.rs
+++ b/embassy-stm32/src/eth/v2/mod.rs
@@ -164,7 +164,7 @@ impl<'d, T: Instance, P: PHY> Ethernet<'d, T, P> {
164 }); 164 });
165 165
166 // NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called 166 // NOTE(unsafe) We got the peripheral singleton, which means that `rcc::init` was called
167 let hclk = unsafe { crate::rcc::get_freqs() }.ahb1; 167 let hclk = unsafe { crate::rcc::get_freqs() }.hclk1;
168 let hclk_mhz = hclk.0 / 1_000_000; 168 let hclk_mhz = hclk.0 / 1_000_000;
169 169
170 // Set the MDC clock frequency in the range 1MHz - 2.5MHz 170 // Set the MDC clock frequency in the range 1MHz - 2.5MHz
diff --git a/embassy-stm32/src/i2s.rs b/embassy-stm32/src/i2s.rs
index 8fd3a8c6a..67d40c479 100644
--- a/embassy-stm32/src/i2s.rs
+++ b/embassy-stm32/src/i2s.rs
@@ -170,7 +170,7 @@ impl<'d, T: Instance, Tx, Rx> I2S<'d, T, Tx, Rx> {
170 let spi = Spi::new_internal(peri, txdma, rxdma, spi_cfg); 170 let spi = Spi::new_internal(peri, txdma, rxdma, spi_cfg);
171 171
172 #[cfg(all(rcc_f4, not(stm32f410)))] 172 #[cfg(all(rcc_f4, not(stm32f410)))]
173 let pclk = unsafe { get_freqs() }.plli2s.unwrap(); 173 let pclk = unsafe { get_freqs() }.plli2s1_q.unwrap();
174 174
175 #[cfg(stm32f410)] 175 #[cfg(stm32f410)]
176 let pclk = T::frequency(); 176 let pclk = T::frequency();
diff --git a/embassy-stm32/src/rcc/bd.rs b/embassy-stm32/src/rcc/bd.rs
index a7c4b4f95..d20f58185 100644
--- a/embassy-stm32/src/rcc/bd.rs
+++ b/embassy-stm32/src/rcc/bd.rs
@@ -106,7 +106,7 @@ impl LsConfig {
106 106
107 pub const fn off() -> Self { 107 pub const fn off() -> Self {
108 Self { 108 Self {
109 rtc: RtcClockSource::NOCLOCK, 109 rtc: RtcClockSource::DISABLE,
110 lsi: false, 110 lsi: false,
111 lse: None, 111 lse: None,
112 } 112 }
@@ -133,7 +133,7 @@ impl LsConfig {
133 Some(LSI_FREQ) 133 Some(LSI_FREQ)
134 } 134 }
135 RtcClockSource::LSE => Some(self.lse.as_ref().unwrap().frequency), 135 RtcClockSource::LSE => Some(self.lse.as_ref().unwrap().frequency),
136 RtcClockSource::NOCLOCK => None, 136 RtcClockSource::DISABLE => None,
137 _ => todo!(), 137 _ => todo!(),
138 }; 138 };
139 139
@@ -180,7 +180,7 @@ impl LsConfig {
180 ok &= reg.rtcsel() == self.rtc; 180 ok &= reg.rtcsel() == self.rtc;
181 #[cfg(not(rcc_wba))] 181 #[cfg(not(rcc_wba))]
182 { 182 {
183 ok &= reg.rtcen() == (self.rtc != RtcClockSource::NOCLOCK); 183 ok &= reg.rtcen() == (self.rtc != RtcClockSource::DISABLE);
184 } 184 }
185 ok &= reg.lseon() == lse_en; 185 ok &= reg.lseon() == lse_en;
186 ok &= reg.lsebyp() == lse_byp; 186 ok &= reg.lsebyp() == lse_byp;
@@ -225,7 +225,7 @@ impl LsConfig {
225 while !bdcr().read().lserdy() {} 225 while !bdcr().read().lserdy() {}
226 } 226 }
227 227
228 if self.rtc != RtcClockSource::NOCLOCK { 228 if self.rtc != RtcClockSource::DISABLE {
229 bdcr().modify(|w| { 229 bdcr().modify(|w| {
230 #[cfg(any(rtc_v2h7, rtc_v2l4, rtc_v2wb, rtc_v3, rtc_v3u5))] 230 #[cfg(any(rtc_v2h7, rtc_v2l4, rtc_v2wb, rtc_v3, rtc_v3u5))]
231 assert!(!w.lsecsson(), "RTC is not compatible with LSE CSS, yet."); 231 assert!(!w.lsecsson(), "RTC is not compatible with LSE CSS, yet.");
diff --git a/embassy-stm32/src/rcc/c0.rs b/embassy-stm32/src/rcc/c0.rs
index eeb6418ae..e357f0675 100644
--- a/embassy-stm32/src/rcc/c0.rs
+++ b/embassy-stm32/src/rcc/c0.rs
@@ -135,9 +135,9 @@ pub(crate) unsafe fn init(config: Config) {
135 135
136 set_freqs(Clocks { 136 set_freqs(Clocks {
137 sys: sys_clk, 137 sys: sys_clk,
138 ahb1: ahb_freq, 138 hclk1: ahb_freq,
139 apb1: apb_freq, 139 pclk1: apb_freq,
140 apb1_tim: apb_tim_freq, 140 pclk1_tim: apb_tim_freq,
141 rtc, 141 rtc,
142 }); 142 });
143} 143}
diff --git a/embassy-stm32/src/rcc/f0.rs b/embassy-stm32/src/rcc/f0.rs
index cc712e87a..f7d605fd5 100644
--- a/embassy-stm32/src/rcc/f0.rs
+++ b/embassy-stm32/src/rcc/f0.rs
@@ -162,11 +162,11 @@ pub(crate) unsafe fn init(config: Config) {
162 162
163 set_freqs(Clocks { 163 set_freqs(Clocks {
164 sys: Hertz(real_sysclk), 164 sys: Hertz(real_sysclk),
165 apb1: Hertz(pclk), 165 pclk1: Hertz(pclk),
166 apb2: Hertz(pclk), 166 pclk2: Hertz(pclk),
167 apb1_tim: Hertz(pclk * timer_mul), 167 pclk1_tim: Hertz(pclk * timer_mul),
168 apb2_tim: Hertz(pclk * timer_mul), 168 pclk2_tim: Hertz(pclk * timer_mul),
169 ahb1: Hertz(hclk), 169 hclk1: Hertz(hclk),
170 rtc, 170 rtc,
171 }); 171 });
172} 172}
diff --git a/embassy-stm32/src/rcc/f1.rs b/embassy-stm32/src/rcc/f1.rs
index 56c49cd8e..b2ae56dbf 100644
--- a/embassy-stm32/src/rcc/f1.rs
+++ b/embassy-stm32/src/rcc/f1.rs
@@ -180,11 +180,11 @@ pub(crate) unsafe fn init(config: Config) {
180 180
181 set_freqs(Clocks { 181 set_freqs(Clocks {
182 sys: Hertz(real_sysclk), 182 sys: Hertz(real_sysclk),
183 apb1: Hertz(pclk1), 183 pclk1: Hertz(pclk1),
184 apb2: Hertz(pclk2), 184 pclk2: Hertz(pclk2),
185 apb1_tim: Hertz(pclk1 * timer_mul1), 185 pclk1_tim: Hertz(pclk1 * timer_mul1),
186 apb2_tim: Hertz(pclk2 * timer_mul2), 186 pclk2_tim: Hertz(pclk2 * timer_mul2),
187 ahb1: Hertz(hclk), 187 hclk1: Hertz(hclk),
188 adc: Some(Hertz(adcclk)), 188 adc: Some(Hertz(adcclk)),
189 rtc, 189 rtc,
190 }); 190 });
diff --git a/embassy-stm32/src/rcc/f2.rs b/embassy-stm32/src/rcc/f2.rs
index ab588233f..06ea7e4f0 100644
--- a/embassy-stm32/src/rcc/f2.rs
+++ b/embassy-stm32/src/rcc/f2.rs
@@ -307,14 +307,14 @@ pub(crate) unsafe fn init(config: Config) {
307 307
308 set_freqs(Clocks { 308 set_freqs(Clocks {
309 sys: sys_clk, 309 sys: sys_clk,
310 ahb1: ahb_freq, 310 hclk1: ahb_freq,
311 ahb2: ahb_freq, 311 hclk2: ahb_freq,
312 ahb3: ahb_freq, 312 hclk3: ahb_freq,
313 apb1: apb1_freq, 313 pclk1: apb1_freq,
314 apb1_tim: apb1_tim_freq, 314 pclk1_tim: apb1_tim_freq,
315 apb2: apb2_freq, 315 pclk2: apb2_freq,
316 apb2_tim: apb2_tim_freq, 316 pclk2_tim: apb2_tim_freq,
317 pll48: Some(pll_clocks.pll48_freq), 317 pll1_q: Some(pll_clocks.pll48_freq),
318 rtc, 318 rtc,
319 }); 319 });
320} 320}
diff --git a/embassy-stm32/src/rcc/f3.rs b/embassy-stm32/src/rcc/f3.rs
index 2aa79cec7..3a314009d 100644
--- a/embassy-stm32/src/rcc/f3.rs
+++ b/embassy-stm32/src/rcc/f3.rs
@@ -281,11 +281,11 @@ pub(crate) unsafe fn init(config: Config) {
281 281
282 set_freqs(Clocks { 282 set_freqs(Clocks {
283 sys: sysclk, 283 sys: sysclk,
284 apb1: pclk1, 284 pclk1: pclk1,
285 apb2: pclk2, 285 pclk2: pclk2,
286 apb1_tim: pclk1 * timer_mul1, 286 pclk1_tim: pclk1 * timer_mul1,
287 apb2_tim: pclk2 * timer_mul2, 287 pclk2_tim: pclk2 * timer_mul2,
288 ahb1: hclk, 288 hclk1: hclk,
289 #[cfg(rcc_f3)] 289 #[cfg(rcc_f3)]
290 adc: adc, 290 adc: adc,
291 #[cfg(all(rcc_f3, adc3_common))] 291 #[cfg(all(rcc_f3, adc3_common))]
diff --git a/embassy-stm32/src/rcc/f4.rs b/embassy-stm32/src/rcc/f4.rs
index 79c2d2f66..b0585153e 100644
--- a/embassy-stm32/src/rcc/f4.rs
+++ b/embassy-stm32/src/rcc/f4.rs
@@ -340,23 +340,27 @@ pub(crate) unsafe fn init(config: Config) {
340 340
341 set_freqs(Clocks { 341 set_freqs(Clocks {
342 sys: Hertz(sysclk), 342 sys: Hertz(sysclk),
343 apb1: Hertz(pclk1), 343 pclk1: Hertz(pclk1),
344 apb2: Hertz(pclk2), 344 pclk2: Hertz(pclk2),
345 345
346 apb1_tim: Hertz(pclk1 * timer_mul1), 346 pclk1_tim: Hertz(pclk1 * timer_mul1),
347 apb2_tim: Hertz(pclk2 * timer_mul2), 347 pclk2_tim: Hertz(pclk2 * timer_mul2),
348 348
349 ahb1: Hertz(hclk), 349 hclk1: Hertz(hclk),
350 ahb2: Hertz(hclk), 350 hclk2: Hertz(hclk),
351 ahb3: Hertz(hclk), 351 hclk3: Hertz(hclk),
352 352
353 pll48: plls.pll48clk.map(Hertz), 353 pll1_q: plls.pll48clk.map(Hertz),
354 354
355 #[cfg(not(stm32f410))] 355 #[cfg(not(stm32f410))]
356 plli2s: plls.plli2sclk.map(Hertz), 356 plli2s1_q: plls.plli2sclk.map(Hertz),
357 #[cfg(not(stm32f410))]
358 plli2s1_r: None,
357 359
358 #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f446, stm32f469, stm32f479))] 360 #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f446, stm32f469, stm32f479))]
359 pllsai: plls.pllsaiclk.map(Hertz), 361 pllsai1_q: plls.pllsaiclk.map(Hertz),
362 #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f446, stm32f469, stm32f479))]
363 pllsai1_r: None,
360 364
361 rtc, 365 rtc,
362 }); 366 });
diff --git a/embassy-stm32/src/rcc/f7.rs b/embassy-stm32/src/rcc/f7.rs
index 0a0a1cf28..5ed74fe9f 100644
--- a/embassy-stm32/src/rcc/f7.rs
+++ b/embassy-stm32/src/rcc/f7.rs
@@ -259,17 +259,17 @@ pub(crate) unsafe fn init(config: Config) {
259 259
260 set_freqs(Clocks { 260 set_freqs(Clocks {
261 sys: Hertz(sysclk), 261 sys: Hertz(sysclk),
262 apb1: Hertz(pclk1), 262 pclk1: Hertz(pclk1),
263 apb2: Hertz(pclk2), 263 pclk2: Hertz(pclk2),
264 264
265 apb1_tim: Hertz(pclk1 * timer_mul1), 265 pclk1_tim: Hertz(pclk1 * timer_mul1),
266 apb2_tim: Hertz(pclk2 * timer_mul2), 266 pclk2_tim: Hertz(pclk2 * timer_mul2),
267 267
268 ahb1: Hertz(hclk), 268 hclk1: Hertz(hclk),
269 ahb2: Hertz(hclk), 269 hclk2: Hertz(hclk),
270 ahb3: Hertz(hclk), 270 hclk3: Hertz(hclk),
271 271
272 pll48: plls.pll48clk.map(Hertz), 272 pll1_q: plls.pll48clk.map(Hertz),
273 273
274 rtc, 274 rtc,
275 }); 275 });
diff --git a/embassy-stm32/src/rcc/g0.rs b/embassy-stm32/src/rcc/g0.rs
index 962b1dc0d..85ebd32e1 100644
--- a/embassy-stm32/src/rcc/g0.rs
+++ b/embassy-stm32/src/rcc/g0.rs
@@ -89,7 +89,7 @@ impl Default for Config {
89impl PllConfig { 89impl PllConfig {
90 pub(crate) fn init(self) -> Hertz { 90 pub(crate) fn init(self) -> Hertz {
91 let (src, input_freq) = match self.source { 91 let (src, input_freq) = match self.source {
92 PllSrc::HSI16 => (vals::Pllsrc::HSI16, HSI_FREQ), 92 PllSrc::HSI16 => (vals::Pllsrc::HSI, HSI_FREQ),
93 PllSrc::HSE(freq) => (vals::Pllsrc::HSE, freq), 93 PllSrc::HSE(freq) => (vals::Pllsrc::HSE, freq),
94 }; 94 };
95 95
@@ -186,7 +186,7 @@ pub(crate) unsafe fn init(config: Config) {
186 } 186 }
187 ClockSrc::PLL(pll) => { 187 ClockSrc::PLL(pll) => {
188 let freq = pll.init(); 188 let freq = pll.init();
189 (freq, Sw::PLLRCLK) 189 (freq, Sw::PLL1_R)
190 } 190 }
191 ClockSrc::LSI => { 191 ClockSrc::LSI => {
192 // Enable LSI 192 // Enable LSI
@@ -275,9 +275,9 @@ pub(crate) unsafe fn init(config: Config) {
275 275
276 set_freqs(Clocks { 276 set_freqs(Clocks {
277 sys: sys_clk, 277 sys: sys_clk,
278 ahb1: ahb_freq, 278 hclk1: ahb_freq,
279 apb1: apb_freq, 279 pclk1: apb_freq,
280 apb1_tim: apb_tim_freq, 280 pclk1_tim: apb_tim_freq,
281 rtc, 281 rtc,
282 }); 282 });
283} 283}
diff --git a/embassy-stm32/src/rcc/g4.rs b/embassy-stm32/src/rcc/g4.rs
index 581bf9e0e..32d14d2fe 100644
--- a/embassy-stm32/src/rcc/g4.rs
+++ b/embassy-stm32/src/rcc/g4.rs
@@ -33,7 +33,7 @@ impl Into<Pllsrc> for PllSrc {
33 fn into(self) -> Pllsrc { 33 fn into(self) -> Pllsrc {
34 match self { 34 match self {
35 PllSrc::HSE(..) => Pllsrc::HSE, 35 PllSrc::HSE(..) => Pllsrc::HSE,
36 PllSrc::HSI16 => Pllsrc::HSI16, 36 PllSrc::HSI16 => Pllsrc::HSI,
37 } 37 }
38 } 38 }
39} 39}
@@ -201,7 +201,7 @@ pub(crate) unsafe fn init(config: Config) {
201 RCC.cr().write(|w| w.set_hsion(true)); 201 RCC.cr().write(|w| w.set_hsion(true));
202 while !RCC.cr().read().hsirdy() {} 202 while !RCC.cr().read().hsirdy() {}
203 203
204 (HSI_FREQ, Sw::HSI16) 204 (HSI_FREQ, Sw::HSI)
205 } 205 }
206 ClockSrc::HSE(freq) => { 206 ClockSrc::HSE(freq) => {
207 // Enable HSE 207 // Enable HSE
@@ -249,7 +249,7 @@ pub(crate) unsafe fn init(config: Config) {
249 } 249 }
250 } 250 }
251 251
252 (Hertz(freq), Sw::PLLRCLK) 252 (Hertz(freq), Sw::PLL1_R)
253 } 253 }
254 }; 254 };
255 255
@@ -286,7 +286,7 @@ pub(crate) unsafe fn init(config: Config) {
286 let pllq_freq = pll_freq.as_ref().and_then(|f| f.pll_q); 286 let pllq_freq = pll_freq.as_ref().and_then(|f| f.pll_q);
287 assert!(pllq_freq.is_some() && pllq_freq.unwrap().0 == 48_000_000); 287 assert!(pllq_freq.is_some() && pllq_freq.unwrap().0 == 48_000_000);
288 288
289 crate::pac::rcc::vals::Clk48sel::PLLQCLK 289 crate::pac::rcc::vals::Clk48sel::PLL1_Q
290 } 290 }
291 Clock48MhzSrc::Hsi48(crs_config) => { 291 Clock48MhzSrc::Hsi48(crs_config) => {
292 // Enable HSI48 292 // Enable HSI48
@@ -348,12 +348,12 @@ pub(crate) unsafe fn init(config: Config) {
348 348
349 set_freqs(Clocks { 349 set_freqs(Clocks {
350 sys: sys_clk, 350 sys: sys_clk,
351 ahb1: ahb_freq, 351 hclk1: ahb_freq,
352 ahb2: ahb_freq, 352 hclk2: ahb_freq,
353 apb1: apb1_freq, 353 pclk1: apb1_freq,
354 apb1_tim: apb1_tim_freq, 354 pclk1_tim: apb1_tim_freq,
355 apb2: apb2_freq, 355 pclk2: apb2_freq,
356 apb2_tim: apb2_tim_freq, 356 pclk2_tim: apb2_tim_freq,
357 adc: adc12_ck, 357 adc: adc12_ck,
358 adc34: adc345_ck, 358 adc34: adc345_ck,
359 pll1_p: None, 359 pll1_p: None,
diff --git a/embassy-stm32/src/rcc/h.rs b/embassy-stm32/src/rcc/h.rs
index bbbbc9c1c..86136d438 100644
--- a/embassy-stm32/src/rcc/h.rs
+++ b/embassy-stm32/src/rcc/h.rs
@@ -387,7 +387,7 @@ pub(crate) unsafe fn init(config: Config) {
387 Sysclk::HSI => (unwrap!(hsi), Sw::HSI), 387 Sysclk::HSI => (unwrap!(hsi), Sw::HSI),
388 Sysclk::HSE => (unwrap!(hse), Sw::HSE), 388 Sysclk::HSE => (unwrap!(hse), Sw::HSE),
389 Sysclk::CSI => (unwrap!(csi), Sw::CSI), 389 Sysclk::CSI => (unwrap!(csi), Sw::CSI),
390 Sysclk::Pll1P => (unwrap!(pll1.p), Sw::PLL1), 390 Sysclk::Pll1P => (unwrap!(pll1.p), Sw::PLL1_P),
391 }; 391 };
392 392
393 // Check limits. 393 // Check limits.
@@ -445,7 +445,7 @@ pub(crate) unsafe fn init(config: Config) {
445 }; 445 };
446 #[cfg(stm32h5)] 446 #[cfg(stm32h5)]
447 let adc = match config.adc_clock_source { 447 let adc = match config.adc_clock_source {
448 AdcClockSource::HCLK => Some(hclk), 448 AdcClockSource::HCLK1 => Some(hclk),
449 AdcClockSource::SYS => Some(sys), 449 AdcClockSource::SYS => Some(sys),
450 AdcClockSource::PLL2_R => pll2.r, 450 AdcClockSource::PLL2_R => pll2.r,
451 AdcClockSource::HSE => hse, 451 AdcClockSource::HSE => hse,
@@ -524,19 +524,19 @@ pub(crate) unsafe fn init(config: Config) {
524 524
525 set_freqs(Clocks { 525 set_freqs(Clocks {
526 sys, 526 sys,
527 ahb1: hclk, 527 hclk1: hclk,
528 ahb2: hclk, 528 hclk2: hclk,
529 ahb3: hclk, 529 hclk3: hclk,
530 ahb4: hclk, 530 hclk4: hclk,
531 apb1, 531 pclk1: apb1,
532 apb2, 532 pclk2: apb2,
533 apb3, 533 pclk3: apb3,
534 #[cfg(stm32h7)] 534 #[cfg(stm32h7)]
535 apb4, 535 pclk4: apb4,
536 #[cfg(stm32h5)] 536 #[cfg(stm32h5)]
537 apb4: Hertz(1), 537 pclk4: Hertz(1),
538 apb1_tim, 538 pclk1_tim: apb1_tim,
539 apb2_tim, 539 pclk2_tim: apb2_tim,
540 adc, 540 adc,
541 rtc, 541 rtc,
542 542
diff --git a/embassy-stm32/src/rcc/l0l1.rs b/embassy-stm32/src/rcc/l0l1.rs
index d8a1fc10c..308b75aec 100644
--- a/embassy-stm32/src/rcc/l0l1.rs
+++ b/embassy-stm32/src/rcc/l0l1.rs
@@ -209,11 +209,11 @@ pub(crate) unsafe fn init(config: Config) {
209 209
210 set_freqs(Clocks { 210 set_freqs(Clocks {
211 sys: sys_clk, 211 sys: sys_clk,
212 ahb1: ahb_freq, 212 hclk1: ahb_freq,
213 apb1: apb1_freq, 213 pclk1: apb1_freq,
214 apb2: apb2_freq, 214 pclk2: apb2_freq,
215 apb1_tim: apb1_tim_freq, 215 pclk1_tim: apb1_tim_freq,
216 apb2_tim: apb2_tim_freq, 216 pclk2_tim: apb2_tim_freq,
217 rtc, 217 rtc,
218 }); 218 });
219} 219}
diff --git a/embassy-stm32/src/rcc/l4.rs b/embassy-stm32/src/rcc/l4.rs
index 020f4e200..43c29281e 100644
--- a/embassy-stm32/src/rcc/l4.rs
+++ b/embassy-stm32/src/rcc/l4.rs
@@ -329,13 +329,13 @@ pub(crate) unsafe fn init(config: Config) {
329 329
330 set_freqs(Clocks { 330 set_freqs(Clocks {
331 sys: sys_clk, 331 sys: sys_clk,
332 ahb1: ahb_freq, 332 hclk1: ahb_freq,
333 ahb2: ahb_freq, 333 hclk2: ahb_freq,
334 ahb3: ahb_freq, 334 hclk3: ahb_freq,
335 apb1: apb1_freq, 335 pclk1: apb1_freq,
336 apb2: apb2_freq, 336 pclk2: apb2_freq,
337 apb1_tim: apb1_tim_freq, 337 pclk1_tim: apb1_tim_freq,
338 apb2_tim: apb2_tim_freq, 338 pclk2_tim: apb2_tim_freq,
339 rtc, 339 rtc,
340 }); 340 });
341} 341}
diff --git a/embassy-stm32/src/rcc/l5.rs b/embassy-stm32/src/rcc/l5.rs
index 1f4e00344..289217b19 100644
--- a/embassy-stm32/src/rcc/l5.rs
+++ b/embassy-stm32/src/rcc/l5.rs
@@ -261,13 +261,13 @@ pub(crate) unsafe fn init(config: Config) {
261 261
262 set_freqs(Clocks { 262 set_freqs(Clocks {
263 sys: sys_clk, 263 sys: sys_clk,
264 ahb1: ahb_freq, 264 hclk1: ahb_freq,
265 ahb2: ahb_freq, 265 hclk2: ahb_freq,
266 ahb3: ahb_freq, 266 hclk3: ahb_freq,
267 apb1: apb1_freq, 267 pclk1: apb1_freq,
268 apb2: apb2_freq, 268 pclk2: apb2_freq,
269 apb1_tim: apb1_tim_freq, 269 pclk1_tim: apb1_tim_freq,
270 apb2_tim: apb2_tim_freq, 270 pclk2_tim: apb2_tim_freq,
271 rtc, 271 rtc,
272 }); 272 });
273} 273}
diff --git a/embassy-stm32/src/rcc/mod.rs b/embassy-stm32/src/rcc/mod.rs
index 1603a2c36..9df40baac 100644
--- a/embassy-stm32/src/rcc/mod.rs
+++ b/embassy-stm32/src/rcc/mod.rs
@@ -48,21 +48,21 @@ pub struct Clocks {
48 pub sys: Hertz, 48 pub sys: Hertz,
49 49
50 // APB 50 // APB
51 pub apb1: Hertz, 51 pub pclk1: Hertz,
52 pub apb1_tim: Hertz, 52 pub pclk1_tim: Hertz,
53 #[cfg(not(any(rcc_c0, rcc_g0)))] 53 #[cfg(not(any(rcc_c0, rcc_g0)))]
54 pub apb2: Hertz, 54 pub pclk2: Hertz,
55 #[cfg(not(any(rcc_c0, rcc_g0)))] 55 #[cfg(not(any(rcc_c0, rcc_g0)))]
56 pub apb2_tim: Hertz, 56 pub pclk2_tim: Hertz,
57 #[cfg(any(rcc_wl5, rcc_wle, rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_u5))] 57 #[cfg(any(rcc_wl5, rcc_wle, rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_u5))]
58 pub apb3: Hertz, 58 pub pclk3: Hertz,
59 #[cfg(any(rcc_h7, rcc_h7rm0433, rcc_h7ab, stm32h5))] 59 #[cfg(any(rcc_h7, rcc_h7rm0433, rcc_h7ab, stm32h5))]
60 pub apb4: Hertz, 60 pub pclk4: Hertz,
61 #[cfg(any(rcc_wba))] 61 #[cfg(any(rcc_wba))]
62 pub apb7: Hertz, 62 pub pclk7: Hertz,
63 63
64 // AHB 64 // AHB
65 pub ahb1: Hertz, 65 pub hclk1: Hertz,
66 #[cfg(any( 66 #[cfg(any(
67 rcc_l4, 67 rcc_l4,
68 rcc_l5, 68 rcc_l5,
@@ -82,7 +82,7 @@ pub struct Clocks {
82 rcc_wl5, 82 rcc_wl5,
83 rcc_wle 83 rcc_wle
84 ))] 84 ))]
85 pub ahb2: Hertz, 85 pub hclk2: Hertz,
86 #[cfg(any( 86 #[cfg(any(
87 rcc_l4, 87 rcc_l4,
88 rcc_l5, 88 rcc_l5,
@@ -100,28 +100,29 @@ pub struct Clocks {
100 rcc_wl5, 100 rcc_wl5,
101 rcc_wle 101 rcc_wle
102 ))] 102 ))]
103 pub ahb3: Hertz, 103 pub hclk3: Hertz,
104 #[cfg(any(rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_wba))] 104 #[cfg(any(rcc_h5, rcc_h50, rcc_h7, rcc_h7rm0433, rcc_h7ab, rcc_wba))]
105 pub ahb4: Hertz, 105 pub hclk4: Hertz,
106
107 #[cfg(any(rcc_f2, rcc_f4, rcc_f410, rcc_f7))]
108 pub pll48: Option<Hertz>,
109 106
110 #[cfg(all(rcc_f4, not(stm32f410)))] 107 #[cfg(all(rcc_f4, not(stm32f410)))]
111 pub plli2s: Option<Hertz>, 108 pub plli2s1_q: Option<Hertz>,
109 #[cfg(all(rcc_f4, not(stm32f410)))]
110 pub plli2s1_r: Option<Hertz>,
112 111
113 #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f446, stm32f469, stm32f479))] 112 #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f446, stm32f469, stm32f479))]
114 pub pllsai: Option<Hertz>, 113 pub pllsai1_q: Option<Hertz>,
114 #[cfg(any(stm32f427, stm32f429, stm32f437, stm32f439, stm32f446, stm32f469, stm32f479))]
115 pub pllsai1_r: Option<Hertz>,
115 116
116 #[cfg(stm32g4)] 117 #[cfg(stm32g4)]
117 pub pll1_p: Option<Hertz>, 118 pub pll1_p: Option<Hertz>,
118 #[cfg(any(stm32h5, stm32h7))] 119 #[cfg(any(stm32h5, stm32h7, rcc_f2, rcc_f4, rcc_f410, rcc_f7))]
119 pub pll1_q: Option<Hertz>, 120 pub pll1_q: Option<Hertz>,
120 #[cfg(any(stm32h5, stm32h7))] 121 #[cfg(any(stm32h5, stm32h7))]
121 pub pll2_q: Option<Hertz>,
122 #[cfg(any(stm32h5, stm32h7))]
123 pub pll2_p: Option<Hertz>, 122 pub pll2_p: Option<Hertz>,
124 #[cfg(any(stm32h5, stm32h7))] 123 #[cfg(any(stm32h5, stm32h7))]
124 pub pll2_q: Option<Hertz>,
125 #[cfg(any(stm32h5, stm32h7))]
125 pub pll2_r: Option<Hertz>, 126 pub pll2_r: Option<Hertz>,
126 #[cfg(any(stm32h5, stm32h7))] 127 #[cfg(any(stm32h5, stm32h7))]
127 pub pll3_p: Option<Hertz>, 128 pub pll3_p: Option<Hertz>,
diff --git a/embassy-stm32/src/rcc/u5.rs b/embassy-stm32/src/rcc/u5.rs
index 68a8d3a35..fb9c163ee 100644
--- a/embassy-stm32/src/rcc/u5.rs
+++ b/embassy-stm32/src/rcc/u5.rs
@@ -436,14 +436,14 @@ pub(crate) unsafe fn init(config: Config) {
436 436
437 set_freqs(Clocks { 437 set_freqs(Clocks {
438 sys: sys_clk, 438 sys: sys_clk,
439 ahb1: ahb_freq, 439 hclk1: ahb_freq,
440 ahb2: ahb_freq, 440 hclk2: ahb_freq,
441 ahb3: ahb_freq, 441 hclk3: ahb_freq,
442 apb1: apb1_freq, 442 pclk1: apb1_freq,
443 apb2: apb2_freq, 443 pclk2: apb2_freq,
444 apb3: apb3_freq, 444 pclk3: apb3_freq,
445 apb1_tim: apb1_tim_freq, 445 pclk1_tim: apb1_tim_freq,
446 apb2_tim: apb2_tim_freq, 446 pclk2_tim: apb2_tim_freq,
447 rtc, 447 rtc,
448 }); 448 });
449} 449}
diff --git a/embassy-stm32/src/rcc/wb.rs b/embassy-stm32/src/rcc/wb.rs
index 181e6bb5b..a6cf118a8 100644
--- a/embassy-stm32/src/rcc/wb.rs
+++ b/embassy-stm32/src/rcc/wb.rs
@@ -236,13 +236,13 @@ pub(crate) unsafe fn init(config: Config) {
236 236
237 set_freqs(Clocks { 237 set_freqs(Clocks {
238 sys: sys_clk, 238 sys: sys_clk,
239 ahb1: ahb1_clk, 239 hclk1: ahb1_clk,
240 ahb2: ahb2_clk, 240 hclk2: ahb2_clk,
241 ahb3: ahb3_clk, 241 hclk3: ahb3_clk,
242 apb1: apb1_clk, 242 pclk1: apb1_clk,
243 apb2: apb2_clk, 243 pclk2: apb2_clk,
244 apb1_tim: apb1_tim_clk, 244 pclk1_tim: apb1_tim_clk,
245 apb2_tim: apb2_tim_clk, 245 pclk2_tim: apb2_tim_clk,
246 rtc, 246 rtc,
247 }) 247 })
248} 248}
diff --git a/embassy-stm32/src/rcc/wba.rs b/embassy-stm32/src/rcc/wba.rs
index ff5669ec5..72f653617 100644
--- a/embassy-stm32/src/rcc/wba.rs
+++ b/embassy-stm32/src/rcc/wba.rs
@@ -142,14 +142,14 @@ pub(crate) unsafe fn init(config: Config) {
142 142
143 set_freqs(Clocks { 143 set_freqs(Clocks {
144 sys: sys_clk, 144 sys: sys_clk,
145 ahb1: ahb_freq, 145 hclk1: ahb_freq,
146 ahb2: ahb_freq, 146 hclk2: ahb_freq,
147 ahb4: ahb_freq, 147 hclk4: ahb_freq,
148 apb1: apb1_freq, 148 pclk1: apb1_freq,
149 apb2: apb2_freq, 149 pclk2: apb2_freq,
150 apb7: apb7_freq, 150 pclk7: apb7_freq,
151 apb1_tim: apb1_tim_freq, 151 pclk1_tim: apb1_tim_freq,
152 apb2_tim: apb2_tim_freq, 152 pclk2_tim: apb2_tim_freq,
153 rtc, 153 rtc,
154 }); 154 });
155} 155}
diff --git a/embassy-stm32/src/rcc/wl.rs b/embassy-stm32/src/rcc/wl.rs
index 366ca1369..c1f6a6b1e 100644
--- a/embassy-stm32/src/rcc/wl.rs
+++ b/embassy-stm32/src/rcc/wl.rs
@@ -145,14 +145,14 @@ pub(crate) unsafe fn init(config: Config) {
145 145
146 set_freqs(Clocks { 146 set_freqs(Clocks {
147 sys: sys_clk, 147 sys: sys_clk,
148 ahb1: ahb_freq, 148 hclk1: ahb_freq,
149 ahb2: ahb_freq, 149 hclk2: ahb_freq,
150 ahb3: shd_ahb_freq, 150 hclk3: shd_ahb_freq,
151 apb1: apb1_freq, 151 pclk1: apb1_freq,
152 apb2: apb2_freq, 152 pclk2: apb2_freq,
153 apb3: shd_ahb_freq, 153 pclk3: shd_ahb_freq,
154 apb1_tim: apb1_tim_freq, 154 pclk1_tim: apb1_tim_freq,
155 apb2_tim: apb2_tim_freq, 155 pclk2_tim: apb2_tim_freq,
156 rtc, 156 rtc,
157 }); 157 });
158} 158}
diff --git a/embassy-stm32/src/sdmmc/mod.rs b/embassy-stm32/src/sdmmc/mod.rs
index bc29fe549..11ff24645 100644
--- a/embassy-stm32/src/sdmmc/mod.rs
+++ b/embassy-stm32/src/sdmmc/mod.rs
@@ -1457,7 +1457,7 @@ cfg_if::cfg_if! {
1457 macro_rules! kernel_clk { 1457 macro_rules! kernel_clk {
1458 ($inst:ident) => { 1458 ($inst:ident) => {
1459 critical_section::with(|_| unsafe { 1459 critical_section::with(|_| unsafe {
1460 crate::rcc::get_freqs().pll48 1460 crate::rcc::get_freqs().pll1_q
1461 }).expect("PLL48 is required for SDIO") 1461 }).expect("PLL48 is required for SDIO")
1462 } 1462 }
1463 } 1463 }
@@ -1469,7 +1469,7 @@ cfg_if::cfg_if! {
1469 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK { 1469 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK {
1470 crate::rcc::get_freqs().sys 1470 crate::rcc::get_freqs().sys
1471 } else { 1471 } else {
1472 crate::rcc::get_freqs().pll48.expect("PLL48 is required for SDMMC") 1472 crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC")
1473 } 1473 }
1474 }) 1474 })
1475 }; 1475 };
@@ -1479,7 +1479,7 @@ cfg_if::cfg_if! {
1479 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK { 1479 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK {
1480 crate::rcc::get_freqs().sys 1480 crate::rcc::get_freqs().sys
1481 } else { 1481 } else {
1482 crate::rcc::get_freqs().pll48.expect("PLL48 is required for SDMMC") 1482 crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC")
1483 } 1483 }
1484 }) 1484 })
1485 }; 1485 };