diff options
| author | Dario Nieuwenhuis <[email protected]> | 2023-10-23 01:48:09 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2023-10-23 17:36:21 +0200 |
| commit | a39ae12edcf23935df82d547fb2d997ca6b7c8d5 (patch) | |
| tree | d13df6dec747ab5d3af23c7dac1b12c085b26cfd /embassy-stm32/src/rcc/mod.rs | |
| parent | 0ef1cb29f70c71d3c85f5b8b4ad3c7ce60babba8 (diff) | |
stm32/rcc: misc cleanups.
Diffstat (limited to 'embassy-stm32/src/rcc/mod.rs')
| -rw-r--r-- | embassy-stm32/src/rcc/mod.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/embassy-stm32/src/rcc/mod.rs b/embassy-stm32/src/rcc/mod.rs index 4f3d5b98b..8cf2d6ab0 100644 --- a/embassy-stm32/src/rcc/mod.rs +++ b/embassy-stm32/src/rcc/mod.rs | |||
| @@ -246,3 +246,33 @@ pub(crate) mod sealed { | |||
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | pub trait RccPeripheral: sealed::RccPeripheral + 'static {} | 248 | pub trait RccPeripheral: sealed::RccPeripheral + 'static {} |
| 249 | |||
| 250 | #[allow(unused)] | ||
| 251 | mod util { | ||
| 252 | use crate::time::Hertz; | ||
| 253 | |||
| 254 | pub fn calc_pclk<D>(hclk: Hertz, ppre: D) -> (Hertz, Hertz) | ||
| 255 | where | ||
| 256 | Hertz: core::ops::Div<D, Output = Hertz>, | ||
| 257 | { | ||
| 258 | let pclk = hclk / ppre; | ||
| 259 | let pclk_tim = if hclk == pclk { pclk } else { pclk * 2u32 }; | ||
| 260 | (pclk, pclk_tim) | ||
| 261 | } | ||
| 262 | |||
| 263 | pub fn all_equal<T: Eq>(mut iter: impl Iterator<Item = T>) -> bool { | ||
| 264 | let Some(x) = iter.next() else { return true }; | ||
| 265 | if !iter.all(|y| y == x) { | ||
| 266 | return false; | ||
| 267 | } | ||
| 268 | true | ||
| 269 | } | ||
| 270 | |||
| 271 | pub fn get_equal<T: Eq>(mut iter: impl Iterator<Item = T>) -> Result<Option<T>, ()> { | ||
| 272 | let Some(x) = iter.next() else { return Ok(None) }; | ||
| 273 | if !iter.all(|y| y == x) { | ||
| 274 | return Err(()); | ||
| 275 | } | ||
| 276 | Ok(Some(x)) | ||
| 277 | } | ||
| 278 | } | ||
