aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--stm32-metapac/build.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/stm32-metapac/build.rs b/stm32-metapac/build.rs
index 46660d9bd..72750267d 100644
--- a/stm32-metapac/build.rs
+++ b/stm32-metapac/build.rs
@@ -219,17 +219,22 @@ fn main() {
219 } 219 }
220 "spi" => { 220 "spi" => {
221 if let Some(clock) = &p.clock { 221 if let Some(clock) = &p.clock {
222 // Workaround for APB1 register being split on some chip families 222 // Workaround for APB1 register being split on some chip families. Assume
223 let reg = if chip.family == "STM32H7" && clock == "APB1" { 223 // first register until we can find a way to hint which register is used
224 format!("{}l", clock.to_ascii_lowercase()) 224 let reg = clock.to_ascii_lowercase();
225 let (enable_reg, reset_reg) = if chip.family == "STM32H7" && clock == "APB1"
226 {
227 (format!("{}lenr", reg), format!("{}lrstr", reg))
228 } else if chip.family == "STM32L4" && clock == "APB1" {
229 (format!("{}enr1", reg), format!("{}rstr1", reg))
225 } else { 230 } else {
226 clock.to_ascii_lowercase() 231 (format!("{}enr", reg), format!("{}rstr", reg))
227 }; 232 };
228 let field = name.to_ascii_lowercase(); 233 let field = name.to_ascii_lowercase();
229 peripheral_rcc_table.push(vec![ 234 peripheral_rcc_table.push(vec![
230 name.clone(), 235 name.clone(),
231 format!("{}enr", reg), 236 enable_reg,
232 format!("{}rstr", reg), 237 reset_reg,
233 format!("set_{}en", field), 238 format!("set_{}en", field),
234 format!("set_{}rst", field), 239 format!("set_{}rst", field),
235 ]); 240 ]);