SDMMC: Implement Default for Config and add docs
This commit is contained in:
parent
86063ac2a2
commit
0f5ba6d4a9
4 changed files with 19 additions and 44 deletions
|
@ -1 +0,0 @@
|
|||
pub mod rcc;
|
|
@ -1,36 +0,0 @@
|
|||
use crate::time::Hertz;
|
||||
|
||||
/// Frozen core clock frequencies
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct CoreClocks {
|
||||
pub hclk: Hertz,
|
||||
pub pclk1: Hertz,
|
||||
pub pclk2: Hertz,
|
||||
pub pclk3: Hertz,
|
||||
pub pclk4: Hertz,
|
||||
pub ppre1: u8,
|
||||
pub ppre2: u8,
|
||||
pub ppre3: u8,
|
||||
pub ppre4: u8,
|
||||
pub csi_ck: Option<Hertz>,
|
||||
pub hsi_ck: Option<Hertz>,
|
||||
pub hsi48_ck: Option<Hertz>,
|
||||
pub lsi_ck: Option<Hertz>,
|
||||
pub per_ck: Option<Hertz>,
|
||||
pub hse_ck: Option<Hertz>,
|
||||
pub mco1_ck: Option<Hertz>,
|
||||
pub mco2_ck: Option<Hertz>,
|
||||
pub pll1_p_ck: Option<Hertz>,
|
||||
pub pll1_q_ck: Option<Hertz>,
|
||||
pub pll1_r_ck: Option<Hertz>,
|
||||
pub pll2_p_ck: Option<Hertz>,
|
||||
pub pll2_q_ck: Option<Hertz>,
|
||||
pub pll2_r_ck: Option<Hertz>,
|
||||
pub pll3_p_ck: Option<Hertz>,
|
||||
pub pll3_q_ck: Option<Hertz>,
|
||||
pub pll3_r_ck: Option<Hertz>,
|
||||
pub timx_ker_ck: Hertz,
|
||||
pub timy_ker_ck: Hertz,
|
||||
pub sys_ck: Hertz,
|
||||
pub c_ck: Hertz,
|
||||
}
|
|
@ -28,13 +28,6 @@ pub mod sdmmc_v2;
|
|||
#[cfg(feature = "_sdmmc_v2")]
|
||||
pub use sdmmc_v2 as sdmmc;
|
||||
|
||||
pub mod time;
|
||||
|
||||
#[cfg(feature = "stm32h750vb")]
|
||||
mod h7;
|
||||
#[cfg(feature = "stm32h750vb")]
|
||||
pub use h7::rcc;
|
||||
|
||||
// This must go LAST so that it sees the `impl_foo!` macros
|
||||
mod pac;
|
||||
pub mod time;
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
use core::default::Default;
|
||||
use core::future::Future;
|
||||
use core::marker::PhantomData;
|
||||
use core::task::Poll;
|
||||
|
@ -135,6 +136,14 @@ fn clk_div(ker_ck: Hertz, sdmmc_ck: u32) -> Result<(u16, Hertz), Error> {
|
|||
}
|
||||
}
|
||||
|
||||
/// SDMMC configuration
|
||||
///
|
||||
/// You should probably change the default clock values to match your configuration
|
||||
///
|
||||
/// Default values:
|
||||
/// hclk = 400_000_000 Hz
|
||||
/// kernel_clk: 100_000_000 Hz
|
||||
/// data_transfer_timeout: 5_000_000
|
||||
#[non_exhaustive]
|
||||
pub struct Config {
|
||||
/// AHB clock
|
||||
|
@ -145,6 +154,16 @@ pub struct Config {
|
|||
pub data_transfer_timeout: u32,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
hclk: Hertz(400_000_000),
|
||||
kernel_clk: Hertz(100_000_000),
|
||||
data_transfer_timeout: 5_000_000,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Sdmmc device
|
||||
pub struct Sdmmc<'d, T: Instance, P: Pins<T>> {
|
||||
sdmmc: PhantomData<&'d mut T>,
|
||||
|
|
Loading…
Reference in a new issue