aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src
diff options
context:
space:
mode:
authorThales Fragoso <[email protected]>2021-05-15 21:21:06 -0300
committerThales Fragoso <[email protected]>2021-05-15 21:21:06 -0300
commit0f5ba6d4a92b36f00a19116494017dda7ebfd9af (patch)
treed3dfb7f95002458af80919a3893cd47903bc1a9b /embassy-stm32/src
parent86063ac2a21200e79cae310416946f386950fc9c (diff)
SDMMC: Implement Default for Config and add docs
Diffstat (limited to 'embassy-stm32/src')
-rw-r--r--embassy-stm32/src/h7/mod.rs1
-rw-r--r--embassy-stm32/src/h7/rcc.rs36
-rw-r--r--embassy-stm32/src/lib.rs7
-rw-r--r--embassy-stm32/src/sdmmc_v2.rs19
4 files changed, 19 insertions, 44 deletions
diff --git a/embassy-stm32/src/h7/mod.rs b/embassy-stm32/src/h7/mod.rs
deleted file mode 100644
index 9dcd3d3e5..000000000
--- a/embassy-stm32/src/h7/mod.rs
+++ /dev/null
@@ -1 +0,0 @@
1pub mod rcc;
diff --git a/embassy-stm32/src/h7/rcc.rs b/embassy-stm32/src/h7/rcc.rs
deleted file mode 100644
index 7affaf57d..000000000
--- a/embassy-stm32/src/h7/rcc.rs
+++ /dev/null
@@ -1,36 +0,0 @@
1use crate::time::Hertz;
2
3/// Frozen core clock frequencies
4#[derive(Clone, Copy)]
5pub struct CoreClocks {
6 pub hclk: Hertz,
7 pub pclk1: Hertz,
8 pub pclk2: Hertz,
9 pub pclk3: Hertz,
10 pub pclk4: Hertz,
11 pub ppre1: u8,
12 pub ppre2: u8,
13 pub ppre3: u8,
14 pub ppre4: u8,
15 pub csi_ck: Option<Hertz>,
16 pub hsi_ck: Option<Hertz>,
17 pub hsi48_ck: Option<Hertz>,
18 pub lsi_ck: Option<Hertz>,
19 pub per_ck: Option<Hertz>,
20 pub hse_ck: Option<Hertz>,
21 pub mco1_ck: Option<Hertz>,
22 pub mco2_ck: Option<Hertz>,
23 pub pll1_p_ck: Option<Hertz>,
24 pub pll1_q_ck: Option<Hertz>,
25 pub pll1_r_ck: Option<Hertz>,
26 pub pll2_p_ck: Option<Hertz>,
27 pub pll2_q_ck: Option<Hertz>,
28 pub pll2_r_ck: Option<Hertz>,
29 pub pll3_p_ck: Option<Hertz>,
30 pub pll3_q_ck: Option<Hertz>,
31 pub pll3_r_ck: Option<Hertz>,
32 pub timx_ker_ck: Hertz,
33 pub timy_ker_ck: Hertz,
34 pub sys_ck: Hertz,
35 pub c_ck: Hertz,
36}
diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs
index 97d41f10a..29ea613f3 100644
--- a/embassy-stm32/src/lib.rs
+++ b/embassy-stm32/src/lib.rs
@@ -28,13 +28,6 @@ pub mod sdmmc_v2;
28#[cfg(feature = "_sdmmc_v2")] 28#[cfg(feature = "_sdmmc_v2")]
29pub use sdmmc_v2 as sdmmc; 29pub use sdmmc_v2 as sdmmc;
30 30
31pub mod time;
32
33#[cfg(feature = "stm32h750vb")]
34mod h7;
35#[cfg(feature = "stm32h750vb")]
36pub use h7::rcc;
37
38// This must go LAST so that it sees the `impl_foo!` macros 31// This must go LAST so that it sees the `impl_foo!` macros
39mod pac; 32mod pac;
40pub mod time; 33pub mod time;
diff --git a/embassy-stm32/src/sdmmc_v2.rs b/embassy-stm32/src/sdmmc_v2.rs
index 6a8539ca3..465a20fc5 100644
--- a/embassy-stm32/src/sdmmc_v2.rs
+++ b/embassy-stm32/src/sdmmc_v2.rs
@@ -1,3 +1,4 @@
1use core::default::Default;
1use core::future::Future; 2use core::future::Future;
2use core::marker::PhantomData; 3use core::marker::PhantomData;
3use core::task::Poll; 4use core::task::Poll;
@@ -135,6 +136,14 @@ fn clk_div(ker_ck: Hertz, sdmmc_ck: u32) -> Result<(u16, Hertz), Error> {
135 } 136 }
136} 137}
137 138
139/// SDMMC configuration
140///
141/// You should probably change the default clock values to match your configuration
142///
143/// Default values:
144/// hclk = 400_000_000 Hz
145/// kernel_clk: 100_000_000 Hz
146/// data_transfer_timeout: 5_000_000
138#[non_exhaustive] 147#[non_exhaustive]
139pub struct Config { 148pub struct Config {
140 /// AHB clock 149 /// AHB clock
@@ -145,6 +154,16 @@ pub struct Config {
145 pub data_transfer_timeout: u32, 154 pub data_transfer_timeout: u32,
146} 155}
147 156
157impl Default for Config {
158 fn default() -> Self {
159 Self {
160 hclk: Hertz(400_000_000),
161 kernel_clk: Hertz(100_000_000),
162 data_transfer_timeout: 5_000_000,
163 }
164 }
165}
166
148/// Sdmmc device 167/// Sdmmc device
149pub struct Sdmmc<'d, T: Instance, P: Pins<T>> { 168pub struct Sdmmc<'d, T: Instance, P: Pins<T>> {
150 sdmmc: PhantomData<&'d mut T>, 169 sdmmc: PhantomData<&'d mut T>,