rcc: more cleanup

This commit is contained in:
xoviat 2023-10-17 16:57:33 -05:00
parent c20cbde88f
commit c61495fd4e
18 changed files with 30 additions and 33 deletions

View File

@ -1048,7 +1048,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 2 value: 2
- name: HSI48 - name: HSI48
@ -1075,6 +1075,6 @@ enum/USBSW:
- name: HSI48 - name: HSI48
description: NOT ALLOWED IN F0x0 - HSI48 selected as USB clock source description: NOT ALLOWED IN F0x0 - HSI48 selected as USB clock source
value: 0 value: 0
- name: PLLCLK - name: PLL1_P
description: PLL clock selected as USB clock source description: PLL clock selected as USB clock source
value: 1 value: 1

View File

@ -822,7 +822,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE selected as system clock description: HSE selected as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL selected as system clock description: PLL selected as system clock
value: 2 value: 2
enum/USBPRE: enum/USBPRE:

View File

@ -844,6 +844,6 @@ enum/SW:
- name: HSE - name: HSE
description: HSE selected as system clock description: HSE selected as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL selected as system clock description: PLL selected as system clock
value: 2 value: 2

View File

@ -1980,6 +1980,6 @@ enum/SW:
- name: HSE - name: HSE
description: HSE selected as system clock description: HSE selected as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL selected as system clock description: PLL selected as system clock
value: 2 value: 2

View File

@ -1238,7 +1238,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 2 value: 2
enum/TIMSW: enum/TIMSW:
@ -1247,7 +1247,7 @@ enum/TIMSW:
- name: PCLK2 - name: PCLK2
description: PCLK2 clock (doubled frequency when prescaled) description: PCLK2 clock (doubled frequency when prescaled)
value: 0 value: 0
- name: PLL - name: PLL1_P
description: PLL vco output (running up to 144 MHz) description: PLL vco output (running up to 144 MHz)
value: 1 value: 1
enum/USARTSW: enum/USARTSW:

View File

@ -1214,7 +1214,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 2 value: 2
enum/TIMSW: enum/TIMSW:
@ -1223,7 +1223,7 @@ enum/TIMSW:
- name: PCLK2 - name: PCLK2
description: PCLK2 clock (doubled frequency when prescaled) description: PCLK2 clock (doubled frequency when prescaled)
value: 0 value: 0
- name: PLL - name: PLL1_P
description: PLL vco output (running up to 144 MHz) description: PLL vco output (running up to 144 MHz)
value: 1 value: 1
enum/USARTSW: enum/USARTSW:

View File

@ -3467,7 +3467,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 2 value: 2
enum/TIMPRE: enum/TIMPRE:

View File

@ -1926,7 +1926,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 2 value: 2
enum/TIMPRE: enum/TIMPRE:

View File

@ -3144,7 +3144,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 1 value: 1
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 2 value: 2
enum/TIMPRE: enum/TIMPRE:

View File

@ -1848,7 +1848,7 @@ enum/SW:
enum/TIM15SEL: enum/TIM15SEL:
bit_size: 1 bit_size: 1
variants: variants:
- name: TIMPCLK - name: PCLK1_TIM
description: TIMPCLK used as TIM15 clock source description: TIMPCLK used as TIM15 clock source
value: 0 value: 0
- name: PLL1_Q - name: PLL1_Q
@ -1857,7 +1857,7 @@ enum/TIM15SEL:
enum/TIM1SEL: enum/TIM1SEL:
bit_size: 1 bit_size: 1
variants: variants:
- name: TIMPCLK - name: PCLK1_TIM
description: TIMPCLK used as TIM1 clock source description: TIMPCLK used as TIM1 clock source
value: 0 value: 0
- name: PLL1_Q - name: PLL1_Q

View File

@ -3697,7 +3697,7 @@ enum/LPTIM2SEL:
enum/LPUARTSEL: enum/LPUARTSEL:
bit_size: 3 bit_size: 3
variants: variants:
- name: RCC_PCLK_D3 - name: PCLK3
description: rcc_pclk_d3 selected as peripheral clock description: rcc_pclk_d3 selected as peripheral clock
value: 0 value: 0
- name: PLL2_Q - name: PLL2_Q

View File

@ -2632,7 +2632,7 @@ enum/LPTIM2SEL:
enum/LPUARTSEL: enum/LPUARTSEL:
bit_size: 3 bit_size: 3
variants: variants:
- name: RCC_PCLK_D3 - name: PCLK3
description: rcc_pclk_d3 selected as peripheral clock description: rcc_pclk_d3 selected as peripheral clock
value: 0 value: 0
- name: PLL2_Q - name: PLL2_Q

View File

@ -3697,7 +3697,7 @@ enum/LPTIM2SEL:
enum/LPUARTSEL: enum/LPUARTSEL:
bit_size: 3 bit_size: 3
variants: variants:
- name: RCC_PCLK_D3 - name: PCLK3
description: rcc_pclk_d3 selected as peripheral clock description: rcc_pclk_d3 selected as peripheral clock
value: 0 value: 0
- name: PLL2_Q - name: PLL2_Q

View File

@ -1201,7 +1201,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 2 value: 2
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 3 value: 3
enum/UARTSEL: enum/UARTSEL:

View File

@ -1240,7 +1240,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 2 value: 2
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 3 value: 3
enum/UARTSEL: enum/UARTSEL:

View File

@ -1045,6 +1045,6 @@ enum/SW:
- name: HSE - name: HSE
description: HSE oscillator used as system clock description: HSE oscillator used as system clock
value: 2 value: 2
- name: PLL - name: PLL1_P
description: PLL used as system clock description: PLL used as system clock
value: 3 value: 3

View File

@ -2267,7 +2267,7 @@ enum/SW:
- name: HSE - name: HSE
description: HSE selected as system clock description: HSE selected as system clock
value: 2 value: 2
- name: PLL - name: PLL1_P
description: PLL selected as system clock description: PLL selected as system clock
value: 3 value: 3
enum/SWPMI1SEL: enum/SWPMI1SEL:

View File

@ -73,22 +73,17 @@ impl PeripheralToClock {
"SAI2_EXTCLK", "SAI2_EXTCLK",
"B_0x0", "B_0x0",
"B_0x1", "B_0x1",
"PLL",
"PLLCLK",
"RCC_PCLK_D3",
"I2S_CKIN", "I2S_CKIN",
"DAC_HOLD", "DAC_HOLD",
"DAC_HOLD_2", "DAC_HOLD_2",
"TIMPCLK",
"RTCCLK", "RTCCLK",
"RTC_WKUP", "RTC_WKUP",
"DSIPHY", "DSIPHY",
"PLLDSICLK",
]); ]);
for (rcc_name, ir) in &registers.registers { for (rcc_name, ir) in &registers.registers {
if let Some(rcc_name) = rcc_name.strip_prefix("rcc_") { 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; let rcc_blocks = &ir.blocks.get("RCC").unwrap().items;
rcc_blocks rcc_blocks
@ -101,10 +96,10 @@ impl PeripheralToClock {
f.fields f.fields
.iter() .iter()
.filter_map(|f| { .filter_map(|f| {
let enumm = f.enumm.as_ref()?; let enumm_name = f.enumm.as_ref()?;
let enumm = ir.enums.get(enumm)?; let enumm = ir.enums.get(enumm_name)?;
Some((&f.name, enumm)) Some((&f.name, (enumm_name, enumm)))
}) })
.collect(), .collect(),
) )
@ -124,7 +119,7 @@ impl PeripheralToClock {
_ => return Ok(()), _ => return Ok(()),
}; };
let enumm = match block_map.get(field) { let (enumm_name, enumm) = match block_map.get(field) {
Some(enumm) => enumm, Some(enumm) => enumm,
_ => return Ok(()), _ => return Ok(()),
}; };
@ -135,15 +130,17 @@ impl PeripheralToClock {
if !allowed_variants.contains(name.as_str()) { if !allowed_variants.contains(name.as_str()) {
return Err(anyhow!( return Err(anyhow!(
"rcc: prohibited variant name {} for rcc_{}", "rcc: prohibited variant name {} in enum {} for rcc_{}",
v.name.as_str(), v.name.as_str(),
enumm_name,
rcc_name rcc_name
)); ));
} }
} else if !allowed_variants.contains(v.name.as_str()) { } else if !allowed_variants.contains(v.name.as_str()) {
return Err(anyhow!( return Err(anyhow!(
"rcc: prohibited variant name {} for rcc_{}", "rcc: prohibited variant name {} in enum {} for rcc_{}",
v.name.as_str(), v.name.as_str(),
enumm_name,
rcc_name rcc_name
)); ));
} }