From 3a88360dc6bb099a5f2bf0edd54c9cf5f9ede38b Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 31 Aug 2021 01:46:26 -0400 Subject: [PATCH] Add PWR registers for STM32G0 --- data/registers/pwr_g0.yaml | 782 +++++++++++++++++++++++++++++++++++++ parse.py | 1 + 2 files changed, 783 insertions(+) create mode 100644 data/registers/pwr_g0.yaml diff --git a/data/registers/pwr_g0.yaml b/data/registers/pwr_g0.yaml new file mode 100644 index 0000000..c852f77 --- /dev/null +++ b/data/registers/pwr_g0.yaml @@ -0,0 +1,782 @@ +--- +block/PWR: + description: Power control + items: + - name: CR1 + description: Power control register 1 + byte_offset: 0 + fieldset: CR1 + - name: CR2 + description: Power control register 2 + byte_offset: 4 + fieldset: CR2 + - name: CR3 + description: Power control register 3 + byte_offset: 8 + fieldset: CR3 + - name: CR4 + description: Power control register 4 + byte_offset: 12 + fieldset: CR4 + - name: SR1 + description: Power status register 1 + byte_offset: 16 + access: Read + fieldset: SR1 + - name: SR2 + description: Power status register 2 + byte_offset: 20 + access: Read + fieldset: SR2 + - name: SCR + description: Power status clear register + byte_offset: 24 + access: Write + fieldset: SCR + - name: PUCRA + description: Power Port A pull-up control register + byte_offset: 32 + fieldset: PUCRA + - name: PDCRA + description: Power Port A pull-down control register + byte_offset: 36 + fieldset: PDCRA + - name: PUCRB + description: Power Port B pull-up control register + byte_offset: 40 + fieldset: PUCRB + - name: PDCRB + description: Power Port B pull-down control register + byte_offset: 44 + fieldset: PDCRB + - name: PUCRC + description: Power Port C pull-up control register + byte_offset: 48 + fieldset: PUCRC + - name: PDCRC + description: Power Port C pull-down control register + byte_offset: 52 + fieldset: PDCRC + - name: PUCRD + description: Power Port D pull-up control register + byte_offset: 56 + fieldset: PUCRD + - name: PDCRD + description: Power Port D pull-down control register + byte_offset: 60 + fieldset: PDCRD + - name: PUCRF + description: Power Port F pull-up control register + byte_offset: 72 + fieldset: PUCRF + - name: PDCRF + description: Power Port F pull-down control register + byte_offset: 76 + fieldset: PDCRF +fieldset/CR1: + description: Power control register 1 + fields: + - name: LPMS + description: Low-power mode selection + bit_offset: 0 + bit_size: 3 + - name: FPD_STOP + description: Flash memory powered down during Stop mode + bit_offset: 3 + bit_size: 1 + - name: FPD_LPRUN + description: Flash memory powered down during Low-power run mode + bit_offset: 4 + bit_size: 1 + - name: FPD_LPSLP + description: Flash memory powered down during Low-power sleep mode + bit_offset: 5 + bit_size: 1 + - name: DBP + description: Disable backup domain write protection + bit_offset: 8 + bit_size: 1 + - name: VOS + description: Voltage scaling range selection + bit_offset: 9 + bit_size: 2 + - name: LPR + description: Low-power run + bit_offset: 14 + bit_size: 1 +fieldset/CR2: + description: Power control register 2 + fields: + - name: PVDE + description: Power voltage detector enable + bit_offset: 0 + bit_size: 1 + - name: PVDFT + description: Power voltage detector falling threshold selection + bit_offset: 1 + bit_size: 3 + - name: PVDRT + description: Power voltage detector rising threshold selection + bit_offset: 4 + bit_size: 3 +fieldset/CR3: + description: Power control register 3 + fields: + - name: EWUP1 + description: Enable Wakeup pin WKUP1 + bit_offset: 0 + bit_size: 1 + - name: EWUP2 + description: Enable Wakeup pin WKUP2 + bit_offset: 1 + bit_size: 1 + - name: EWUP4 + description: Enable Wakeup pin WKUP4 + bit_offset: 3 + bit_size: 1 + - name: EWUP5 + description: Enable WKUP5 wakeup pin + bit_offset: 4 + bit_size: 1 + - name: EWUP6 + description: Enable WKUP6 wakeup pin + bit_offset: 5 + bit_size: 1 + - name: RRS + description: SRAM retention in Standby mode + bit_offset: 8 + bit_size: 1 + - name: ULPEN + description: Enable the periodical sampling mode for PDR detection + bit_offset: 9 + bit_size: 1 + - name: APC + description: Apply pull-up and pull-down configuration + bit_offset: 10 + bit_size: 1 + - name: EIWUL + description: Enable internal wakeup line + bit_offset: 15 + bit_size: 1 +fieldset/CR4: + description: Power control register 4 + fields: + - name: WP1 + description: Wakeup pin WKUP1 polarity + bit_offset: 0 + bit_size: 1 + - name: WP2 + description: Wakeup pin WKUP2 polarity + bit_offset: 1 + bit_size: 1 + - name: WP4 + description: Wakeup pin WKUP4 polarity + bit_offset: 3 + bit_size: 1 + - name: WP5 + description: Wakeup pin WKUP5 polarity + bit_offset: 4 + bit_size: 1 + - name: WP6 + description: WKUP6 wakeup pin polarity + bit_offset: 5 + bit_size: 1 + - name: VBE + description: VBAT battery charging enable + bit_offset: 8 + bit_size: 1 + - name: VBRS + description: VBAT battery charging resistor selection + bit_offset: 9 + bit_size: 1 +fieldset/PDCRA: + description: Power Port A pull-down control register + fields: + - name: PD0 + description: Port A pull-down bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port A pull-down bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port A pull-down bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port A pull-down bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port A pull-down bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port A pull-down bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port A pull-down bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PD7 + description: Port A pull-down bit y (y=0..15) + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port A pull-down bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port A pull-down bit y (y=0..15) + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port A pull-down bit y (y=0..15) + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port A pull-down bit y (y=0..15) + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port A pull-down bit y (y=0..15) + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port A pull-down bit y (y=0..15) + bit_offset: 13 + bit_size: 1 + - name: PD14 + description: Port A pull-down bit y (y=0..15) + bit_offset: 14 + bit_size: 1 + - name: PD15 + description: Port A pull-down bit y (y=0..15) + bit_offset: 15 + bit_size: 1 +fieldset/PDCRB: + description: Power Port B pull-down control register + fields: + - name: PD0 + description: Port B pull-down bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port B pull-down bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port B pull-down bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port B pull-down bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port B pull-down bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port B pull-down bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port B pull-down bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PD7 + description: Port B pull-down bit y (y=0..15) + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port B pull-down bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port B pull-down bit y (y=0..15) + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port B pull-down bit y (y=0..15) + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port B pull-down bit y (y=0..15) + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port B pull-down bit y (y=0..15) + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port B pull-down bit y (y=0..15) + bit_offset: 13 + bit_size: 1 + - name: PD14 + description: Port B pull-down bit y (y=0..15) + bit_offset: 14 + bit_size: 1 + - name: PD15 + description: Port B pull-down bit y (y=0..15) + bit_offset: 15 + bit_size: 1 +fieldset/PDCRC: + description: Power Port C pull-down control register + fields: + - name: PD0 + description: Port C pull-down bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port C pull-down bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port C pull-down bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port C pull-down bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port C pull-down bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port C pull-down bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port C pull-down bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PD7 + description: Port C pull-down bit y (y=0..15) + bit_offset: 7 + bit_size: 1 + - name: PD8 + description: Port C pull-down bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port C pull-down bit y (y=0..15) + bit_offset: 9 + bit_size: 1 + - name: PD10 + description: Port C pull-down bit y (y=0..15) + bit_offset: 10 + bit_size: 1 + - name: PD11 + description: Port C pull-down bit y (y=0..15) + bit_offset: 11 + bit_size: 1 + - name: PD12 + description: Port C pull-down bit y (y=0..15) + bit_offset: 12 + bit_size: 1 + - name: PD13 + description: Port C pull-down bit y (y=0..15) + bit_offset: 13 + bit_size: 1 + - name: PD14 + description: Port C pull-down bit y (y=0..15) + bit_offset: 14 + bit_size: 1 + - name: PD15 + description: Port C pull-down bit y (y=0..15) + bit_offset: 15 + bit_size: 1 +fieldset/PDCRD: + description: Power Port D pull-down control register + fields: + - name: PD0 + description: Port D pull-down bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port D pull-down bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port D pull-down bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PD3 + description: Port D pull-down bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PD4 + description: Port D pull-down bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PD5 + description: Port D pull-down bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PD6 + description: Port D pull-down bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PD8 + description: Port D pull-down bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PD9 + description: Port D pull-down bit y (y=0..15) + bit_offset: 9 + bit_size: 1 +fieldset/PDCRF: + description: Power Port F pull-down control register + fields: + - name: PD0 + description: Port F pull-down bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PD1 + description: Port F pull-down bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PD2 + description: Port F pull-down bit y (y=0..15) + bit_offset: 2 + bit_size: 1 +fieldset/PUCRA: + description: Power Port A pull-up control register + fields: + - name: PU0 + description: Port A pull-up bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port A pull-up bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port A pull-up bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port A pull-up bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port A pull-up bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port A pull-up bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port A pull-up bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PU7 + description: Port A pull-up bit y (y=0..15) + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port A pull-up bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port A pull-up bit y (y=0..15) + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port A pull-up bit y (y=0..15) + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port A pull-up bit y (y=0..15) + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port A pull-up bit y (y=0..15) + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port A pull-up bit y (y=0..15) + bit_offset: 13 + bit_size: 1 + - name: PU14 + description: Port A pull-up bit y (y=0..15) + bit_offset: 14 + bit_size: 1 + - name: PU15 + description: Port A pull-up bit y (y=0..15) + bit_offset: 15 + bit_size: 1 +fieldset/PUCRB: + description: Power Port B pull-up control register + fields: + - name: PU0 + description: Port B pull-up bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port B pull-up bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port B pull-up bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port B pull-up bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port B pull-up bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port B pull-up bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port B pull-up bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PU7 + description: Port B pull-up bit y (y=0..15) + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port B pull-up bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port B pull-up bit y (y=0..15) + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port B pull-up bit y (y=0..15) + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port B pull-up bit y (y=0..15) + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port B pull-up bit y (y=0..15) + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port B pull-up bit y (y=0..15) + bit_offset: 13 + bit_size: 1 + - name: PU14 + description: Port B pull-up bit y (y=0..15) + bit_offset: 14 + bit_size: 1 + - name: PU15 + description: Port B pull-up bit y (y=0..15) + bit_offset: 15 + bit_size: 1 +fieldset/PUCRC: + description: Power Port C pull-up control register + fields: + - name: PU0 + description: Port C pull-up bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port C pull-up bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port C pull-up bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port C pull-up bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port C pull-up bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port C pull-up bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port C pull-up bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PU7 + description: Port C pull-up bit y (y=0..15) + bit_offset: 7 + bit_size: 1 + - name: PU8 + description: Port C pull-up bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port C pull-up bit y (y=0..15) + bit_offset: 9 + bit_size: 1 + - name: PU10 + description: Port C pull-up bit y (y=0..15) + bit_offset: 10 + bit_size: 1 + - name: PU11 + description: Port C pull-up bit y (y=0..15) + bit_offset: 11 + bit_size: 1 + - name: PU12 + description: Port C pull-up bit y (y=0..15) + bit_offset: 12 + bit_size: 1 + - name: PU13 + description: Port C pull-up bit y (y=0..15) + bit_offset: 13 + bit_size: 1 + - name: PU14 + description: Port C pull-up bit y (y=0..15) + bit_offset: 14 + bit_size: 1 + - name: PU15 + description: Port C pull-up bit y (y=0..15) + bit_offset: 15 + bit_size: 1 +fieldset/PUCRD: + description: Power Port D pull-up control register + fields: + - name: PU0 + description: Port D pull-up bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port D pull-up bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port D pull-up bit y (y=0..15) + bit_offset: 2 + bit_size: 1 + - name: PU3 + description: Port D pull-up bit y (y=0..15) + bit_offset: 3 + bit_size: 1 + - name: PU4 + description: Port D pull-up bit y (y=0..15) + bit_offset: 4 + bit_size: 1 + - name: PU5 + description: Port D pull-up bit y (y=0..15) + bit_offset: 5 + bit_size: 1 + - name: PU6 + description: Port D pull-up bit y (y=0..15) + bit_offset: 6 + bit_size: 1 + - name: PU8 + description: Port D pull-up bit y (y=0..15) + bit_offset: 8 + bit_size: 1 + - name: PU9 + description: Port D pull-up bit y (y=0..15) + bit_offset: 9 + bit_size: 1 +fieldset/PUCRF: + description: Power Port F pull-up control register + fields: + - name: PU0 + description: Port F pull-up bit y (y=0..15) + bit_offset: 0 + bit_size: 1 + - name: PU1 + description: Port F pull-up bit y (y=0..15) + bit_offset: 1 + bit_size: 1 + - name: PU2 + description: Port F pull-up bit y (y=0..15) + bit_offset: 2 + bit_size: 1 +fieldset/SCR: + description: Power status clear register + fields: + - name: CWUF1 + description: Clear wakeup flag 1 + bit_offset: 0 + bit_size: 1 + - name: CWUF2 + description: Clear wakeup flag 2 + bit_offset: 1 + bit_size: 1 + - name: CWUF4 + description: Clear wakeup flag 4 + bit_offset: 3 + bit_size: 1 + - name: CWUF5 + description: Clear wakeup flag 5 + bit_offset: 4 + bit_size: 1 + - name: CWUF6 + description: Clear wakeup flag 6 + bit_offset: 5 + bit_size: 1 + - name: CSBF + description: Clear standby flag + bit_offset: 8 + bit_size: 1 +fieldset/SR1: + description: Power status register 1 + fields: + - name: WUF1 + description: Wakeup flag 1 + bit_offset: 0 + bit_size: 1 + - name: WUF2 + description: Wakeup flag 2 + bit_offset: 1 + bit_size: 1 + - name: WUF4 + description: Wakeup flag 4 + bit_offset: 3 + bit_size: 1 + - name: WUF5 + description: Wakeup flag 5 + bit_offset: 4 + bit_size: 1 + - name: WUF6 + description: Wakeup flag 6 + bit_offset: 5 + bit_size: 1 + - name: SBF + description: Standby flag + bit_offset: 8 + bit_size: 1 + - name: WUFI + description: Wakeup flag internal + bit_offset: 15 + bit_size: 1 +fieldset/SR2: + description: Power status register 2 + fields: + - name: FLASH_RDY + description: Flash ready flag + bit_offset: 7 + bit_size: 1 + - name: REGLPS + description: Low-power regulator started + bit_offset: 8 + bit_size: 1 + - name: REGLPF + description: Low-power regulator flag + bit_offset: 9 + bit_size: 1 + - name: VOSF + description: Voltage scaling flag + bit_offset: 10 + bit_size: 1 + - name: PVDO + description: Power voltage detector output + bit_offset: 11 + bit_size: 1 diff --git a/parse.py b/parse.py index b886b70..22c6b90 100755 --- a/parse.py +++ b/parse.py @@ -384,6 +384,7 @@ perimap = [ ('.*:STM32L0_crs_v1_0', 'crs_l0/CRS'), ('.*SDMMC:sdmmc2_v1_0', 'sdmmc_v2/SDMMC'), + ('.*:STM32G0_pwr_v1_0', 'pwr_g0/PWR'), ('STM32H7(42|43|53|50).*:STM32H7_pwr_v1_0', 'pwr_h7/PWR'), ('.*:STM32H7_pwr_v1_0', 'pwr_h7smps/PWR'), ('.*:STM32F4_pwr_v1_0', 'pwr_f4/PWR'),