aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-02-26 00:00:17 +0100
committerDario Nieuwenhuis <[email protected]>2024-02-26 00:00:17 +0100
commit489d0be2a2971cfae7d6413b601bbd044d42e351 (patch)
treeb930aa13b1f43efedcf8bc19e85e94036dedc7d2 /embassy-stm32
parent497515ed57b768332295ef58630231609fb959fc (diff)
stm32/rcc: unify naming sysclk field to `sys`, enum to `Sysclk`.
Diffstat (limited to 'embassy-stm32')
-rw-r--r--embassy-stm32/src/rcc/c0.rs14
-rw-r--r--embassy-stm32/src/rcc/g0.rs16
-rw-r--r--embassy-stm32/src/rcc/l.rs26
-rw-r--r--embassy-stm32/src/rcc/u5.rs20
-rw-r--r--embassy-stm32/src/rcc/wba.rs24
5 files changed, 50 insertions, 50 deletions
diff --git a/embassy-stm32/src/rcc/c0.rs b/embassy-stm32/src/rcc/c0.rs
index ca1222185..ec6ec34e8 100644
--- a/embassy-stm32/src/rcc/c0.rs
+++ b/embassy-stm32/src/rcc/c0.rs
@@ -9,7 +9,7 @@ pub const HSI_FREQ: Hertz = Hertz(48_000_000);
9 9
10/// System clock mux source 10/// System clock mux source
11#[derive(Clone, Copy)] 11#[derive(Clone, Copy)]
12pub enum ClockSrc { 12pub enum Sysclk {
13 HSE(Hertz), 13 HSE(Hertz),
14 HSI(HSIPrescaler), 14 HSI(HSIPrescaler),
15 LSI, 15 LSI,
@@ -17,7 +17,7 @@ pub enum ClockSrc {
17 17
18/// Clocks configutation 18/// Clocks configutation
19pub struct Config { 19pub struct Config {
20 pub mux: ClockSrc, 20 pub sys: Sysclk,
21 pub ahb_pre: AHBPrescaler, 21 pub ahb_pre: AHBPrescaler,
22 pub apb_pre: APBPrescaler, 22 pub apb_pre: APBPrescaler,
23 pub ls: super::LsConfig, 23 pub ls: super::LsConfig,
@@ -27,7 +27,7 @@ impl Default for Config {
27 #[inline] 27 #[inline]
28 fn default() -> Config { 28 fn default() -> Config {
29 Config { 29 Config {
30 mux: ClockSrc::HSI(HSIPrescaler::DIV1), 30 sys: Sysclk::HSI(HSIPrescaler::DIV1),
31 ahb_pre: AHBPrescaler::DIV1, 31 ahb_pre: AHBPrescaler::DIV1,
32 apb_pre: APBPrescaler::DIV1, 32 apb_pre: APBPrescaler::DIV1,
33 ls: Default::default(), 33 ls: Default::default(),
@@ -36,8 +36,8 @@ impl Default for Config {
36} 36}
37 37
38pub(crate) unsafe fn init(config: Config) { 38pub(crate) unsafe fn init(config: Config) {
39 let (sys_clk, sw) = match config.mux { 39 let (sys_clk, sw) = match config.sys {
40 ClockSrc::HSI(div) => { 40 Sysclk::HSI(div) => {
41 // Enable HSI 41 // Enable HSI
42 RCC.cr().write(|w| { 42 RCC.cr().write(|w| {
43 w.set_hsidiv(div); 43 w.set_hsidiv(div);
@@ -47,14 +47,14 @@ pub(crate) unsafe fn init(config: Config) {
47 47
48 (HSI_FREQ / div, Sw::HSI) 48 (HSI_FREQ / div, Sw::HSI)
49 } 49 }
50 ClockSrc::HSE(freq) => { 50 Sysclk::HSE(freq) => {
51 // Enable HSE 51 // Enable HSE
52 RCC.cr().write(|w| w.set_hseon(true)); 52 RCC.cr().write(|w| w.set_hseon(true));
53 while !RCC.cr().read().hserdy() {} 53 while !RCC.cr().read().hserdy() {}
54 54
55 (freq, Sw::HSE) 55 (freq, Sw::HSE)
56 } 56 }
57 ClockSrc::LSI => { 57 Sysclk::LSI => {
58 // Enable LSI 58 // Enable LSI
59 RCC.csr2().write(|w| w.set_lsion(true)); 59 RCC.csr2().write(|w| w.set_lsion(true));
60 while !RCC.csr2().read().lsirdy() {} 60 while !RCC.csr2().read().lsirdy() {}
diff --git a/embassy-stm32/src/rcc/g0.rs b/embassy-stm32/src/rcc/g0.rs
index e3cd46fb9..0b1f34a20 100644
--- a/embassy-stm32/src/rcc/g0.rs
+++ b/embassy-stm32/src/rcc/g0.rs
@@ -19,7 +19,7 @@ pub enum HseMode {
19 19
20/// System clock mux source 20/// System clock mux source
21#[derive(Clone, Copy)] 21#[derive(Clone, Copy)]
22pub enum ClockSrc { 22pub enum Sysclk {
23 HSE(Hertz, HseMode), 23 HSE(Hertz, HseMode),
24 HSI(HSIPrescaler), 24 HSI(HSIPrescaler),
25 PLL(PllConfig), 25 PLL(PllConfig),
@@ -89,7 +89,7 @@ pub enum UsbSrc {
89 89
90/// Clocks configutation 90/// Clocks configutation
91pub struct Config { 91pub struct Config {
92 pub mux: ClockSrc, 92 pub sys: Sysclk,
93 pub ahb_pre: AHBPrescaler, 93 pub ahb_pre: AHBPrescaler,
94 pub apb_pre: APBPrescaler, 94 pub apb_pre: APBPrescaler,
95 pub low_power_run: bool, 95 pub low_power_run: bool,
@@ -102,7 +102,7 @@ impl Default for Config {
102 #[inline] 102 #[inline]
103 fn default() -> Config { 103 fn default() -> Config {
104 Config { 104 Config {
105 mux: ClockSrc::HSI(HSIPrescaler::DIV1), 105 sys: Sysclk::HSI(HSIPrescaler::DIV1),
106 ahb_pre: AHBPrescaler::DIV1, 106 ahb_pre: AHBPrescaler::DIV1,
107 apb_pre: APBPrescaler::DIV1, 107 apb_pre: APBPrescaler::DIV1,
108 low_power_run: false, 108 low_power_run: false,
@@ -202,8 +202,8 @@ pub(crate) unsafe fn init(config: Config) {
202 let mut pll1_q_freq = None; 202 let mut pll1_q_freq = None;
203 let mut pll1_p_freq = None; 203 let mut pll1_p_freq = None;
204 204
205 let (sys_clk, sw) = match config.mux { 205 let (sys_clk, sw) = match config.sys {
206 ClockSrc::HSI(div) => { 206 Sysclk::HSI(div) => {
207 // Enable HSI 207 // Enable HSI
208 RCC.cr().write(|w| { 208 RCC.cr().write(|w| {
209 w.set_hsidiv(div); 209 w.set_hsidiv(div);
@@ -213,7 +213,7 @@ pub(crate) unsafe fn init(config: Config) {
213 213
214 (HSI_FREQ / div, Sw::HSI) 214 (HSI_FREQ / div, Sw::HSI)
215 } 215 }
216 ClockSrc::HSE(freq, mode) => { 216 Sysclk::HSE(freq, mode) => {
217 // Enable HSE 217 // Enable HSE
218 RCC.cr().write(|w| { 218 RCC.cr().write(|w| {
219 w.set_hseon(true); 219 w.set_hseon(true);
@@ -223,7 +223,7 @@ pub(crate) unsafe fn init(config: Config) {
223 223
224 (freq, Sw::HSE) 224 (freq, Sw::HSE)
225 } 225 }
226 ClockSrc::PLL(pll) => { 226 Sysclk::PLL(pll) => {
227 let (r_freq, q_freq, p_freq) = pll.init(); 227 let (r_freq, q_freq, p_freq) = pll.init();
228 228
229 pll1_q_freq = q_freq; 229 pll1_q_freq = q_freq;
@@ -231,7 +231,7 @@ pub(crate) unsafe fn init(config: Config) {
231 231
232 (r_freq, Sw::PLL1_R) 232 (r_freq, Sw::PLL1_R)
233 } 233 }
234 ClockSrc::LSI => { 234 Sysclk::LSI => {
235 // Enable LSI 235 // Enable LSI
236 RCC.csr().write(|w| w.set_lsion(true)); 236 RCC.csr().write(|w| w.set_lsion(true));
237 while !RCC.csr().read().lsirdy() {} 237 while !RCC.csr().read().lsirdy() {}
diff --git a/embassy-stm32/src/rcc/l.rs b/embassy-stm32/src/rcc/l.rs
index 04ea81ec4..aa4245d4e 100644
--- a/embassy-stm32/src/rcc/l.rs
+++ b/embassy-stm32/src/rcc/l.rs
@@ -7,7 +7,7 @@ pub use crate::pac::rcc::vals::Adcsel as AdcClockSource;
7pub use crate::pac::rcc::vals::Clk48sel as Clk48Src; 7pub use crate::pac::rcc::vals::Clk48sel as Clk48Src;
8#[cfg(any(stm32wb, stm32wl))] 8#[cfg(any(stm32wb, stm32wl))]
9pub use crate::pac::rcc::vals::Hsepre as HsePrescaler; 9pub use crate::pac::rcc::vals::Hsepre as HsePrescaler;
10pub use crate::pac::rcc::vals::{Hpre as AHBPrescaler, Msirange as MSIRange, Ppre as APBPrescaler, Sw as ClockSrc}; 10pub use crate::pac::rcc::vals::{Hpre as AHBPrescaler, Msirange as MSIRange, Ppre as APBPrescaler, Sw as Sysclk};
11use crate::pac::{FLASH, RCC}; 11use crate::pac::{FLASH, RCC};
12use crate::time::Hertz; 12use crate::time::Hertz;
13 13
@@ -50,7 +50,7 @@ pub struct Config {
50 pub pllsai2: Option<Pll>, 50 pub pllsai2: Option<Pll>,
51 51
52 // sysclk, buses. 52 // sysclk, buses.
53 pub mux: ClockSrc, 53 pub sys: Sysclk,
54 pub ahb_pre: AHBPrescaler, 54 pub ahb_pre: AHBPrescaler,
55 pub apb1_pre: APBPrescaler, 55 pub apb1_pre: APBPrescaler,
56 pub apb2_pre: APBPrescaler, 56 pub apb2_pre: APBPrescaler,
@@ -80,7 +80,7 @@ impl Default for Config {
80 hse: None, 80 hse: None,
81 hsi: false, 81 hsi: false,
82 msi: Some(MSIRange::RANGE4M), 82 msi: Some(MSIRange::RANGE4M),
83 mux: ClockSrc::MSI, 83 sys: Sysclk::MSI,
84 ahb_pre: AHBPrescaler::DIV1, 84 ahb_pre: AHBPrescaler::DIV1,
85 apb1_pre: APBPrescaler::DIV1, 85 apb1_pre: APBPrescaler::DIV1,
86 apb2_pre: APBPrescaler::DIV1, 86 apb2_pre: APBPrescaler::DIV1,
@@ -113,7 +113,7 @@ pub const WPAN_DEFAULT: Config = Config {
113 mode: HseMode::Oscillator, 113 mode: HseMode::Oscillator,
114 prescaler: HsePrescaler::DIV1, 114 prescaler: HsePrescaler::DIV1,
115 }), 115 }),
116 mux: ClockSrc::PLL1_R, 116 sys: Sysclk::PLL1_R,
117 #[cfg(crs)] 117 #[cfg(crs)]
118 hsi48: Some(super::Hsi48Config { sync_from_usb: false }), 118 hsi48: Some(super::Hsi48Config { sync_from_usb: false }),
119 msi: None, 119 msi: None,
@@ -161,11 +161,11 @@ pub(crate) unsafe fn init(config: Config) {
161 // Turn on MSI and configure it to 4MHz. 161 // Turn on MSI and configure it to 4MHz.
162 msi_enable(MSIRange::RANGE4M) 162 msi_enable(MSIRange::RANGE4M)
163 } 163 }
164 if RCC.cfgr().read().sws() != ClockSrc::MSI { 164 if RCC.cfgr().read().sws() != Sysclk::MSI {
165 // Set MSI as a clock source, reset prescalers. 165 // Set MSI as a clock source, reset prescalers.
166 RCC.cfgr().write_value(Cfgr::default()); 166 RCC.cfgr().write_value(Cfgr::default());
167 // Wait for clock switch status bits to change. 167 // Wait for clock switch status bits to change.
168 while RCC.cfgr().read().sws() != ClockSrc::MSI {} 168 while RCC.cfgr().read().sws() != Sysclk::MSI {}
169 } 169 }
170 170
171 // Set voltage scale 171 // Set voltage scale
@@ -260,11 +260,11 @@ pub(crate) unsafe fn init(config: Config) {
260 #[cfg(any(stm32l47x, stm32l48x, stm32l49x, stm32l4ax, rcc_l4plus, stm32l5))] 260 #[cfg(any(stm32l47x, stm32l48x, stm32l49x, stm32l4ax, rcc_l4plus, stm32l5))]
261 let pllsai2 = init_pll(PllInstance::Pllsai2, config.pllsai2, &pll_input); 261 let pllsai2 = init_pll(PllInstance::Pllsai2, config.pllsai2, &pll_input);
262 262
263 let sys_clk = match config.mux { 263 let sys_clk = match config.sys {
264 ClockSrc::HSE => hse.unwrap(), 264 Sysclk::HSE => hse.unwrap(),
265 ClockSrc::HSI => hsi.unwrap(), 265 Sysclk::HSI => hsi.unwrap(),
266 ClockSrc::MSI => msi.unwrap(), 266 Sysclk::MSI => msi.unwrap(),
267 ClockSrc::PLL1_R => pll.r.unwrap(), 267 Sysclk::PLL1_R => pll.r.unwrap(),
268 }; 268 };
269 269
270 #[cfg(any(rcc_l0_v2, stm32l4, stm32l5, stm32wb))] 270 #[cfg(any(rcc_l0_v2, stm32l4, stm32l5, stm32wb))]
@@ -350,12 +350,12 @@ pub(crate) unsafe fn init(config: Config) {
350 while FLASH.acr().read().latency() != latency {} 350 while FLASH.acr().read().latency() != latency {}
351 351
352 RCC.cfgr().modify(|w| { 352 RCC.cfgr().modify(|w| {
353 w.set_sw(config.mux); 353 w.set_sw(config.sys);
354 w.set_hpre(config.ahb_pre); 354 w.set_hpre(config.ahb_pre);
355 w.set_ppre1(config.apb1_pre); 355 w.set_ppre1(config.apb1_pre);
356 w.set_ppre2(config.apb2_pre); 356 w.set_ppre2(config.apb2_pre);
357 }); 357 });
358 while RCC.cfgr().read().sws() != config.mux {} 358 while RCC.cfgr().read().sws() != config.sys {}
359 359
360 #[cfg(any(stm32l4, stm32l5, stm32wb, stm32wl))] 360 #[cfg(any(stm32l4, stm32l5, stm32wb, stm32wl))]
361 RCC.ccipr().modify(|w| w.set_adcsel(config.adc_clock_source)); 361 RCC.ccipr().modify(|w| w.set_adcsel(config.adc_clock_source));
diff --git a/embassy-stm32/src/rcc/u5.rs b/embassy-stm32/src/rcc/u5.rs
index 72613f0f3..43138f05c 100644
--- a/embassy-stm32/src/rcc/u5.rs
+++ b/embassy-stm32/src/rcc/u5.rs
@@ -1,7 +1,7 @@
1pub use crate::pac::pwr::vals::Vos as VoltageScale; 1pub use crate::pac::pwr::vals::Vos as VoltageScale;
2pub use crate::pac::rcc::vals::{ 2pub use crate::pac::rcc::vals::{
3 Hpre as AHBPrescaler, Msirange, Msirange as MSIRange, Plldiv as PllDiv, Pllm as PllPreDiv, Plln as PllMul, 3 Hpre as AHBPrescaler, Msirange, Msirange as MSIRange, Plldiv as PllDiv, Pllm as PllPreDiv, Plln as PllMul,
4 Pllsrc as PllSource, Ppre as APBPrescaler, Sw as ClockSrc, 4 Pllsrc as PllSource, Ppre as APBPrescaler, Sw as Sysclk,
5}; 5};
6use crate::pac::rcc::vals::{Hseext, Msirgsel, Pllmboost, Pllrge}; 6use crate::pac::rcc::vals::{Hseext, Msirgsel, Pllmboost, Pllrge};
7use crate::pac::{FLASH, PWR, RCC}; 7use crate::pac::{FLASH, PWR, RCC};
@@ -72,7 +72,7 @@ pub struct Config {
72 pub pll3: Option<Pll>, 72 pub pll3: Option<Pll>,
73 73
74 // sysclk, buses. 74 // sysclk, buses.
75 pub mux: ClockSrc, 75 pub sys: Sysclk,
76 pub ahb_pre: AHBPrescaler, 76 pub ahb_pre: AHBPrescaler,
77 pub apb1_pre: APBPrescaler, 77 pub apb1_pre: APBPrescaler,
78 pub apb2_pre: APBPrescaler, 78 pub apb2_pre: APBPrescaler,
@@ -97,7 +97,7 @@ impl Default for Config {
97 pll1: None, 97 pll1: None,
98 pll2: None, 98 pll2: None,
99 pll3: None, 99 pll3: None,
100 mux: ClockSrc::MSIS, 100 sys: Sysclk::MSIS,
101 ahb_pre: AHBPrescaler::DIV1, 101 ahb_pre: AHBPrescaler::DIV1,
102 apb1_pre: APBPrescaler::DIV1, 102 apb1_pre: APBPrescaler::DIV1,
103 apb2_pre: APBPrescaler::DIV1, 103 apb2_pre: APBPrescaler::DIV1,
@@ -181,11 +181,11 @@ pub(crate) unsafe fn init(config: Config) {
181 let pll2 = init_pll(PllInstance::Pll2, config.pll2, &pll_input, config.voltage_range); 181 let pll2 = init_pll(PllInstance::Pll2, config.pll2, &pll_input, config.voltage_range);
182 let pll3 = init_pll(PllInstance::Pll3, config.pll3, &pll_input, config.voltage_range); 182 let pll3 = init_pll(PllInstance::Pll3, config.pll3, &pll_input, config.voltage_range);
183 183
184 let sys_clk = match config.mux { 184 let sys_clk = match config.sys {
185 ClockSrc::HSE => hse.unwrap(), 185 Sysclk::HSE => hse.unwrap(),
186 ClockSrc::HSI => hsi.unwrap(), 186 Sysclk::HSI => hsi.unwrap(),
187 ClockSrc::MSIS => msi.unwrap(), 187 Sysclk::MSIS => msi.unwrap(),
188 ClockSrc::PLL1_R => pll1.r.unwrap(), 188 Sysclk::PLL1_R => pll1.r.unwrap(),
189 }; 189 };
190 190
191 // Do we need the EPOD booster to reach the target clock speed per § 10.5.4? 191 // Do we need the EPOD booster to reach the target clock speed per § 10.5.4?
@@ -230,8 +230,8 @@ pub(crate) unsafe fn init(config: Config) {
230 }); 230 });
231 231
232 // Switch the system clock source 232 // Switch the system clock source
233 RCC.cfgr1().modify(|w| w.set_sw(config.mux)); 233 RCC.cfgr1().modify(|w| w.set_sw(config.sys));
234 while RCC.cfgr1().read().sws() != config.mux {} 234 while RCC.cfgr1().read().sws() != config.sys {}
235 235
236 // Configure the bus prescalers 236 // Configure the bus prescalers
237 RCC.cfgr2().modify(|w| { 237 RCC.cfgr2().modify(|w| {
diff --git a/embassy-stm32/src/rcc/wba.rs b/embassy-stm32/src/rcc/wba.rs
index fbf2d1cf9..9d5dcfc4b 100644
--- a/embassy-stm32/src/rcc/wba.rs
+++ b/embassy-stm32/src/rcc/wba.rs
@@ -1,7 +1,7 @@
1pub use crate::pac::pwr::vals::Vos as VoltageScale; 1pub use crate::pac::pwr::vals::Vos as VoltageScale;
2use crate::pac::rcc::regs::Cfgr1; 2use crate::pac::rcc::regs::Cfgr1;
3pub use crate::pac::rcc::vals::{ 3pub use crate::pac::rcc::vals::{
4 Adcsel as AdcClockSource, Hpre as AHBPrescaler, Hsepre as HsePrescaler, Ppre as APBPrescaler, Sw as ClockSrc, 4 Adcsel as AdcClockSource, Hpre as AHBPrescaler, Hsepre as HsePrescaler, Ppre as APBPrescaler, Sw as Sysclk,
5}; 5};
6use crate::pac::{FLASH, RCC}; 6use crate::pac::{FLASH, RCC};
7use crate::time::Hertz; 7use crate::time::Hertz;
@@ -23,7 +23,7 @@ pub struct Config {
23 pub hse: Option<Hse>, 23 pub hse: Option<Hse>,
24 24
25 // sysclk, buses. 25 // sysclk, buses.
26 pub mux: ClockSrc, 26 pub sys: Sysclk,
27 pub ahb_pre: AHBPrescaler, 27 pub ahb_pre: AHBPrescaler,
28 pub apb1_pre: APBPrescaler, 28 pub apb1_pre: APBPrescaler,
29 pub apb2_pre: APBPrescaler, 29 pub apb2_pre: APBPrescaler,
@@ -43,7 +43,7 @@ impl Default for Config {
43 Config { 43 Config {
44 hse: None, 44 hse: None,
45 hsi: true, 45 hsi: true,
46 mux: ClockSrc::HSI, 46 sys: Sysclk::HSI,
47 ahb_pre: AHBPrescaler::DIV1, 47 ahb_pre: AHBPrescaler::DIV1,
48 apb1_pre: APBPrescaler::DIV1, 48 apb1_pre: APBPrescaler::DIV1,
49 apb2_pre: APBPrescaler::DIV1, 49 apb2_pre: APBPrescaler::DIV1,
@@ -65,11 +65,11 @@ pub(crate) unsafe fn init(config: Config) {
65 if !RCC.cr().read().hsion() { 65 if !RCC.cr().read().hsion() {
66 hsi_enable() 66 hsi_enable()
67 } 67 }
68 if RCC.cfgr1().read().sws() != ClockSrc::HSI { 68 if RCC.cfgr1().read().sws() != Sysclk::HSI {
69 // Set HSI as a clock source, reset prescalers. 69 // Set HSI as a clock source, reset prescalers.
70 RCC.cfgr1().write_value(Cfgr1::default()); 70 RCC.cfgr1().write_value(Cfgr1::default());
71 // Wait for clock switch status bits to change. 71 // Wait for clock switch status bits to change.
72 while RCC.cfgr1().read().sws() != ClockSrc::HSI {} 72 while RCC.cfgr1().read().sws() != Sysclk::HSI {}
73 } 73 }
74 74
75 // Set voltage scale 75 // Set voltage scale
@@ -94,11 +94,11 @@ pub(crate) unsafe fn init(config: Config) {
94 HSE_FREQ 94 HSE_FREQ
95 }); 95 });
96 96
97 let sys_clk = match config.mux { 97 let sys_clk = match config.sys {
98 ClockSrc::HSE => hse.unwrap(), 98 Sysclk::HSE => hse.unwrap(),
99 ClockSrc::HSI => hsi.unwrap(), 99 Sysclk::HSI => hsi.unwrap(),
100 ClockSrc::_RESERVED_1 => unreachable!(), 100 Sysclk::_RESERVED_1 => unreachable!(),
101 ClockSrc::PLL1_R => todo!(), 101 Sysclk::PLL1_R => todo!(),
102 }; 102 };
103 103
104 assert!(sys_clk.0 <= 100_000_000); 104 assert!(sys_clk.0 <= 100_000_000);
@@ -142,9 +142,9 @@ pub(crate) unsafe fn init(config: Config) {
142 // TODO: Set the SRAM wait states 142 // TODO: Set the SRAM wait states
143 143
144 RCC.cfgr1().modify(|w| { 144 RCC.cfgr1().modify(|w| {
145 w.set_sw(config.mux); 145 w.set_sw(config.sys);
146 }); 146 });
147 while RCC.cfgr1().read().sws() != config.mux {} 147 while RCC.cfgr1().read().sws() != config.sys {}
148 148
149 RCC.cfgr2().modify(|w| { 149 RCC.cfgr2().modify(|w| {
150 w.set_hpre(config.ahb_pre); 150 w.set_hpre(config.ahb_pre);