diff options
| -rw-r--r-- | stm32-metapac/build.rs | 17 |
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 | ]); |
