From c61495fd4e3e210c8ed6a898ea83592011f095b6 Mon Sep 17 00:00:00 2001 From: xoviat Date: Tue, 17 Oct 2023 16:57:33 -0500 Subject: [PATCH] rcc: more cleanup --- data/registers/rcc_f0.yaml | 4 ++-- data/registers/rcc_f1.yaml | 2 +- data/registers/rcc_f100.yaml | 2 +- data/registers/rcc_f2.yaml | 2 +- data/registers/rcc_f3.yaml | 4 ++-- data/registers/rcc_f3_v2.yaml | 4 ++-- data/registers/rcc_f4.yaml | 2 +- data/registers/rcc_f410.yaml | 2 +- data/registers/rcc_f7.yaml | 2 +- data/registers/rcc_g0.yaml | 4 ++-- data/registers/rcc_h7.yaml | 2 +- data/registers/rcc_h7ab.yaml | 2 +- data/registers/rcc_h7rm0433.yaml | 2 +- data/registers/rcc_l0.yaml | 2 +- data/registers/rcc_l0_v2.yaml | 2 +- data/registers/rcc_l1.yaml | 2 +- data/registers/rcc_l4.yaml | 2 +- stm32-data-gen/src/rcc.rs | 21 +++++++++------------ 18 files changed, 30 insertions(+), 33 deletions(-) diff --git a/data/registers/rcc_f0.yaml b/data/registers/rcc_f0.yaml index 7ebc58c..596fbd4 100644 --- a/data/registers/rcc_f0.yaml +++ b/data/registers/rcc_f0.yaml @@ -1048,7 +1048,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 2 - name: HSI48 @@ -1075,6 +1075,6 @@ enum/USBSW: - name: HSI48 description: NOT ALLOWED IN F0x0 - HSI48 selected as USB clock source value: 0 - - name: PLLCLK + - name: PLL1_P description: PLL clock selected as USB clock source value: 1 diff --git a/data/registers/rcc_f1.yaml b/data/registers/rcc_f1.yaml index bb96d81..d600c9f 100644 --- a/data/registers/rcc_f1.yaml +++ b/data/registers/rcc_f1.yaml @@ -822,7 +822,7 @@ enum/SW: - name: HSE description: HSE selected as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL selected as system clock value: 2 enum/USBPRE: diff --git a/data/registers/rcc_f100.yaml b/data/registers/rcc_f100.yaml index f0ea9aa..72cfc99 100644 --- a/data/registers/rcc_f100.yaml +++ b/data/registers/rcc_f100.yaml @@ -844,6 +844,6 @@ enum/SW: - name: HSE description: HSE selected as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL selected as system clock value: 2 diff --git a/data/registers/rcc_f2.yaml b/data/registers/rcc_f2.yaml index 468c7c2..97fadee 100644 --- a/data/registers/rcc_f2.yaml +++ b/data/registers/rcc_f2.yaml @@ -1980,6 +1980,6 @@ enum/SW: - name: HSE description: HSE selected as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL selected as system clock value: 2 diff --git a/data/registers/rcc_f3.yaml b/data/registers/rcc_f3.yaml index 9535cdd..8c3b90f 100644 --- a/data/registers/rcc_f3.yaml +++ b/data/registers/rcc_f3.yaml @@ -1238,7 +1238,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 2 enum/TIMSW: @@ -1247,7 +1247,7 @@ enum/TIMSW: - name: PCLK2 description: PCLK2 clock (doubled frequency when prescaled) value: 0 - - name: PLL + - name: PLL1_P description: PLL vco output (running up to 144 MHz) value: 1 enum/USARTSW: diff --git a/data/registers/rcc_f3_v2.yaml b/data/registers/rcc_f3_v2.yaml index b70f0b2..35ec19e 100644 --- a/data/registers/rcc_f3_v2.yaml +++ b/data/registers/rcc_f3_v2.yaml @@ -1214,7 +1214,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 2 enum/TIMSW: @@ -1223,7 +1223,7 @@ enum/TIMSW: - name: PCLK2 description: PCLK2 clock (doubled frequency when prescaled) value: 0 - - name: PLL + - name: PLL1_P description: PLL vco output (running up to 144 MHz) value: 1 enum/USARTSW: diff --git a/data/registers/rcc_f4.yaml b/data/registers/rcc_f4.yaml index 6d5dd66..1bef641 100644 --- a/data/registers/rcc_f4.yaml +++ b/data/registers/rcc_f4.yaml @@ -3467,7 +3467,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 2 enum/TIMPRE: diff --git a/data/registers/rcc_f410.yaml b/data/registers/rcc_f410.yaml index 1803c7b..1ed702f 100644 --- a/data/registers/rcc_f410.yaml +++ b/data/registers/rcc_f410.yaml @@ -1926,7 +1926,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 2 enum/TIMPRE: diff --git a/data/registers/rcc_f7.yaml b/data/registers/rcc_f7.yaml index be1e481..faefb96 100644 --- a/data/registers/rcc_f7.yaml +++ b/data/registers/rcc_f7.yaml @@ -3144,7 +3144,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 1 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 2 enum/TIMPRE: diff --git a/data/registers/rcc_g0.yaml b/data/registers/rcc_g0.yaml index 25da0e6..cd7d5f8 100644 --- a/data/registers/rcc_g0.yaml +++ b/data/registers/rcc_g0.yaml @@ -1848,7 +1848,7 @@ enum/SW: enum/TIM15SEL: bit_size: 1 variants: - - name: TIMPCLK + - name: PCLK1_TIM description: TIMPCLK used as TIM15 clock source value: 0 - name: PLL1_Q @@ -1857,7 +1857,7 @@ enum/TIM15SEL: enum/TIM1SEL: bit_size: 1 variants: - - name: TIMPCLK + - name: PCLK1_TIM description: TIMPCLK used as TIM1 clock source value: 0 - name: PLL1_Q diff --git a/data/registers/rcc_h7.yaml b/data/registers/rcc_h7.yaml index 22c6bcd..1baeb1f 100644 --- a/data/registers/rcc_h7.yaml +++ b/data/registers/rcc_h7.yaml @@ -3697,7 +3697,7 @@ enum/LPTIM2SEL: enum/LPUARTSEL: bit_size: 3 variants: - - name: RCC_PCLK_D3 + - name: PCLK3 description: rcc_pclk_d3 selected as peripheral clock value: 0 - name: PLL2_Q diff --git a/data/registers/rcc_h7ab.yaml b/data/registers/rcc_h7ab.yaml index cc55415..23b482d 100644 --- a/data/registers/rcc_h7ab.yaml +++ b/data/registers/rcc_h7ab.yaml @@ -2632,7 +2632,7 @@ enum/LPTIM2SEL: enum/LPUARTSEL: bit_size: 3 variants: - - name: RCC_PCLK_D3 + - name: PCLK3 description: rcc_pclk_d3 selected as peripheral clock value: 0 - name: PLL2_Q diff --git a/data/registers/rcc_h7rm0433.yaml b/data/registers/rcc_h7rm0433.yaml index 09f11ad..0116ae9 100644 --- a/data/registers/rcc_h7rm0433.yaml +++ b/data/registers/rcc_h7rm0433.yaml @@ -3697,7 +3697,7 @@ enum/LPTIM2SEL: enum/LPUARTSEL: bit_size: 3 variants: - - name: RCC_PCLK_D3 + - name: PCLK3 description: rcc_pclk_d3 selected as peripheral clock value: 0 - name: PLL2_Q diff --git a/data/registers/rcc_l0.yaml b/data/registers/rcc_l0.yaml index e183b5a..cd369fe 100644 --- a/data/registers/rcc_l0.yaml +++ b/data/registers/rcc_l0.yaml @@ -1201,7 +1201,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 2 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 3 enum/UARTSEL: diff --git a/data/registers/rcc_l0_v2.yaml b/data/registers/rcc_l0_v2.yaml index 646d231..14a5d1a 100644 --- a/data/registers/rcc_l0_v2.yaml +++ b/data/registers/rcc_l0_v2.yaml @@ -1240,7 +1240,7 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 2 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 3 enum/UARTSEL: diff --git a/data/registers/rcc_l1.yaml b/data/registers/rcc_l1.yaml index 42e6402..7f168b0 100644 --- a/data/registers/rcc_l1.yaml +++ b/data/registers/rcc_l1.yaml @@ -1045,6 +1045,6 @@ enum/SW: - name: HSE description: HSE oscillator used as system clock value: 2 - - name: PLL + - name: PLL1_P description: PLL used as system clock value: 3 diff --git a/data/registers/rcc_l4.yaml b/data/registers/rcc_l4.yaml index c9e7437..3a674af 100644 --- a/data/registers/rcc_l4.yaml +++ b/data/registers/rcc_l4.yaml @@ -2267,7 +2267,7 @@ enum/SW: - name: HSE description: HSE selected as system clock value: 2 - - name: PLL + - name: PLL1_P description: PLL selected as system clock value: 3 enum/SWPMI1SEL: diff --git a/stm32-data-gen/src/rcc.rs b/stm32-data-gen/src/rcc.rs index b0ab22a..4a50e4d 100644 --- a/stm32-data-gen/src/rcc.rs +++ b/stm32-data-gen/src/rcc.rs @@ -73,22 +73,17 @@ impl PeripheralToClock { "SAI2_EXTCLK", "B_0x0", "B_0x1", - "PLL", - "PLLCLK", - "RCC_PCLK_D3", "I2S_CKIN", "DAC_HOLD", "DAC_HOLD_2", - "TIMPCLK", "RTCCLK", "RTC_WKUP", "DSIPHY", - "PLLDSICLK", ]); for (rcc_name, ir) in ®isters.registers { if let Some(rcc_name) = rcc_name.strip_prefix("rcc_") { - let rcc_enum_map: HashMap<&String, HashMap<&String, &Enum>> = { + let rcc_enum_map: HashMap<&String, HashMap<&String, (&String, &Enum)>> = { let rcc_blocks = &ir.blocks.get("RCC").unwrap().items; rcc_blocks @@ -101,10 +96,10 @@ impl PeripheralToClock { f.fields .iter() .filter_map(|f| { - let enumm = f.enumm.as_ref()?; - let enumm = ir.enums.get(enumm)?; + let enumm_name = f.enumm.as_ref()?; + let enumm = ir.enums.get(enumm_name)?; - Some((&f.name, enumm)) + Some((&f.name, (enumm_name, enumm))) }) .collect(), ) @@ -124,7 +119,7 @@ impl PeripheralToClock { _ => return Ok(()), }; - let enumm = match block_map.get(field) { + let (enumm_name, enumm) = match block_map.get(field) { Some(enumm) => enumm, _ => return Ok(()), }; @@ -135,15 +130,17 @@ impl PeripheralToClock { if !allowed_variants.contains(name.as_str()) { return Err(anyhow!( - "rcc: prohibited variant name {} for rcc_{}", + "rcc: prohibited variant name {} in enum {} for rcc_{}", v.name.as_str(), + enumm_name, rcc_name )); } } else if !allowed_variants.contains(v.name.as_str()) { return Err(anyhow!( - "rcc: prohibited variant name {} for rcc_{}", + "rcc: prohibited variant name {} in enum {} for rcc_{}", v.name.as_str(), + enumm_name, rcc_name )); }