aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxoviat <[email protected]>2023-10-20 20:21:53 -0500
committerxoviat <[email protected]>2023-10-20 20:21:53 -0500
commit0fb677aad7ab185491ffe012c64a1f603daf04f0 (patch)
tree08f0dc83d98619c9e436155f869341dfcc8e2deb
parentb1d0947a18ffaa55d9307b2e563f7e3662486eb9 (diff)
stm32: update metapac
-rw-r--r--embassy-stm32/Cargo.toml4
-rw-r--r--embassy-stm32/src/rcc/f1.rs9
-rw-r--r--embassy-stm32/src/rcc/l4l5.rs3
-rw-r--r--embassy-stm32/src/rcc/u5.rs4
-rw-r--r--embassy-stm32/src/rcc/wb.rs14
-rw-r--r--embassy-stm32/src/rcc/wba.rs4
-rw-r--r--embassy-stm32/src/rcc/wl.rs4
-rw-r--r--embassy-stm32/src/sdmmc/mod.rs4
-rw-r--r--tests/stm32/src/common.rs9
9 files changed, 19 insertions, 36 deletions
diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml
index 3b9220bc7..f70e75d44 100644
--- a/embassy-stm32/Cargo.toml
+++ b/embassy-stm32/Cargo.toml
@@ -58,7 +58,7 @@ rand_core = "0.6.3"
58sdio-host = "0.5.0" 58sdio-host = "0.5.0"
59embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true } 59embedded-sdmmc = { git = "https://github.com/embassy-rs/embedded-sdmmc-rs", rev = "a4f293d3a6f72158385f79c98634cb8a14d0d2fc", optional = true }
60critical-section = "1.1" 60critical-section = "1.1"
61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-5b04234fbe61ea875f1a904cd5f68795daaeb526" } 61stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-296dd041cce492e3b2b7fb3b8a6c05c9a34a90a1" }
62vcell = "0.1.3" 62vcell = "0.1.3"
63bxcan = "0.7.0" 63bxcan = "0.7.0"
64nb = "1.0.0" 64nb = "1.0.0"
@@ -76,7 +76,7 @@ critical-section = { version = "1.1", features = ["std"] }
76[build-dependencies] 76[build-dependencies]
77proc-macro2 = "1.0.36" 77proc-macro2 = "1.0.36"
78quote = "1.0.15" 78quote = "1.0.15"
79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-5b04234fbe61ea875f1a904cd5f68795daaeb526", default-features = false, features = ["metadata"]} 79stm32-metapac = { git = "https://github.com/embassy-rs/stm32-data-generated", tag = "stm32-data-296dd041cce492e3b2b7fb3b8a6c05c9a34a90a1", default-features = false, features = ["metadata"]}
80 80
81 81
82[features] 82[features]
diff --git a/embassy-stm32/src/rcc/f1.rs b/embassy-stm32/src/rcc/f1.rs
index 8d315f7b2..169551e45 100644
--- a/embassy-stm32/src/rcc/f1.rs
+++ b/embassy-stm32/src/rcc/f1.rs
@@ -169,14 +169,7 @@ pub(crate) unsafe fn init(config: Config) {
169 #[cfg(not(rcc_f100))] 169 #[cfg(not(rcc_f100))]
170 w.set_usbpre(Usbpre::from_bits(usbpre as u8)); 170 w.set_usbpre(Usbpre::from_bits(usbpre as u8));
171 w.set_sw(if pllmul_bits.is_some() { 171 w.set_sw(if pllmul_bits.is_some() {
172 #[cfg(not(rcc_f1cl))] 172 Sw::PLL1_P
173 {
174 Sw::PLL1_P
175 }
176 #[cfg(rcc_f1cl)]
177 {
178 Sw::PLL
179 }
180 } else if config.hse.is_some() { 173 } else if config.hse.is_some() {
181 Sw::HSE 174 Sw::HSE
182 } else { 175 } else {
diff --git a/embassy-stm32/src/rcc/l4l5.rs b/embassy-stm32/src/rcc/l4l5.rs
index 683b47c05..e54bfa0e6 100644
--- a/embassy-stm32/src/rcc/l4l5.rs
+++ b/embassy-stm32/src/rcc/l4l5.rs
@@ -189,9 +189,6 @@ pub(crate) unsafe fn init(config: Config) {
189 ClockSrc::HSE => hse.unwrap(), 189 ClockSrc::HSE => hse.unwrap(),
190 ClockSrc::HSI => hsi16.unwrap(), 190 ClockSrc::HSI => hsi16.unwrap(),
191 ClockSrc::MSI => msi.unwrap(), 191 ClockSrc::MSI => msi.unwrap(),
192 #[cfg(rcc_l4)]
193 ClockSrc::PLL1_P => pll._r.unwrap(),
194 #[cfg(not(rcc_l4))]
195 ClockSrc::PLL1_R => pll._r.unwrap(), 192 ClockSrc::PLL1_R => pll._r.unwrap(),
196 }; 193 };
197 194
diff --git a/embassy-stm32/src/rcc/u5.rs b/embassy-stm32/src/rcc/u5.rs
index aba5ca831..62bed8be2 100644
--- a/embassy-stm32/src/rcc/u5.rs
+++ b/embassy-stm32/src/rcc/u5.rs
@@ -92,7 +92,7 @@ impl Into<Pllsrc> for PllSrc {
92 match self { 92 match self {
93 PllSrc::MSIS(..) => Pllsrc::MSIS, 93 PllSrc::MSIS(..) => Pllsrc::MSIS,
94 PllSrc::HSE(..) => Pllsrc::HSE, 94 PllSrc::HSE(..) => Pllsrc::HSE,
95 PllSrc::HSI16 => Pllsrc::HSI16, 95 PllSrc::HSI16 => Pllsrc::HSI,
96 } 96 }
97 } 97 }
98} 98}
@@ -102,7 +102,7 @@ impl Into<Sw> for ClockSrc {
102 match self { 102 match self {
103 ClockSrc::MSI(..) => Sw::MSIS, 103 ClockSrc::MSI(..) => Sw::MSIS,
104 ClockSrc::HSE(..) => Sw::HSE, 104 ClockSrc::HSE(..) => Sw::HSE,
105 ClockSrc::HSI16 => Sw::HSI16, 105 ClockSrc::HSI16 => Sw::HSI,
106 ClockSrc::PLL1R(..) => Sw::PLL1_R, 106 ClockSrc::PLL1R(..) => Sw::PLL1_R,
107 } 107 }
108 } 108 }
diff --git a/embassy-stm32/src/rcc/wb.rs b/embassy-stm32/src/rcc/wb.rs
index 64173fea8..2d0b2711a 100644
--- a/embassy-stm32/src/rcc/wb.rs
+++ b/embassy-stm32/src/rcc/wb.rs
@@ -59,7 +59,7 @@ pub const WPAN_DEFAULT: Config = Config {
59 frequency: mhz(32), 59 frequency: mhz(32),
60 prediv: HsePrescaler::DIV1, 60 prediv: HsePrescaler::DIV1,
61 }), 61 }),
62 sys: Sysclk::PLL, 62 sys: Sysclk::PLL1_R,
63 mux: Some(PllMux { 63 mux: Some(PllMux {
64 source: PllSource::HSE, 64 source: PllSource::HSE,
65 prediv: Pllm::DIV2, 65 prediv: Pllm::DIV2,
@@ -87,8 +87,8 @@ impl Default for Config {
87 #[inline] 87 #[inline]
88 fn default() -> Config { 88 fn default() -> Config {
89 Config { 89 Config {
90 sys: Sysclk::HSI,
90 hse: None, 91 hse: None,
91 sys: Sysclk::HSI16,
92 mux: None, 92 mux: None,
93 pll: None, 93 pll: None,
94 pllsai: None, 94 pllsai: None,
@@ -113,7 +113,7 @@ pub(crate) unsafe fn init(config: Config) {
113 let mux_clk = config.mux.as_ref().map(|pll_mux| { 113 let mux_clk = config.mux.as_ref().map(|pll_mux| {
114 (match pll_mux.source { 114 (match pll_mux.source {
115 PllSource::HSE => hse_clk.unwrap(), 115 PllSource::HSE => hse_clk.unwrap(),
116 PllSource::HSI16 => HSI_FREQ, 116 PllSource::HSI => HSI_FREQ,
117 _ => unreachable!(), 117 _ => unreachable!(),
118 } / pll_mux.prediv) 118 } / pll_mux.prediv)
119 }); 119 });
@@ -133,8 +133,8 @@ pub(crate) unsafe fn init(config: Config) {
133 133
134 let sys_clk = match config.sys { 134 let sys_clk = match config.sys {
135 Sysclk::HSE => hse_clk.unwrap(), 135 Sysclk::HSE => hse_clk.unwrap(),
136 Sysclk::HSI16 => HSI_FREQ, 136 Sysclk::HSI => HSI_FREQ,
137 Sysclk::PLL => pll_r.unwrap(), 137 Sysclk::PLL1_R => pll_r.unwrap(),
138 _ => unreachable!(), 138 _ => unreachable!(),
139 }; 139 };
140 140
@@ -161,12 +161,12 @@ pub(crate) unsafe fn init(config: Config) {
161 let rcc = crate::pac::RCC; 161 let rcc = crate::pac::RCC;
162 162
163 let needs_hsi = if let Some(pll_mux) = &config.mux { 163 let needs_hsi = if let Some(pll_mux) = &config.mux {
164 pll_mux.source == PllSource::HSI16 164 pll_mux.source == PllSource::HSI
165 } else { 165 } else {
166 false 166 false
167 }; 167 };
168 168
169 if needs_hsi || config.sys == Sysclk::HSI16 { 169 if needs_hsi || config.sys == Sysclk::HSI {
170 rcc.cr().modify(|w| { 170 rcc.cr().modify(|w| {
171 w.set_hsion(true); 171 w.set_hsion(true);
172 }); 172 });
diff --git a/embassy-stm32/src/rcc/wba.rs b/embassy-stm32/src/rcc/wba.rs
index 72f653617..aabf782e7 100644
--- a/embassy-stm32/src/rcc/wba.rs
+++ b/embassy-stm32/src/rcc/wba.rs
@@ -26,7 +26,7 @@ impl Into<Pllsrc> for PllSrc {
26 fn into(self) -> Pllsrc { 26 fn into(self) -> Pllsrc {
27 match self { 27 match self {
28 PllSrc::HSE(..) => Pllsrc::HSE, 28 PllSrc::HSE(..) => Pllsrc::HSE,
29 PllSrc::HSI16 => Pllsrc::HSI16, 29 PllSrc::HSI16 => Pllsrc::HSI,
30 } 30 }
31 } 31 }
32} 32}
@@ -35,7 +35,7 @@ impl Into<Sw> for ClockSrc {
35 fn into(self) -> Sw { 35 fn into(self) -> Sw {
36 match self { 36 match self {
37 ClockSrc::HSE(..) => Sw::HSE, 37 ClockSrc::HSE(..) => Sw::HSE,
38 ClockSrc::HSI16 => Sw::HSI16, 38 ClockSrc::HSI16 => Sw::HSI,
39 } 39 }
40 } 40 }
41} 41}
diff --git a/embassy-stm32/src/rcc/wl.rs b/embassy-stm32/src/rcc/wl.rs
index c1f6a6b1e..401486bbb 100644
--- a/embassy-stm32/src/rcc/wl.rs
+++ b/embassy-stm32/src/rcc/wl.rs
@@ -42,7 +42,7 @@ impl Default for Config {
42 shd_ahb_pre: AHBPrescaler::DIV1, 42 shd_ahb_pre: AHBPrescaler::DIV1,
43 apb1_pre: APBPrescaler::DIV1, 43 apb1_pre: APBPrescaler::DIV1,
44 apb2_pre: APBPrescaler::DIV1, 44 apb2_pre: APBPrescaler::DIV1,
45 adc_clock_source: AdcClockSource::HSI16, 45 adc_clock_source: AdcClockSource::HSI,
46 ls: Default::default(), 46 ls: Default::default(),
47 } 47 }
48 } 48 }
@@ -50,7 +50,7 @@ impl Default for Config {
50 50
51pub(crate) unsafe fn init(config: Config) { 51pub(crate) unsafe fn init(config: Config) {
52 let (sys_clk, sw, vos) = match config.mux { 52 let (sys_clk, sw, vos) = match config.mux {
53 ClockSrc::HSI16 => (HSI_FREQ, Sw::HSI16, VoltageScale::RANGE2), 53 ClockSrc::HSI16 => (HSI_FREQ, Sw::HSI, VoltageScale::RANGE2),
54 ClockSrc::HSE => (HSE_FREQ, Sw::HSE, VoltageScale::RANGE1), 54 ClockSrc::HSE => (HSE_FREQ, Sw::HSE, VoltageScale::RANGE1),
55 ClockSrc::MSI(range) => (msirange_to_hertz(range), Sw::MSI, msirange_to_vos(range)), 55 ClockSrc::MSI(range) => (msirange_to_hertz(range), Sw::MSI, msirange_to_vos(range)),
56 }; 56 };
diff --git a/embassy-stm32/src/sdmmc/mod.rs b/embassy-stm32/src/sdmmc/mod.rs
index 11ff24645..a99a5707e 100644
--- a/embassy-stm32/src/sdmmc/mod.rs
+++ b/embassy-stm32/src/sdmmc/mod.rs
@@ -1466,7 +1466,7 @@ cfg_if::cfg_if! {
1466 (SDMMC1) => { 1466 (SDMMC1) => {
1467 critical_section::with(|_| unsafe { 1467 critical_section::with(|_| unsafe {
1468 let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc1sel(); 1468 let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc1sel();
1469 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK { 1469 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYS {
1470 crate::rcc::get_freqs().sys 1470 crate::rcc::get_freqs().sys
1471 } else { 1471 } else {
1472 crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC") 1472 crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC")
@@ -1476,7 +1476,7 @@ cfg_if::cfg_if! {
1476 (SDMMC2) => { 1476 (SDMMC2) => {
1477 critical_section::with(|_| unsafe { 1477 critical_section::with(|_| unsafe {
1478 let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc2sel(); 1478 let sdmmcsel = crate::pac::RCC.dckcfgr2().read().sdmmc2sel();
1479 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYSCLK { 1479 if sdmmcsel == crate::pac::rcc::vals::Sdmmcsel::SYS {
1480 crate::rcc::get_freqs().sys 1480 crate::rcc::get_freqs().sys
1481 } else { 1481 } else {
1482 crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC") 1482 crate::rcc::get_freqs().pll1_q.expect("PLL48 is required for SDMMC")
diff --git a/tests/stm32/src/common.rs b/tests/stm32/src/common.rs
index 8dde71fb3..95b5318f7 100644
--- a/tests/stm32/src/common.rs
+++ b/tests/stm32/src/common.rs
@@ -323,14 +323,7 @@ pub fn config() -> Config {
323 #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))] 323 #[cfg(any(feature = "stm32l496zg", feature = "stm32l4a6zg", feature = "stm32l4r5zi"))]
324 { 324 {
325 use embassy_stm32::rcc::*; 325 use embassy_stm32::rcc::*;
326 #[cfg(feature = "stm32l4r5zi")] 326 config.rcc.mux = ClockSrc::PLL1_R;
327 {
328 config.rcc.mux = ClockSrc::PLL1_R;
329 }
330 #[cfg(not(feature = "stm32l4r5zi"))]
331 {
332 config.rcc.mux = ClockSrc::PLL1_P;
333 }
334 config.rcc.hsi16 = true; 327 config.rcc.hsi16 = true;
335 config.rcc.pll = Some(Pll { 328 config.rcc.pll = Some(Pll {
336 source: PLLSource::HSI, 329 source: PLLSource::HSI,