From 08c1f451b6d85119f071a6992f51eeaf52243695 Mon Sep 17 00:00:00 2001 From: Sam Date: Thu, 16 Nov 2023 15:36:23 +1100 Subject: [PATCH] ADC stm32l151c8 specifics --- stm32-data-gen/src/chips.rs | 41 +++++++++++++++++++++++++++++++++--- stm32-data-gen/src/header.rs | 1 + stm32-data-gen/src/rcc.rs | 5 +++++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 3edb418..daca23e 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -516,6 +516,7 @@ impl PeriMatcher { ("STM32WB55.*:TSC:.*", ("tsc", "v2", "TSC")), ("STM32L[045].*:TSC:.*", ("tsc", "v3", "TSC")), ("STM32U5.*:TSC:.*", ("tsc", "v3", "TSC")), + ("*:VREFINTCAL:.*", ("vrefintcal", "v1", "VREFINTCAL")), ]; Self { @@ -879,9 +880,43 @@ fn process_core( peri_kinds.insert(pname, pkind.to_string()); } const GHOST_PERIS: &[&str] = &[ - "GPIOA", "GPIOB", "GPIOC", "GPIOD", "GPIOE", "GPIOF", "GPIOG", "GPIOH", "GPIOI", "GPIOJ", "GPIOK", "GPIOL", - "GPIOM", "GPION", "GPIOO", "GPIOP", "GPIOQ", "GPIOR", "GPIOS", "GPIOT", "DMA1", "DMA2", "BDMA", "DMAMUX", - "DMAMUX1", "DMAMUX2", "SBS", "SYSCFG", "EXTI", "FLASH", "DBGMCU", "CRS", "PWR", "AFIO", "BKP", "USBRAM", + "GPIOA", + "GPIOB", + "GPIOC", + "GPIOD", + "GPIOE", + "GPIOF", + "GPIOG", + "GPIOH", + "GPIOI", + "GPIOJ", + "GPIOK", + "GPIOL", + "GPIOM", + "GPION", + "GPIOO", + "GPIOP", + "GPIOQ", + "GPIOR", + "GPIOS", + "GPIOT", + "DMA1", + "DMA2", + "BDMA", + "DMAMUX", + "DMAMUX1", + "DMAMUX2", + "SBS", + "SYSCFG", + "EXTI", + "FLASH", + "DBGMCU", + "CRS", + "PWR", + "AFIO", + "BKP", + "USBRAM", + "VREFINTCAL", ]; for pname in GHOST_PERIS { if let Entry::Vacant(entry) = peri_kinds.entry(pname.to_string()) { diff --git a/stm32-data-gen/src/header.rs b/stm32-data-gen/src/header.rs index f1f1bf9..47ee8b8 100644 --- a/stm32-data-gen/src/header.rs +++ b/stm32-data-gen/src/header.rs @@ -175,6 +175,7 @@ impl Defines { &["USB_PMAADDR", "USB_DRD_PMAADDR", "USB_PMAADDR_NS", "USB_DRD_PMAADDR_NS"], ), ("FDCANRAM", &["SRAMCAN_BASE", "SRAMCAN_BASE_NS"]), + ("VREFINTCAL", &["VREFINT_CAL_ADDR_CMSIS"]), ]; let alt_peri_defines: HashMap<_, _> = ALT_PERI_DEFINES.iter().copied().collect(); diff --git a/stm32-data-gen/src/rcc.rs b/stm32-data-gen/src/rcc.rs index 5cf80d8..d8cbc32 100644 --- a/stm32-data-gen/src/rcc.rs +++ b/stm32-data-gen/src/rcc.rs @@ -378,6 +378,11 @@ impl PeripheralToClock { return clocks.get("ADC"); } + // Absolute fallback, match against the clocks for just the first ADC + if clocks.contains_key("ADC1") { + return clocks.get("ADC1"); + } + None } }