From a1189407f75056ba6081f51a3fec876c396738c1 Mon Sep 17 00:00:00 2001 From: Kevin Lannen Date: Mon, 19 Jun 2023 16:23:06 -0600 Subject: [PATCH 1/2] STM32G4: Add enum for CLK48SEL --- data/registers/rcc_g4.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/data/registers/rcc_g4.yaml b/data/registers/rcc_g4.yaml index ac07c3c..14d00f3 100644 --- a/data/registers/rcc_g4.yaml +++ b/data/registers/rcc_g4.yaml @@ -1022,6 +1022,7 @@ fieldset/CCIPR: description: 48 MHz clock source selection bit_offset: 26 bit_size: 2 + enum: CLK48SEL - name: ADC12SEL description: ADCs clock source selection bit_offset: 28 @@ -1479,3 +1480,12 @@ enum/SW: - name: PLLRCLK description: PLLRCLK selected as system clock value: 3 +enum/CLK48SEL: + bit_size: 2 + variants: + - name: HSI48 + description: HSI48 oscillator clock selected as 48 MHz clock + value: 0 + - name: PLLQCLK + description: PLLQCLK selected as 48 MHz clock + value: 2 From efc220eb380c2e0e853e8ff99e4a38b61148dd35 Mon Sep 17 00:00:00 2001 From: Kevin Lannen Date: Mon, 19 Jun 2023 16:23:53 -0600 Subject: [PATCH 2/2] CRS: Use L0 CRS definitions for G0 and G4 Comparing the register definitions these peripherals are identical. --- data/registers/{crs_l0.yaml => crs_v1.yaml} | 40 +++++++++++++++++++++ stm32-data-gen/src/chips.rs | 5 ++- 2 files changed, 44 insertions(+), 1 deletion(-) rename data/registers/{crs_l0.yaml => crs_v1.yaml} (77%) diff --git a/data/registers/crs_l0.yaml b/data/registers/crs_v1.yaml similarity index 77% rename from data/registers/crs_l0.yaml rename to data/registers/crs_v1.yaml index 1fd7204..aebdbdc 100644 --- a/data/registers/crs_l0.yaml +++ b/data/registers/crs_v1.yaml @@ -38,6 +38,7 @@ fieldset/CFGR: description: SYNC signal source selection bit_offset: 28 bit_size: 2 + enum: SYNCSRC - name: SYNCPOL description: SYNC polarity selection bit_offset: 31 @@ -135,3 +136,42 @@ fieldset/ISR: description: Frequency error capture bit_offset: 16 bit_size: 16 +enum/SYNCSRC: + bit_size: 2 + variants: + - name: GPIO + description: GPIO selected as SYNC signal source + value: 0 + - name: LSE + description: LSE selected as SYNC signal source + value: 1 + - name: USB + description: USB SOF selected as SYNC signal source + value: 2 +enum/SYNCDIV: + bit_size: 3 + variants: + - name: DIV1 + description: f(SYNCDIV) = f(SYNCSRC) + value: 0 + - name: DIV2 + description: f(SYNCDIV) = f(SYNCSRC)/2 + value: 1 + - name: DIV4 + description: f(SYNCDIV) = f(SYNCSRC)/4 + value: 2 + - name: DIV8 + description: f(SYNCDIV) = f(SYNCSRC)/8 + value: 3 + - name: DIV16 + description: f(SYNCDIV) = f(SYNCSRC)/16 + value: 4 + - name: DIV32 + description: f(SYNCDIV) = f(SYNCSRC)/32 + value: 5 + - name: DIV64 + description: f(SYNCDIV) = f(SYNCSRC)/64 + value: 6 + - name: DIV128 + description: f(SYNCDIV) = f(SYNCSRC)/128 + value: 7 diff --git a/stm32-data-gen/src/chips.rs b/stm32-data-gen/src/chips.rs index 91e9d69..1a23b4e 100644 --- a/stm32-data-gen/src/chips.rs +++ b/stm32-data-gen/src/chips.rs @@ -284,7 +284,10 @@ impl PeriMatcher { ("STM32H50.*:EXTI:.*", ("exti", "h50", "EXTI")), ("STM32H5.*:EXTI:.*", ("exti", "h5", "EXTI")), (".*:EXTI:.*", ("exti", "v1", "EXTI")), - ("STM32L0.*:CRS:.*", ("crs", "l0", "CRS")), + ("STM32L0.*:CRS:.*", ("crs", "v1", "CRS")), + ("STM32G0B1.*:CRS:.*", ("crs", "v1", "CRS")), + ("STM32G0C1.*:CRS:.*", ("crs", "v1", "CRS")), + ("STM32G4.*:CRS:.*", ("crs", "v1", "CRS")), (".*SDMMC:sdmmc2_v1_0", ("sdmmc", "v2", "SDMMC")), ("STM32C0.*:PWR:.*", ("pwr", "c0", "PWR")), ("STM32G0.*:PWR:.*", ("pwr", "g0", "PWR")),