stm32/rcc: remove builders on Config.

This makes API consistent with other Config structs in Embassy, where
the convention is to not use builders.
This commit is contained in:
Dario Nieuwenhuis 2022-01-04 11:18:59 +01:00
parent f744b74e90
commit cdc66e110f
12 changed files with 42 additions and 236 deletions

View File

@ -102,10 +102,10 @@ impl Into<u8> for AHBPrescaler {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb_pre: APBPrescaler, pub apb_pre: APBPrescaler,
low_power_run: bool, pub low_power_run: bool,
} }
impl Default for Config { impl Default for Config {
@ -120,32 +120,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb_pre(mut self, pre: APBPrescaler) -> Self {
self.apb_pre = pre;
self
}
#[inline]
pub fn low_power_run(mut self, on: bool) -> Self {
self.low_power_run = on;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -74,11 +74,11 @@ impl Into<u8> for AHBPrescaler {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
low_power_run: bool, pub low_power_run: bool,
} }
impl Default for Config { impl Default for Config {
@ -94,38 +94,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb1_pre(mut self, pre: APBPrescaler) -> Self {
self.apb1_pre = pre;
self
}
#[inline]
pub fn apb2_pre(mut self, pre: APBPrescaler) -> Self {
self.apb2_pre = pre;
self
}
#[inline]
pub fn low_power_run(mut self, on: bool) -> Self {
self.low_power_run = on;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -183,10 +183,10 @@ impl Into<Msirange> for MSIRange {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
} }
impl Default for Config { impl Default for Config {
@ -201,32 +201,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb1_pre(mut self, pre: APBPrescaler) -> Self {
self.apb1_pre = pre;
self
}
#[inline]
pub fn apb2_pre(mut self, pre: APBPrescaler) -> Self {
self.apb2_pre = pre;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -118,10 +118,10 @@ impl Into<u8> for MSIRange {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
} }
impl Default for Config { impl Default for Config {
@ -136,32 +136,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb1_pre(mut self, pre: APBPrescaler) -> Self {
self.apb1_pre = pre;
self
}
#[inline]
pub fn apb2_pre(mut self, pre: APBPrescaler) -> Self {
self.apb2_pre = pre;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -269,10 +269,10 @@ impl Into<u8> for AHBPrescaler {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
} }
impl Default for Config { impl Default for Config {
@ -287,32 +287,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb1_pre(mut self, pre: APBPrescaler) -> Self {
self.apb1_pre = pre;
self
}
#[inline]
pub fn apb2_pre(mut self, pre: APBPrescaler) -> Self {
self.apb2_pre = pre;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -274,16 +274,16 @@ impl Default for MSIRange {
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
apb3_pre: APBPrescaler, pub apb3_pre: APBPrescaler,
} }
impl Config { impl Default for Config {
pub fn new() -> Self { fn default() -> Self {
Config { Self {
mux: ClockSrc::MSI(MSIRange::default()), mux: ClockSrc::MSI(MSIRange::default()),
ahb_pre: Default::default(), ahb_pre: Default::default(),
apb1_pre: Default::default(), apb1_pre: Default::default(),
@ -293,12 +293,6 @@ impl Config {
} }
} }
impl Default for Config {
fn default() -> Self {
Config::new()
}
}
/// Extension trait that freezes the `RCC` peripheral with provided clocks configuration /// Extension trait that freezes the `RCC` peripheral with provided clocks configuration
pub trait RccExt { pub trait RccExt {
fn freeze(self, config: Config, power: &Power) -> Clocks; fn freeze(self, config: Config, power: &Power) -> Clocks;

View File

@ -86,10 +86,10 @@ impl Into<u8> for AHBPrescaler {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
} }
impl Default for Config { impl Default for Config {
@ -104,32 +104,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb1_pre(mut self, pre: APBPrescaler) -> Self {
self.apb1_pre = pre;
self
}
#[inline]
pub fn apb2_pre(mut self, pre: APBPrescaler) -> Self {
self.apb2_pre = pre;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -87,10 +87,10 @@ impl Into<u8> for AHBPrescaler {
/// Clocks configutation /// Clocks configutation
pub struct Config { pub struct Config {
mux: ClockSrc, pub mux: ClockSrc,
ahb_pre: AHBPrescaler, pub ahb_pre: AHBPrescaler,
apb1_pre: APBPrescaler, pub apb1_pre: APBPrescaler,
apb2_pre: APBPrescaler, pub apb2_pre: APBPrescaler,
} }
impl Default for Config { impl Default for Config {
@ -105,32 +105,6 @@ impl Default for Config {
} }
} }
impl Config {
#[inline]
pub fn clock_src(mut self, mux: ClockSrc) -> Self {
self.mux = mux;
self
}
#[inline]
pub fn ahb_pre(mut self, pre: AHBPrescaler) -> Self {
self.ahb_pre = pre;
self
}
#[inline]
pub fn apb1_pre(mut self, pre: APBPrescaler) -> Self {
self.apb1_pre = pre;
self
}
#[inline]
pub fn apb2_pre(mut self, pre: APBPrescaler) -> Self {
self.apb2_pre = pre;
self
}
}
/// RCC peripheral /// RCC peripheral
pub struct Rcc<'d> { pub struct Rcc<'d> {
_rb: peripherals::RCC, _rb: peripherals::RCC,

View File

@ -25,7 +25,7 @@ use lorawan_encoding::default_crypto::DefaultFactory as Crypto;
fn config() -> embassy_stm32::Config { fn config() -> embassy_stm32::Config {
let mut config = embassy_stm32::Config::default(); let mut config = embassy_stm32::Config::default();
config.rcc = config.rcc.clock_src(embassy_stm32::rcc::ClockSrc::HSI16); config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16;
config config
} }

View File

@ -14,13 +14,13 @@ use example_common::*;
fn config() -> Config { fn config() -> Config {
let mut config = Config::default(); let mut config = Config::default();
config.rcc = config.rcc.clock_src(ClockSrc::PLL( config.rcc.mux = ClockSrc::PLL(
PLLSource::HSI16, PLLSource::HSI16,
PLLClkDiv::Div2, PLLClkDiv::Div2,
PLLSrcDiv::Div1, PLLSrcDiv::Div1,
PLLMul::Mul8, PLLMul::Mul8,
Some(PLLClkDiv::Div2), Some(PLLClkDiv::Div2),
)); );
config config
} }

View File

@ -23,7 +23,7 @@ use lorawan_encoding::default_crypto::DefaultFactory as Crypto;
fn config() -> embassy_stm32::Config { fn config() -> embassy_stm32::Config {
let mut config = embassy_stm32::Config::default(); let mut config = embassy_stm32::Config::default();
config.rcc = config.rcc.clock_src(embassy_stm32::rcc::ClockSrc::HSI16); config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSI16;
config config
} }

View File

@ -66,7 +66,7 @@ const TX_PARAMS: TxParams = TxParams::new()
fn config() -> embassy_stm32::Config { fn config() -> embassy_stm32::Config {
let mut config = embassy_stm32::Config::default(); let mut config = embassy_stm32::Config::default();
config.rcc = config.rcc.clock_src(embassy_stm32::rcc::ClockSrc::HSE32); config.rcc.mux = embassy_stm32::rcc::ClockSrc::HSE32;
config config
} }