Source file: /~heha/hsn/bl/cmsis4.zip/stm32f401xc.h

/*******************************************************************************
  @file	stm32f401xc.h
  @author  MCD Application Team
  @version V2.6.0
  @date	04-November-2016
  @brief	CMSIS STM32F401xC Device Peripheral Access Layer Header File.
	This file contains:
	- Data structures and the address mapping for all peripherals
	- peripherals registers declarations and bits definition
	- Macros to access peripheral’s registers hardware
  *****************************************************************************/

#pragma once

#ifdef __cplusplus
 extern "C" {
#endif

// Configuration_section_for_CMSIS

// Configuration of the Cortex-M4 Processor and Core Peripherals
#define __CM4_REV		1U	//  Core revision r0p1
#define __MPU_PRESENT		1U	//  STM32F4XX provides an MPU
#define __NVIC_PRIO_BITS	4U	//  STM32F4XX uses 4 Bits for the Priority Levels
#define __Vendor_SysTickConfig	0U	//  Set to 1 if different SysTick Config is used
#define __FPU_PRESENT		1U	//  FPU present

// Peripheral_interrupt_number_definition

// STM32F4XX Interrupt Number Definition, according to the selected device
// Library_configuration_section
typedef enum {
//  Cortex-M4 Processor Exceptions Numbers
  NonMaskableInt_IRQn		= -14,	//  2 Non Maskable Interrupt
  MemoryManagement_IRQn		= -12,	//  4 Cortex-M4 Memory Management Interrupt
  BusFault_IRQn			= -11,	//  5 Cortex-M4 Bus Fault Interrupt
  UsageFault_IRQn		= -10,	//  6 Cortex-M4 Usage Fault Interrupt
  SVCall_IRQn			= -5,	//  11 Cortex-M4 SV Call Interrupt
  DebugMonitor_IRQn		= -4,	//  12 Cortex-M4 Debug Monitor Interrupt
  PendSV_IRQn			= -2,	//  14 Cortex-M4 Pend SV Interrupt
  SysTick_IRQn			= -1,	//  15 Cortex-M4 System Tick Interrupt
//  STM32 specific Interrupt Numbers
  WWDG_IRQn			= 0,	//  Window WatchDog Interrupt
  PVD_IRQn			= 1,	//  PVD through EXTI Line detection Interrupt
  TAMP_STAMP_IRQn		= 2,	//  Tamper and TimeStamp interrupts through the EXTI line
  RTC_WKUP_IRQn			= 3,	//  RTC Wakeup interrupt through the EXTI line
  FLASH_IRQn			= 4,	//  FLASH global Interrupt
  RCC_IRQn			= 5,	//  RCC global Interrupt
  EXTI0_IRQn			= 6,	//  EXTI Line0 Interrupt
  EXTI1_IRQn			= 7,	//  EXTI Line1 Interrupt
  EXTI2_IRQn			= 8,	//  EXTI Line2 Interrupt
  EXTI3_IRQn			= 9,	//  EXTI Line3 Interrupt
  EXTI4_IRQn			= 10,	//  EXTI Line4 Interrupt
  DMA1_Stream0_IRQn		= 11,	//  DMA1 Stream 0 global Interrupt
  DMA1_Stream1_IRQn		= 12,	//  DMA1 Stream 1 global Interrupt
  DMA1_Stream2_IRQn		= 13,	//  DMA1 Stream 2 global Interrupt
  DMA1_Stream3_IRQn		= 14,	//  DMA1 Stream 3 global Interrupt
  DMA1_Stream4_IRQn		= 15,	//  DMA1 Stream 4 global Interrupt
  DMA1_Stream5_IRQn		= 16,	//  DMA1 Stream 5 global Interrupt
  DMA1_Stream6_IRQn		= 17,	//  DMA1 Stream 6 global Interrupt
  ADC_IRQn			= 18,	//  ADC1, ADC2 and ADC3 global Interrupts
  EXTI9_5_IRQn			= 23,	//  External Line[9:5] Interrupts
  TIM1_BRK_TIM9_IRQn		= 24,	//  TIM1 Break interrupt and TIM9 global interrupt
  TIM1_UP_TIM10_IRQn		= 25,	//  TIM1 Update Interrupt and TIM10 global interrupt
  TIM1_TRG_COM_TIM11_IRQn	= 26,	//  TIM1 Trigger and Commutation Interrupt and TIM11 global interrupt
  TIM1_CC_IRQn			= 27,	//  TIM1 Capture Compare Interrupt
  TIM2_IRQn			= 28,	//  TIM2 global Interrupt
  TIM3_IRQn			= 29,	//  TIM3 global Interrupt
  TIM4_IRQn			= 30,	//  TIM4 global Interrupt
  I2C1_EV_IRQn			= 31,	//  I2C1 Event Interrupt
  I2C1_ER_IRQn			= 32,	//  I2C1 Error Interrupt
  I2C2_EV_IRQn			= 33,	//  I2C2 Event Interrupt
  I2C2_ER_IRQn			= 34,	//  I2C2 Error Interrupt
  SPI1_IRQn			= 35,	//  SPI1 global Interrupt
  SPI2_IRQn			= 36,	//  SPI2 global Interrupt
  USART1_IRQn			= 37,	//  USART1 global Interrupt
  USART2_IRQn			= 38,	//  USART2 global Interrupt
  EXTI15_10_IRQn		= 40,	//  External Line[15:10] Interrupts
  RTC_Alarm_IRQn		= 41,	//  RTC Alarm (A and B) through EXTI Line Interrupt
  OTG_FS_WKUP_IRQn		= 42,	//  USB OTG FS Wakeup through EXTI line interrupt
  DMA1_Stream7_IRQn		= 47,	//  DMA1 Stream7 Interrupt
  SDIO_IRQn			= 49,	//  SDIO global Interrupt
  TIM5_IRQn			= 50,	//  TIM5 global Interrupt
  SPI3_IRQn			= 51,	//  SPI3 global Interrupt
  DMA2_Stream0_IRQn		= 56,	//  DMA2 Stream 0 global Interrupt
  DMA2_Stream1_IRQn		= 57,	//  DMA2 Stream 1 global Interrupt
  DMA2_Stream2_IRQn		= 58,	//  DMA2 Stream 2 global Interrupt
  DMA2_Stream3_IRQn		= 59,	//  DMA2 Stream 3 global Interrupt
  DMA2_Stream4_IRQn		= 60,	//  DMA2 Stream 4 global Interrupt
  OTG_FS_IRQn			= 67,	//  USB OTG FS global Interrupt
  DMA2_Stream5_IRQn		= 68,	//  DMA2 Stream 5 global interrupt
  DMA2_Stream6_IRQn		= 69,	//  DMA2 Stream 6 global interrupt
  DMA2_Stream7_IRQn		= 70,	//  DMA2 Stream 7 global interrupt
  USART6_IRQn			= 71,	//  USART6 global interrupt
  I2C3_EV_IRQn			= 72,	//  I2C3 event interrupt
  I2C3_ER_IRQn			= 73,	//  I2C3 error interrupt
  FPU_IRQn			= 81,	//  FPU global interrupt
  SPI4_IRQn			= 84	//  SPI4 global Interrupt
} IRQn_Type;

#include "core_cm4.h"		// Cortex-M4 processor and core peripherals
#include "system_stm32f4xx.h"
#include <stdint.h>

// Peripheral_registers_structures

// Analog to Digital Converter
typedef struct {
  __IO uint32_t SR;	// @00 ADC status register
  __IO uint32_t CR1;	// @04 ADC control register 1
  __IO uint32_t CR2;	// @08 ADC control register 2
  __IO uint32_t SMPR1;	// @0C ADC sample time register 1
  __IO uint32_t SMPR2;	// @10 ADC sample time register 2
  __IO uint32_t JOFR1;	// @14 ADC injected channel data offset register 1
  __IO uint32_t JOFR2;	// @18 ADC injected channel data offset register 2
  __IO uint32_t JOFR3;	// @1C ADC injected channel data offset register 3
  __IO uint32_t JOFR4;	// @20 ADC injected channel data offset register 4
  __IO uint32_t HTR;	// @24 ADC watchdog higher threshold register
  __IO uint32_t LTR;	// @28 ADC watchdog lower threshold register
  __IO uint32_t SQR1;	// @2C ADC regular sequence register 1
  __IO uint32_t SQR2;	// @30 ADC regular sequence register 2
  __IO uint32_t SQR3;	// @34 ADC regular sequence register 3
  __IO uint32_t JSQR;	// @38 ADC injected sequence register
  __IO uint32_t JDR1;	// @3C ADC injected data register 1
  __IO uint32_t JDR2;	// @40 ADC injected data register 2
  __IO uint32_t JDR3;	// @44 ADC injected data register 3
  __IO uint32_t JDR4;	// @48 ADC injected data register 4
  __IO uint32_t DR;	// @4C ADC regular data register
} ADC_TypeDef;

typedef struct {	// Address offset: ADC1 base address + 0x300
  __IO uint32_t CSR;	// @00 ADC Common status register
  __IO uint32_t CCR;	// @04 ADC common control register
  __IO uint32_t CDR;	// @08 ADC common regular data register for dual AND triple modes
} ADC_Common_TypeDef;

// CRC calculation unit
typedef struct {
  __IO uint32_t DR;		// @00 CRC Data register
  __IO uint8_t  IDR;		// @04 CRC Independent data register
  uint8_t	RESERVED0;	// @05
  uint16_t	RESERVED1;	// @06
  __IO uint32_t CR;		// @08 CRC Control register
} CRC_TypeDef;

// Debug MCU

typedef struct {
  __IO uint32_t IDCODE;	// @00 MCU device ID code
  __IO uint32_t CR;	// @04 Debug MCU configuration register
  __IO uint32_t APB1FZ;	// @08 Debug MCU APB1 freeze register
  __IO uint32_t APB2FZ;	// @0C Debug MCU APB2 freeze register
}DBGMCU_TypeDef;


// DMA Controller

typedef struct {
  __IO uint32_t CR;	//  DMA stream x configuration register
  __IO uint32_t NDTR;	//  DMA stream x number of data register
  __IO uint32_t PAR;	//  DMA stream x peripheral address register
  __IO uint32_t M0AR;	//  DMA stream x memory 0 address register
  __IO uint32_t M1AR;	//  DMA stream x memory 1 address register
  __IO uint32_t FCR;	//  DMA stream x FIFO control register
} DMA_Stream_TypeDef;

typedef struct {
  __IO uint32_t LISR;	// @00 DMA low interrupt status register
  __IO uint32_t HISR;	// @04 DMA high interrupt status register
  __IO uint32_t LIFCR;	// @08 DMA low interrupt flag clear register
  __IO uint32_t HIFCR;	// @0C DMA high interrupt flag clear register
} DMA_TypeDef;

// External Interrupt/Event Controller
typedef struct {
  __IO uint32_t IMR;	// @00 EXTI Interrupt mask register
  __IO uint32_t EMR;	// @04 EXTI Event mask register
  __IO uint32_t RTSR;	// @08 EXTI Rising trigger selection register
  __IO uint32_t FTSR;	// @0C EXTI Falling trigger selection register
  __IO uint32_t SWIER;	// @10 EXTI Software interrupt event register
  __IO uint32_t PR;	// @14 EXTI Pending register
} EXTI_TypeDef;

// FLASH Registers
typedef struct {
  __IO uint32_t ACR;	// @00 FLASH access control register
  __IO uint32_t KEYR;	// @04 FLASH key register
  __IO uint32_t OPTKEYR;// @08 FLASH option key register
  __IO uint32_t SR;	// @0C FLASH status register
  __IO uint32_t CR;	// @10 FLASH control register
  __IO uint32_t OPTCR;	// @14 FLASH option control register
  __IO uint32_t OPTCR1;	// @18 FLASH option control register 1
} FLASH_TypeDef;

// General Purpose I/O
typedef struct {
  __IO uint32_t MODER;	// @00 GPIO port mode register
  __IO uint32_t OTYPER;	// @04 GPIO port output type register
  __IO uint32_t OSPEEDR;// @08 GPIO port output speed register
  __IO uint32_t PUPDR;	// @0C GPIO port pull-up/pull-down register
  __IO uint32_t IDR;	// @10 GPIO port input data register
  __IO uint32_t ODR;	// @14 GPIO port output data register
  __IO uint32_t BSRR;	// @18 GPIO port bit set/reset register
  __IO uint32_t LCKR;	// @1C GPIO port configuration lock register
  __IO uint32_t AFR[2];	// @20 GPIO alternate function registers
} GPIO_TypeDef;

// System configuration controller
typedef struct {
  __IO uint32_t MEMRMP;		// @00 SYSCFG memory remap register
  __IO uint32_t PMC;		// @04 SYSCFG peripheral mode configuration register
  __IO uint32_t EXTICR[4];	// @08 SYSCFG external interrupt configuration registers
  uint32_t RESERVED[2];		// @18
  __IO uint32_t CMPCR;		// @20 SYSCFG Compensation cell control register
} SYSCFG_TypeDef;

// Inter-integrated Circuit Interface
typedef struct {
  __IO uint32_t CR1;	// @00 I2C Control register 1
  __IO uint32_t CR2;	// @04 I2C Control register 2
  __IO uint32_t OAR1;	// @08 I2C Own address register 1
  __IO uint32_t OAR2;	// @0C I2C Own address register 2
  __IO uint32_t DR;	// @10 I2C Data register
  __IO uint32_t SR1;	// @14 I2C Status register 1
  __IO uint32_t SR2;	// @18 I2C Status register 2
  __IO uint32_t CCR;	// @1C I2C Clock control register
  __IO uint32_t TRISE;	// @20 I2C TRISE register
  __IO uint32_t FLTR;	// @24 I2C FLTR register
} I2C_TypeDef;

// Independent WATCHDOG
typedef struct {
  __IO uint32_t KR;	// @00 IWDG Key register
  __IO uint32_t PR;	// @04 IWDG Prescaler register
  __IO uint32_t RLR;	// @08 IWDG Reload register
  __IO uint32_t SR;	// @0C IWDG Status register
} IWDG_TypeDef;

// Power Control
typedef struct {
  __IO uint32_t CR;	// @00 PWR power control register
  __IO uint32_t CSR;	// @04 PWR power control/status register
} PWR_TypeDef;

// Reset and Clock Control

typedef struct {
  __IO uint32_t CR;		// @00 RCC clock control register
  __IO uint32_t PLLCFGR;	// @04 RCC PLL configuration register
  __IO uint32_t CFGR;		// @08 RCC clock configuration register
  __IO uint32_t CIR;		// @0C RCC clock interrupt register
  __IO uint32_t AHB1RSTR;	// @10 RCC AHB1 peripheral reset register
  __IO uint32_t AHB2RSTR;	// @14 RCC AHB2 peripheral reset register
  __IO uint32_t AHB3RSTR;	// @18 RCC AHB3 peripheral reset register
  uint32_t	RESERVED0;	// @1C
  __IO uint32_t APB1RSTR;	// @20 RCC APB1 peripheral reset register
  __IO uint32_t APB2RSTR;	// @24 RCC APB2 peripheral reset register
  uint32_t	RESERVED1[2];	// @28
  __IO uint32_t AHB1ENR;	// @30 RCC AHB1 peripheral clock register
  __IO uint32_t AHB2ENR;	// @34 RCC AHB2 peripheral clock register
  __IO uint32_t AHB3ENR;	// @38 RCC AHB3 peripheral clock register
  uint32_t	RESERVED2;	// @3C
  __IO uint32_t APB1ENR;	// @40 RCC APB1 peripheral clock enable register
  __IO uint32_t APB2ENR;	// @44 RCC APB2 peripheral clock enable register
  uint32_t	RESERVED3[2];	// @48
  __IO uint32_t AHB1LPENR;	// @50 RCC AHB1 peripheral clock enable in low power mode register
  __IO uint32_t AHB2LPENR;	// @54 RCC AHB2 peripheral clock enable in low power mode register
  __IO uint32_t AHB3LPENR;	// @58 RCC AHB3 peripheral clock enable in low power mode register
  uint32_t	RESERVED4;	// @5C
  __IO uint32_t APB1LPENR;	// @60 RCC APB1 peripheral clock enable in low power mode register
  __IO uint32_t APB2LPENR;	// @64 RCC APB2 peripheral clock enable in low power mode register
  uint32_t	RESERVED5[2];	// @68
  __IO uint32_t BDCR;		// @70 RCC Backup domain control register
  __IO uint32_t CSR;		// @74 RCC clock control & status register
  uint32_t	RESERVED6[2];	// @78
  __IO uint32_t SSCGR;		// @80 RCC spread spectrum clock generation register
  __IO uint32_t PLLI2SCFGR;	// @84 RCC PLLI2S configuration register
  uint32_t	RESERVED7[1];	// @88
  __IO uint32_t DCKCFGR;	// @8C RCC Dedicated Clocks configuration register
} RCC_TypeDef;

// Real-Time Clock
typedef struct {
  __IO uint32_t TR;	// @00 RTC time register
  __IO uint32_t DR;	// @04 RTC date register
  __IO uint32_t CR;	// @08 RTC control register
  __IO uint32_t ISR;	// @0C RTC initialization and status register
  __IO uint32_t PRER;	// @10 RTC prescaler register
  __IO uint32_t WUTR;	// @14 RTC wakeup timer register
  __IO uint32_t CALIBR;	// @18 RTC calibration register
  __IO uint32_t ALRMAR;	// @1C RTC alarm A register
  __IO uint32_t ALRMBR;	// @20 RTC alarm B register
  __IO uint32_t WPR;	// @24 RTC write protection register
  __IO uint32_t SSR;	// @28 RTC sub second register
  __IO uint32_t SHIFTR;	// @2C RTC shift control register
  __IO uint32_t TSTR;	// @30 RTC time stamp time register
  __IO uint32_t TSDR;	// @34 RTC time stamp date register
  __IO uint32_t TSSSR;	// @38 RTC time-stamp sub second register
  __IO uint32_t CALR;	// @3C RTC calibration register
  __IO uint32_t TAFCR;	// @40 RTC tamper and alternate function configuration register
  __IO uint32_t ALRMASSR;// @44 RTC alarm A sub second register
  __IO uint32_t ALRMBSSR;// @48 RTC alarm B sub second register
  uint32_t RESERVED7;	// @4C
  __IO uint32_t BKP0R;	// @50 RTC backup register 1
  __IO uint32_t BKP1R;	// @54 RTC backup register 1
  __IO uint32_t BKP2R;	// @58 RTC backup register 2
  __IO uint32_t BKP3R;	// @5C RTC backup register 3
  __IO uint32_t BKP4R;	// @60 RTC backup register 4
  __IO uint32_t BKP5R;	// @64 RTC backup register 5
  __IO uint32_t BKP6R;	// @68 RTC backup register 6
  __IO uint32_t BKP7R;	// @6C RTC backup register 7
  __IO uint32_t BKP8R;	// @70 RTC backup register 8
  __IO uint32_t BKP9R;	// @74 RTC backup register 9
  __IO uint32_t BKP10R;	// @78 RTC backup register 10
  __IO uint32_t BKP11R;	// @7C RTC backup register 11
  __IO uint32_t BKP12R;	// @80 RTC backup register 12
  __IO uint32_t BKP13R;	// @84 RTC backup register 13
  __IO uint32_t BKP14R;	// @88 RTC backup register 14
  __IO uint32_t BKP15R;	// @8C RTC backup register 15
  __IO uint32_t BKP16R;	// @90 RTC backup register 16
  __IO uint32_t BKP17R;	// @94 RTC backup register 17
  __IO uint32_t BKP18R;	// @98 RTC backup register 18
  __IO uint32_t BKP19R;	// @9C RTC backup register 19
} RTC_TypeDef;

// SD host Interface
typedef struct {
  __IO uint32_t POWER;		// @00 SDIO power control register
  __IO uint32_t CLKCR;		// @04 SDI clock control register
  __IO uint32_t ARG;		// @08 SDIO argument register
  __IO uint32_t CMD;		// @0C SDIO command register
  __IO const uint32_t  RESPCMD;	// @10 SDIO command response register
  __IO const uint32_t  RESP1;	// @14 SDIO response 1 register
  __IO const uint32_t  RESP2;	// @18 SDIO response 2 register
  __IO const uint32_t  RESP3;	// @1C SDIO response 3 register
  __IO const uint32_t  RESP4;	// @20 SDIO response 4 register
  __IO uint32_t DTIMER;		// @24 SDIO data timer register
  __IO uint32_t DLEN;		// @28 SDIO data length register
  __IO uint32_t DCTRL;		// @2C SDIO data control register
  __IO const uint32_t  DCOUNT;	// @30 SDIO data counter register
  __IO const uint32_t  STA;	// @34 SDIO status register
  __IO uint32_t ICR;		// @38 SDIO interrupt clear register
  __IO uint32_t MASK;		// @3C SDIO mask register
  uint32_t RESERVED0[2];	// @40
  __IO const uint32_t  FIFOCNT;	// @48 SDIO FIFO counter register
  uint32_t RESERVED1[13];	// @4C
  __IO uint32_t FIFO;		// @80 SDIO data FIFO register
} SDIO_TypeDef;

// Serial Peripheral Interface
typedef struct {
  __IO uint32_t CR1;	// @00 SPI control register 1 (not used in I2S mode)
  __IO uint32_t CR2;	// @04 SPI control register 2
  __IO uint32_t SR;	// @08 SPI status register
  __IO uint32_t DR;	// @0C SPI data register
  __IO uint32_t CRCPR;	// @10 SPI CRC polynomial register (not used in I2S mode)
  __IO uint32_t RXCRCR;	// @14 SPI RX CRC register (not used in I2S mode)
  __IO uint32_t TXCRCR;	// @18 SPI TX CRC register (not used in I2S mode)
  __IO uint32_t I2SCFGR;// @1C SPI_I2S configuration register
  __IO uint32_t I2SPR;	// @20 SPI_I2S prescaler register
} SPI_TypeDef;

// TIM
typedef struct {
  __IO uint32_t CR1;	// @00 TIM control register 1
  __IO uint32_t CR2;	// @04 TIM control register 2
  __IO uint32_t SMCR;	// @08 TIM slave mode control register
  __IO uint32_t DIER;	// @0C TIM DMA/interrupt enable register
  __IO uint32_t SR;	// @10 TIM status register
  __IO uint32_t EGR;	// @14 TIM event generation register
  __IO uint32_t CCMR1;	// @18 TIM capture/compare mode register 1
  __IO uint32_t CCMR2;	// @1C TIM capture/compare mode register 2
  __IO uint32_t CCER;	// @20 TIM capture/compare enable register
  __IO uint32_t CNT;	// @24 TIM counter register
  __IO uint32_t PSC;	// @28 TIM prescaler
  __IO uint32_t ARR;	// @2C TIM auto-reload register
  __IO uint32_t RCR;	// @30 TIM repetition counter register
  __IO uint32_t CCR1;	// @34 TIM capture/compare register 1
  __IO uint32_t CCR2;	// @38 TIM capture/compare register 2
  __IO uint32_t CCR3;	// @3C TIM capture/compare register 3
  __IO uint32_t CCR4;	// @40 TIM capture/compare register 4
  __IO uint32_t BDTR;	// @44 TIM break and dead-time register
  __IO uint32_t DCR;	// @48 TIM DMA control register
  __IO uint32_t DMAR;	// @4C TIM DMA address for full transfer
  __IO uint32_t OR;	// @50 TIM option register
} TIM_TypeDef;

// Universal Synchronous Asynchronous Receiver Transmitter
typedef struct {
  __IO uint32_t SR;	// @00 USART Status register
  __IO uint32_t DR;	// @04 USART Data register
  __IO uint32_t BRR;	// @08 USART Baud rate register
  __IO uint32_t CR1;	// @0C USART Control register 1
  __IO uint32_t CR2;	// @10 USART Control register 2
  __IO uint32_t CR3;	// @14 USART Control register 3
  __IO uint32_t GTPR;	// @18 USART Guard time and prescaler register
} USART_TypeDef;

// Window WATCHDOG
typedef struct {
  __IO uint32_t CR;	// @00 WWDG Control register
  __IO uint32_t CFR;	// @04 WWDG Configuration register
  __IO uint32_t SR;	// @08 WWDG Status register
} WWDG_TypeDef;

// USB_OTG_Core_Registers
typedef struct {
  __IO uint32_t GOTGCTL;	// @00 USB_OTG Control and Status Register
  __IO uint32_t GOTGINT;	// @04 USB_OTG Interrupt Register
  __IO uint32_t GAHBCFG;	// @08 Core AHB Configuration Register
  __IO uint32_t GUSBCFG;	// @0C Core USB Configuration Register
  __IO uint32_t GRSTCTL;	// @10 Core Reset Register
  __IO uint32_t GINTSTS;	// @14 Core Interrupt Register
  __IO uint32_t GINTMSK;	// @18 Core Interrupt Mask Register
  __IO uint32_t GRXSTSR;	// @1C Receive Sts Q Read Register
  __IO uint32_t GRXSTSP;	// @20 Receive Sts Q Read & POP Register
  __IO uint32_t GRXFSIZ;	// @24 Receive FIFO Size Register
  __IO uint32_t DIEPTXF0_HNPTXFSIZ;// @28 EP0 / Non Periodic Tx FIFO Size Register
  __IO uint32_t HNPTXSTS;	// @2C Non Periodic Tx FIFO/Queue Sts reg
  uint32_t Reserved30[2];	// @30
  __IO uint32_t GCCFG;		// @38 General Purpose IO Register
  __IO uint32_t CID;		// @3C User ID Register
  uint32_t  Reserved40[48];	// @40
  __IO uint32_t HPTXFSIZ;	// @100 Host Periodic Tx FIFO Size Reg
  __IO uint32_t DIEPTXF[0x0F];	// @104 dev Periodic Transmit FIFO
} USB_OTG_GlobalTypeDef;

// USB_OTG_device_Registers
typedef struct {		// address offset 0x800
  __IO uint32_t DCFG;		// @00 dev Configuration Register
  __IO uint32_t DCTL;		// @04 dev Control Register
  __IO uint32_t DSTS;		// @08 dev Status Register (RO)
  uint32_t Reserved0C;		// @0C
  __IO uint32_t DIEPMSK;	// @10 dev IN Endpoint Mask
  __IO uint32_t DOEPMSK;	// @14 dev OUT Endpoint Mask
  __IO uint32_t DAINT;		// @18 dev All Endpoints Itr Reg
  __IO uint32_t DAINTMSK;	// @1C dev All Endpoints Itr Mask
  uint32_t Reserved20;		// @20
  uint32_t Reserved9;		// @24
  __IO uint32_t DVBUSDIS;	// @28dev VBUS discharge Register
  __IO uint32_t DVBUSPULSE;	// @2C dev VBUS Pulse Register
  __IO uint32_t DTHRCTL;	// @30 dev threshold
  __IO uint32_t DIEPEMPMSK;	// @34 dev empty msk
  __IO uint32_t DEACHINT;	// @38 dedicated EP interrupt
  __IO uint32_t DEACHMSK;	// @3C dedicated EP msk
  uint32_t Reserved40;		// @40 dedicated EP mask
  __IO uint32_t DINEP1MSK;	// @44 dedicated EP mask
  uint32_t Reserved44[15];	// @48
  __IO uint32_t DOUTEP1MSK;	// @84 dedicated EP msk
} USB_OTG_DeviceTypeDef;

// USB_OTG_IN_Endpoint-Specific_Register
typedef struct {
  __IO uint32_t DIEPCTL;	// dev IN Endpoint Control Reg	900h + (ep_num * 20h) + 00h
  uint32_t Reserved04;		// 			900h + (ep_num * 20h) + 04h
  __IO uint32_t DIEPINT;	// dev IN Endpoint Itr Reg		900h + (ep_num * 20h) + 08h
  uint32_t Reserved0C;		// Reserved			900h + (ep_num * 20h) + 0Ch
  __IO uint32_t DIEPTSIZ;	// IN Endpoint Txfer Size		900h + (ep_num * 20h) + 10h
  __IO uint32_t DIEPDMA;	// IN Endpoint DMA Address Reg	900h + (ep_num * 20h) + 14h
  __IO uint32_t DTXFSTS;	// IN Endpoint Tx FIFO Status Reg 900h + (ep_num * 20h) + 18h
  uint32_t Reserved18;		// Reserved  900h+(ep_num*20h)+1Ch-900h+ (ep_num * 20h) + 1Ch
} USB_OTG_INEndpointTypeDef;

// USB_OTG_OUT_Endpoint-Specific_Registers
typedef struct {
  __IO uint32_t DOEPCTL;	//  dev OUT Endpoint Control Reg		B00h + (ep_num * 20h) + 00h
  uint32_t Reserved04;		// Reserved			B00h + (ep_num * 20h) + 04h
  __IO uint32_t DOEPINT;	//  dev OUT Endpoint Itr Reg		B00h + (ep_num * 20h) + 08h
  uint32_t Reserved0C;		// Reserved			B00h + (ep_num * 20h) + 0Ch
  __IO uint32_t DOEPTSIZ;	//  dev OUT Endpoint Txfer Size		B00h + (ep_num * 20h) + 10h
  __IO uint32_t DOEPDMA;	//  dev OUT Endpoint DMA Address		B00h + (ep_num * 20h) + 14h
  uint32_t Reserved18[2];	//  Reserved B00h + (ep_num * 20h) + 18h - B00h + (ep_num * 20h) + 1Ch
} USB_OTG_OUTEndpointTypeDef;

// USB_OTG_Host_Mode_Register_Structures
typedef struct {
  __IO uint32_t HCFG;		// Host Configuration Register		400h
  __IO uint32_t HFIR;		// Host Frame Interval Register		404h
  __IO uint32_t HFNUM;		// Host Frame Nbr/Frame Remaining	408h
  uint32_t Reserved40C;		// Reserved			40Ch
  __IO uint32_t HPTXSTS;	// Host Periodic Tx FIFO/ Queue Status  410h
  __IO uint32_t HAINT;		// Host All Channels Interrupt Register 414h
  __IO uint32_t HAINTMSK;	// Host All Channels Interrupt Mask	418h
} USB_OTG_HostTypeDef;

// USB_OTG_Host_Channel_Specific_Registers
typedef struct {
  __IO uint32_t HCCHAR;		// Host Channel Characteristics Register	500h
  __IO uint32_t HCSPLT;		// Host Channel Split Control Register	504h
  __IO uint32_t HCINT;		// Host Channel Interrupt Register		508h
  __IO uint32_t HCINTMSK;	// Host Channel Interrupt Mask Register	50Ch
  __IO uint32_t HCTSIZ;		// Host Channel Transfer Size Register	510h
  __IO uint32_t HCDMA;		// Host Channel DMA Address Register		514h
  uint32_t Reserved[2];		// Reserved
} USB_OTG_HostChannelTypeDef;

// Peripheral_memory_map
#define FLASH_BASE		0x08000000U	//  FLASH(up to 1 MB) base address in the alias region
#define SRAM1_BASE		0x20000000U	//  SRAM1(64 KB) base address in the alias region
#define PERIPH_BASE		0x40000000U	//  Peripheral base address in the alias region
#define BKPSRAM_BASE		0x40024000U	//  Backup SRAM(4 KB) base address in the alias region
#define SRAM1_BB_BASE		0x22000000U	//  SRAM1(64 KB) base address in the bit-band region
#define PERIPH_BB_BASE		0x42000000U	//  Peripheral base address in the bit-band region
#define BKPSRAM_BB_BASE		0x42480000U	//  Backup SRAM(4 KB) base address in the bit-band region
#define FLASH_END		0x0803FFFFU	//  FLASH end address

// Legacy defines
#define SRAM_BASE		SRAM1_BASE
#define SRAM_BB_BASE		SRAM1_BB_BASE

// Peripheral memory map
#define APB1PERIPH_BASE	PERIPH_BASE
#define APB2PERIPH_BASE	(PERIPH_BASE + 0x00010000U)
#define AHB1PERIPH_BASE	(PERIPH_BASE + 0x00020000U)
#define AHB2PERIPH_BASE	(PERIPH_BASE + 0x10000000U)

// APB1 peripherals
#define TIM2_BASE		(APB1PERIPH_BASE + 0x0000U)
#define TIM3_BASE		(APB1PERIPH_BASE + 0x0400U)
#define TIM4_BASE		(APB1PERIPH_BASE + 0x0800U)
#define TIM5_BASE		(APB1PERIPH_BASE + 0x0C00U)
#define RTC_BASE		(APB1PERIPH_BASE + 0x2800U)
#define WWDG_BASE		(APB1PERIPH_BASE + 0x2C00U)
#define IWDG_BASE		(APB1PERIPH_BASE + 0x3000U)
#define I2S2ext_BASE		(APB1PERIPH_BASE + 0x3400U)
#define SPI2_BASE		(APB1PERIPH_BASE + 0x3800U)
#define SPI3_BASE		(APB1PERIPH_BASE + 0x3C00U)
#define I2S3ext_BASE		(APB1PERIPH_BASE + 0x4000U)
#define USART2_BASE		(APB1PERIPH_BASE + 0x4400U)
#define I2C1_BASE		(APB1PERIPH_BASE + 0x5400U)
#define I2C2_BASE		(APB1PERIPH_BASE + 0x5800U)
#define I2C3_BASE		(APB1PERIPH_BASE + 0x5C00U)
#define PWR_BASE		(APB1PERIPH_BASE + 0x7000U)

// APB2 peripherals
#define TIM1_BASE		(APB2PERIPH_BASE + 0x0000U)
#define USART1_BASE		(APB2PERIPH_BASE + 0x1000U)
#define USART6_BASE		(APB2PERIPH_BASE + 0x1400U)
#define ADC1_BASE		(APB2PERIPH_BASE + 0x2000U)
#define ADC_BASE		(APB2PERIPH_BASE + 0x2300U)
#define SDIO_BASE		(APB2PERIPH_BASE + 0x2C00U)
#define SPI1_BASE		(APB2PERIPH_BASE + 0x3000U)
#define SPI4_BASE		(APB2PERIPH_BASE + 0x3400U)
#define SYSCFG_BASE		(APB2PERIPH_BASE + 0x3800U)
#define EXTI_BASE		(APB2PERIPH_BASE + 0x3C00U)
#define TIM9_BASE		(APB2PERIPH_BASE + 0x4000U)
#define TIM10_BASE		(APB2PERIPH_BASE + 0x4400U)
#define TIM11_BASE		(APB2PERIPH_BASE + 0x4800U)

// AHB1 peripherals
#define GPIOA_BASE		(AHB1PERIPH_BASE + 0x0000U)
#define GPIOB_BASE		(AHB1PERIPH_BASE + 0x0400U)
#define GPIOC_BASE		(AHB1PERIPH_BASE + 0x0800U)
#define GPIOD_BASE		(AHB1PERIPH_BASE + 0x0C00U)
#define GPIOE_BASE		(AHB1PERIPH_BASE + 0x1000U)
#define GPIOH_BASE		(AHB1PERIPH_BASE + 0x1C00U)
#define CRC_BASE		(AHB1PERIPH_BASE + 0x3000U)
#define RCC_BASE		(AHB1PERIPH_BASE + 0x3800U)
#define FLASH_R_BASE		(AHB1PERIPH_BASE + 0x3C00U)
#define DMA1_BASE		(AHB1PERIPH_BASE + 0x6000U)
#define DMA1_Stream0_BASE	(DMA1_BASE + 0x010U)
#define DMA1_Stream1_BASE	(DMA1_BASE + 0x028U)
#define DMA1_Stream2_BASE	(DMA1_BASE + 0x040U)
#define DMA1_Stream3_BASE	(DMA1_BASE + 0x058U)
#define DMA1_Stream4_BASE	(DMA1_BASE + 0x070U)
#define DMA1_Stream5_BASE	(DMA1_BASE + 0x088U)
#define DMA1_Stream6_BASE	(DMA1_BASE + 0x0A0U)
#define DMA1_Stream7_BASE	(DMA1_BASE + 0x0B8U)
#define DMA2_BASE		(AHB1PERIPH_BASE + 0x6400U)
#define DMA2_Stream0_BASE	(DMA2_BASE + 0x010U)
#define DMA2_Stream1_BASE	(DMA2_BASE + 0x028U)
#define DMA2_Stream2_BASE	(DMA2_BASE + 0x040U)
#define DMA2_Stream3_BASE	(DMA2_BASE + 0x058U)
#define DMA2_Stream4_BASE	(DMA2_BASE + 0x070U)
#define DMA2_Stream5_BASE	(DMA2_BASE + 0x088U)
#define DMA2_Stream6_BASE	(DMA2_BASE + 0x0A0U)
#define DMA2_Stream7_BASE	(DMA2_BASE + 0x0B8U)


// Debug MCU registers base address
#define DBGMCU_BASE		0xE0042000U

// USB registers base address
#define USB_OTG_FS_PERIPH_BASE		0x50000000U

#define USB_OTG_GLOBAL_BASE		0x000U
#define USB_OTG_DEVICE_BASE		0x800U
#define USB_OTG_IN_ENDPOINT_BASE	0x900U
#define USB_OTG_OUT_ENDPOINT_BASE	0xB00U
#define USB_OTG_EP_REG_SIZE		0x20U
#define USB_OTG_HOST_BASE		0x400U
#define USB_OTG_HOST_PORT_BASE		0x440U
#define USB_OTG_HOST_CHANNEL_BASE	0x500U
#define USB_OTG_HOST_CHANNEL_SIZE	0x20U
#define USB_OTG_PCGCCTL_BASE		0xE00U
#define USB_OTG_FIFO_BASE		0x1000U
#define USB_OTG_FIFO_SIZE		0x1000U

#define UID_BASE			0x1FFF7A10U			// Unique device ID register base address
#define FLASHSIZE_BASE			0x1FFF7A22U			// FLASH Size register base address
#define PACKAGE_BASE			0x1FFF7BF0U			// Package size register base address

// Peripheral_declaration

#define TIM2		((TIM_TypeDef *) TIM2_BASE)
#define TIM3		((TIM_TypeDef *) TIM3_BASE)
#define TIM4		((TIM_TypeDef *) TIM4_BASE)
#define TIM5		((TIM_TypeDef *) TIM5_BASE)
#define RTC		((RTC_TypeDef *) RTC_BASE)
#define WWDG		((WWDG_TypeDef *) WWDG_BASE)
#define IWDG		((IWDG_TypeDef *) IWDG_BASE)
#define I2S2ext		((SPI_TypeDef *) I2S2ext_BASE)
#define SPI2		((SPI_TypeDef *) SPI2_BASE)
#define SPI3		((SPI_TypeDef *) SPI3_BASE)
#define I2S3ext		((SPI_TypeDef *) I2S3ext_BASE)
#define USART2		((USART_TypeDef *) USART2_BASE)
#define I2C1		((I2C_TypeDef *) I2C1_BASE)
#define I2C2		((I2C_TypeDef *) I2C2_BASE)
#define I2C3		((I2C_TypeDef *) I2C3_BASE)
#define PWR		((PWR_TypeDef *) PWR_BASE)
#define TIM1		((TIM_TypeDef *) TIM1_BASE)
#define USART1		((USART_TypeDef *) USART1_BASE)
#define USART6		((USART_TypeDef *) USART6_BASE)
#define ADC		((ADC_Common_TypeDef *) ADC_BASE)
#define ADC1		((ADC_TypeDef *) ADC1_BASE)
#define SDIO		((SDIO_TypeDef *) SDIO_BASE)
#define SPI1		((SPI_TypeDef *) SPI1_BASE)
#define SPI4		((SPI_TypeDef *) SPI4_BASE)
#define SYSCFG		((SYSCFG_TypeDef *) SYSCFG_BASE)
#define EXTI		((EXTI_TypeDef *) EXTI_BASE)
#define TIM9		((TIM_TypeDef *) TIM9_BASE)
#define TIM10		((TIM_TypeDef *) TIM10_BASE)
#define TIM11		((TIM_TypeDef *) TIM11_BASE)
#define GPIOA		((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB		((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC		((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD		((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE		((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOH		((GPIO_TypeDef *) GPIOH_BASE)
#define CRC		((CRC_TypeDef *) CRC_BASE)
#define RCC		((RCC_TypeDef *) RCC_BASE)
#define FLASH		((FLASH_TypeDef *) FLASH_R_BASE)
#define DMA1		((DMA_TypeDef *) DMA1_BASE)
#define DMA1_Stream0	((DMA_Stream_TypeDef *) DMA1_Stream0_BASE)
#define DMA1_Stream1	((DMA_Stream_TypeDef *) DMA1_Stream1_BASE)
#define DMA1_Stream2	((DMA_Stream_TypeDef *) DMA1_Stream2_BASE)
#define DMA1_Stream3	((DMA_Stream_TypeDef *) DMA1_Stream3_BASE)
#define DMA1_Stream4	((DMA_Stream_TypeDef *) DMA1_Stream4_BASE)
#define DMA1_Stream5	((DMA_Stream_TypeDef *) DMA1_Stream5_BASE)
#define DMA1_Stream6	((DMA_Stream_TypeDef *) DMA1_Stream6_BASE)
#define DMA1_Stream7	((DMA_Stream_TypeDef *) DMA1_Stream7_BASE)
#define DMA2		((DMA_TypeDef *) DMA2_BASE)
#define DMA2_Stream0	((DMA_Stream_TypeDef *) DMA2_Stream0_BASE)
#define DMA2_Stream1	((DMA_Stream_TypeDef *) DMA2_Stream1_BASE)
#define DMA2_Stream2	((DMA_Stream_TypeDef *) DMA2_Stream2_BASE)
#define DMA2_Stream3	((DMA_Stream_TypeDef *) DMA2_Stream3_BASE)
#define DMA2_Stream4	((DMA_Stream_TypeDef *) DMA2_Stream4_BASE)
#define DMA2_Stream5	((DMA_Stream_TypeDef *) DMA2_Stream5_BASE)
#define DMA2_Stream6	((DMA_Stream_TypeDef *) DMA2_Stream6_BASE)
#define DMA2_Stream7	((DMA_Stream_TypeDef *) DMA2_Stream7_BASE)
#define DBGMCU		((DBGMCU_TypeDef *) DBGMCU_BASE)
#define USB_OTG_FS	((USB_OTG_GlobalTypeDef *) USB_OTG_FS_PERIPH_BASE)

// Exported_constants

// Peripheral_Registers_Bits_Definition

// Analog to Digital Converter
//  Bit definition for ADC_SR register
#define ADC_SR_AWD_Pos		0
#define ADC_SR_AWD_Msk		(0x1U << ADC_SR_AWD_Pos)			// 0x00000001
#define ADC_SR_AWD		ADC_SR_AWD_Msk			// Analog watchdog flag
#define ADC_SR_EOC_Pos		(1U)
#define ADC_SR_EOC_Msk		(0x1U << ADC_SR_EOC_Pos)			// 0x00000002
#define ADC_SR_EOC		ADC_SR_EOC_Msk			// End of conversion
#define ADC_SR_JEOC_Pos		(2U)
#define ADC_SR_JEOC_Msk		(0x1U << ADC_SR_JEOC_Pos)			// 0x00000004
#define ADC_SR_JEOC		ADC_SR_JEOC_Msk			// Injected channel end of conversion
#define ADC_SR_JSTRT_Pos	(3U)
#define ADC_SR_JSTRT_Msk	(0x1U << ADC_SR_JSTRT_Pos)			// 0x00000008
#define ADC_SR_JSTRT		ADC_SR_JSTRT_Msk			// Injected channel Start flag
#define ADC_SR_STRT_Pos		(4U)
#define ADC_SR_STRT_Msk		(0x1U << ADC_SR_STRT_Pos)			// 0x00000010
#define ADC_SR_STRT		ADC_SR_STRT_Msk			// Regular channel Start flag
#define ADC_SR_OVR_Pos		(5U)
#define ADC_SR_OVR_Msk		(0x1U << ADC_SR_OVR_Pos)			// 0x00000020
#define ADC_SR_OVR		ADC_SR_OVR_Msk			// Overrun flag

//  Bit definition for ADC_CR1 register
#define ADC_CR1_AWDCH_Pos	0
#define ADC_CR1_AWDCH_Msk	(0x1FU << ADC_CR1_AWDCH_Pos)			// 0x0000001F
#define ADC_CR1_AWDCH		ADC_CR1_AWDCH_Msk			// AWDCH[4:0] bits (Analog watchdog channel select bits)
#define ADC_CR1_AWDCH_0		(0x01U << ADC_CR1_AWDCH_Pos)			// 0x00000001
#define ADC_CR1_AWDCH_1		(0x02U << ADC_CR1_AWDCH_Pos)			// 0x00000002
#define ADC_CR1_AWDCH_2		(0x04U << ADC_CR1_AWDCH_Pos)			// 0x00000004
#define ADC_CR1_AWDCH_3		(0x08U << ADC_CR1_AWDCH_Pos)			// 0x00000008
#define ADC_CR1_AWDCH_4		(0x10U << ADC_CR1_AWDCH_Pos)			// 0x00000010
#define ADC_CR1_EOCIE_Pos	(5U)
#define ADC_CR1_EOCIE_Msk	(0x1U << ADC_CR1_EOCIE_Pos)			// 0x00000020
#define ADC_CR1_EOCIE		ADC_CR1_EOCIE_Msk			// Interrupt enable for EOC
#define ADC_CR1_AWDIE_Pos	(6U)
#define ADC_CR1_AWDIE_Msk	(0x1U << ADC_CR1_AWDIE_Pos)			// 0x00000040
#define ADC_CR1_AWDIE		ADC_CR1_AWDIE_Msk			// AAnalog Watchdog interrupt enable
#define ADC_CR1_JEOCIE_Pos	(7U)
#define ADC_CR1_JEOCIE_Msk	(0x1U << ADC_CR1_JEOCIE_Pos)			// 0x00000080
#define ADC_CR1_JEOCIE		ADC_CR1_JEOCIE_Msk			// Interrupt enable for injected channels
#define ADC_CR1_SCAN_Pos	(8U)
#define ADC_CR1_SCAN_Msk	(0x1U << ADC_CR1_SCAN_Pos)			// 0x00000100
#define ADC_CR1_SCAN		ADC_CR1_SCAN_Msk			// Scan mode
#define ADC_CR1_AWDSGL_Pos	(9U)
#define ADC_CR1_AWDSGL_Msk	(0x1U << ADC_CR1_AWDSGL_Pos)			// 0x00000200
#define ADC_CR1_AWDSGL		ADC_CR1_AWDSGL_Msk			// Enable the watchdog on a single channel in scan mode
#define ADC_CR1_JAUTO_Pos	(10U)
#define ADC_CR1_JAUTO_Msk	(0x1U << ADC_CR1_JAUTO_Pos)			// 0x00000400
#define ADC_CR1_JAUTO		ADC_CR1_JAUTO_Msk			// Automatic injected group conversion
#define ADC_CR1_DISCEN_Pos	(11U)
#define ADC_CR1_DISCEN_Msk	(0x1U << ADC_CR1_DISCEN_Pos)			// 0x00000800
#define ADC_CR1_DISCEN		ADC_CR1_DISCEN_Msk			// Discontinuous mode on regular channels
#define ADC_CR1_JDISCEN_Pos	(12U)
#define ADC_CR1_JDISCEN_Msk	(0x1U << ADC_CR1_JDISCEN_Pos)			// 0x00001000
#define ADC_CR1_JDISCEN		ADC_CR1_JDISCEN_Msk			// Discontinuous mode on injected channels
#define ADC_CR1_DISCNUM_Pos	(13U)
#define ADC_CR1_DISCNUM_Msk	(0x7U << ADC_CR1_DISCNUM_Pos)			// 0x0000E000
#define ADC_CR1_DISCNUM		ADC_CR1_DISCNUM_Msk			// DISCNUM[2:0] bits (Discontinuous mode channel count)
#define ADC_CR1_DISCNUM_0	(0x1U << ADC_CR1_DISCNUM_Pos)			// 0x00002000
#define ADC_CR1_DISCNUM_1	(0x2U << ADC_CR1_DISCNUM_Pos)			// 0x00004000
#define ADC_CR1_DISCNUM_2	(0x4U << ADC_CR1_DISCNUM_Pos)			// 0x00008000
#define ADC_CR1_JAWDEN_Pos	(22U)
#define ADC_CR1_JAWDEN_Msk	(0x1U << ADC_CR1_JAWDEN_Pos)			// 0x00400000
#define ADC_CR1_JAWDEN		ADC_CR1_JAWDEN_Msk			// Analog watchdog enable on injected channels
#define ADC_CR1_AWDEN_Pos	(23U)
#define ADC_CR1_AWDEN_Msk	(0x1U << ADC_CR1_AWDEN_Pos)			// 0x00800000
#define ADC_CR1_AWDEN		ADC_CR1_AWDEN_Msk			// Analog watchdog enable on regular channels
#define ADC_CR1_RES_Pos		(24U)
#define ADC_CR1_RES_Msk		(0x3U << ADC_CR1_RES_Pos)			// 0x03000000
#define ADC_CR1_RES		ADC_CR1_RES_Msk			// RES[2:0] bits (Resolution)
#define ADC_CR1_RES_0		(0x1U << ADC_CR1_RES_Pos)			// 0x01000000
#define ADC_CR1_RES_1		(0x2U << ADC_CR1_RES_Pos)			// 0x02000000
#define ADC_CR1_OVRIE_Pos	(26U)
#define ADC_CR1_OVRIE_Msk	(0x1U << ADC_CR1_OVRIE_Pos)			// 0x04000000
#define ADC_CR1_OVRIE		ADC_CR1_OVRIE_Msk			// overrun interrupt enable

//  Bit definition for ADC_CR2 register
#define ADC_CR2_ADON_Pos	(0U)
#define ADC_CR2_ADON_Msk	(0x1U << ADC_CR2_ADON_Pos)			// 0x00000001
#define ADC_CR2_ADON		ADC_CR2_ADON_Msk			// A/D Converter ON / OFF
#define ADC_CR2_CONT_Pos	(1U)
#define ADC_CR2_CONT_Msk	(0x1U << ADC_CR2_CONT_Pos)			// 0x00000002
#define ADC_CR2_CONT		ADC_CR2_CONT_Msk			// Continuous Conversion
#define ADC_CR2_DMA_Pos		(8U)
#define ADC_CR2_DMA_Msk		(0x1U << ADC_CR2_DMA_Pos)			// 0x00000100
#define ADC_CR2_DMA		ADC_CR2_DMA_Msk			// Direct Memory access mode
#define ADC_CR2_DDS_Pos		(9U)
#define ADC_CR2_DDS_Msk		(0x1U << ADC_CR2_DDS_Pos)			// 0x00000200
#define ADC_CR2_DDS		ADC_CR2_DDS_Msk			// DMA disable selection (Single ADC)
#define ADC_CR2_EOCS_Pos	(10U)
#define ADC_CR2_EOCS_Msk	(0x1U << ADC_CR2_EOCS_Pos)			// 0x00000400
#define ADC_CR2_EOCS		ADC_CR2_EOCS_Msk			// End of conversion selection
#define ADC_CR2_ALIGN_Pos	(11U)
#define ADC_CR2_ALIGN_Msk	(0x1U << ADC_CR2_ALIGN_Pos)			// 0x00000800
#define ADC_CR2_ALIGN		ADC_CR2_ALIGN_Msk			// Data Alignment
#define ADC_CR2_JEXTSEL_Pos	(16U)
#define ADC_CR2_JEXTSEL_Msk	(0xFU << ADC_CR2_JEXTSEL_Pos)			// 0x000F0000
#define ADC_CR2_JEXTSEL		ADC_CR2_JEXTSEL_Msk			// JEXTSEL[3:0] bits (External event select for injected group)
#define ADC_CR2_JEXTSEL_0	(0x1U << ADC_CR2_JEXTSEL_Pos)			// 0x00010000
#define ADC_CR2_JEXTSEL_1	(0x2U << ADC_CR2_JEXTSEL_Pos)			// 0x00020000
#define ADC_CR2_JEXTSEL_2	(0x4U << ADC_CR2_JEXTSEL_Pos)			// 0x00040000
#define ADC_CR2_JEXTSEL_3	(0x8U << ADC_CR2_JEXTSEL_Pos)			// 0x00080000
#define ADC_CR2_JEXTEN_Pos	(20U)
#define ADC_CR2_JEXTEN_Msk	(0x3U << ADC_CR2_JEXTEN_Pos)			// 0x00300000
#define ADC_CR2_JEXTEN		ADC_CR2_JEXTEN_Msk			// JEXTEN[1:0] bits (External Trigger Conversion mode for injected channelsp)
#define ADC_CR2_JEXTEN_0	(0x1U << ADC_CR2_JEXTEN_Pos)			// 0x00100000
#define ADC_CR2_JEXTEN_1	(0x2U << ADC_CR2_JEXTEN_Pos)			// 0x00200000
#define ADC_CR2_JSWSTART_Pos	(22U)
#define ADC_CR2_JSWSTART_Msk	(0x1U << ADC_CR2_JSWSTART_Pos)			// 0x00400000
#define ADC_CR2_JSWSTART	ADC_CR2_JSWSTART_Msk			// Start Conversion of injected channels
#define ADC_CR2_EXTSEL_Pos	(24U)
#define ADC_CR2_EXTSEL_Msk	(0xFU << ADC_CR2_EXTSEL_Pos)			// 0x0F000000
#define ADC_CR2_EXTSEL		ADC_CR2_EXTSEL_Msk			// EXTSEL[3:0] bits (External Event Select for regular group)
#define ADC_CR2_EXTSEL_0	(0x1U << ADC_CR2_EXTSEL_Pos)			// 0x01000000
#define ADC_CR2_EXTSEL_1	(0x2U << ADC_CR2_EXTSEL_Pos)			// 0x02000000
#define ADC_CR2_EXTSEL_2	(0x4U << ADC_CR2_EXTSEL_Pos)			// 0x04000000
#define ADC_CR2_EXTSEL_3	(0x8U << ADC_CR2_EXTSEL_Pos)			// 0x08000000
#define ADC_CR2_EXTEN_Pos	(28U)
#define ADC_CR2_EXTEN_Msk	(0x3U << ADC_CR2_EXTEN_Pos)			// 0x30000000
#define ADC_CR2_EXTEN		ADC_CR2_EXTEN_Msk			// EXTEN[1:0] bits (External Trigger Conversion mode for regular channelsp)
#define ADC_CR2_EXTEN_0		(0x1U << ADC_CR2_EXTEN_Pos)			// 0x10000000
#define ADC_CR2_EXTEN_1		(0x2U << ADC_CR2_EXTEN_Pos)			// 0x20000000
#define ADC_CR2_SWSTART_Pos	(30U)
#define ADC_CR2_SWSTART_Msk	(0x1U << ADC_CR2_SWSTART_Pos)			// 0x40000000
#define ADC_CR2_SWSTART		ADC_CR2_SWSTART_Msk			// Start Conversion of regular channels

//  Bit definition for ADC_SMPR1 register
#define ADC_SMPR1_SMP10_Pos	(0U)
#define ADC_SMPR1_SMP10_Msk	(0x7U << ADC_SMPR1_SMP10_Pos)			// 0x00000007
#define ADC_SMPR1_SMP10		ADC_SMPR1_SMP10_Msk			// SMP10[2:0] bits (Channel 10 Sample time selection)
#define ADC_SMPR1_SMP10_0	(0x1U << ADC_SMPR1_SMP10_Pos)			// 0x00000001
#define ADC_SMPR1_SMP10_1	(0x2U << ADC_SMPR1_SMP10_Pos)			// 0x00000002
#define ADC_SMPR1_SMP10_2	(0x4U << ADC_SMPR1_SMP10_Pos)			// 0x00000004
#define ADC_SMPR1_SMP11_Pos	(3U)
#define ADC_SMPR1_SMP11_Msk	(0x7U << ADC_SMPR1_SMP11_Pos)			// 0x00000038
#define ADC_SMPR1_SMP11		ADC_SMPR1_SMP11_Msk			// SMP11[2:0] bits (Channel 11 Sample time selection)
#define ADC_SMPR1_SMP11_0	(0x1U << ADC_SMPR1_SMP11_Pos)			// 0x00000008
#define ADC_SMPR1_SMP11_1	(0x2U << ADC_SMPR1_SMP11_Pos)			// 0x00000010
#define ADC_SMPR1_SMP11_2	(0x4U << ADC_SMPR1_SMP11_Pos)			// 0x00000020
#define ADC_SMPR1_SMP12_Pos	(6U)
#define ADC_SMPR1_SMP12_Msk	(0x7U << ADC_SMPR1_SMP12_Pos)			// 0x000001C0
#define ADC_SMPR1_SMP12		ADC_SMPR1_SMP12_Msk			// SMP12[2:0] bits (Channel 12 Sample time selection)
#define ADC_SMPR1_SMP12_0	(0x1U << ADC_SMPR1_SMP12_Pos)			// 0x00000040
#define ADC_SMPR1_SMP12_1	(0x2U << ADC_SMPR1_SMP12_Pos)			// 0x00000080
#define ADC_SMPR1_SMP12_2	(0x4U << ADC_SMPR1_SMP12_Pos)			// 0x00000100
#define ADC_SMPR1_SMP13_Pos	(9U)
#define ADC_SMPR1_SMP13_Msk	(0x7U << ADC_SMPR1_SMP13_Pos)			// 0x00000E00
#define ADC_SMPR1_SMP13		ADC_SMPR1_SMP13_Msk			// SMP13[2:0] bits (Channel 13 Sample time selection)
#define ADC_SMPR1_SMP13_0	(0x1U << ADC_SMPR1_SMP13_Pos)			// 0x00000200
#define ADC_SMPR1_SMP13_1	(0x2U << ADC_SMPR1_SMP13_Pos)			// 0x00000400
#define ADC_SMPR1_SMP13_2	(0x4U << ADC_SMPR1_SMP13_Pos)			// 0x00000800
#define ADC_SMPR1_SMP14_Pos	(12U)
#define ADC_SMPR1_SMP14_Msk	(0x7U << ADC_SMPR1_SMP14_Pos)			// 0x00007000
#define ADC_SMPR1_SMP14		ADC_SMPR1_SMP14_Msk			// SMP14[2:0] bits (Channel 14 Sample time selection)
#define ADC_SMPR1_SMP14_0	(0x1U << ADC_SMPR1_SMP14_Pos)			// 0x00001000
#define ADC_SMPR1_SMP14_1	(0x2U << ADC_SMPR1_SMP14_Pos)			// 0x00002000
#define ADC_SMPR1_SMP14_2	(0x4U << ADC_SMPR1_SMP14_Pos)			// 0x00004000
#define ADC_SMPR1_SMP15_Pos	(15U)
#define ADC_SMPR1_SMP15_Msk	(0x7U << ADC_SMPR1_SMP15_Pos)			// 0x00038000
#define ADC_SMPR1_SMP15		ADC_SMPR1_SMP15_Msk			// SMP15[2:0] bits (Channel 15 Sample time selection)
#define ADC_SMPR1_SMP15_0	(0x1U << ADC_SMPR1_SMP15_Pos)			// 0x00008000
#define ADC_SMPR1_SMP15_1	(0x2U << ADC_SMPR1_SMP15_Pos)			// 0x00010000
#define ADC_SMPR1_SMP15_2	(0x4U << ADC_SMPR1_SMP15_Pos)			// 0x00020000
#define ADC_SMPR1_SMP16_Pos	(18U)
#define ADC_SMPR1_SMP16_Msk	(0x7U << ADC_SMPR1_SMP16_Pos)			// 0x001C0000
#define ADC_SMPR1_SMP16		ADC_SMPR1_SMP16_Msk			// SMP16[2:0] bits (Channel 16 Sample time selection)
#define ADC_SMPR1_SMP16_0	(0x1U << ADC_SMPR1_SMP16_Pos)			// 0x00040000
#define ADC_SMPR1_SMP16_1	(0x2U << ADC_SMPR1_SMP16_Pos)			// 0x00080000
#define ADC_SMPR1_SMP16_2	(0x4U << ADC_SMPR1_SMP16_Pos)			// 0x00100000
#define ADC_SMPR1_SMP17_Pos	(21U)
#define ADC_SMPR1_SMP17_Msk	(0x7U << ADC_SMPR1_SMP17_Pos)			// 0x00E00000
#define ADC_SMPR1_SMP17		ADC_SMPR1_SMP17_Msk			// SMP17[2:0] bits (Channel 17 Sample time selection)
#define ADC_SMPR1_SMP17_0		(0x1U << ADC_SMPR1_SMP17_Pos)			// 0x00200000
#define ADC_SMPR1_SMP17_1		(0x2U << ADC_SMPR1_SMP17_Pos)			// 0x00400000
#define ADC_SMPR1_SMP17_2		(0x4U << ADC_SMPR1_SMP17_Pos)			// 0x00800000
#define ADC_SMPR1_SMP18_Pos	(24U)
#define ADC_SMPR1_SMP18_Msk	(0x7U << ADC_SMPR1_SMP18_Pos)			// 0x07000000
#define ADC_SMPR1_SMP18		ADC_SMPR1_SMP18_Msk			// SMP18[2:0] bits (Channel 18 Sample time selection)
#define ADC_SMPR1_SMP18_0		(0x1U << ADC_SMPR1_SMP18_Pos)			// 0x01000000
#define ADC_SMPR1_SMP18_1		(0x2U << ADC_SMPR1_SMP18_Pos)			// 0x02000000
#define ADC_SMPR1_SMP18_2		(0x4U << ADC_SMPR1_SMP18_Pos)			// 0x04000000

//  Bit definition for ADC_SMPR2 register
#define ADC_SMPR2_SMP0_Pos	(0U)
#define ADC_SMPR2_SMP0_Msk	(0x7U << ADC_SMPR2_SMP0_Pos)			// 0x00000007
#define ADC_SMPR2_SMP0		ADC_SMPR2_SMP0_Msk			// SMP0[2:0] bits (Channel 0 Sample time selection)
#define ADC_SMPR2_SMP0_0	(0x1U << ADC_SMPR2_SMP0_Pos)			// 0x00000001
#define ADC_SMPR2_SMP0_1	(0x2U << ADC_SMPR2_SMP0_Pos)			// 0x00000002
#define ADC_SMPR2_SMP0_2	(0x4U << ADC_SMPR2_SMP0_Pos)			// 0x00000004
#define ADC_SMPR2_SMP1_Pos	(3U)
#define ADC_SMPR2_SMP1_Msk	(0x7U << ADC_SMPR2_SMP1_Pos)			// 0x00000038
#define ADC_SMPR2_SMP1		ADC_SMPR2_SMP1_Msk			// SMP1[2:0] bits (Channel 1 Sample time selection)
#define ADC_SMPR2_SMP1_0	(0x1U << ADC_SMPR2_SMP1_Pos)			// 0x00000008
#define ADC_SMPR2_SMP1_1	(0x2U << ADC_SMPR2_SMP1_Pos)			// 0x00000010
#define ADC_SMPR2_SMP1_2	(0x4U << ADC_SMPR2_SMP1_Pos)			// 0x00000020
#define ADC_SMPR2_SMP2_Pos	(6U)
#define ADC_SMPR2_SMP2_Msk	(0x7U << ADC_SMPR2_SMP2_Pos)			// 0x000001C0
#define ADC_SMPR2_SMP2		ADC_SMPR2_SMP2_Msk			// SMP2[2:0] bits (Channel 2 Sample time selection)
#define ADC_SMPR2_SMP2_0	(0x1U << ADC_SMPR2_SMP2_Pos)			// 0x00000040
#define ADC_SMPR2_SMP2_1	(0x2U << ADC_SMPR2_SMP2_Pos)			// 0x00000080
#define ADC_SMPR2_SMP2_2	(0x4U << ADC_SMPR2_SMP2_Pos)			// 0x00000100
#define ADC_SMPR2_SMP3_Pos	(9U)
#define ADC_SMPR2_SMP3_Msk	(0x7U << ADC_SMPR2_SMP3_Pos)			// 0x00000E00
#define ADC_SMPR2_SMP3		ADC_SMPR2_SMP3_Msk			// SMP3[2:0] bits (Channel 3 Sample time selection)
#define ADC_SMPR2_SMP3_0	(0x1U << ADC_SMPR2_SMP3_Pos)			// 0x00000200
#define ADC_SMPR2_SMP3_1	(0x2U << ADC_SMPR2_SMP3_Pos)			// 0x00000400
#define ADC_SMPR2_SMP3_2	(0x4U << ADC_SMPR2_SMP3_Pos)			// 0x00000800
#define ADC_SMPR2_SMP4_Pos	(12U)
#define ADC_SMPR2_SMP4_Msk	(0x7U << ADC_SMPR2_SMP4_Pos)			// 0x00007000
#define ADC_SMPR2_SMP4		ADC_SMPR2_SMP4_Msk			// SMP4[2:0] bits (Channel 4 Sample time selection)
#define ADC_SMPR2_SMP4_0	(0x1U << ADC_SMPR2_SMP4_Pos)			// 0x00001000
#define ADC_SMPR2_SMP4_1	(0x2U << ADC_SMPR2_SMP4_Pos)			// 0x00002000
#define ADC_SMPR2_SMP4_2	(0x4U << ADC_SMPR2_SMP4_Pos)			// 0x00004000
#define ADC_SMPR2_SMP5_Pos	(15U)
#define ADC_SMPR2_SMP5_Msk	(0x7U << ADC_SMPR2_SMP5_Pos)			// 0x00038000
#define ADC_SMPR2_SMP5		ADC_SMPR2_SMP5_Msk			// SMP5[2:0] bits (Channel 5 Sample time selection)
#define ADC_SMPR2_SMP5_0	(0x1U << ADC_SMPR2_SMP5_Pos)			// 0x00008000
#define ADC_SMPR2_SMP5_1	(0x2U << ADC_SMPR2_SMP5_Pos)			// 0x00010000
#define ADC_SMPR2_SMP5_2	(0x4U << ADC_SMPR2_SMP5_Pos)			// 0x00020000
#define ADC_SMPR2_SMP6_Pos	(18U)
#define ADC_SMPR2_SMP6_Msk	(0x7U << ADC_SMPR2_SMP6_Pos)			// 0x001C0000
#define ADC_SMPR2_SMP6		ADC_SMPR2_SMP6_Msk			// SMP6[2:0] bits (Channel 6 Sample time selection)
#define ADC_SMPR2_SMP6_0	(0x1U << ADC_SMPR2_SMP6_Pos)			// 0x00040000
#define ADC_SMPR2_SMP6_1	(0x2U << ADC_SMPR2_SMP6_Pos)			// 0x00080000
#define ADC_SMPR2_SMP6_2	(0x4U << ADC_SMPR2_SMP6_Pos)			// 0x00100000
#define ADC_SMPR2_SMP7_Pos	(21U)
#define ADC_SMPR2_SMP7_Msk	(0x7U << ADC_SMPR2_SMP7_Pos)			// 0x00E00000
#define ADC_SMPR2_SMP7		ADC_SMPR2_SMP7_Msk			// SMP7[2:0] bits (Channel 7 Sample time selection)
#define ADC_SMPR2_SMP7_0	(0x1U << ADC_SMPR2_SMP7_Pos)			// 0x00200000
#define ADC_SMPR2_SMP7_1	(0x2U << ADC_SMPR2_SMP7_Pos)			// 0x00400000
#define ADC_SMPR2_SMP7_2	(0x4U << ADC_SMPR2_SMP7_Pos)			// 0x00800000
#define ADC_SMPR2_SMP8_Pos	(24U)
#define ADC_SMPR2_SMP8_Msk	(0x7U << ADC_SMPR2_SMP8_Pos)			// 0x07000000
#define ADC_SMPR2_SMP8		ADC_SMPR2_SMP8_Msk			// SMP8[2:0] bits (Channel 8 Sample time selection)
#define ADC_SMPR2_SMP8_0	(0x1U << ADC_SMPR2_SMP8_Pos)			// 0x01000000
#define ADC_SMPR2_SMP8_1	(0x2U << ADC_SMPR2_SMP8_Pos)			// 0x02000000
#define ADC_SMPR2_SMP8_2	(0x4U << ADC_SMPR2_SMP8_Pos)			// 0x04000000
#define ADC_SMPR2_SMP9_Pos	(27U)
#define ADC_SMPR2_SMP9_Msk	(0x7U << ADC_SMPR2_SMP9_Pos)			// 0x38000000
#define ADC_SMPR2_SMP9		ADC_SMPR2_SMP9_Msk			// SMP9[2:0] bits (Channel 9 Sample time selection)
#define ADC_SMPR2_SMP9_0	(0x1U << ADC_SMPR2_SMP9_Pos)			// 0x08000000
#define ADC_SMPR2_SMP9_1	(0x2U << ADC_SMPR2_SMP9_Pos)			// 0x10000000
#define ADC_SMPR2_SMP9_2	(0x4U << ADC_SMPR2_SMP9_Pos)			// 0x20000000

//  Bit definition for ADC_JOFR1 register
#define ADC_JOFR1_JOFFSET1_Pos	(0U)
#define ADC_JOFR1_JOFFSET1_Msk	(0xFFFU << ADC_JOFR1_JOFFSET1_Pos)			// 0x00000FFF
#define ADC_JOFR1_JOFFSET1	ADC_JOFR1_JOFFSET1_Msk			// Data offset for injected channel 1

//  Bit definition for ADC_JOFR2 register
#define ADC_JOFR2_JOFFSET2_Pos	(0U)
#define ADC_JOFR2_JOFFSET2_Msk	(0xFFFU << ADC_JOFR2_JOFFSET2_Pos)			// 0x00000FFF
#define ADC_JOFR2_JOFFSET2	ADC_JOFR2_JOFFSET2_Msk			// Data offset for injected channel 2

//  Bit definition for ADC_JOFR3 register
#define ADC_JOFR3_JOFFSET3_Pos	(0U)
#define ADC_JOFR3_JOFFSET3_Msk	(0xFFFU << ADC_JOFR3_JOFFSET3_Pos)			// 0x00000FFF
#define ADC_JOFR3_JOFFSET3	ADC_JOFR3_JOFFSET3_Msk			// Data offset for injected channel 3

//  Bit definition for ADC_JOFR4 register
#define ADC_JOFR4_JOFFSET4_Pos	(0U)
#define ADC_JOFR4_JOFFSET4_Msk	(0xFFFU << ADC_JOFR4_JOFFSET4_Pos)			// 0x00000FFF
#define ADC_JOFR4_JOFFSET4	ADC_JOFR4_JOFFSET4_Msk			// Data offset for injected channel 4

//  Bit definition for ADC_HTR register
#define ADC_HTR_HT_Pos		(0U)
#define ADC_HTR_HT_Msk		(0xFFFU << ADC_HTR_HT_Pos)			// 0x00000FFF
#define ADC_HTR_HT		ADC_HTR_HT_Msk			// Analog watchdog high threshold

//  Bit definition for ADC_LTR register
#define ADC_LTR_LT_Pos		(0U)
#define ADC_LTR_LT_Msk		(0xFFFU << ADC_LTR_LT_Pos)			// 0x00000FFF
#define ADC_LTR_LT		ADC_LTR_LT_Msk			// Analog watchdog low threshold

//  Bit definition for ADC_SQR1 register
#define ADC_SQR1_SQ13_Pos	(0U)
#define ADC_SQR1_SQ13_Msk	(0x1FU << ADC_SQR1_SQ13_Pos)			// 0x0000001F
#define ADC_SQR1_SQ13		ADC_SQR1_SQ13_Msk			// SQ13[4:0] bits (13th conversion in regular sequence)
#define ADC_SQR1_SQ13_0		(0x01U << ADC_SQR1_SQ13_Pos)			// 0x00000001
#define ADC_SQR1_SQ13_1		(0x02U << ADC_SQR1_SQ13_Pos)			// 0x00000002
#define ADC_SQR1_SQ13_2		(0x04U << ADC_SQR1_SQ13_Pos)			// 0x00000004
#define ADC_SQR1_SQ13_3		(0x08U << ADC_SQR1_SQ13_Pos)			// 0x00000008
#define ADC_SQR1_SQ13_4		(0x10U << ADC_SQR1_SQ13_Pos)			// 0x00000010
#define ADC_SQR1_SQ14_Pos	(5U)
#define ADC_SQR1_SQ14_Msk	(0x1FU << ADC_SQR1_SQ14_Pos)			// 0x000003E0
#define ADC_SQR1_SQ14		ADC_SQR1_SQ14_Msk			// SQ14[4:0] bits (14th conversion in regular sequence)
#define ADC_SQR1_SQ14_0		(0x01U << ADC_SQR1_SQ14_Pos)			// 0x00000020
#define ADC_SQR1_SQ14_1		(0x02U << ADC_SQR1_SQ14_Pos)			// 0x00000040
#define ADC_SQR1_SQ14_2		(0x04U << ADC_SQR1_SQ14_Pos)			// 0x00000080
#define ADC_SQR1_SQ14_3		(0x08U << ADC_SQR1_SQ14_Pos)			// 0x00000100
#define ADC_SQR1_SQ14_4		(0x10U << ADC_SQR1_SQ14_Pos)			// 0x00000200
#define ADC_SQR1_SQ15_Pos	(10U)
#define ADC_SQR1_SQ15_Msk	(0x1FU << ADC_SQR1_SQ15_Pos)			// 0x00007C00
#define ADC_SQR1_SQ15		ADC_SQR1_SQ15_Msk			// SQ15[4:0] bits (15th conversion in regular sequence)
#define ADC_SQR1_SQ15_0		(0x01U << ADC_SQR1_SQ15_Pos)			// 0x00000400
#define ADC_SQR1_SQ15_1		(0x02U << ADC_SQR1_SQ15_Pos)			// 0x00000800
#define ADC_SQR1_SQ15_2		(0x04U << ADC_SQR1_SQ15_Pos)			// 0x00001000
#define ADC_SQR1_SQ15_3		(0x08U << ADC_SQR1_SQ15_Pos)			// 0x00002000
#define ADC_SQR1_SQ15_4		(0x10U << ADC_SQR1_SQ15_Pos)			// 0x00004000
#define ADC_SQR1_SQ16_Pos	(15U)
#define ADC_SQR1_SQ16_Msk	(0x1FU << ADC_SQR1_SQ16_Pos)			// 0x000F8000
#define ADC_SQR1_SQ16		ADC_SQR1_SQ16_Msk			// SQ16[4:0] bits (16th conversion in regular sequence)
#define ADC_SQR1_SQ16_0		(0x01U << ADC_SQR1_SQ16_Pos)			// 0x00008000
#define ADC_SQR1_SQ16_1		(0x02U << ADC_SQR1_SQ16_Pos)			// 0x00010000
#define ADC_SQR1_SQ16_2		(0x04U << ADC_SQR1_SQ16_Pos)			// 0x00020000
#define ADC_SQR1_SQ16_3		(0x08U << ADC_SQR1_SQ16_Pos)			// 0x00040000
#define ADC_SQR1_SQ16_4		(0x10U << ADC_SQR1_SQ16_Pos)			// 0x00080000
#define ADC_SQR1_L_Pos		(20U)
#define ADC_SQR1_L_Msk		(0xFU << ADC_SQR1_L_Pos)			// 0x00F00000
#define ADC_SQR1_L		ADC_SQR1_L_Msk			// L[3:0] bits (Regular channel sequence length)
#define ADC_SQR1_L_0		(0x1U << ADC_SQR1_L_Pos)			// 0x00100000
#define ADC_SQR1_L_1		(0x2U << ADC_SQR1_L_Pos)			// 0x00200000
#define ADC_SQR1_L_2		(0x4U << ADC_SQR1_L_Pos)			// 0x00400000
#define ADC_SQR1_L_3		(0x8U << ADC_SQR1_L_Pos)			// 0x00800000

//  Bit definition for ADC_SQR2 register
#define ADC_SQR2_SQ7_Pos	(0U)
#define ADC_SQR2_SQ7_Msk	(0x1FU << ADC_SQR2_SQ7_Pos)			// 0x0000001F
#define ADC_SQR2_SQ7		ADC_SQR2_SQ7_Msk			// SQ7[4:0] bits (7th conversion in regular sequence)
#define ADC_SQR2_SQ7_0		(0x01U << ADC_SQR2_SQ7_Pos)			// 0x00000001
#define ADC_SQR2_SQ7_1		(0x02U << ADC_SQR2_SQ7_Pos)			// 0x00000002
#define ADC_SQR2_SQ7_2		(0x04U << ADC_SQR2_SQ7_Pos)			// 0x00000004
#define ADC_SQR2_SQ7_3		(0x08U << ADC_SQR2_SQ7_Pos)			// 0x00000008
#define ADC_SQR2_SQ7_4		(0x10U << ADC_SQR2_SQ7_Pos)			// 0x00000010
#define ADC_SQR2_SQ8_Pos	(5U)
#define ADC_SQR2_SQ8_Msk	(0x1FU << ADC_SQR2_SQ8_Pos)			// 0x000003E0
#define ADC_SQR2_SQ8		ADC_SQR2_SQ8_Msk			// SQ8[4:0] bits (8th conversion in regular sequence)
#define ADC_SQR2_SQ8_0		(0x01U << ADC_SQR2_SQ8_Pos)			// 0x00000020
#define ADC_SQR2_SQ8_1		(0x02U << ADC_SQR2_SQ8_Pos)			// 0x00000040
#define ADC_SQR2_SQ8_2		(0x04U << ADC_SQR2_SQ8_Pos)			// 0x00000080
#define ADC_SQR2_SQ8_3		(0x08U << ADC_SQR2_SQ8_Pos)			// 0x00000100
#define ADC_SQR2_SQ8_4		(0x10U << ADC_SQR2_SQ8_Pos)			// 0x00000200
#define ADC_SQR2_SQ9_Pos	(10U)
#define ADC_SQR2_SQ9_Msk	(0x1FU << ADC_SQR2_SQ9_Pos)			// 0x00007C00
#define ADC_SQR2_SQ9		ADC_SQR2_SQ9_Msk			// SQ9[4:0] bits (9th conversion in regular sequence)
#define ADC_SQR2_SQ9_0		(0x01U << ADC_SQR2_SQ9_Pos)			// 0x00000400
#define ADC_SQR2_SQ9_1		(0x02U << ADC_SQR2_SQ9_Pos)			// 0x00000800
#define ADC_SQR2_SQ9_2		(0x04U << ADC_SQR2_SQ9_Pos)			// 0x00001000
#define ADC_SQR2_SQ9_3		(0x08U << ADC_SQR2_SQ9_Pos)			// 0x00002000
#define ADC_SQR2_SQ9_4		(0x10U << ADC_SQR2_SQ9_Pos)			// 0x00004000
#define ADC_SQR2_SQ10_Pos	(15U)
#define ADC_SQR2_SQ10_Msk	(0x1FU << ADC_SQR2_SQ10_Pos)			// 0x000F8000
#define ADC_SQR2_SQ10		ADC_SQR2_SQ10_Msk			// SQ10[4:0] bits (10th conversion in regular sequence)
#define ADC_SQR2_SQ10_0		(0x01U << ADC_SQR2_SQ10_Pos)			// 0x00008000
#define ADC_SQR2_SQ10_1		(0x02U << ADC_SQR2_SQ10_Pos)			// 0x00010000
#define ADC_SQR2_SQ10_2		(0x04U << ADC_SQR2_SQ10_Pos)			// 0x00020000
#define ADC_SQR2_SQ10_3		(0x08U << ADC_SQR2_SQ10_Pos)			// 0x00040000
#define ADC_SQR2_SQ10_4		(0x10U << ADC_SQR2_SQ10_Pos)			// 0x00080000
#define ADC_SQR2_SQ11_Pos	(20U)
#define ADC_SQR2_SQ11_Msk	(0x1FU << ADC_SQR2_SQ11_Pos)			// 0x01F00000
#define ADC_SQR2_SQ11		ADC_SQR2_SQ11_Msk			// SQ11[4:0] bits (11th conversion in regular sequence)
#define ADC_SQR2_SQ11_0		(0x01U << ADC_SQR2_SQ11_Pos)			// 0x00100000
#define ADC_SQR2_SQ11_1		(0x02U << ADC_SQR2_SQ11_Pos)			// 0x00200000
#define ADC_SQR2_SQ11_2		(0x04U << ADC_SQR2_SQ11_Pos)			// 0x00400000
#define ADC_SQR2_SQ11_3		(0x08U << ADC_SQR2_SQ11_Pos)			// 0x00800000
#define ADC_SQR2_SQ11_4		(0x10U << ADC_SQR2_SQ11_Pos)			// 0x01000000
#define ADC_SQR2_SQ12_Pos	(25U)
#define ADC_SQR2_SQ12_Msk	(0x1FU << ADC_SQR2_SQ12_Pos)			// 0x3E000000
#define ADC_SQR2_SQ12		ADC_SQR2_SQ12_Msk			// SQ12[4:0] bits (12th conversion in regular sequence)
#define ADC_SQR2_SQ12_0		(0x01U << ADC_SQR2_SQ12_Pos)			// 0x02000000
#define ADC_SQR2_SQ12_1		(0x02U << ADC_SQR2_SQ12_Pos)			// 0x04000000
#define ADC_SQR2_SQ12_2		(0x04U << ADC_SQR2_SQ12_Pos)			// 0x08000000
#define ADC_SQR2_SQ12_3		(0x08U << ADC_SQR2_SQ12_Pos)			// 0x10000000
#define ADC_SQR2_SQ12_4		(0x10U << ADC_SQR2_SQ12_Pos)			// 0x20000000

//  Bit definition for ADC_SQR3 register
#define ADC_SQR3_SQ1_Pos	(0U)
#define ADC_SQR3_SQ1_Msk	(0x1FU << ADC_SQR3_SQ1_Pos)			// 0x0000001F
#define ADC_SQR3_SQ1		ADC_SQR3_SQ1_Msk			// SQ1[4:0] bits (1st conversion in regular sequence)
#define ADC_SQR3_SQ1_0		(0x01U << ADC_SQR3_SQ1_Pos)			// 0x00000001
#define ADC_SQR3_SQ1_1		(0x02U << ADC_SQR3_SQ1_Pos)			// 0x00000002
#define ADC_SQR3_SQ1_2		(0x04U << ADC_SQR3_SQ1_Pos)			// 0x00000004
#define ADC_SQR3_SQ1_3		(0x08U << ADC_SQR3_SQ1_Pos)			// 0x00000008
#define ADC_SQR3_SQ1_4		(0x10U << ADC_SQR3_SQ1_Pos)			// 0x00000010
#define ADC_SQR3_SQ2_Pos	(5U)
#define ADC_SQR3_SQ2_Msk	(0x1FU << ADC_SQR3_SQ2_Pos)			// 0x000003E0
#define ADC_SQR3_SQ2		ADC_SQR3_SQ2_Msk			// SQ2[4:0] bits (2nd conversion in regular sequence)
#define ADC_SQR3_SQ2_0		(0x01U << ADC_SQR3_SQ2_Pos)			// 0x00000020
#define ADC_SQR3_SQ2_1		(0x02U << ADC_SQR3_SQ2_Pos)			// 0x00000040
#define ADC_SQR3_SQ2_2		(0x04U << ADC_SQR3_SQ2_Pos)			// 0x00000080
#define ADC_SQR3_SQ2_3		(0x08U << ADC_SQR3_SQ2_Pos)			// 0x00000100
#define ADC_SQR3_SQ2_4		(0x10U << ADC_SQR3_SQ2_Pos)			// 0x00000200
#define ADC_SQR3_SQ3_Pos	(10U)
#define ADC_SQR3_SQ3_Msk	(0x1FU << ADC_SQR3_SQ3_Pos)			// 0x00007C00
#define ADC_SQR3_SQ3		ADC_SQR3_SQ3_Msk			// SQ3[4:0] bits (3rd conversion in regular sequence)
#define ADC_SQR3_SQ3_0		(0x01U << ADC_SQR3_SQ3_Pos)			// 0x00000400
#define ADC_SQR3_SQ3_1		(0x02U << ADC_SQR3_SQ3_Pos)			// 0x00000800
#define ADC_SQR3_SQ3_2		(0x04U << ADC_SQR3_SQ3_Pos)			// 0x00001000
#define ADC_SQR3_SQ3_3		(0x08U << ADC_SQR3_SQ3_Pos)			// 0x00002000
#define ADC_SQR3_SQ3_4		(0x10U << ADC_SQR3_SQ3_Pos)			// 0x00004000
#define ADC_SQR3_SQ4_Pos	(15U)
#define ADC_SQR3_SQ4_Msk	(0x1FU << ADC_SQR3_SQ4_Pos)			// 0x000F8000
#define ADC_SQR3_SQ4		ADC_SQR3_SQ4_Msk			// SQ4[4:0] bits (4th conversion in regular sequence)
#define ADC_SQR3_SQ4_0		(0x01U << ADC_SQR3_SQ4_Pos)			// 0x00008000
#define ADC_SQR3_SQ4_1		(0x02U << ADC_SQR3_SQ4_Pos)			// 0x00010000
#define ADC_SQR3_SQ4_2		(0x04U << ADC_SQR3_SQ4_Pos)			// 0x00020000
#define ADC_SQR3_SQ4_3		(0x08U << ADC_SQR3_SQ4_Pos)			// 0x00040000
#define ADC_SQR3_SQ4_4		(0x10U << ADC_SQR3_SQ4_Pos)			// 0x00080000
#define ADC_SQR3_SQ5_Pos	(20U)
#define ADC_SQR3_SQ5_Msk	(0x1FU << ADC_SQR3_SQ5_Pos)			// 0x01F00000
#define ADC_SQR3_SQ5		ADC_SQR3_SQ5_Msk			// SQ5[4:0] bits (5th conversion in regular sequence)
#define ADC_SQR3_SQ5_0		(0x01U << ADC_SQR3_SQ5_Pos)			// 0x00100000
#define ADC_SQR3_SQ5_1		(0x02U << ADC_SQR3_SQ5_Pos)			// 0x00200000
#define ADC_SQR3_SQ5_2		(0x04U << ADC_SQR3_SQ5_Pos)			// 0x00400000
#define ADC_SQR3_SQ5_3		(0x08U << ADC_SQR3_SQ5_Pos)			// 0x00800000
#define ADC_SQR3_SQ5_4		(0x10U << ADC_SQR3_SQ5_Pos)			// 0x01000000
#define ADC_SQR3_SQ6_Pos	(25U)
#define ADC_SQR3_SQ6_Msk	(0x1FU << ADC_SQR3_SQ6_Pos)			// 0x3E000000
#define ADC_SQR3_SQ6		ADC_SQR3_SQ6_Msk			// SQ6[4:0] bits (6th conversion in regular sequence)
#define ADC_SQR3_SQ6_0		(0x01U << ADC_SQR3_SQ6_Pos)			// 0x02000000
#define ADC_SQR3_SQ6_1		(0x02U << ADC_SQR3_SQ6_Pos)			// 0x04000000
#define ADC_SQR3_SQ6_2		(0x04U << ADC_SQR3_SQ6_Pos)			// 0x08000000
#define ADC_SQR3_SQ6_3		(0x08U << ADC_SQR3_SQ6_Pos)			// 0x10000000
#define ADC_SQR3_SQ6_4		(0x10U << ADC_SQR3_SQ6_Pos)			// 0x20000000

//  Bit definition for ADC_JSQR register
#define ADC_JSQR_JSQ1_Pos	(0U)
#define ADC_JSQR_JSQ1_Msk	(0x1FU << ADC_JSQR_JSQ1_Pos)			// 0x0000001F
#define ADC_JSQR_JSQ1		ADC_JSQR_JSQ1_Msk			// JSQ1[4:0] bits (1st conversion in injected sequence)
#define ADC_JSQR_JSQ1_0		(0x01U << ADC_JSQR_JSQ1_Pos)			// 0x00000001
#define ADC_JSQR_JSQ1_1		(0x02U << ADC_JSQR_JSQ1_Pos)			// 0x00000002
#define ADC_JSQR_JSQ1_2		(0x04U << ADC_JSQR_JSQ1_Pos)			// 0x00000004
#define ADC_JSQR_JSQ1_3		(0x08U << ADC_JSQR_JSQ1_Pos)			// 0x00000008
#define ADC_JSQR_JSQ1_4		(0x10U << ADC_JSQR_JSQ1_Pos)			// 0x00000010
#define ADC_JSQR_JSQ2_Pos	(5U)
#define ADC_JSQR_JSQ2_Msk	(0x1FU << ADC_JSQR_JSQ2_Pos)			// 0x000003E0
#define ADC_JSQR_JSQ2		ADC_JSQR_JSQ2_Msk			// JSQ2[4:0] bits (2nd conversion in injected sequence)
#define ADC_JSQR_JSQ2_0		(0x01U << ADC_JSQR_JSQ2_Pos)			// 0x00000020
#define ADC_JSQR_JSQ2_1		(0x02U << ADC_JSQR_JSQ2_Pos)			// 0x00000040
#define ADC_JSQR_JSQ2_2		(0x04U << ADC_JSQR_JSQ2_Pos)			// 0x00000080
#define ADC_JSQR_JSQ2_3		(0x08U << ADC_JSQR_JSQ2_Pos)			// 0x00000100
#define ADC_JSQR_JSQ2_4		(0x10U << ADC_JSQR_JSQ2_Pos)			// 0x00000200
#define ADC_JSQR_JSQ3_Pos	(10U)
#define ADC_JSQR_JSQ3_Msk	(0x1FU << ADC_JSQR_JSQ3_Pos)			// 0x00007C00
#define ADC_JSQR_JSQ3		ADC_JSQR_JSQ3_Msk			// JSQ3[4:0] bits (3rd conversion in injected sequence)
#define ADC_JSQR_JSQ3_0		(0x01U << ADC_JSQR_JSQ3_Pos)			// 0x00000400
#define ADC_JSQR_JSQ3_1		(0x02U << ADC_JSQR_JSQ3_Pos)			// 0x00000800
#define ADC_JSQR_JSQ3_2		(0x04U << ADC_JSQR_JSQ3_Pos)			// 0x00001000
#define ADC_JSQR_JSQ3_3		(0x08U << ADC_JSQR_JSQ3_Pos)			// 0x00002000
#define ADC_JSQR_JSQ3_4		(0x10U << ADC_JSQR_JSQ3_Pos)			// 0x00004000
#define ADC_JSQR_JSQ4_Pos	(15U)
#define ADC_JSQR_JSQ4_Msk	(0x1FU << ADC_JSQR_JSQ4_Pos)			// 0x000F8000
#define ADC_JSQR_JSQ4		ADC_JSQR_JSQ4_Msk			// JSQ4[4:0] bits (4th conversion in injected sequence)
#define ADC_JSQR_JSQ4_0		(0x01U << ADC_JSQR_JSQ4_Pos)			// 0x00008000
#define ADC_JSQR_JSQ4_1		(0x02U << ADC_JSQR_JSQ4_Pos)			// 0x00010000
#define ADC_JSQR_JSQ4_2		(0x04U << ADC_JSQR_JSQ4_Pos)			// 0x00020000
#define ADC_JSQR_JSQ4_3		(0x08U << ADC_JSQR_JSQ4_Pos)			// 0x00040000
#define ADC_JSQR_JSQ4_4		(0x10U << ADC_JSQR_JSQ4_Pos)			// 0x00080000
#define ADC_JSQR_JL_Pos		(20U)
#define ADC_JSQR_JL_Msk		(0x3U << ADC_JSQR_JL_Pos)			// 0x00300000
#define ADC_JSQR_JL		ADC_JSQR_JL_Msk			// JL[1:0] bits (Injected Sequence length)
#define ADC_JSQR_JL_0		(0x1U << ADC_JSQR_JL_Pos)			// 0x00100000
#define ADC_JSQR_JL_1		(0x2U << ADC_JSQR_JL_Pos)			// 0x00200000

//  Bit definition for ADC_JDR1 register
#define ADC_JDR1_JDATA_Pos	(0U)
#define ADC_JDR1_JDATA_Msk	(0xFFFFU << ADC_JDR1_JDATA_Pos)			// 0x0000FFFF
#define ADC_JDR1_JDATA		ADC_JDR1_JDATA_Msk			// Injected data

//  Bit definition for ADC_JDR2 register
#define ADC_JDR2_JDATA_Pos	(0U)
#define ADC_JDR2_JDATA_Msk	(0xFFFFU << ADC_JDR2_JDATA_Pos)			// 0x0000FFFF
#define ADC_JDR2_JDATA		ADC_JDR2_JDATA_Msk			// Injected data

//  Bit definition for ADC_JDR3 register
#define ADC_JDR3_JDATA_Pos	(0U)
#define ADC_JDR3_JDATA_Msk	(0xFFFFU << ADC_JDR3_JDATA_Pos)			// 0x0000FFFF
#define ADC_JDR3_JDATA		ADC_JDR3_JDATA_Msk			// Injected data

//  Bit definition for ADC_JDR4 register
#define ADC_JDR4_JDATA_Pos	(0U)
#define ADC_JDR4_JDATA_Msk	(0xFFFFU << ADC_JDR4_JDATA_Pos)			// 0x0000FFFF
#define ADC_JDR4_JDATA		ADC_JDR4_JDATA_Msk			// Injected data

//  Bit definition for ADC_DR register
#define ADC_DR_DATA_Pos		(0U)
#define ADC_DR_DATA_Msk		(0xFFFFU << ADC_DR_DATA_Pos)			// 0x0000FFFF
#define ADC_DR_DATA		ADC_DR_DATA_Msk			// Regular data
#define ADC_DR_ADC2DATA_Pos	(16U)
#define ADC_DR_ADC2DATA_Msk	(0xFFFFU << ADC_DR_ADC2DATA_Pos)			// 0xFFFF0000
#define ADC_DR_ADC2DATA		ADC_DR_ADC2DATA_Msk			// ADC2 data

//  Bit definition for ADC_CSR register
#define ADC_CSR_AWD1_Pos	(0U)
#define ADC_CSR_AWD1_Msk	(0x1U << ADC_CSR_AWD1_Pos)			// 0x00000001
#define ADC_CSR_AWD1		ADC_CSR_AWD1_Msk			// ADC1 Analog watchdog flag
#define ADC_CSR_EOC1_Pos	(1U)
#define ADC_CSR_EOC1_Msk	(0x1U << ADC_CSR_EOC1_Pos)			// 0x00000002
#define ADC_CSR_EOC1		ADC_CSR_EOC1_Msk			// ADC1 End of conversion
#define ADC_CSR_JEOC1_Pos	(2U)
#define ADC_CSR_JEOC1_Msk	(0x1U << ADC_CSR_JEOC1_Pos)			// 0x00000004
#define ADC_CSR_JEOC1		ADC_CSR_JEOC1_Msk			// ADC1 Injected channel end of conversion
#define ADC_CSR_JSTRT1_Pos	(3U)
#define ADC_CSR_JSTRT1_Msk	(0x1U << ADC_CSR_JSTRT1_Pos)			// 0x00000008
#define ADC_CSR_JSTRT1		ADC_CSR_JSTRT1_Msk			// ADC1 Injected channel Start flag
#define ADC_CSR_STRT1_Pos	(4U)
#define ADC_CSR_STRT1_Msk	(0x1U << ADC_CSR_STRT1_Pos)			// 0x00000010
#define ADC_CSR_STRT1		ADC_CSR_STRT1_Msk			// ADC1 Regular channel Start flag
#define ADC_CSR_OVR1_Pos	(5U)
#define ADC_CSR_OVR1_Msk	(0x1U << ADC_CSR_OVR1_Pos)			// 0x00000020
#define ADC_CSR_OVR1		ADC_CSR_OVR1_Msk			// ADC1 DMA overrun  flag

// Legacy defines
#define  ADC_CSR_DOVR1			ADC_CSR_OVR1

//  Bit definition for ADC_CCR register
#define ADC_CCR_MULTI_Pos	(0U)
#define ADC_CCR_MULTI_Msk	(0x1FU << ADC_CCR_MULTI_Pos)			// 0x0000001F
#define ADC_CCR_MULTI		ADC_CCR_MULTI_Msk			// MULTI[4:0] bits (Multi-ADC mode selection)
#define ADC_CCR_MULTI_0		(0x01U << ADC_CCR_MULTI_Pos)			// 0x00000001
#define ADC_CCR_MULTI_1		(0x02U << ADC_CCR_MULTI_Pos)			// 0x00000002
#define ADC_CCR_MULTI_2		(0x04U << ADC_CCR_MULTI_Pos)			// 0x00000004
#define ADC_CCR_MULTI_3		(0x08U << ADC_CCR_MULTI_Pos)			// 0x00000008
#define ADC_CCR_MULTI_4		(0x10U << ADC_CCR_MULTI_Pos)			// 0x00000010
#define ADC_CCR_DELAY_Pos	(8U)
#define ADC_CCR_DELAY_Msk	(0xFU << ADC_CCR_DELAY_Pos)			// 0x00000F00
#define ADC_CCR_DELAY		ADC_CCR_DELAY_Msk			// DELAY[3:0] bits (Delay between 2 sampling phases)
#define ADC_CCR_DELAY_0		(0x1U << ADC_CCR_DELAY_Pos)			// 0x00000100
#define ADC_CCR_DELAY_1		(0x2U << ADC_CCR_DELAY_Pos)			// 0x00000200
#define ADC_CCR_DELAY_2		(0x4U << ADC_CCR_DELAY_Pos)			// 0x00000400
#define ADC_CCR_DELAY_3		(0x8U << ADC_CCR_DELAY_Pos)			// 0x00000800
#define ADC_CCR_DDS_Pos		(13U)
#define ADC_CCR_DDS_Msk		(0x1U << ADC_CCR_DDS_Pos)			// 0x00002000
#define ADC_CCR_DDS		ADC_CCR_DDS_Msk			// DMA disable selection (Multi-ADC mode)
#define ADC_CCR_DMA_Pos		(14U)
#define ADC_CCR_DMA_Msk		(0x3U << ADC_CCR_DMA_Pos)			// 0x0000C000
#define ADC_CCR_DMA		ADC_CCR_DMA_Msk			// DMA[1:0] bits (Direct Memory Access mode for multimode)
#define ADC_CCR_DMA_0		(0x1U << ADC_CCR_DMA_Pos)			// 0x00004000
#define ADC_CCR_DMA_1		(0x2U << ADC_CCR_DMA_Pos)			// 0x00008000
#define ADC_CCR_ADCPRE_Pos	(16U)
#define ADC_CCR_ADCPRE_Msk	(0x3U << ADC_CCR_ADCPRE_Pos)			// 0x00030000
#define ADC_CCR_ADCPRE		ADC_CCR_ADCPRE_Msk			// ADCPRE[1:0] bits (ADC prescaler)
#define ADC_CCR_ADCPRE_0	(0x1U << ADC_CCR_ADCPRE_Pos)			// 0x00010000
#define ADC_CCR_ADCPRE_1	(0x2U << ADC_CCR_ADCPRE_Pos)			// 0x00020000
#define ADC_CCR_VBATE_Pos	(22U)
#define ADC_CCR_VBATE_Msk	(0x1U << ADC_CCR_VBATE_Pos)			// 0x00400000
#define ADC_CCR_VBATE		ADC_CCR_VBATE_Msk			// VBAT Enable
#define ADC_CCR_TSVREFE_Pos	(23U)
#define ADC_CCR_TSVREFE_Msk	(0x1U << ADC_CCR_TSVREFE_Pos)			// 0x00800000
#define ADC_CCR_TSVREFE		ADC_CCR_TSVREFE_Msk			// Temperature Sensor and VREFINT Enable

//  Bit definition for ADC_CDR register
#define ADC_CDR_DATA1_Pos	(0U)
#define ADC_CDR_DATA1_Msk	(0xFFFFU << ADC_CDR_DATA1_Pos)			// 0x0000FFFF
#define ADC_CDR_DATA1		ADC_CDR_DATA1_Msk			// 1st data of a pair of regular conversions
#define ADC_CDR_DATA2_Pos	(16U)
#define ADC_CDR_DATA2_Msk	(0xFFFFU << ADC_CDR_DATA2_Pos)			// 0xFFFF0000
#define ADC_CDR_DATA2		ADC_CDR_DATA2_Msk			// 2nd data of a pair of regular conversions

// CRC calculation unit

//  Bit definition for CRC_DR register
#define CRC_DR_DR_Pos	(0U)
#define CRC_DR_DR_Msk	(0xFFFFFFFFU << CRC_DR_DR_Pos)			// 0xFFFFFFFF
#define CRC_DR_DR	CRC_DR_DR_Msk			// Data register bits

//  Bit definition for CRC_IDR register
#define CRC_IDR_IDR_Pos	(0U)
#define CRC_IDR_IDR_Msk	(0xFFU << CRC_IDR_IDR_Pos)			// 0x000000FF
#define CRC_IDR_IDR	CRC_IDR_IDR_Msk			// General-purpose 8-bit data register bits

//  Bit definition for CRC_CR register
#define CRC_CR_RESET_Pos	(0U)
#define CRC_CR_RESET_Msk	(0x1U << CRC_CR_RESET_Pos)			// 0x00000001
#define CRC_CR_RESET		CRC_CR_RESET_Msk			// RESET bit

// DMA Controller

//  Bits definition for DMA_SxCR register
#define DMA_SxCR_CHSEL_Pos	(25U)
#define DMA_SxCR_CHSEL_Msk	(0x7U << DMA_SxCR_CHSEL_Pos)			// 0x0E000000
#define DMA_SxCR_CHSEL		DMA_SxCR_CHSEL_Msk
#define DMA_SxCR_CHSEL_0	0x02000000U
#define DMA_SxCR_CHSEL_1	0x04000000U
#define DMA_SxCR_CHSEL_2	0x08000000U
#define DMA_SxCR_MBURST_Pos	(23U)
#define DMA_SxCR_MBURST_Msk	(0x3U << DMA_SxCR_MBURST_Pos)			// 0x01800000
#define DMA_SxCR_MBURST		DMA_SxCR_MBURST_Msk
#define DMA_SxCR_MBURST_0	(0x1U << DMA_SxCR_MBURST_Pos)			// 0x00800000
#define DMA_SxCR_MBURST_1	(0x2U << DMA_SxCR_MBURST_Pos)			// 0x01000000
#define DMA_SxCR_PBURST_Pos	(21U)
#define DMA_SxCR_PBURST_Msk	(0x3U << DMA_SxCR_PBURST_Pos)			// 0x00600000
#define DMA_SxCR_PBURST		DMA_SxCR_PBURST_Msk
#define DMA_SxCR_PBURST_0	(0x1U << DMA_SxCR_PBURST_Pos)			// 0x00200000
#define DMA_SxCR_PBURST_1	(0x2U << DMA_SxCR_PBURST_Pos)			// 0x00400000
#define DMA_SxCR_CT_Pos		(19U)
#define DMA_SxCR_CT_Msk		(0x1U << DMA_SxCR_CT_Pos)			// 0x00080000
#define DMA_SxCR_CT		DMA_SxCR_CT_Msk
#define DMA_SxCR_DBM_Pos	(18U)
#define DMA_SxCR_DBM_Msk	(0x1U << DMA_SxCR_DBM_Pos)			// 0x00040000
#define DMA_SxCR_DBM		DMA_SxCR_DBM_Msk
#define DMA_SxCR_PL_Pos		(16U)
#define DMA_SxCR_PL_Msk		(0x3U << DMA_SxCR_PL_Pos)			// 0x00030000
#define DMA_SxCR_PL		DMA_SxCR_PL_Msk
#define DMA_SxCR_PL_0		(0x1U << DMA_SxCR_PL_Pos)			// 0x00010000
#define DMA_SxCR_PL_1		(0x2U << DMA_SxCR_PL_Pos)			// 0x00020000
#define DMA_SxCR_PINCOS_Pos	(15U)
#define DMA_SxCR_PINCOS_Msk	(0x1U << DMA_SxCR_PINCOS_Pos)			// 0x00008000
#define DMA_SxCR_PINCOS		DMA_SxCR_PINCOS_Msk
#define DMA_SxCR_MSIZE_Pos	(13U)
#define DMA_SxCR_MSIZE_Msk	(0x3U << DMA_SxCR_MSIZE_Pos)			// 0x00006000
#define DMA_SxCR_MSIZE		DMA_SxCR_MSIZE_Msk
#define DMA_SxCR_MSIZE_0	(0x1U << DMA_SxCR_MSIZE_Pos)			// 0x00002000
#define DMA_SxCR_MSIZE_1	(0x2U << DMA_SxCR_MSIZE_Pos)			// 0x00004000
#define DMA_SxCR_PSIZE_Pos	(11U)
#define DMA_SxCR_PSIZE_Msk	(0x3U << DMA_SxCR_PSIZE_Pos)			// 0x00001800
#define DMA_SxCR_PSIZE		DMA_SxCR_PSIZE_Msk
#define DMA_SxCR_PSIZE_0	(0x1U << DMA_SxCR_PSIZE_Pos)			// 0x00000800
#define DMA_SxCR_PSIZE_1	(0x2U << DMA_SxCR_PSIZE_Pos)			// 0x00001000
#define DMA_SxCR_MINC_Pos	(10U)
#define DMA_SxCR_MINC_Msk	(0x1U << DMA_SxCR_MINC_Pos)			// 0x00000400
#define DMA_SxCR_MINC		DMA_SxCR_MINC_Msk
#define DMA_SxCR_PINC_Pos	(9U)
#define DMA_SxCR_PINC_Msk	(0x1U << DMA_SxCR_PINC_Pos)			// 0x00000200
#define DMA_SxCR_PINC		DMA_SxCR_PINC_Msk
#define DMA_SxCR_CIRC_Pos	(8U)
#define DMA_SxCR_CIRC_Msk	(0x1U << DMA_SxCR_CIRC_Pos)			// 0x00000100
#define DMA_SxCR_CIRC		DMA_SxCR_CIRC_Msk
#define DMA_SxCR_DIR_Pos	(6U)
#define DMA_SxCR_DIR_Msk	(0x3U << DMA_SxCR_DIR_Pos)			// 0x000000C0
#define DMA_SxCR_DIR		DMA_SxCR_DIR_Msk
#define DMA_SxCR_DIR_0		(0x1U << DMA_SxCR_DIR_Pos)			// 0x00000040
#define DMA_SxCR_DIR_1		(0x2U << DMA_SxCR_DIR_Pos)			// 0x00000080
#define DMA_SxCR_PFCTRL_Pos	(5U)
#define DMA_SxCR_PFCTRL_Msk	(0x1U << DMA_SxCR_PFCTRL_Pos)			// 0x00000020
#define DMA_SxCR_PFCTRL		DMA_SxCR_PFCTRL_Msk
#define DMA_SxCR_TCIE_Pos	(4U)
#define DMA_SxCR_TCIE_Msk	(0x1U << DMA_SxCR_TCIE_Pos)			// 0x00000010
#define DMA_SxCR_TCIE		DMA_SxCR_TCIE_Msk
#define DMA_SxCR_HTIE_Pos	(3U)
#define DMA_SxCR_HTIE_Msk	(0x1U << DMA_SxCR_HTIE_Pos)			// 0x00000008
#define DMA_SxCR_HTIE		DMA_SxCR_HTIE_Msk
#define DMA_SxCR_TEIE_Pos	(2U)
#define DMA_SxCR_TEIE_Msk	(0x1U << DMA_SxCR_TEIE_Pos)			// 0x00000004
#define DMA_SxCR_TEIE		DMA_SxCR_TEIE_Msk
#define DMA_SxCR_DMEIE_Pos	(1U)
#define DMA_SxCR_DMEIE_Msk	(0x1U << DMA_SxCR_DMEIE_Pos)			// 0x00000002
#define DMA_SxCR_DMEIE		DMA_SxCR_DMEIE_Msk
#define DMA_SxCR_EN_Pos		(0U)
#define DMA_SxCR_EN_Msk		(0x1U << DMA_SxCR_EN_Pos)			// 0x00000001
#define DMA_SxCR_EN		DMA_SxCR_EN_Msk

// Legacy defines
#define DMA_SxCR_ACK_Pos	(20U)
#define DMA_SxCR_ACK_Msk	(0x1U << DMA_SxCR_ACK_Pos)			// 0x00100000
#define DMA_SxCR_ACK		DMA_SxCR_ACK_Msk

//  Bits definition for DMA_SxCNDTR register
#define DMA_SxNDT_Pos		(0U)
#define DMA_SxNDT_Msk		(0xFFFFU << DMA_SxNDT_Pos)			// 0x0000FFFF
#define DMA_SxNDT		DMA_SxNDT_Msk
#define DMA_SxNDT_0		(0x0001U << DMA_SxNDT_Pos)			// 0x00000001
#define DMA_SxNDT_1		(0x0002U << DMA_SxNDT_Pos)			// 0x00000002
#define DMA_SxNDT_2		(0x0004U << DMA_SxNDT_Pos)			// 0x00000004
#define DMA_SxNDT_3		(0x0008U << DMA_SxNDT_Pos)			// 0x00000008
#define DMA_SxNDT_4		(0x0010U << DMA_SxNDT_Pos)			// 0x00000010
#define DMA_SxNDT_5		(0x0020U << DMA_SxNDT_Pos)			// 0x00000020
#define DMA_SxNDT_6		(0x0040U << DMA_SxNDT_Pos)			// 0x00000040
#define DMA_SxNDT_7		(0x0080U << DMA_SxNDT_Pos)			// 0x00000080
#define DMA_SxNDT_8		(0x0100U << DMA_SxNDT_Pos)			// 0x00000100
#define DMA_SxNDT_9		(0x0200U << DMA_SxNDT_Pos)			// 0x00000200
#define DMA_SxNDT_10		(0x0400U << DMA_SxNDT_Pos)			// 0x00000400
#define DMA_SxNDT_11		(0x0800U << DMA_SxNDT_Pos)			// 0x00000800
#define DMA_SxNDT_12		(0x1000U << DMA_SxNDT_Pos)			// 0x00001000
#define DMA_SxNDT_13		(0x2000U << DMA_SxNDT_Pos)			// 0x00002000
#define DMA_SxNDT_14		(0x4000U << DMA_SxNDT_Pos)			// 0x00004000
#define DMA_SxNDT_15		(0x8000U << DMA_SxNDT_Pos)			// 0x00008000

//  Bits definition for DMA_SxFCR register
#define DMA_SxFCR_FEIE_Pos	(7U)
#define DMA_SxFCR_FEIE_Msk	(0x1U << DMA_SxFCR_FEIE_Pos)			// 0x00000080
#define DMA_SxFCR_FEIE		DMA_SxFCR_FEIE_Msk
#define DMA_SxFCR_FS_Pos	(3U)
#define DMA_SxFCR_FS_Msk	(0x7U << DMA_SxFCR_FS_Pos)			// 0x00000038
#define DMA_SxFCR_FS		DMA_SxFCR_FS_Msk
#define DMA_SxFCR_FS_0		(0x1U << DMA_SxFCR_FS_Pos)			// 0x00000008
#define DMA_SxFCR_FS_1		(0x2U << DMA_SxFCR_FS_Pos)			// 0x00000010
#define DMA_SxFCR_FS_2		(0x4U << DMA_SxFCR_FS_Pos)			// 0x00000020
#define DMA_SxFCR_DMDIS_Pos	(2U)
#define DMA_SxFCR_DMDIS_Msk	(0x1U << DMA_SxFCR_DMDIS_Pos)			// 0x00000004
#define DMA_SxFCR_DMDIS		DMA_SxFCR_DMDIS_Msk
#define DMA_SxFCR_FTH_Pos	(0U)
#define DMA_SxFCR_FTH_Msk	(0x3U << DMA_SxFCR_FTH_Pos)			// 0x00000003
#define DMA_SxFCR_FTH		DMA_SxFCR_FTH_Msk
#define DMA_SxFCR_FTH_0		(0x1U << DMA_SxFCR_FTH_Pos)			// 0x00000001
#define DMA_SxFCR_FTH_1		(0x2U << DMA_SxFCR_FTH_Pos)			// 0x00000002

//  Bits definition for DMA_LISR register
#define DMA_LISR_TCIF3_Pos	(27U)
#define DMA_LISR_TCIF3_Msk	(0x1U << DMA_LISR_TCIF3_Pos)			// 0x08000000
#define DMA_LISR_TCIF3		DMA_LISR_TCIF3_Msk
#define DMA_LISR_HTIF3_Pos	(26U)
#define DMA_LISR_HTIF3_Msk	(0x1U << DMA_LISR_HTIF3_Pos)			// 0x04000000
#define DMA_LISR_HTIF3		DMA_LISR_HTIF3_Msk
#define DMA_LISR_TEIF3_Pos	(25U)
#define DMA_LISR_TEIF3_Msk	(0x1U << DMA_LISR_TEIF3_Pos)			// 0x02000000
#define DMA_LISR_TEIF3		DMA_LISR_TEIF3_Msk
#define DMA_LISR_DMEIF3_Pos	(24U)
#define DMA_LISR_DMEIF3_Msk	(0x1U << DMA_LISR_DMEIF3_Pos)			// 0x01000000
#define DMA_LISR_DMEIF3		DMA_LISR_DMEIF3_Msk
#define DMA_LISR_FEIF3_Pos	(22U)
#define DMA_LISR_FEIF3_Msk	(0x1U << DMA_LISR_FEIF3_Pos)			// 0x00400000
#define DMA_LISR_FEIF3		DMA_LISR_FEIF3_Msk
#define DMA_LISR_TCIF2_Pos	(21U)
#define DMA_LISR_TCIF2_Msk	(0x1U << DMA_LISR_TCIF2_Pos)			// 0x00200000
#define DMA_LISR_TCIF2		DMA_LISR_TCIF2_Msk
#define DMA_LISR_HTIF2_Pos	(20U)
#define DMA_LISR_HTIF2_Msk	(0x1U << DMA_LISR_HTIF2_Pos)			// 0x00100000
#define DMA_LISR_HTIF2		DMA_LISR_HTIF2_Msk
#define DMA_LISR_TEIF2_Pos	(19U)
#define DMA_LISR_TEIF2_Msk	(0x1U << DMA_LISR_TEIF2_Pos)			// 0x00080000
#define DMA_LISR_TEIF2		DMA_LISR_TEIF2_Msk
#define DMA_LISR_DMEIF2_Pos	(18U)
#define DMA_LISR_DMEIF2_Msk	(0x1U << DMA_LISR_DMEIF2_Pos)			// 0x00040000
#define DMA_LISR_DMEIF2		DMA_LISR_DMEIF2_Msk
#define DMA_LISR_FEIF2_Pos	(16U)
#define DMA_LISR_FEIF2_Msk	(0x1U << DMA_LISR_FEIF2_Pos)			// 0x00010000
#define DMA_LISR_FEIF2		DMA_LISR_FEIF2_Msk
#define DMA_LISR_TCIF1_Pos	(11U)
#define DMA_LISR_TCIF1_Msk	(0x1U << DMA_LISR_TCIF1_Pos)			// 0x00000800
#define DMA_LISR_TCIF1		DMA_LISR_TCIF1_Msk
#define DMA_LISR_HTIF1_Pos	(10U)
#define DMA_LISR_HTIF1_Msk	(0x1U << DMA_LISR_HTIF1_Pos)			// 0x00000400
#define DMA_LISR_HTIF1		DMA_LISR_HTIF1_Msk
#define DMA_LISR_TEIF1_Pos	(9U)
#define DMA_LISR_TEIF1_Msk	(0x1U << DMA_LISR_TEIF1_Pos)			// 0x00000200
#define DMA_LISR_TEIF1		DMA_LISR_TEIF1_Msk
#define DMA_LISR_DMEIF1_Pos	(8U)
#define DMA_LISR_DMEIF1_Msk	(0x1U << DMA_LISR_DMEIF1_Pos)			// 0x00000100
#define DMA_LISR_DMEIF1		DMA_LISR_DMEIF1_Msk
#define DMA_LISR_FEIF1_Pos	(6U)
#define DMA_LISR_FEIF1_Msk	(0x1U << DMA_LISR_FEIF1_Pos)			// 0x00000040
#define DMA_LISR_FEIF1		DMA_LISR_FEIF1_Msk
#define DMA_LISR_TCIF0_Pos	(5U)
#define DMA_LISR_TCIF0_Msk	(0x1U << DMA_LISR_TCIF0_Pos)			// 0x00000020
#define DMA_LISR_TCIF0		DMA_LISR_TCIF0_Msk
#define DMA_LISR_HTIF0_Pos	(4U)
#define DMA_LISR_HTIF0_Msk	(0x1U << DMA_LISR_HTIF0_Pos)			// 0x00000010
#define DMA_LISR_HTIF0		DMA_LISR_HTIF0_Msk
#define DMA_LISR_TEIF0_Pos	(3U)
#define DMA_LISR_TEIF0_Msk	(0x1U << DMA_LISR_TEIF0_Pos)			// 0x00000008
#define DMA_LISR_TEIF0		DMA_LISR_TEIF0_Msk
#define DMA_LISR_DMEIF0_Pos	(2U)
#define DMA_LISR_DMEIF0_Msk	(0x1U << DMA_LISR_DMEIF0_Pos)			// 0x00000004
#define DMA_LISR_DMEIF0		DMA_LISR_DMEIF0_Msk
#define DMA_LISR_FEIF0_Pos	(0U)
#define DMA_LISR_FEIF0_Msk	(0x1U << DMA_LISR_FEIF0_Pos)			// 0x00000001
#define DMA_LISR_FEIF0		DMA_LISR_FEIF0_Msk

//  Bits definition for DMA_HISR register
#define DMA_HISR_TCIF7_Pos	(27U)
#define DMA_HISR_TCIF7_Msk	(0x1U << DMA_HISR_TCIF7_Pos)			// 0x08000000
#define DMA_HISR_TCIF7		DMA_HISR_TCIF7_Msk
#define DMA_HISR_HTIF7_Pos	(26U)
#define DMA_HISR_HTIF7_Msk	(0x1U << DMA_HISR_HTIF7_Pos)			// 0x04000000
#define DMA_HISR_HTIF7		DMA_HISR_HTIF7_Msk
#define DMA_HISR_TEIF7_Pos	(25U)
#define DMA_HISR_TEIF7_Msk	(0x1U << DMA_HISR_TEIF7_Pos)			// 0x02000000
#define DMA_HISR_TEIF7		DMA_HISR_TEIF7_Msk
#define DMA_HISR_DMEIF7_Pos	(24U)
#define DMA_HISR_DMEIF7_Msk	(0x1U << DMA_HISR_DMEIF7_Pos)			// 0x01000000
#define DMA_HISR_DMEIF7		DMA_HISR_DMEIF7_Msk
#define DMA_HISR_FEIF7_Pos	(22U)
#define DMA_HISR_FEIF7_Msk	(0x1U << DMA_HISR_FEIF7_Pos)			// 0x00400000
#define DMA_HISR_FEIF7		DMA_HISR_FEIF7_Msk
#define DMA_HISR_TCIF6_Pos	(21U)
#define DMA_HISR_TCIF6_Msk	(0x1U << DMA_HISR_TCIF6_Pos)			// 0x00200000
#define DMA_HISR_TCIF6		DMA_HISR_TCIF6_Msk
#define DMA_HISR_HTIF6_Pos	(20U)
#define DMA_HISR_HTIF6_Msk	(0x1U << DMA_HISR_HTIF6_Pos)			// 0x00100000
#define DMA_HISR_HTIF6		DMA_HISR_HTIF6_Msk
#define DMA_HISR_TEIF6_Pos	(19U)
#define DMA_HISR_TEIF6_Msk	(0x1U << DMA_HISR_TEIF6_Pos)			// 0x00080000
#define DMA_HISR_TEIF6		DMA_HISR_TEIF6_Msk
#define DMA_HISR_DMEIF6_Pos	(18U)
#define DMA_HISR_DMEIF6_Msk	(0x1U << DMA_HISR_DMEIF6_Pos)			// 0x00040000
#define DMA_HISR_DMEIF6		DMA_HISR_DMEIF6_Msk
#define DMA_HISR_FEIF6_Pos	(16U)
#define DMA_HISR_FEIF6_Msk	(0x1U << DMA_HISR_FEIF6_Pos)			// 0x00010000
#define DMA_HISR_FEIF6		DMA_HISR_FEIF6_Msk
#define DMA_HISR_TCIF5_Pos	(11U)
#define DMA_HISR_TCIF5_Msk	(0x1U << DMA_HISR_TCIF5_Pos)			// 0x00000800
#define DMA_HISR_TCIF5		DMA_HISR_TCIF5_Msk
#define DMA_HISR_HTIF5_Pos	(10U)
#define DMA_HISR_HTIF5_Msk	(0x1U << DMA_HISR_HTIF5_Pos)			// 0x00000400
#define DMA_HISR_HTIF5		DMA_HISR_HTIF5_Msk
#define DMA_HISR_TEIF5_Pos	(9U)
#define DMA_HISR_TEIF5_Msk	(0x1U << DMA_HISR_TEIF5_Pos)			// 0x00000200
#define DMA_HISR_TEIF5		DMA_HISR_TEIF5_Msk
#define DMA_HISR_DMEIF5_Pos	(8U)
#define DMA_HISR_DMEIF5_Msk	(0x1U << DMA_HISR_DMEIF5_Pos)			// 0x00000100
#define DMA_HISR_DMEIF5		DMA_HISR_DMEIF5_Msk
#define DMA_HISR_FEIF5_Pos	(6U)
#define DMA_HISR_FEIF5_Msk	(0x1U << DMA_HISR_FEIF5_Pos)			// 0x00000040
#define DMA_HISR_FEIF5		DMA_HISR_FEIF5_Msk
#define DMA_HISR_TCIF4_Pos	(5U)
#define DMA_HISR_TCIF4_Msk	(0x1U << DMA_HISR_TCIF4_Pos)			// 0x00000020
#define DMA_HISR_TCIF4		DMA_HISR_TCIF4_Msk
#define DMA_HISR_HTIF4_Pos	(4U)
#define DMA_HISR_HTIF4_Msk	(0x1U << DMA_HISR_HTIF4_Pos)			// 0x00000010
#define DMA_HISR_HTIF4		DMA_HISR_HTIF4_Msk
#define DMA_HISR_TEIF4_Pos	(3U)
#define DMA_HISR_TEIF4_Msk	(0x1U << DMA_HISR_TEIF4_Pos)			// 0x00000008
#define DMA_HISR_TEIF4		DMA_HISR_TEIF4_Msk
#define DMA_HISR_DMEIF4_Pos	(2U)
#define DMA_HISR_DMEIF4_Msk	(0x1U << DMA_HISR_DMEIF4_Pos)			// 0x00000004
#define DMA_HISR_DMEIF4		DMA_HISR_DMEIF4_Msk
#define DMA_HISR_FEIF4_Pos	(0U)
#define DMA_HISR_FEIF4_Msk	(0x1U << DMA_HISR_FEIF4_Pos)			// 0x00000001
#define DMA_HISR_FEIF4		DMA_HISR_FEIF4_Msk

//  Bits definition for DMA_LIFCR register
#define DMA_LIFCR_CTCIF3_Pos	(27U)
#define DMA_LIFCR_CTCIF3_Msk	(0x1U << DMA_LIFCR_CTCIF3_Pos)			// 0x08000000
#define DMA_LIFCR_CTCIF3	DMA_LIFCR_CTCIF3_Msk
#define DMA_LIFCR_CHTIF3_Pos	(26U)
#define DMA_LIFCR_CHTIF3_Msk	(0x1U << DMA_LIFCR_CHTIF3_Pos)			// 0x04000000
#define DMA_LIFCR_CHTIF3	DMA_LIFCR_CHTIF3_Msk
#define DMA_LIFCR_CTEIF3_Pos	(25U)
#define DMA_LIFCR_CTEIF3_Msk	(0x1U << DMA_LIFCR_CTEIF3_Pos)			// 0x02000000
#define DMA_LIFCR_CTEIF3	DMA_LIFCR_CTEIF3_Msk
#define DMA_LIFCR_CDMEIF3_Pos	(24U)
#define DMA_LIFCR_CDMEIF3_Msk	(0x1U << DMA_LIFCR_CDMEIF3_Pos)			// 0x01000000
#define DMA_LIFCR_CDMEIF3	DMA_LIFCR_CDMEIF3_Msk
#define DMA_LIFCR_CFEIF3_Pos	(22U)
#define DMA_LIFCR_CFEIF3_Msk	(0x1U << DMA_LIFCR_CFEIF3_Pos)			// 0x00400000
#define DMA_LIFCR_CFEIF3	DMA_LIFCR_CFEIF3_Msk
#define DMA_LIFCR_CTCIF2_Pos	(21U)
#define DMA_LIFCR_CTCIF2_Msk	(0x1U << DMA_LIFCR_CTCIF2_Pos)			// 0x00200000
#define DMA_LIFCR_CTCIF2	DMA_LIFCR_CTCIF2_Msk
#define DMA_LIFCR_CHTIF2_Pos	(20U)
#define DMA_LIFCR_CHTIF2_Msk	(0x1U << DMA_LIFCR_CHTIF2_Pos)			// 0x00100000
#define DMA_LIFCR_CHTIF2	DMA_LIFCR_CHTIF2_Msk
#define DMA_LIFCR_CTEIF2_Pos	(19U)
#define DMA_LIFCR_CTEIF2_Msk	(0x1U << DMA_LIFCR_CTEIF2_Pos)			// 0x00080000
#define DMA_LIFCR_CTEIF2	DMA_LIFCR_CTEIF2_Msk
#define DMA_LIFCR_CDMEIF2_Pos	(18U)
#define DMA_LIFCR_CDMEIF2_Msk	(0x1U << DMA_LIFCR_CDMEIF2_Pos)			// 0x00040000
#define DMA_LIFCR_CDMEIF2	DMA_LIFCR_CDMEIF2_Msk
#define DMA_LIFCR_CFEIF2_Pos	(16U)
#define DMA_LIFCR_CFEIF2_Msk	(0x1U << DMA_LIFCR_CFEIF2_Pos)			// 0x00010000
#define DMA_LIFCR_CFEIF2	DMA_LIFCR_CFEIF2_Msk
#define DMA_LIFCR_CTCIF1_Pos	(11U)
#define DMA_LIFCR_CTCIF1_Msk	(0x1U << DMA_LIFCR_CTCIF1_Pos)			// 0x00000800
#define DMA_LIFCR_CTCIF1	DMA_LIFCR_CTCIF1_Msk
#define DMA_LIFCR_CHTIF1_Pos	(10U)
#define DMA_LIFCR_CHTIF1_Msk	(0x1U << DMA_LIFCR_CHTIF1_Pos)			// 0x00000400
#define DMA_LIFCR_CHTIF1	DMA_LIFCR_CHTIF1_Msk
#define DMA_LIFCR_CTEIF1_Pos	(9U)
#define DMA_LIFCR_CTEIF1_Msk	(0x1U << DMA_LIFCR_CTEIF1_Pos)			// 0x00000200
#define DMA_LIFCR_CTEIF1	DMA_LIFCR_CTEIF1_Msk
#define DMA_LIFCR_CDMEIF1_Pos	(8U)
#define DMA_LIFCR_CDMEIF1_Msk	(0x1U << DMA_LIFCR_CDMEIF1_Pos)			// 0x00000100
#define DMA_LIFCR_CDMEIF1	DMA_LIFCR_CDMEIF1_Msk
#define DMA_LIFCR_CFEIF1_Pos	(6U)
#define DMA_LIFCR_CFEIF1_Msk	(0x1U << DMA_LIFCR_CFEIF1_Pos)			// 0x00000040
#define DMA_LIFCR_CFEIF1	DMA_LIFCR_CFEIF1_Msk
#define DMA_LIFCR_CTCIF0_Pos	(5U)
#define DMA_LIFCR_CTCIF0_Msk	(0x1U << DMA_LIFCR_CTCIF0_Pos)			// 0x00000020
#define DMA_LIFCR_CTCIF0	DMA_LIFCR_CTCIF0_Msk
#define DMA_LIFCR_CHTIF0_Pos	(4U)
#define DMA_LIFCR_CHTIF0_Msk	(0x1U << DMA_LIFCR_CHTIF0_Pos)			// 0x00000010
#define DMA_LIFCR_CHTIF0	DMA_LIFCR_CHTIF0_Msk
#define DMA_LIFCR_CTEIF0_Pos	(3U)
#define DMA_LIFCR_CTEIF0_Msk	(0x1U << DMA_LIFCR_CTEIF0_Pos)			// 0x00000008
#define DMA_LIFCR_CTEIF0	DMA_LIFCR_CTEIF0_Msk
#define DMA_LIFCR_CDMEIF0_Pos	(2U)
#define DMA_LIFCR_CDMEIF0_Msk	(0x1U << DMA_LIFCR_CDMEIF0_Pos)			// 0x00000004
#define DMA_LIFCR_CDMEIF0	DMA_LIFCR_CDMEIF0_Msk
#define DMA_LIFCR_CFEIF0_Pos	(0U)
#define DMA_LIFCR_CFEIF0_Msk	(0x1U << DMA_LIFCR_CFEIF0_Pos)			// 0x00000001
#define DMA_LIFCR_CFEIF0	DMA_LIFCR_CFEIF0_Msk

//  Bits definition for DMA_HIFCR  register
#define DMA_HIFCR_CTCIF7_Pos	(27U)
#define DMA_HIFCR_CTCIF7_Msk	(0x1U << DMA_HIFCR_CTCIF7_Pos)			// 0x08000000
#define DMA_HIFCR_CTCIF7	DMA_HIFCR_CTCIF7_Msk
#define DMA_HIFCR_CHTIF7_Pos	(26U)
#define DMA_HIFCR_CHTIF7_Msk	(0x1U << DMA_HIFCR_CHTIF7_Pos)			// 0x04000000
#define DMA_HIFCR_CHTIF7	DMA_HIFCR_CHTIF7_Msk
#define DMA_HIFCR_CTEIF7_Pos	(25U)
#define DMA_HIFCR_CTEIF7_Msk	(0x1U << DMA_HIFCR_CTEIF7_Pos)			// 0x02000000
#define DMA_HIFCR_CTEIF7	DMA_HIFCR_CTEIF7_Msk
#define DMA_HIFCR_CDMEIF7_Pos	(24U)
#define DMA_HIFCR_CDMEIF7_Msk	(0x1U << DMA_HIFCR_CDMEIF7_Pos)			// 0x01000000
#define DMA_HIFCR_CDMEIF7	DMA_HIFCR_CDMEIF7_Msk
#define DMA_HIFCR_CFEIF7_Pos	(22U)
#define DMA_HIFCR_CFEIF7_Msk	(0x1U << DMA_HIFCR_CFEIF7_Pos)			// 0x00400000
#define DMA_HIFCR_CFEIF7	DMA_HIFCR_CFEIF7_Msk
#define DMA_HIFCR_CTCIF6_Pos	(21U)
#define DMA_HIFCR_CTCIF6_Msk	(0x1U << DMA_HIFCR_CTCIF6_Pos)			// 0x00200000
#define DMA_HIFCR_CTCIF6	DMA_HIFCR_CTCIF6_Msk
#define DMA_HIFCR_CHTIF6_Pos	(20U)
#define DMA_HIFCR_CHTIF6_Msk	(0x1U << DMA_HIFCR_CHTIF6_Pos)			// 0x00100000
#define DMA_HIFCR_CHTIF6	DMA_HIFCR_CHTIF6_Msk
#define DMA_HIFCR_CTEIF6_Pos	(19U)
#define DMA_HIFCR_CTEIF6_Msk	(0x1U << DMA_HIFCR_CTEIF6_Pos)			// 0x00080000
#define DMA_HIFCR_CTEIF6	DMA_HIFCR_CTEIF6_Msk
#define DMA_HIFCR_CDMEIF6_Pos	(18U)
#define DMA_HIFCR_CDMEIF6_Msk	(0x1U << DMA_HIFCR_CDMEIF6_Pos)			// 0x00040000
#define DMA_HIFCR_CDMEIF6	DMA_HIFCR_CDMEIF6_Msk
#define DMA_HIFCR_CFEIF6_Pos	(16U)
#define DMA_HIFCR_CFEIF6_Msk	(0x1U << DMA_HIFCR_CFEIF6_Pos)			// 0x00010000
#define DMA_HIFCR_CFEIF6	DMA_HIFCR_CFEIF6_Msk
#define DMA_HIFCR_CTCIF5_Pos	(11U)
#define DMA_HIFCR_CTCIF5_Msk	(0x1U << DMA_HIFCR_CTCIF5_Pos)			// 0x00000800
#define DMA_HIFCR_CTCIF5	DMA_HIFCR_CTCIF5_Msk
#define DMA_HIFCR_CHTIF5_Pos	(10U)
#define DMA_HIFCR_CHTIF5_Msk	(0x1U << DMA_HIFCR_CHTIF5_Pos)			// 0x00000400
#define DMA_HIFCR_CHTIF5	DMA_HIFCR_CHTIF5_Msk
#define DMA_HIFCR_CTEIF5_Pos	(9U)
#define DMA_HIFCR_CTEIF5_Msk	(0x1U << DMA_HIFCR_CTEIF5_Pos)			// 0x00000200
#define DMA_HIFCR_CTEIF5	DMA_HIFCR_CTEIF5_Msk
#define DMA_HIFCR_CDMEIF5_Pos	(8U)
#define DMA_HIFCR_CDMEIF5_Msk	(0x1U << DMA_HIFCR_CDMEIF5_Pos)			// 0x00000100
#define DMA_HIFCR_CDMEIF5	DMA_HIFCR_CDMEIF5_Msk
#define DMA_HIFCR_CFEIF5_Pos	(6U)
#define DMA_HIFCR_CFEIF5_Msk	(0x1U << DMA_HIFCR_CFEIF5_Pos)			// 0x00000040
#define DMA_HIFCR_CFEIF5	DMA_HIFCR_CFEIF5_Msk
#define DMA_HIFCR_CTCIF4_Pos	(5U)
#define DMA_HIFCR_CTCIF4_Msk	(0x1U << DMA_HIFCR_CTCIF4_Pos)			// 0x00000020
#define DMA_HIFCR_CTCIF4	DMA_HIFCR_CTCIF4_Msk
#define DMA_HIFCR_CHTIF4_Pos	(4U)
#define DMA_HIFCR_CHTIF4_Msk	(0x1U << DMA_HIFCR_CHTIF4_Pos)			// 0x00000010
#define DMA_HIFCR_CHTIF4	DMA_HIFCR_CHTIF4_Msk
#define DMA_HIFCR_CTEIF4_Pos	(3U)
#define DMA_HIFCR_CTEIF4_Msk	(0x1U << DMA_HIFCR_CTEIF4_Pos)			// 0x00000008
#define DMA_HIFCR_CTEIF4	DMA_HIFCR_CTEIF4_Msk
#define DMA_HIFCR_CDMEIF4_Pos	(2U)
#define DMA_HIFCR_CDMEIF4_Msk	(0x1U << DMA_HIFCR_CDMEIF4_Pos)			// 0x00000004
#define DMA_HIFCR_CDMEIF4	DMA_HIFCR_CDMEIF4_Msk
#define DMA_HIFCR_CFEIF4_Pos	(0U)
#define DMA_HIFCR_CFEIF4_Msk	(0x1U << DMA_HIFCR_CFEIF4_Pos)			// 0x00000001
#define DMA_HIFCR_CFEIF4	DMA_HIFCR_CFEIF4_Msk

//  Bit definition for DMA_SxPAR register
#define DMA_SxPAR_PA_Pos	(0U)
#define DMA_SxPAR_PA_Msk	(0xFFFFFFFFU << DMA_SxPAR_PA_Pos)			// 0xFFFFFFFF
#define DMA_SxPAR_PA		DMA_SxPAR_PA_Msk			// Peripheral Address

//  Bit definition for DMA_SxM0AR register
#define DMA_SxM0AR_M0A_Pos	(0U)
#define DMA_SxM0AR_M0A_Msk	(0xFFFFFFFFU << DMA_SxM0AR_M0A_Pos)			// 0xFFFFFFFF
#define DMA_SxM0AR_M0A		DMA_SxM0AR_M0A_Msk			// Memory Address

//  Bit definition for DMA_SxM1AR register
#define DMA_SxM1AR_M1A_Pos	(0U)
#define DMA_SxM1AR_M1A_Msk	(0xFFFFFFFFU << DMA_SxM1AR_M1A_Pos)			// 0xFFFFFFFF
#define DMA_SxM1AR_M1A		DMA_SxM1AR_M1A_Msk			// Memory Address

// External Interrupt/Event Controller
//  Bit definition for EXTI_IMR register
#define EXTI_IMR_MR0_Pos	(0U)
#define EXTI_IMR_MR0_Msk	(0x1U << EXTI_IMR_MR0_Pos)			// 0x00000001
#define EXTI_IMR_MR0		EXTI_IMR_MR0_Msk			// Interrupt Mask on line 0
#define EXTI_IMR_MR1_Pos	(1U)
#define EXTI_IMR_MR1_Msk	(0x1U << EXTI_IMR_MR1_Pos)			// 0x00000002
#define EXTI_IMR_MR1		EXTI_IMR_MR1_Msk			// Interrupt Mask on line 1
#define EXTI_IMR_MR2_Pos	(2U)
#define EXTI_IMR_MR2_Msk	(0x1U << EXTI_IMR_MR2_Pos)			// 0x00000004
#define EXTI_IMR_MR2		EXTI_IMR_MR2_Msk			// Interrupt Mask on line 2
#define EXTI_IMR_MR3_Pos	(3U)
#define EXTI_IMR_MR3_Msk	(0x1U << EXTI_IMR_MR3_Pos)			// 0x00000008
#define EXTI_IMR_MR3		EXTI_IMR_MR3_Msk			// Interrupt Mask on line 3
#define EXTI_IMR_MR4_Pos	(4U)
#define EXTI_IMR_MR4_Msk	(0x1U << EXTI_IMR_MR4_Pos)			// 0x00000010
#define EXTI_IMR_MR4		EXTI_IMR_MR4_Msk			// Interrupt Mask on line 4
#define EXTI_IMR_MR5_Pos	(5U)
#define EXTI_IMR_MR5_Msk	(0x1U << EXTI_IMR_MR5_Pos)			// 0x00000020
#define EXTI_IMR_MR5		EXTI_IMR_MR5_Msk			// Interrupt Mask on line 5
#define EXTI_IMR_MR6_Pos	(6U)
#define EXTI_IMR_MR6_Msk	(0x1U << EXTI_IMR_MR6_Pos)			// 0x00000040
#define EXTI_IMR_MR6		EXTI_IMR_MR6_Msk			// Interrupt Mask on line 6
#define EXTI_IMR_MR7_Pos	(7U)
#define EXTI_IMR_MR7_Msk	(0x1U << EXTI_IMR_MR7_Pos)			// 0x00000080
#define EXTI_IMR_MR7		EXTI_IMR_MR7_Msk			// Interrupt Mask on line 7
#define EXTI_IMR_MR8_Pos	(8U)
#define EXTI_IMR_MR8_Msk	(0x1U << EXTI_IMR_MR8_Pos)			// 0x00000100
#define EXTI_IMR_MR8		EXTI_IMR_MR8_Msk			// Interrupt Mask on line 8
#define EXTI_IMR_MR9_Pos	(9U)
#define EXTI_IMR_MR9_Msk	(0x1U << EXTI_IMR_MR9_Pos)			// 0x00000200
#define EXTI_IMR_MR9		EXTI_IMR_MR9_Msk			// Interrupt Mask on line 9
#define EXTI_IMR_MR10_Pos	(10U)
#define EXTI_IMR_MR10_Msk	(0x1U << EXTI_IMR_MR10_Pos)			// 0x00000400
#define EXTI_IMR_MR10		EXTI_IMR_MR10_Msk			// Interrupt Mask on line 10
#define EXTI_IMR_MR11_Pos	(11U)
#define EXTI_IMR_MR11_Msk	(0x1U << EXTI_IMR_MR11_Pos)			// 0x00000800
#define EXTI_IMR_MR11		EXTI_IMR_MR11_Msk			// Interrupt Mask on line 11
#define EXTI_IMR_MR12_Pos	(12U)
#define EXTI_IMR_MR12_Msk	(0x1U << EXTI_IMR_MR12_Pos)			// 0x00001000
#define EXTI_IMR_MR12		EXTI_IMR_MR12_Msk			// Interrupt Mask on line 12
#define EXTI_IMR_MR13_Pos	(13U)
#define EXTI_IMR_MR13_Msk	(0x1U << EXTI_IMR_MR13_Pos)			// 0x00002000
#define EXTI_IMR_MR13		EXTI_IMR_MR13_Msk			// Interrupt Mask on line 13
#define EXTI_IMR_MR14_Pos	(14U)
#define EXTI_IMR_MR14_Msk	(0x1U << EXTI_IMR_MR14_Pos)			// 0x00004000
#define EXTI_IMR_MR14		EXTI_IMR_MR14_Msk			// Interrupt Mask on line 14
#define EXTI_IMR_MR15_Pos	(15U)
#define EXTI_IMR_MR15_Msk	(0x1U << EXTI_IMR_MR15_Pos)			// 0x00008000
#define EXTI_IMR_MR15		EXTI_IMR_MR15_Msk			// Interrupt Mask on line 15
#define EXTI_IMR_MR16_Pos	(16U)
#define EXTI_IMR_MR16_Msk	(0x1U << EXTI_IMR_MR16_Pos)			// 0x00010000
#define EXTI_IMR_MR16		EXTI_IMR_MR16_Msk			// Interrupt Mask on line 16
#define EXTI_IMR_MR17_Pos	(17U)
#define EXTI_IMR_MR17_Msk	(0x1U << EXTI_IMR_MR17_Pos)			// 0x00020000
#define EXTI_IMR_MR17		EXTI_IMR_MR17_Msk			// Interrupt Mask on line 17
#define EXTI_IMR_MR18_Pos	(18U)
#define EXTI_IMR_MR18_Msk	(0x1U << EXTI_IMR_MR18_Pos)			// 0x00040000
#define EXTI_IMR_MR18		EXTI_IMR_MR18_Msk			// Interrupt Mask on line 18
#define EXTI_IMR_MR19_Pos	(19U)
#define EXTI_IMR_MR19_Msk	(0x1U << EXTI_IMR_MR19_Pos)			// 0x00080000
#define EXTI_IMR_MR19		EXTI_IMR_MR19_Msk			// Interrupt Mask on line 19
#define EXTI_IMR_MR20_Pos	(20U)
#define EXTI_IMR_MR20_Msk	(0x1U << EXTI_IMR_MR20_Pos)			// 0x00100000
#define EXTI_IMR_MR20		EXTI_IMR_MR20_Msk			// Interrupt Mask on line 20
#define EXTI_IMR_MR21_Pos	(21U)
#define EXTI_IMR_MR21_Msk	(0x1U << EXTI_IMR_MR21_Pos)			// 0x00200000
#define EXTI_IMR_MR21		EXTI_IMR_MR21_Msk			// Interrupt Mask on line 21
#define EXTI_IMR_MR22_Pos	(22U)
#define EXTI_IMR_MR22_Msk	(0x1U << EXTI_IMR_MR22_Pos)			// 0x00400000
#define EXTI_IMR_MR22		EXTI_IMR_MR22_Msk			// Interrupt Mask on line 22

// Reference Defines
#define  EXTI_IMR_IM0		EXTI_IMR_MR0
#define  EXTI_IMR_IM1		EXTI_IMR_MR1
#define  EXTI_IMR_IM2		EXTI_IMR_MR2
#define  EXTI_IMR_IM3		EXTI_IMR_MR3
#define  EXTI_IMR_IM4		EXTI_IMR_MR4
#define  EXTI_IMR_IM5		EXTI_IMR_MR5
#define  EXTI_IMR_IM6		EXTI_IMR_MR6
#define  EXTI_IMR_IM7		EXTI_IMR_MR7
#define  EXTI_IMR_IM8		EXTI_IMR_MR8
#define  EXTI_IMR_IM9		EXTI_IMR_MR9
#define  EXTI_IMR_IM10		EXTI_IMR_MR10
#define  EXTI_IMR_IM11		EXTI_IMR_MR11
#define  EXTI_IMR_IM12		EXTI_IMR_MR12
#define  EXTI_IMR_IM13		EXTI_IMR_MR13
#define  EXTI_IMR_IM14		EXTI_IMR_MR14
#define  EXTI_IMR_IM15		EXTI_IMR_MR15
#define  EXTI_IMR_IM16		EXTI_IMR_MR16
#define  EXTI_IMR_IM17		EXTI_IMR_MR17
#define  EXTI_IMR_IM18		EXTI_IMR_MR18
#define  EXTI_IMR_IM19		EXTI_IMR_MR19
#define  EXTI_IMR_IM20		EXTI_IMR_MR20
#define  EXTI_IMR_IM21		EXTI_IMR_MR21
#define  EXTI_IMR_IM22		EXTI_IMR_MR22
#define EXTI_IMR_IM_Pos		(0U)
#define EXTI_IMR_IM_Msk		(0x7FFFFFU << EXTI_IMR_IM_Pos)			// 0x007FFFFF
#define EXTI_IMR_IM		EXTI_IMR_IM_Msk			// Interrupt Mask All

//  Bit definition for EXTI_EMR register
#define EXTI_EMR_MR0_Pos	(0U)
#define EXTI_EMR_MR0_Msk	(0x1U << EXTI_EMR_MR0_Pos)			// 0x00000001
#define EXTI_EMR_MR0		EXTI_EMR_MR0_Msk			// Event Mask on line 0
#define EXTI_EMR_MR1_Pos	(1U)
#define EXTI_EMR_MR1_Msk	(0x1U << EXTI_EMR_MR1_Pos)			// 0x00000002
#define EXTI_EMR_MR1		EXTI_EMR_MR1_Msk			// Event Mask on line 1
#define EXTI_EMR_MR2_Pos	(2U)
#define EXTI_EMR_MR2_Msk	(0x1U << EXTI_EMR_MR2_Pos)			// 0x00000004
#define EXTI_EMR_MR2		EXTI_EMR_MR2_Msk			// Event Mask on line 2
#define EXTI_EMR_MR3_Pos	(3U)
#define EXTI_EMR_MR3_Msk	(0x1U << EXTI_EMR_MR3_Pos)			// 0x00000008
#define EXTI_EMR_MR3		EXTI_EMR_MR3_Msk			// Event Mask on line 3
#define EXTI_EMR_MR4_Pos	(4U)
#define EXTI_EMR_MR4_Msk	(0x1U << EXTI_EMR_MR4_Pos)			// 0x00000010
#define EXTI_EMR_MR4		EXTI_EMR_MR4_Msk			// Event Mask on line 4
#define EXTI_EMR_MR5_Pos	(5U)
#define EXTI_EMR_MR5_Msk	(0x1U << EXTI_EMR_MR5_Pos)			// 0x00000020
#define EXTI_EMR_MR5		EXTI_EMR_MR5_Msk			// Event Mask on line 5
#define EXTI_EMR_MR6_Pos	(6U)
#define EXTI_EMR_MR6_Msk	(0x1U << EXTI_EMR_MR6_Pos)			// 0x00000040
#define EXTI_EMR_MR6		EXTI_EMR_MR6_Msk			// Event Mask on line 6
#define EXTI_EMR_MR7_Pos	(7U)
#define EXTI_EMR_MR7_Msk	(0x1U << EXTI_EMR_MR7_Pos)			// 0x00000080
#define EXTI_EMR_MR7		EXTI_EMR_MR7_Msk			// Event Mask on line 7
#define EXTI_EMR_MR8_Pos	(8U)
#define EXTI_EMR_MR8_Msk	(0x1U << EXTI_EMR_MR8_Pos)			// 0x00000100
#define EXTI_EMR_MR8		EXTI_EMR_MR8_Msk			// Event Mask on line 8
#define EXTI_EMR_MR9_Pos	(9U)
#define EXTI_EMR_MR9_Msk	(0x1U << EXTI_EMR_MR9_Pos)			// 0x00000200
#define EXTI_EMR_MR9		EXTI_EMR_MR9_Msk			// Event Mask on line 9
#define EXTI_EMR_MR10_Pos	(10U)
#define EXTI_EMR_MR10_Msk	(0x1U << EXTI_EMR_MR10_Pos)			// 0x00000400
#define EXTI_EMR_MR10		EXTI_EMR_MR10_Msk			// Event Mask on line 10
#define EXTI_EMR_MR11_Pos	(11U)
#define EXTI_EMR_MR11_Msk	(0x1U << EXTI_EMR_MR11_Pos)			// 0x00000800
#define EXTI_EMR_MR11		EXTI_EMR_MR11_Msk			// Event Mask on line 11
#define EXTI_EMR_MR12_Pos	(12U)
#define EXTI_EMR_MR12_Msk	(0x1U << EXTI_EMR_MR12_Pos)			// 0x00001000
#define EXTI_EMR_MR12		EXTI_EMR_MR12_Msk			// Event Mask on line 12
#define EXTI_EMR_MR13_Pos	(13U)
#define EXTI_EMR_MR13_Msk	(0x1U << EXTI_EMR_MR13_Pos)			// 0x00002000
#define EXTI_EMR_MR13		EXTI_EMR_MR13_Msk			// Event Mask on line 13
#define EXTI_EMR_MR14_Pos	(14U)
#define EXTI_EMR_MR14_Msk	(0x1U << EXTI_EMR_MR14_Pos)			// 0x00004000
#define EXTI_EMR_MR14		EXTI_EMR_MR14_Msk			// Event Mask on line 14
#define EXTI_EMR_MR15_Pos	(15U)
#define EXTI_EMR_MR15_Msk	(0x1U << EXTI_EMR_MR15_Pos)			// 0x00008000
#define EXTI_EMR_MR15		EXTI_EMR_MR15_Msk			// Event Mask on line 15
#define EXTI_EMR_MR16_Pos	(16U)
#define EXTI_EMR_MR16_Msk	(0x1U << EXTI_EMR_MR16_Pos)			// 0x00010000
#define EXTI_EMR_MR16		EXTI_EMR_MR16_Msk			// Event Mask on line 16
#define EXTI_EMR_MR17_Pos	(17U)
#define EXTI_EMR_MR17_Msk	(0x1U << EXTI_EMR_MR17_Pos)			// 0x00020000
#define EXTI_EMR_MR17		EXTI_EMR_MR17_Msk			// Event Mask on line 17
#define EXTI_EMR_MR18_Pos	(18U)
#define EXTI_EMR_MR18_Msk	(0x1U << EXTI_EMR_MR18_Pos)			// 0x00040000
#define EXTI_EMR_MR18		EXTI_EMR_MR18_Msk			// Event Mask on line 18
#define EXTI_EMR_MR19_Pos	(19U)
#define EXTI_EMR_MR19_Msk	(0x1U << EXTI_EMR_MR19_Pos)			// 0x00080000
#define EXTI_EMR_MR19		EXTI_EMR_MR19_Msk			// Event Mask on line 19
#define EXTI_EMR_MR20_Pos	(20U)
#define EXTI_EMR_MR20_Msk	(0x1U << EXTI_EMR_MR20_Pos)			// 0x00100000
#define EXTI_EMR_MR20		EXTI_EMR_MR20_Msk			// Event Mask on line 20
#define EXTI_EMR_MR21_Pos	(21U)
#define EXTI_EMR_MR21_Msk	(0x1U << EXTI_EMR_MR21_Pos)			// 0x00200000
#define EXTI_EMR_MR21		EXTI_EMR_MR21_Msk			// Event Mask on line 21
#define EXTI_EMR_MR22_Pos	(22U)
#define EXTI_EMR_MR22_Msk	(0x1U << EXTI_EMR_MR22_Pos)			// 0x00400000
#define EXTI_EMR_MR22		EXTI_EMR_MR22_Msk			// Event Mask on line 22

// Reference Defines
#define  EXTI_EMR_EM0		EXTI_EMR_MR0
#define  EXTI_EMR_EM1		EXTI_EMR_MR1
#define  EXTI_EMR_EM2		EXTI_EMR_MR2
#define  EXTI_EMR_EM3		EXTI_EMR_MR3
#define  EXTI_EMR_EM4		EXTI_EMR_MR4
#define  EXTI_EMR_EM5		EXTI_EMR_MR5
#define  EXTI_EMR_EM6		EXTI_EMR_MR6
#define  EXTI_EMR_EM7		EXTI_EMR_MR7
#define  EXTI_EMR_EM8		EXTI_EMR_MR8
#define  EXTI_EMR_EM9		EXTI_EMR_MR9
#define  EXTI_EMR_EM10		EXTI_EMR_MR10
#define  EXTI_EMR_EM11		EXTI_EMR_MR11
#define  EXTI_EMR_EM12		EXTI_EMR_MR12
#define  EXTI_EMR_EM13		EXTI_EMR_MR13
#define  EXTI_EMR_EM14		EXTI_EMR_MR14
#define  EXTI_EMR_EM15		EXTI_EMR_MR15
#define  EXTI_EMR_EM16		EXTI_EMR_MR16
#define  EXTI_EMR_EM17		EXTI_EMR_MR17
#define  EXTI_EMR_EM18		EXTI_EMR_MR18
#define  EXTI_EMR_EM19		EXTI_EMR_MR19
#define  EXTI_EMR_EM20		EXTI_EMR_MR20
#define  EXTI_EMR_EM21		EXTI_EMR_MR21
#define  EXTI_EMR_EM22		EXTI_EMR_MR22

//  Bit definition for EXTI_RTSR register
#define EXTI_RTSR_TR0_Pos	(0U)
#define EXTI_RTSR_TR0_Msk	(0x1U << EXTI_RTSR_TR0_Pos)			// 0x00000001
#define EXTI_RTSR_TR0		EXTI_RTSR_TR0_Msk			// Rising trigger event configuration bit of line 0
#define EXTI_RTSR_TR1_Pos	(1U)
#define EXTI_RTSR_TR1_Msk	(0x1U << EXTI_RTSR_TR1_Pos)			// 0x00000002
#define EXTI_RTSR_TR1		EXTI_RTSR_TR1_Msk			// Rising trigger event configuration bit of line 1
#define EXTI_RTSR_TR2_Pos	(2U)
#define EXTI_RTSR_TR2_Msk	(0x1U << EXTI_RTSR_TR2_Pos)			// 0x00000004
#define EXTI_RTSR_TR2		EXTI_RTSR_TR2_Msk			// Rising trigger event configuration bit of line 2
#define EXTI_RTSR_TR3_Pos	(3U)
#define EXTI_RTSR_TR3_Msk	(0x1U << EXTI_RTSR_TR3_Pos)			// 0x00000008
#define EXTI_RTSR_TR3		EXTI_RTSR_TR3_Msk			// Rising trigger event configuration bit of line 3
#define EXTI_RTSR_TR4_Pos	(4U)
#define EXTI_RTSR_TR4_Msk	(0x1U << EXTI_RTSR_TR4_Pos)			// 0x00000010
#define EXTI_RTSR_TR4		EXTI_RTSR_TR4_Msk			// Rising trigger event configuration bit of line 4
#define EXTI_RTSR_TR5_Pos	(5U)
#define EXTI_RTSR_TR5_Msk	(0x1U << EXTI_RTSR_TR5_Pos)			// 0x00000020
#define EXTI_RTSR_TR5		EXTI_RTSR_TR5_Msk			// Rising trigger event configuration bit of line 5
#define EXTI_RTSR_TR6_Pos	(6U)
#define EXTI_RTSR_TR6_Msk	(0x1U << EXTI_RTSR_TR6_Pos)			// 0x00000040
#define EXTI_RTSR_TR6		EXTI_RTSR_TR6_Msk			// Rising trigger event configuration bit of line 6
#define EXTI_RTSR_TR7_Pos	(7U)
#define EXTI_RTSR_TR7_Msk	(0x1U << EXTI_RTSR_TR7_Pos)			// 0x00000080
#define EXTI_RTSR_TR7		EXTI_RTSR_TR7_Msk			// Rising trigger event configuration bit of line 7
#define EXTI_RTSR_TR8_Pos	(8U)
#define EXTI_RTSR_TR8_Msk	(0x1U << EXTI_RTSR_TR8_Pos)			// 0x00000100
#define EXTI_RTSR_TR8		EXTI_RTSR_TR8_Msk			// Rising trigger event configuration bit of line 8
#define EXTI_RTSR_TR9_Pos	(9U)
#define EXTI_RTSR_TR9_Msk	(0x1U << EXTI_RTSR_TR9_Pos)			// 0x00000200
#define EXTI_RTSR_TR9		EXTI_RTSR_TR9_Msk			// Rising trigger event configuration bit of line 9
#define EXTI_RTSR_TR10_Pos	(10U)
#define EXTI_RTSR_TR10_Msk	(0x1U << EXTI_RTSR_TR10_Pos)			// 0x00000400
#define EXTI_RTSR_TR10		EXTI_RTSR_TR10_Msk			// Rising trigger event configuration bit of line 10
#define EXTI_RTSR_TR11_Pos	(11U)
#define EXTI_RTSR_TR11_Msk	(0x1U << EXTI_RTSR_TR11_Pos)			// 0x00000800
#define EXTI_RTSR_TR11		EXTI_RTSR_TR11_Msk			// Rising trigger event configuration bit of line 11
#define EXTI_RTSR_TR12_Pos	(12U)
#define EXTI_RTSR_TR12_Msk	(0x1U << EXTI_RTSR_TR12_Pos)			// 0x00001000
#define EXTI_RTSR_TR12		EXTI_RTSR_TR12_Msk			// Rising trigger event configuration bit of line 12
#define EXTI_RTSR_TR13_Pos	(13U)
#define EXTI_RTSR_TR13_Msk	(0x1U << EXTI_RTSR_TR13_Pos)			// 0x00002000
#define EXTI_RTSR_TR13		EXTI_RTSR_TR13_Msk			// Rising trigger event configuration bit of line 13
#define EXTI_RTSR_TR14_Pos	(14U)
#define EXTI_RTSR_TR14_Msk	(0x1U << EXTI_RTSR_TR14_Pos)			// 0x00004000
#define EXTI_RTSR_TR14		EXTI_RTSR_TR14_Msk			// Rising trigger event configuration bit of line 14
#define EXTI_RTSR_TR15_Pos	(15U)
#define EXTI_RTSR_TR15_Msk	(0x1U << EXTI_RTSR_TR15_Pos)			// 0x00008000
#define EXTI_RTSR_TR15		EXTI_RTSR_TR15_Msk			// Rising trigger event configuration bit of line 15
#define EXTI_RTSR_TR16_Pos	(16U)
#define EXTI_RTSR_TR16_Msk	(0x1U << EXTI_RTSR_TR16_Pos)			// 0x00010000
#define EXTI_RTSR_TR16		EXTI_RTSR_TR16_Msk			// Rising trigger event configuration bit of line 16
#define EXTI_RTSR_TR17_Pos	(17U)
#define EXTI_RTSR_TR17_Msk	(0x1U << EXTI_RTSR_TR17_Pos)			// 0x00020000
#define EXTI_RTSR_TR17		EXTI_RTSR_TR17_Msk			// Rising trigger event configuration bit of line 17
#define EXTI_RTSR_TR18_Pos	(18U)
#define EXTI_RTSR_TR18_Msk	(0x1U << EXTI_RTSR_TR18_Pos)			// 0x00040000
#define EXTI_RTSR_TR18		EXTI_RTSR_TR18_Msk			// Rising trigger event configuration bit of line 18
#define EXTI_RTSR_TR19_Pos	(19U)
#define EXTI_RTSR_TR19_Msk	(0x1U << EXTI_RTSR_TR19_Pos)			// 0x00080000
#define EXTI_RTSR_TR19		EXTI_RTSR_TR19_Msk			// Rising trigger event configuration bit of line 19
#define EXTI_RTSR_TR20_Pos	(20U)
#define EXTI_RTSR_TR20_Msk	(0x1U << EXTI_RTSR_TR20_Pos)			// 0x00100000
#define EXTI_RTSR_TR20		EXTI_RTSR_TR20_Msk			// Rising trigger event configuration bit of line 20
#define EXTI_RTSR_TR21_Pos	(21U)
#define EXTI_RTSR_TR21_Msk	(0x1U << EXTI_RTSR_TR21_Pos)			// 0x00200000
#define EXTI_RTSR_TR21		EXTI_RTSR_TR21_Msk			// Rising trigger event configuration bit of line 21
#define EXTI_RTSR_TR22_Pos	(22U)
#define EXTI_RTSR_TR22_Msk	(0x1U << EXTI_RTSR_TR22_Pos)			// 0x00400000
#define EXTI_RTSR_TR22		EXTI_RTSR_TR22_Msk			// Rising trigger event configuration bit of line 22

//  Bit definition for EXTI_FTSR register
#define EXTI_FTSR_TR0_Pos	(0U)
#define EXTI_FTSR_TR0_Msk	(0x1U << EXTI_FTSR_TR0_Pos)			// 0x00000001
#define EXTI_FTSR_TR0		EXTI_FTSR_TR0_Msk			// Falling trigger event configuration bit of line 0
#define EXTI_FTSR_TR1_Pos	(1U)
#define EXTI_FTSR_TR1_Msk	(0x1U << EXTI_FTSR_TR1_Pos)			// 0x00000002
#define EXTI_FTSR_TR1		EXTI_FTSR_TR1_Msk			// Falling trigger event configuration bit of line 1
#define EXTI_FTSR_TR2_Pos	(2U)
#define EXTI_FTSR_TR2_Msk	(0x1U << EXTI_FTSR_TR2_Pos)			// 0x00000004
#define EXTI_FTSR_TR2		EXTI_FTSR_TR2_Msk			// Falling trigger event configuration bit of line 2
#define EXTI_FTSR_TR3_Pos	(3U)
#define EXTI_FTSR_TR3_Msk	(0x1U << EXTI_FTSR_TR3_Pos)			// 0x00000008
#define EXTI_FTSR_TR3		EXTI_FTSR_TR3_Msk			// Falling trigger event configuration bit of line 3
#define EXTI_FTSR_TR4_Pos	(4U)
#define EXTI_FTSR_TR4_Msk	(0x1U << EXTI_FTSR_TR4_Pos)			// 0x00000010
#define EXTI_FTSR_TR4		EXTI_FTSR_TR4_Msk			// Falling trigger event configuration bit of line 4
#define EXTI_FTSR_TR5_Pos	(5U)
#define EXTI_FTSR_TR5_Msk	(0x1U << EXTI_FTSR_TR5_Pos)			// 0x00000020
#define EXTI_FTSR_TR5		EXTI_FTSR_TR5_Msk			// Falling trigger event configuration bit of line 5
#define EXTI_FTSR_TR6_Pos	(6U)
#define EXTI_FTSR_TR6_Msk	(0x1U << EXTI_FTSR_TR6_Pos)			// 0x00000040
#define EXTI_FTSR_TR6		EXTI_FTSR_TR6_Msk			// Falling trigger event configuration bit of line 6
#define EXTI_FTSR_TR7_Pos	(7U)
#define EXTI_FTSR_TR7_Msk	(0x1U << EXTI_FTSR_TR7_Pos)			// 0x00000080
#define EXTI_FTSR_TR7		EXTI_FTSR_TR7_Msk			// Falling trigger event configuration bit of line 7
#define EXTI_FTSR_TR8_Pos	(8U)
#define EXTI_FTSR_TR8_Msk	(0x1U << EXTI_FTSR_TR8_Pos)			// 0x00000100
#define EXTI_FTSR_TR8		EXTI_FTSR_TR8_Msk			// Falling trigger event configuration bit of line 8
#define EXTI_FTSR_TR9_Pos	(9U)
#define EXTI_FTSR_TR9_Msk	(0x1U << EXTI_FTSR_TR9_Pos)			// 0x00000200
#define EXTI_FTSR_TR9		EXTI_FTSR_TR9_Msk			// Falling trigger event configuration bit of line 9
#define EXTI_FTSR_TR10_Pos	(10U)
#define EXTI_FTSR_TR10_Msk	(0x1U << EXTI_FTSR_TR10_Pos)			// 0x00000400
#define EXTI_FTSR_TR10		EXTI_FTSR_TR10_Msk			// Falling trigger event configuration bit of line 10
#define EXTI_FTSR_TR11_Pos	(11U)
#define EXTI_FTSR_TR11_Msk	(0x1U << EXTI_FTSR_TR11_Pos)			// 0x00000800
#define EXTI_FTSR_TR11		EXTI_FTSR_TR11_Msk			// Falling trigger event configuration bit of line 11
#define EXTI_FTSR_TR12_Pos	(12U)
#define EXTI_FTSR_TR12_Msk	(0x1U << EXTI_FTSR_TR12_Pos)			// 0x00001000
#define EXTI_FTSR_TR12		EXTI_FTSR_TR12_Msk			// Falling trigger event configuration bit of line 12
#define EXTI_FTSR_TR13_Pos	(13U)
#define EXTI_FTSR_TR13_Msk	(0x1U << EXTI_FTSR_TR13_Pos)			// 0x00002000
#define EXTI_FTSR_TR13		EXTI_FTSR_TR13_Msk			// Falling trigger event configuration bit of line 13
#define EXTI_FTSR_TR14_Pos	(14U)
#define EXTI_FTSR_TR14_Msk	(0x1U << EXTI_FTSR_TR14_Pos)			// 0x00004000
#define EXTI_FTSR_TR14		EXTI_FTSR_TR14_Msk			// Falling trigger event configuration bit of line 14
#define EXTI_FTSR_TR15_Pos	(15U)
#define EXTI_FTSR_TR15_Msk	(0x1U << EXTI_FTSR_TR15_Pos)			// 0x00008000
#define EXTI_FTSR_TR15		EXTI_FTSR_TR15_Msk			// Falling trigger event configuration bit of line 15
#define EXTI_FTSR_TR16_Pos	(16U)
#define EXTI_FTSR_TR16_Msk	(0x1U << EXTI_FTSR_TR16_Pos)			// 0x00010000
#define EXTI_FTSR_TR16		EXTI_FTSR_TR16_Msk			// Falling trigger event configuration bit of line 16
#define EXTI_FTSR_TR17_Pos	(17U)
#define EXTI_FTSR_TR17_Msk	(0x1U << EXTI_FTSR_TR17_Pos)			// 0x00020000
#define EXTI_FTSR_TR17		EXTI_FTSR_TR17_Msk			// Falling trigger event configuration bit of line 17
#define EXTI_FTSR_TR18_Pos	(18U)
#define EXTI_FTSR_TR18_Msk	(0x1U << EXTI_FTSR_TR18_Pos)			// 0x00040000
#define EXTI_FTSR_TR18		EXTI_FTSR_TR18_Msk			// Falling trigger event configuration bit of line 18
#define EXTI_FTSR_TR19_Pos	(19U)
#define EXTI_FTSR_TR19_Msk	(0x1U << EXTI_FTSR_TR19_Pos)			// 0x00080000
#define EXTI_FTSR_TR19		EXTI_FTSR_TR19_Msk			// Falling trigger event configuration bit of line 19
#define EXTI_FTSR_TR20_Pos	(20U)
#define EXTI_FTSR_TR20_Msk	(0x1U << EXTI_FTSR_TR20_Pos)			// 0x00100000
#define EXTI_FTSR_TR20		EXTI_FTSR_TR20_Msk			// Falling trigger event configuration bit of line 20
#define EXTI_FTSR_TR21_Pos	(21U)
#define EXTI_FTSR_TR21_Msk	(0x1U << EXTI_FTSR_TR21_Pos)			// 0x00200000
#define EXTI_FTSR_TR21		EXTI_FTSR_TR21_Msk			// Falling trigger event configuration bit of line 21
#define EXTI_FTSR_TR22_Pos	(22U)
#define EXTI_FTSR_TR22_Msk	(0x1U << EXTI_FTSR_TR22_Pos)			// 0x00400000
#define EXTI_FTSR_TR22		EXTI_FTSR_TR22_Msk			// Falling trigger event configuration bit of line 22

//  Bit definition for EXTI_SWIER register
#define EXTI_SWIER_SWIER0_Pos	(0U)
#define EXTI_SWIER_SWIER0_Msk	(0x1U << EXTI_SWIER_SWIER0_Pos)			// 0x00000001
#define EXTI_SWIER_SWIER0	EXTI_SWIER_SWIER0_Msk			// Software Interrupt on line 0
#define EXTI_SWIER_SWIER1_Pos	(1U)
#define EXTI_SWIER_SWIER1_Msk	(0x1U << EXTI_SWIER_SWIER1_Pos)			// 0x00000002
#define EXTI_SWIER_SWIER1	EXTI_SWIER_SWIER1_Msk			// Software Interrupt on line 1
#define EXTI_SWIER_SWIER2_Pos	(2U)
#define EXTI_SWIER_SWIER2_Msk	(0x1U << EXTI_SWIER_SWIER2_Pos)			// 0x00000004
#define EXTI_SWIER_SWIER2	EXTI_SWIER_SWIER2_Msk			// Software Interrupt on line 2
#define EXTI_SWIER_SWIER3_Pos	(3U)
#define EXTI_SWIER_SWIER3_Msk	(0x1U << EXTI_SWIER_SWIER3_Pos)			// 0x00000008
#define EXTI_SWIER_SWIER3	EXTI_SWIER_SWIER3_Msk			// Software Interrupt on line 3
#define EXTI_SWIER_SWIER4_Pos	(4U)
#define EXTI_SWIER_SWIER4_Msk	(0x1U << EXTI_SWIER_SWIER4_Pos)			// 0x00000010
#define EXTI_SWIER_SWIER4	EXTI_SWIER_SWIER4_Msk			// Software Interrupt on line 4
#define EXTI_SWIER_SWIER5_Pos	(5U)
#define EXTI_SWIER_SWIER5_Msk	(0x1U << EXTI_SWIER_SWIER5_Pos)			// 0x00000020
#define EXTI_SWIER_SWIER5	EXTI_SWIER_SWIER5_Msk			// Software Interrupt on line 5
#define EXTI_SWIER_SWIER6_Pos	(6U)
#define EXTI_SWIER_SWIER6_Msk	(0x1U << EXTI_SWIER_SWIER6_Pos)			// 0x00000040
#define EXTI_SWIER_SWIER6	EXTI_SWIER_SWIER6_Msk			// Software Interrupt on line 6
#define EXTI_SWIER_SWIER7_Pos	(7U)
#define EXTI_SWIER_SWIER7_Msk	(0x1U << EXTI_SWIER_SWIER7_Pos)			// 0x00000080
#define EXTI_SWIER_SWIER7	EXTI_SWIER_SWIER7_Msk			// Software Interrupt on line 7
#define EXTI_SWIER_SWIER8_Pos	(8U)
#define EXTI_SWIER_SWIER8_Msk	(0x1U << EXTI_SWIER_SWIER8_Pos)			// 0x00000100
#define EXTI_SWIER_SWIER8	EXTI_SWIER_SWIER8_Msk			// Software Interrupt on line 8
#define EXTI_SWIER_SWIER9_Pos	(9U)
#define EXTI_SWIER_SWIER9_Msk	(0x1U << EXTI_SWIER_SWIER9_Pos)			// 0x00000200
#define EXTI_SWIER_SWIER9	EXTI_SWIER_SWIER9_Msk			// Software Interrupt on line 9
#define EXTI_SWIER_SWIER10_Pos	(10U)
#define EXTI_SWIER_SWIER10_Msk	(0x1U << EXTI_SWIER_SWIER10_Pos)			// 0x00000400
#define EXTI_SWIER_SWIER10	EXTI_SWIER_SWIER10_Msk			// Software Interrupt on line 10
#define EXTI_SWIER_SWIER11_Pos	(11U)
#define EXTI_SWIER_SWIER11_Msk	(0x1U << EXTI_SWIER_SWIER11_Pos)			// 0x00000800
#define EXTI_SWIER_SWIER11	EXTI_SWIER_SWIER11_Msk			// Software Interrupt on line 11
#define EXTI_SWIER_SWIER12_Pos	(12U)
#define EXTI_SWIER_SWIER12_Msk	(0x1U << EXTI_SWIER_SWIER12_Pos)			// 0x00001000
#define EXTI_SWIER_SWIER12	EXTI_SWIER_SWIER12_Msk			// Software Interrupt on line 12
#define EXTI_SWIER_SWIER13_Pos	(13U)
#define EXTI_SWIER_SWIER13_Msk	(0x1U << EXTI_SWIER_SWIER13_Pos)			// 0x00002000
#define EXTI_SWIER_SWIER13	EXTI_SWIER_SWIER13_Msk			// Software Interrupt on line 13
#define EXTI_SWIER_SWIER14_Pos	(14U)
#define EXTI_SWIER_SWIER14_Msk	(0x1U << EXTI_SWIER_SWIER14_Pos)			// 0x00004000
#define EXTI_SWIER_SWIER14	EXTI_SWIER_SWIER14_Msk			// Software Interrupt on line 14
#define EXTI_SWIER_SWIER15_Pos	(15U)
#define EXTI_SWIER_SWIER15_Msk	(0x1U << EXTI_SWIER_SWIER15_Pos)			// 0x00008000
#define EXTI_SWIER_SWIER15	EXTI_SWIER_SWIER15_Msk			// Software Interrupt on line 15
#define EXTI_SWIER_SWIER16_Pos	(16U)
#define EXTI_SWIER_SWIER16_Msk	(0x1U << EXTI_SWIER_SWIER16_Pos)			// 0x00010000
#define EXTI_SWIER_SWIER16	EXTI_SWIER_SWIER16_Msk			// Software Interrupt on line 16
#define EXTI_SWIER_SWIER17_Pos	(17U)
#define EXTI_SWIER_SWIER17_Msk	(0x1U << EXTI_SWIER_SWIER17_Pos)			// 0x00020000
#define EXTI_SWIER_SWIER17	EXTI_SWIER_SWIER17_Msk			// Software Interrupt on line 17
#define EXTI_SWIER_SWIER18_Pos	(18U)
#define EXTI_SWIER_SWIER18_Msk	(0x1U << EXTI_SWIER_SWIER18_Pos)			// 0x00040000
#define EXTI_SWIER_SWIER18	EXTI_SWIER_SWIER18_Msk			// Software Interrupt on line 18
#define EXTI_SWIER_SWIER19_Pos	(19U)
#define EXTI_SWIER_SWIER19_Msk	(0x1U << EXTI_SWIER_SWIER19_Pos)			// 0x00080000
#define EXTI_SWIER_SWIER19	EXTI_SWIER_SWIER19_Msk			// Software Interrupt on line 19
#define EXTI_SWIER_SWIER20_Pos	(20U)
#define EXTI_SWIER_SWIER20_Msk	(0x1U << EXTI_SWIER_SWIER20_Pos)			// 0x00100000
#define EXTI_SWIER_SWIER20	EXTI_SWIER_SWIER20_Msk			// Software Interrupt on line 20
#define EXTI_SWIER_SWIER21_Pos	(21U)
#define EXTI_SWIER_SWIER21_Msk	(0x1U << EXTI_SWIER_SWIER21_Pos)			// 0x00200000
#define EXTI_SWIER_SWIER21	EXTI_SWIER_SWIER21_Msk			// Software Interrupt on line 21
#define EXTI_SWIER_SWIER22_Pos	(22U)
#define EXTI_SWIER_SWIER22_Msk	(0x1U << EXTI_SWIER_SWIER22_Pos)			// 0x00400000
#define EXTI_SWIER_SWIER22	EXTI_SWIER_SWIER22_Msk			// Software Interrupt on line 22

//  Bit definition for EXTI_PR register
#define EXTI_PR_PR0_Pos		(0U)
#define EXTI_PR_PR0_Msk		(0x1U << EXTI_PR_PR0_Pos)			// 0x00000001
#define EXTI_PR_PR0		EXTI_PR_PR0_Msk			// Pending bit for line 0
#define EXTI_PR_PR1_Pos		(1U)
#define EXTI_PR_PR1_Msk		(0x1U << EXTI_PR_PR1_Pos)			// 0x00000002
#define EXTI_PR_PR1		EXTI_PR_PR1_Msk			// Pending bit for line 1
#define EXTI_PR_PR2_Pos		(2U)
#define EXTI_PR_PR2_Msk		(0x1U << EXTI_PR_PR2_Pos)			// 0x00000004
#define EXTI_PR_PR2		EXTI_PR_PR2_Msk			// Pending bit for line 2
#define EXTI_PR_PR3_Pos		(3U)
#define EXTI_PR_PR3_Msk		(0x1U << EXTI_PR_PR3_Pos)			// 0x00000008
#define EXTI_PR_PR3		EXTI_PR_PR3_Msk			// Pending bit for line 3
#define EXTI_PR_PR4_Pos		(4U)
#define EXTI_PR_PR4_Msk		(0x1U << EXTI_PR_PR4_Pos)			// 0x00000010
#define EXTI_PR_PR4		EXTI_PR_PR4_Msk			// Pending bit for line 4
#define EXTI_PR_PR5_Pos		(5U)
#define EXTI_PR_PR5_Msk		(0x1U << EXTI_PR_PR5_Pos)			// 0x00000020
#define EXTI_PR_PR5		EXTI_PR_PR5_Msk			// Pending bit for line 5
#define EXTI_PR_PR6_Pos		(6U)
#define EXTI_PR_PR6_Msk		(0x1U << EXTI_PR_PR6_Pos)			// 0x00000040
#define EXTI_PR_PR6		EXTI_PR_PR6_Msk			// Pending bit for line 6
#define EXTI_PR_PR7_Pos		(7U)
#define EXTI_PR_PR7_Msk		(0x1U << EXTI_PR_PR7_Pos)			// 0x00000080
#define EXTI_PR_PR7		EXTI_PR_PR7_Msk			// Pending bit for line 7
#define EXTI_PR_PR8_Pos		(8U)
#define EXTI_PR_PR8_Msk		(0x1U << EXTI_PR_PR8_Pos)			// 0x00000100
#define EXTI_PR_PR8		EXTI_PR_PR8_Msk			// Pending bit for line 8
#define EXTI_PR_PR9_Pos		(9U)
#define EXTI_PR_PR9_Msk		(0x1U << EXTI_PR_PR9_Pos)			// 0x00000200
#define EXTI_PR_PR9		EXTI_PR_PR9_Msk			// Pending bit for line 9
#define EXTI_PR_PR10_Pos		(10U)
#define EXTI_PR_PR10_Msk		(0x1U << EXTI_PR_PR10_Pos)			// 0x00000400
#define EXTI_PR_PR10		EXTI_PR_PR10_Msk			// Pending bit for line 10
#define EXTI_PR_PR11_Pos		(11U)
#define EXTI_PR_PR11_Msk		(0x1U << EXTI_PR_PR11_Pos)			// 0x00000800
#define EXTI_PR_PR11		EXTI_PR_PR11_Msk			// Pending bit for line 11
#define EXTI_PR_PR12_Pos		(12U)
#define EXTI_PR_PR12_Msk		(0x1U << EXTI_PR_PR12_Pos)			// 0x00001000
#define EXTI_PR_PR12		EXTI_PR_PR12_Msk			// Pending bit for line 12
#define EXTI_PR_PR13_Pos		(13U)
#define EXTI_PR_PR13_Msk		(0x1U << EXTI_PR_PR13_Pos)			// 0x00002000
#define EXTI_PR_PR13		EXTI_PR_PR13_Msk			// Pending bit for line 13
#define EXTI_PR_PR14_Pos		(14U)
#define EXTI_PR_PR14_Msk		(0x1U << EXTI_PR_PR14_Pos)			// 0x00004000
#define EXTI_PR_PR14		EXTI_PR_PR14_Msk			// Pending bit for line 14
#define EXTI_PR_PR15_Pos		(15U)
#define EXTI_PR_PR15_Msk		(0x1U << EXTI_PR_PR15_Pos)			// 0x00008000
#define EXTI_PR_PR15		EXTI_PR_PR15_Msk			// Pending bit for line 15
#define EXTI_PR_PR16_Pos		(16U)
#define EXTI_PR_PR16_Msk		(0x1U << EXTI_PR_PR16_Pos)			// 0x00010000
#define EXTI_PR_PR16		EXTI_PR_PR16_Msk			// Pending bit for line 16
#define EXTI_PR_PR17_Pos		(17U)
#define EXTI_PR_PR17_Msk		(0x1U << EXTI_PR_PR17_Pos)			// 0x00020000
#define EXTI_PR_PR17		EXTI_PR_PR17_Msk			// Pending bit for line 17
#define EXTI_PR_PR18_Pos		(18U)
#define EXTI_PR_PR18_Msk		(0x1U << EXTI_PR_PR18_Pos)			// 0x00040000
#define EXTI_PR_PR18		EXTI_PR_PR18_Msk			// Pending bit for line 18
#define EXTI_PR_PR19_Pos		(19U)
#define EXTI_PR_PR19_Msk		(0x1U << EXTI_PR_PR19_Pos)			// 0x00080000
#define EXTI_PR_PR19		EXTI_PR_PR19_Msk			// Pending bit for line 19
#define EXTI_PR_PR20_Pos		(20U)
#define EXTI_PR_PR20_Msk		(0x1U << EXTI_PR_PR20_Pos)			// 0x00100000
#define EXTI_PR_PR20		EXTI_PR_PR20_Msk			// Pending bit for line 20
#define EXTI_PR_PR21_Pos		(21U)
#define EXTI_PR_PR21_Msk		(0x1U << EXTI_PR_PR21_Pos)			// 0x00200000
#define EXTI_PR_PR21		EXTI_PR_PR21_Msk			// Pending bit for line 21
#define EXTI_PR_PR22_Pos		(22U)
#define EXTI_PR_PR22_Msk		(0x1U << EXTI_PR_PR22_Pos)			// 0x00400000
#define EXTI_PR_PR22		EXTI_PR_PR22_Msk			// Pending bit for line 22



// FLASH


//  Bits definition for FLASH_ACR register
#define FLASH_ACR_LATENCY_Pos	(0U)
#define FLASH_ACR_LATENCY_Msk	(0xFU << FLASH_ACR_LATENCY_Pos)			// 0x0000000F
#define FLASH_ACR_LATENCY	FLASH_ACR_LATENCY_Msk
#define FLASH_ACR_LATENCY_0WS	0x00000000U
#define FLASH_ACR_LATENCY_1WS	0x00000001U
#define FLASH_ACR_LATENCY_2WS	0x00000002U
#define FLASH_ACR_LATENCY_3WS	0x00000003U
#define FLASH_ACR_LATENCY_4WS	0x00000004U
#define FLASH_ACR_LATENCY_5WS	0x00000005U
#define FLASH_ACR_LATENCY_6WS	0x00000006U
#define FLASH_ACR_LATENCY_7WS	0x00000007U

#define FLASH_ACR_PRFTEN_Pos	(8U)
#define FLASH_ACR_PRFTEN_Msk	(0x1U << FLASH_ACR_PRFTEN_Pos)			// 0x00000100
#define FLASH_ACR_PRFTEN	FLASH_ACR_PRFTEN_Msk
#define FLASH_ACR_ICEN_Pos	(9U)
#define FLASH_ACR_ICEN_Msk	(0x1U << FLASH_ACR_ICEN_Pos)			// 0x00000200
#define FLASH_ACR_ICEN		FLASH_ACR_ICEN_Msk
#define FLASH_ACR_DCEN_Pos	(10U)
#define FLASH_ACR_DCEN_Msk	(0x1U << FLASH_ACR_DCEN_Pos)			// 0x00000400
#define FLASH_ACR_DCEN		FLASH_ACR_DCEN_Msk
#define FLASH_ACR_ICRST_Pos	(11U)
#define FLASH_ACR_ICRST_Msk	(0x1U << FLASH_ACR_ICRST_Pos)			// 0x00000800
#define FLASH_ACR_ICRST		FLASH_ACR_ICRST_Msk
#define FLASH_ACR_DCRST_Pos	(12U)
#define FLASH_ACR_DCRST_Msk	(0x1U << FLASH_ACR_DCRST_Pos)			// 0x00001000
#define FLASH_ACR_DCRST		FLASH_ACR_DCRST_Msk
#define FLASH_ACR_BYTE0_ADDRESS_Pos	(10U)
#define FLASH_ACR_BYTE0_ADDRESS_Msk	(0x10008FU << FLASH_ACR_BYTE0_ADDRESS_Pos)	//  0x40023C00
#define FLASH_ACR_BYTE0_ADDRESS		FLASH_ACR_BYTE0_ADDRESS_Msk
#define FLASH_ACR_BYTE2_ADDRESS_Pos	(0U)
#define FLASH_ACR_BYTE2_ADDRESS_Msk	(0x40023C03U << FLASH_ACR_BYTE2_ADDRESS_Pos)	//  0x40023C03
#define FLASH_ACR_BYTE2_ADDRESS		FLASH_ACR_BYTE2_ADDRESS_Msk

//  Bits definition for FLASH_SR register
#define FLASH_SR_EOP_Pos	(0U)
#define FLASH_SR_EOP_Msk	(0x1U << FLASH_SR_EOP_Pos)			// 0x00000001
#define FLASH_SR_EOP		FLASH_SR_EOP_Msk
#define FLASH_SR_SOP_Pos	(1U)
#define FLASH_SR_SOP_Msk	(0x1U << FLASH_SR_SOP_Pos)			// 0x00000002
#define FLASH_SR_SOP		FLASH_SR_SOP_Msk
#define FLASH_SR_WRPERR_Pos	(4U)
#define FLASH_SR_WRPERR_Msk	(0x1U << FLASH_SR_WRPERR_Pos)			// 0x00000010
#define FLASH_SR_WRPERR		FLASH_SR_WRPERR_Msk
#define FLASH_SR_PGAERR_Pos	(5U)
#define FLASH_SR_PGAERR_Msk	(0x1U << FLASH_SR_PGAERR_Pos)			// 0x00000020
#define FLASH_SR_PGAERR		FLASH_SR_PGAERR_Msk
#define FLASH_SR_PGPERR_Pos	(6U)
#define FLASH_SR_PGPERR_Msk	(0x1U << FLASH_SR_PGPERR_Pos)			// 0x00000040
#define FLASH_SR_PGPERR		FLASH_SR_PGPERR_Msk
#define FLASH_SR_PGSERR_Pos	(7U)
#define FLASH_SR_PGSERR_Msk	(0x1U << FLASH_SR_PGSERR_Pos)			// 0x00000080
#define FLASH_SR_PGSERR		FLASH_SR_PGSERR_Msk
#define FLASH_SR_BSY_Pos	(16U)
#define FLASH_SR_BSY_Msk	(0x1U << FLASH_SR_BSY_Pos)			// 0x00010000
#define FLASH_SR_BSY		FLASH_SR_BSY_Msk

//  Bits definition for FLASH_CR register
#define FLASH_CR_PG_Pos		(0U)
#define FLASH_CR_PG_Msk		(0x1U << FLASH_CR_PG_Pos)			// 0x00000001
#define FLASH_CR_PG		FLASH_CR_PG_Msk
#define FLASH_CR_SER_Pos	(1U)
#define FLASH_CR_SER_Msk	(0x1U << FLASH_CR_SER_Pos)			// 0x00000002
#define FLASH_CR_SER		FLASH_CR_SER_Msk
#define FLASH_CR_MER_Pos	(2U)
#define FLASH_CR_MER_Msk	(0x1U << FLASH_CR_MER_Pos)			// 0x00000004
#define FLASH_CR_MER		FLASH_CR_MER_Msk
#define FLASH_CR_SNB_Pos	(3U)
#define FLASH_CR_SNB_Msk	(0x1FU << FLASH_CR_SNB_Pos)			// 0x000000F8
#define FLASH_CR_SNB		FLASH_CR_SNB_Msk
#define FLASH_CR_SNB_0		(0x01U << FLASH_CR_SNB_Pos)			// 0x00000008
#define FLASH_CR_SNB_1		(0x02U << FLASH_CR_SNB_Pos)			// 0x00000010
#define FLASH_CR_SNB_2		(0x04U << FLASH_CR_SNB_Pos)			// 0x00000020
#define FLASH_CR_SNB_3		(0x08U << FLASH_CR_SNB_Pos)			// 0x00000040
#define FLASH_CR_SNB_4		(0x10U << FLASH_CR_SNB_Pos)			// 0x00000080
#define FLASH_CR_PSIZE_Pos	(8U)
#define FLASH_CR_PSIZE_Msk	(0x3U << FLASH_CR_PSIZE_Pos)			// 0x00000300
#define FLASH_CR_PSIZE		FLASH_CR_PSIZE_Msk
#define FLASH_CR_PSIZE_0	(0x1U << FLASH_CR_PSIZE_Pos)			// 0x00000100
#define FLASH_CR_PSIZE_1	(0x2U << FLASH_CR_PSIZE_Pos)			// 0x00000200
#define FLASH_CR_STRT_Pos	(16U)
#define FLASH_CR_STRT_Msk	(0x1U << FLASH_CR_STRT_Pos)			// 0x00010000
#define FLASH_CR_STRT		FLASH_CR_STRT_Msk
#define FLASH_CR_EOPIE_Pos	(24U)
#define FLASH_CR_EOPIE_Msk	(0x1U << FLASH_CR_EOPIE_Pos)			// 0x01000000
#define FLASH_CR_EOPIE		FLASH_CR_EOPIE_Msk
#define FLASH_CR_LOCK_Pos	(31U)
#define FLASH_CR_LOCK_Msk	(0x1U << FLASH_CR_LOCK_Pos)			// 0x80000000
#define FLASH_CR_LOCK		FLASH_CR_LOCK_Msk

//  Bits definition for FLASH_OPTCR register
#define FLASH_OPTCR_OPTLOCK_Pos		(0U)
#define FLASH_OPTCR_OPTLOCK_Msk		(0x1U << FLASH_OPTCR_OPTLOCK_Pos)	//  0x00000001
#define FLASH_OPTCR_OPTLOCK		FLASH_OPTCR_OPTLOCK_Msk
#define FLASH_OPTCR_OPTSTRT_Pos		(1U)
#define FLASH_OPTCR_OPTSTRT_Msk		(0x1U << FLASH_OPTCR_OPTSTRT_Pos)	//  0x00000002
#define FLASH_OPTCR_OPTSTRT		FLASH_OPTCR_OPTSTRT_Msk

#define FLASH_OPTCR_BOR_LEV_0		0x00000004U
#define FLASH_OPTCR_BOR_LEV_1		0x00000008U
#define FLASH_OPTCR_BOR_LEV_Pos		(2U)
#define FLASH_OPTCR_BOR_LEV_Msk		(0x3U << FLASH_OPTCR_BOR_LEV_Pos)	//  0x0000000C
#define FLASH_OPTCR_BOR_LEV		FLASH_OPTCR_BOR_LEV_Msk
#define FLASH_OPTCR_WDG_SW_Pos		(5U)
#define FLASH_OPTCR_WDG_SW_Msk		(0x1U << FLASH_OPTCR_WDG_SW_Pos)			// 0x00000020
#define FLASH_OPTCR_WDG_SW		FLASH_OPTCR_WDG_SW_Msk
#define FLASH_OPTCR_nRST_STOP_Pos	(6U)
#define FLASH_OPTCR_nRST_STOP_Msk	(0x1U << FLASH_OPTCR_nRST_STOP_Pos)	//  0x00000040
#define FLASH_OPTCR_nRST_STOP		FLASH_OPTCR_nRST_STOP_Msk
#define FLASH_OPTCR_nRST_STDBY_Pos	(7U)
#define FLASH_OPTCR_nRST_STDBY_Msk	(0x1U << FLASH_OPTCR_nRST_STDBY_Pos)	//  0x00000080
#define FLASH_OPTCR_nRST_STDBY		FLASH_OPTCR_nRST_STDBY_Msk
#define FLASH_OPTCR_RDP_Pos		(8U)
#define FLASH_OPTCR_RDP_Msk		(0xFFU << FLASH_OPTCR_RDP_Pos)			// 0x0000FF00
#define FLASH_OPTCR_RDP			FLASH_OPTCR_RDP_Msk
#define FLASH_OPTCR_RDP_0		(0x01U << FLASH_OPTCR_RDP_Pos)			// 0x00000100
#define FLASH_OPTCR_RDP_1		(0x02U << FLASH_OPTCR_RDP_Pos)			// 0x00000200
#define FLASH_OPTCR_RDP_2		(0x04U << FLASH_OPTCR_RDP_Pos)			// 0x00000400
#define FLASH_OPTCR_RDP_3		(0x08U << FLASH_OPTCR_RDP_Pos)			// 0x00000800
#define FLASH_OPTCR_RDP_4		(0x10U << FLASH_OPTCR_RDP_Pos)			// 0x00001000
#define FLASH_OPTCR_RDP_5		(0x20U << FLASH_OPTCR_RDP_Pos)			// 0x00002000
#define FLASH_OPTCR_RDP_6		(0x40U << FLASH_OPTCR_RDP_Pos)			// 0x00004000
#define FLASH_OPTCR_RDP_7		(0x80U << FLASH_OPTCR_RDP_Pos)			// 0x00008000
#define FLASH_OPTCR_nWRP_Pos		(16U)
#define FLASH_OPTCR_nWRP_Msk		(0xFFFU << FLASH_OPTCR_nWRP_Pos)			// 0x0FFF0000
#define FLASH_OPTCR_nWRP		FLASH_OPTCR_nWRP_Msk
#define FLASH_OPTCR_nWRP_0		0x00010000U
#define FLASH_OPTCR_nWRP_1		0x00020000U
#define FLASH_OPTCR_nWRP_2		0x00040000U
#define FLASH_OPTCR_nWRP_3		0x00080000U
#define FLASH_OPTCR_nWRP_4		0x00100000U
#define FLASH_OPTCR_nWRP_5		0x00200000U
#define FLASH_OPTCR_nWRP_6		0x00400000U
#define FLASH_OPTCR_nWRP_7		0x00800000U
#define FLASH_OPTCR_nWRP_8		0x01000000U
#define FLASH_OPTCR_nWRP_9		0x02000000U
#define FLASH_OPTCR_nWRP_10		0x04000000U
#define FLASH_OPTCR_nWRP_11		0x08000000U

//  Bits definition for FLASH_OPTCR1 register
#define FLASH_OPTCR1_nWRP_Pos		(16U)
#define FLASH_OPTCR1_nWRP_Msk		(0xFFFU << FLASH_OPTCR1_nWRP_Pos)	//  0x0FFF0000
#define FLASH_OPTCR1_nWRP		FLASH_OPTCR1_nWRP_Msk
#define FLASH_OPTCR1_nWRP_0		(0x001U << FLASH_OPTCR1_nWRP_Pos)	//  0x00010000
#define FLASH_OPTCR1_nWRP_1		(0x002U << FLASH_OPTCR1_nWRP_Pos)	//  0x00020000
#define FLASH_OPTCR1_nWRP_2		(0x004U << FLASH_OPTCR1_nWRP_Pos)	//  0x00040000
#define FLASH_OPTCR1_nWRP_3		(0x008U << FLASH_OPTCR1_nWRP_Pos)	//  0x00080000
#define FLASH_OPTCR1_nWRP_4		(0x010U << FLASH_OPTCR1_nWRP_Pos)	//  0x00100000
#define FLASH_OPTCR1_nWRP_5		(0x020U << FLASH_OPTCR1_nWRP_Pos)	//  0x00200000
#define FLASH_OPTCR1_nWRP_6		(0x040U << FLASH_OPTCR1_nWRP_Pos)	//  0x00400000
#define FLASH_OPTCR1_nWRP_7		(0x080U << FLASH_OPTCR1_nWRP_Pos)	//  0x00800000
#define FLASH_OPTCR1_nWRP_8		(0x100U << FLASH_OPTCR1_nWRP_Pos)	//  0x01000000
#define FLASH_OPTCR1_nWRP_9		(0x200U << FLASH_OPTCR1_nWRP_Pos)	//  0x02000000
#define FLASH_OPTCR1_nWRP_10		(0x400U << FLASH_OPTCR1_nWRP_Pos)	//  0x04000000
#define FLASH_OPTCR1_nWRP_11		(0x800U << FLASH_OPTCR1_nWRP_Pos)	//  0x08000000



//			General Purpose I/O


//  Bits definition for GPIO_MODER register
#define GPIO_MODER_MODE0_Pos		(0U)
#define GPIO_MODER_MODE0_Msk		(0x3U << GPIO_MODER_MODE0_Pos)			// 0x00000003
#define GPIO_MODER_MODE0		GPIO_MODER_MODE0_Msk
#define GPIO_MODER_MODE0_0		(0x1U << GPIO_MODER_MODE0_Pos)			// 0x00000001
#define GPIO_MODER_MODE0_1		(0x2U << GPIO_MODER_MODE0_Pos)			// 0x00000002
#define GPIO_MODER_MODE1_Pos		(2U)
#define GPIO_MODER_MODE1_Msk		(0x3U << GPIO_MODER_MODE1_Pos)			// 0x0000000C
#define GPIO_MODER_MODE1		GPIO_MODER_MODE1_Msk
#define GPIO_MODER_MODE1_0		(0x1U << GPIO_MODER_MODE1_Pos)			// 0x00000004
#define GPIO_MODER_MODE1_1		(0x2U << GPIO_MODER_MODE1_Pos)			// 0x00000008
#define GPIO_MODER_MODE2_Pos		(4U)
#define GPIO_MODER_MODE2_Msk		(0x3U << GPIO_MODER_MODE2_Pos)			// 0x00000030
#define GPIO_MODER_MODE2		GPIO_MODER_MODE2_Msk
#define GPIO_MODER_MODE2_0		(0x1U << GPIO_MODER_MODE2_Pos)			// 0x00000010
#define GPIO_MODER_MODE2_1		(0x2U << GPIO_MODER_MODE2_Pos)			// 0x00000020
#define GPIO_MODER_MODE3_Pos		(6U)
#define GPIO_MODER_MODE3_Msk		(0x3U << GPIO_MODER_MODE3_Pos)			// 0x000000C0
#define GPIO_MODER_MODE3		GPIO_MODER_MODE3_Msk
#define GPIO_MODER_MODE3_0		(0x1U << GPIO_MODER_MODE3_Pos)			// 0x00000040
#define GPIO_MODER_MODE3_1		(0x2U << GPIO_MODER_MODE3_Pos)			// 0x00000080
#define GPIO_MODER_MODE4_Pos		(8U)
#define GPIO_MODER_MODE4_Msk		(0x3U << GPIO_MODER_MODE4_Pos)			// 0x00000300
#define GPIO_MODER_MODE4		GPIO_MODER_MODE4_Msk
#define GPIO_MODER_MODE4_0		(0x1U << GPIO_MODER_MODE4_Pos)			// 0x00000100
#define GPIO_MODER_MODE4_1		(0x2U << GPIO_MODER_MODE4_Pos)			// 0x00000200
#define GPIO_MODER_MODE5_Pos		(10U)
#define GPIO_MODER_MODE5_Msk		(0x3U << GPIO_MODER_MODE5_Pos)			// 0x00000C00
#define GPIO_MODER_MODE5		GPIO_MODER_MODE5_Msk
#define GPIO_MODER_MODE5_0		(0x1U << GPIO_MODER_MODE5_Pos)			// 0x00000400
#define GPIO_MODER_MODE5_1		(0x2U << GPIO_MODER_MODE5_Pos)			// 0x00000800
#define GPIO_MODER_MODE6_Pos		(12U)
#define GPIO_MODER_MODE6_Msk		(0x3U << GPIO_MODER_MODE6_Pos)			// 0x00003000
#define GPIO_MODER_MODE6		GPIO_MODER_MODE6_Msk
#define GPIO_MODER_MODE6_0		(0x1U << GPIO_MODER_MODE6_Pos)			// 0x00001000
#define GPIO_MODER_MODE6_1		(0x2U << GPIO_MODER_MODE6_Pos)			// 0x00002000
#define GPIO_MODER_MODE7_Pos		(14U)
#define GPIO_MODER_MODE7_Msk		(0x3U << GPIO_MODER_MODE7_Pos)			// 0x0000C000
#define GPIO_MODER_MODE7		GPIO_MODER_MODE7_Msk
#define GPIO_MODER_MODE7_0		(0x1U << GPIO_MODER_MODE7_Pos)			// 0x00004000
#define GPIO_MODER_MODE7_1		(0x2U << GPIO_MODER_MODE7_Pos)			// 0x00008000
#define GPIO_MODER_MODE8_Pos		(16U)
#define GPIO_MODER_MODE8_Msk		(0x3U << GPIO_MODER_MODE8_Pos)			// 0x00030000
#define GPIO_MODER_MODE8		GPIO_MODER_MODE8_Msk
#define GPIO_MODER_MODE8_0		(0x1U << GPIO_MODER_MODE8_Pos)			// 0x00010000
#define GPIO_MODER_MODE8_1		(0x2U << GPIO_MODER_MODE8_Pos)			// 0x00020000
#define GPIO_MODER_MODE9_Pos		(18U)
#define GPIO_MODER_MODE9_Msk		(0x3U << GPIO_MODER_MODE9_Pos)			// 0x000C0000
#define GPIO_MODER_MODE9		GPIO_MODER_MODE9_Msk
#define GPIO_MODER_MODE9_0		(0x1U << GPIO_MODER_MODE9_Pos)			// 0x00040000
#define GPIO_MODER_MODE9_1		(0x2U << GPIO_MODER_MODE9_Pos)			// 0x00080000
#define GPIO_MODER_MODE10_Pos		(20U)
#define GPIO_MODER_MODE10_Msk		(0x3U << GPIO_MODER_MODE10_Pos)	//  0x00300000
#define GPIO_MODER_MODE10		GPIO_MODER_MODE10_Msk
#define GPIO_MODER_MODE10_0		(0x1U << GPIO_MODER_MODE10_Pos)	//  0x00100000
#define GPIO_MODER_MODE10_1		(0x2U << GPIO_MODER_MODE10_Pos)	//  0x00200000
#define GPIO_MODER_MODE11_Pos		(22U)
#define GPIO_MODER_MODE11_Msk		(0x3U << GPIO_MODER_MODE11_Pos)	//  0x00C00000
#define GPIO_MODER_MODE11		GPIO_MODER_MODE11_Msk
#define GPIO_MODER_MODE11_0		(0x1U << GPIO_MODER_MODE11_Pos)	//  0x00400000
#define GPIO_MODER_MODE11_1		(0x2U << GPIO_MODER_MODE11_Pos)	//  0x00800000
#define GPIO_MODER_MODE12_Pos		(24U)
#define GPIO_MODER_MODE12_Msk		(0x3U << GPIO_MODER_MODE12_Pos)	//  0x03000000
#define GPIO_MODER_MODE12		GPIO_MODER_MODE12_Msk
#define GPIO_MODER_MODE12_0		(0x1U << GPIO_MODER_MODE12_Pos)	//  0x01000000
#define GPIO_MODER_MODE12_1		(0x2U << GPIO_MODER_MODE12_Pos)	//  0x02000000
#define GPIO_MODER_MODE13_Pos		(26U)
#define GPIO_MODER_MODE13_Msk		(0x3U << GPIO_MODER_MODE13_Pos)	//  0x0C000000
#define GPIO_MODER_MODE13		GPIO_MODER_MODE13_Msk
#define GPIO_MODER_MODE13_0		(0x1U << GPIO_MODER_MODE13_Pos)	//  0x04000000
#define GPIO_MODER_MODE13_1		(0x2U << GPIO_MODER_MODE13_Pos)	//  0x08000000
#define GPIO_MODER_MODE14_Pos		(28U)
#define GPIO_MODER_MODE14_Msk		(0x3U << GPIO_MODER_MODE14_Pos)	//  0x30000000
#define GPIO_MODER_MODE14		GPIO_MODER_MODE14_Msk
#define GPIO_MODER_MODE14_0		(0x1U << GPIO_MODER_MODE14_Pos)	//  0x10000000
#define GPIO_MODER_MODE14_1		(0x2U << GPIO_MODER_MODE14_Pos)	//  0x20000000
#define GPIO_MODER_MODE15_Pos		(30U)
#define GPIO_MODER_MODE15_Msk		(0x3U << GPIO_MODER_MODE15_Pos)	//  0xC0000000
#define GPIO_MODER_MODE15		GPIO_MODER_MODE15_Msk
#define GPIO_MODER_MODE15_0		(0x1U << GPIO_MODER_MODE15_Pos)	//  0x40000000
#define GPIO_MODER_MODE15_1		(0x2U << GPIO_MODER_MODE15_Pos)	//  0x80000000

// Legacy defines
#define GPIO_MODER_MODER0_Pos		(0U)
#define GPIO_MODER_MODER0_Msk		(0x3U << GPIO_MODER_MODER0_Pos)	//  0x00000003
#define GPIO_MODER_MODER0			GPIO_MODER_MODER0_Msk
#define GPIO_MODER_MODER0_0		(0x1U << GPIO_MODER_MODER0_Pos)	//  0x00000001
#define GPIO_MODER_MODER0_1		(0x2U << GPIO_MODER_MODER0_Pos)	//  0x00000002
#define GPIO_MODER_MODER1_Pos		(2U)
#define GPIO_MODER_MODER1_Msk		(0x3U << GPIO_MODER_MODER1_Pos)	//  0x0000000C
#define GPIO_MODER_MODER1			GPIO_MODER_MODER1_Msk
#define GPIO_MODER_MODER1_0		(0x1U << GPIO_MODER_MODER1_Pos)	//  0x00000004
#define GPIO_MODER_MODER1_1		(0x2U << GPIO_MODER_MODER1_Pos)	//  0x00000008
#define GPIO_MODER_MODER2_Pos		(4U)
#define GPIO_MODER_MODER2_Msk		(0x3U << GPIO_MODER_MODER2_Pos)	//  0x00000030
#define GPIO_MODER_MODER2			GPIO_MODER_MODER2_Msk
#define GPIO_MODER_MODER2_0		(0x1U << GPIO_MODER_MODER2_Pos)	//  0x00000010
#define GPIO_MODER_MODER2_1		(0x2U << GPIO_MODER_MODER2_Pos)	//  0x00000020
#define GPIO_MODER_MODER3_Pos		(6U)
#define GPIO_MODER_MODER3_Msk		(0x3U << GPIO_MODER_MODER3_Pos)	//  0x000000C0
#define GPIO_MODER_MODER3			GPIO_MODER_MODER3_Msk
#define GPIO_MODER_MODER3_0		(0x1U << GPIO_MODER_MODER3_Pos)	//  0x00000040
#define GPIO_MODER_MODER3_1		(0x2U << GPIO_MODER_MODER3_Pos)	//  0x00000080
#define GPIO_MODER_MODER4_Pos		(8U)
#define GPIO_MODER_MODER4_Msk		(0x3U << GPIO_MODER_MODER4_Pos)	//  0x00000300
#define GPIO_MODER_MODER4			GPIO_MODER_MODER4_Msk
#define GPIO_MODER_MODER4_0		(0x1U << GPIO_MODER_MODER4_Pos)	//  0x00000100
#define GPIO_MODER_MODER4_1		(0x2U << GPIO_MODER_MODER4_Pos)	//  0x00000200
#define GPIO_MODER_MODER5_Pos		(10U)
#define GPIO_MODER_MODER5_Msk		(0x3U << GPIO_MODER_MODER5_Pos)	//  0x00000C00
#define GPIO_MODER_MODER5			GPIO_MODER_MODER5_Msk
#define GPIO_MODER_MODER5_0		(0x1U << GPIO_MODER_MODER5_Pos)	//  0x00000400
#define GPIO_MODER_MODER5_1		(0x2U << GPIO_MODER_MODER5_Pos)	//  0x00000800
#define GPIO_MODER_MODER6_Pos		(12U)
#define GPIO_MODER_MODER6_Msk		(0x3U << GPIO_MODER_MODER6_Pos)	//  0x00003000
#define GPIO_MODER_MODER6			GPIO_MODER_MODER6_Msk
#define GPIO_MODER_MODER6_0		(0x1U << GPIO_MODER_MODER6_Pos)	//  0x00001000
#define GPIO_MODER_MODER6_1		(0x2U << GPIO_MODER_MODER6_Pos)	//  0x00002000
#define GPIO_MODER_MODER7_Pos		(14U)
#define GPIO_MODER_MODER7_Msk		(0x3U << GPIO_MODER_MODER7_Pos)	//  0x0000C000
#define GPIO_MODER_MODER7			GPIO_MODER_MODER7_Msk
#define GPIO_MODER_MODER7_0		(0x1U << GPIO_MODER_MODER7_Pos)	//  0x00004000
#define GPIO_MODER_MODER7_1		(0x2U << GPIO_MODER_MODER7_Pos)	//  0x00008000
#define GPIO_MODER_MODER8_Pos		(16U)
#define GPIO_MODER_MODER8_Msk		(0x3U << GPIO_MODER_MODER8_Pos)	//  0x00030000
#define GPIO_MODER_MODER8			GPIO_MODER_MODER8_Msk
#define GPIO_MODER_MODER8_0		(0x1U << GPIO_MODER_MODER8_Pos)	//  0x00010000
#define GPIO_MODER_MODER8_1		(0x2U << GPIO_MODER_MODER8_Pos)	//  0x00020000
#define GPIO_MODER_MODER9_Pos		(18U)
#define GPIO_MODER_MODER9_Msk		(0x3U << GPIO_MODER_MODER9_Pos)	//  0x000C0000
#define GPIO_MODER_MODER9			GPIO_MODER_MODER9_Msk
#define GPIO_MODER_MODER9_0		(0x1U << GPIO_MODER_MODER9_Pos)	//  0x00040000
#define GPIO_MODER_MODER9_1		(0x2U << GPIO_MODER_MODER9_Pos)	//  0x00080000
#define GPIO_MODER_MODER10_Pos		(20U)
#define GPIO_MODER_MODER10_Msk		(0x3U << GPIO_MODER_MODER10_Pos)	//  0x00300000
#define GPIO_MODER_MODER10		GPIO_MODER_MODER10_Msk
#define GPIO_MODER_MODER10_0		(0x1U << GPIO_MODER_MODER10_Pos)	//  0x00100000
#define GPIO_MODER_MODER10_1		(0x2U << GPIO_MODER_MODER10_Pos)	//  0x00200000
#define GPIO_MODER_MODER11_Pos		(22U)
#define GPIO_MODER_MODER11_Msk		(0x3U << GPIO_MODER_MODER11_Pos)	//  0x00C00000
#define GPIO_MODER_MODER11		GPIO_MODER_MODER11_Msk
#define GPIO_MODER_MODER11_0		(0x1U << GPIO_MODER_MODER11_Pos)	//  0x00400000
#define GPIO_MODER_MODER11_1		(0x2U << GPIO_MODER_MODER11_Pos)	//  0x00800000
#define GPIO_MODER_MODER12_Pos		(24U)
#define GPIO_MODER_MODER12_Msk		(0x3U << GPIO_MODER_MODER12_Pos)	//  0x03000000
#define GPIO_MODER_MODER12		GPIO_MODER_MODER12_Msk
#define GPIO_MODER_MODER12_0		(0x1U << GPIO_MODER_MODER12_Pos)	//  0x01000000
#define GPIO_MODER_MODER12_1		(0x2U << GPIO_MODER_MODER12_Pos)	//  0x02000000
#define GPIO_MODER_MODER13_Pos		(26U)
#define GPIO_MODER_MODER13_Msk		(0x3U << GPIO_MODER_MODER13_Pos)	//  0x0C000000
#define GPIO_MODER_MODER13		GPIO_MODER_MODER13_Msk
#define GPIO_MODER_MODER13_0		(0x1U << GPIO_MODER_MODER13_Pos)	//  0x04000000
#define GPIO_MODER_MODER13_1		(0x2U << GPIO_MODER_MODER13_Pos)	//  0x08000000
#define GPIO_MODER_MODER14_Pos		(28U)
#define GPIO_MODER_MODER14_Msk		(0x3U << GPIO_MODER_MODER14_Pos)	//  0x30000000
#define GPIO_MODER_MODER14		GPIO_MODER_MODER14_Msk
#define GPIO_MODER_MODER14_0		(0x1U << GPIO_MODER_MODER14_Pos)	//  0x10000000
#define GPIO_MODER_MODER14_1		(0x2U << GPIO_MODER_MODER14_Pos)	//  0x20000000
#define GPIO_MODER_MODER15_Pos		(30U)
#define GPIO_MODER_MODER15_Msk		(0x3U << GPIO_MODER_MODER15_Pos)	//  0xC0000000
#define GPIO_MODER_MODER15		GPIO_MODER_MODER15_Msk
#define GPIO_MODER_MODER15_0		(0x1U << GPIO_MODER_MODER15_Pos)	//  0x40000000
#define GPIO_MODER_MODER15_1		(0x2U << GPIO_MODER_MODER15_Pos)	//  0x80000000

//  Bits definition for GPIO_OTYPER register
#define GPIO_OTYPER_OT0_Pos		(0U)
#define GPIO_OTYPER_OT0_Msk		(0x1U << GPIO_OTYPER_OT0_Pos)			// 0x00000001
#define GPIO_OTYPER_OT0			GPIO_OTYPER_OT0_Msk
#define GPIO_OTYPER_OT1_Pos		(1U)
#define GPIO_OTYPER_OT1_Msk		(0x1U << GPIO_OTYPER_OT1_Pos)			// 0x00000002
#define GPIO_OTYPER_OT1			GPIO_OTYPER_OT1_Msk
#define GPIO_OTYPER_OT2_Pos		(2U)
#define GPIO_OTYPER_OT2_Msk		(0x1U << GPIO_OTYPER_OT2_Pos)			// 0x00000004
#define GPIO_OTYPER_OT2			GPIO_OTYPER_OT2_Msk
#define GPIO_OTYPER_OT3_Pos		(3U)
#define GPIO_OTYPER_OT3_Msk		(0x1U << GPIO_OTYPER_OT3_Pos)			// 0x00000008
#define GPIO_OTYPER_OT3			GPIO_OTYPER_OT3_Msk
#define GPIO_OTYPER_OT4_Pos		(4U)
#define GPIO_OTYPER_OT4_Msk		(0x1U << GPIO_OTYPER_OT4_Pos)			// 0x00000010
#define GPIO_OTYPER_OT4			GPIO_OTYPER_OT4_Msk
#define GPIO_OTYPER_OT5_Pos		(5U)
#define GPIO_OTYPER_OT5_Msk		(0x1U << GPIO_OTYPER_OT5_Pos)			// 0x00000020
#define GPIO_OTYPER_OT5			GPIO_OTYPER_OT5_Msk
#define GPIO_OTYPER_OT6_Pos		(6U)
#define GPIO_OTYPER_OT6_Msk		(0x1U << GPIO_OTYPER_OT6_Pos)			// 0x00000040
#define GPIO_OTYPER_OT6			GPIO_OTYPER_OT6_Msk
#define GPIO_OTYPER_OT7_Pos		(7U)
#define GPIO_OTYPER_OT7_Msk		(0x1U << GPIO_OTYPER_OT7_Pos)			// 0x00000080
#define GPIO_OTYPER_OT7			GPIO_OTYPER_OT7_Msk
#define GPIO_OTYPER_OT8_Pos		(8U)
#define GPIO_OTYPER_OT8_Msk		(0x1U << GPIO_OTYPER_OT8_Pos)			// 0x00000100
#define GPIO_OTYPER_OT8			GPIO_OTYPER_OT8_Msk
#define GPIO_OTYPER_OT9_Pos		(9U)
#define GPIO_OTYPER_OT9_Msk		(0x1U << GPIO_OTYPER_OT9_Pos)			// 0x00000200
#define GPIO_OTYPER_OT9			GPIO_OTYPER_OT9_Msk
#define GPIO_OTYPER_OT10_Pos		(10U)
#define GPIO_OTYPER_OT10_Msk		(0x1U << GPIO_OTYPER_OT10_Pos)			// 0x00000400
#define GPIO_OTYPER_OT10			GPIO_OTYPER_OT10_Msk
#define GPIO_OTYPER_OT11_Pos		(11U)
#define GPIO_OTYPER_OT11_Msk		(0x1U << GPIO_OTYPER_OT11_Pos)			// 0x00000800
#define GPIO_OTYPER_OT11			GPIO_OTYPER_OT11_Msk
#define GPIO_OTYPER_OT12_Pos		(12U)
#define GPIO_OTYPER_OT12_Msk		(0x1U << GPIO_OTYPER_OT12_Pos)			// 0x00001000
#define GPIO_OTYPER_OT12			GPIO_OTYPER_OT12_Msk
#define GPIO_OTYPER_OT13_Pos		(13U)
#define GPIO_OTYPER_OT13_Msk		(0x1U << GPIO_OTYPER_OT13_Pos)			// 0x00002000
#define GPIO_OTYPER_OT13			GPIO_OTYPER_OT13_Msk
#define GPIO_OTYPER_OT14_Pos		(14U)
#define GPIO_OTYPER_OT14_Msk		(0x1U << GPIO_OTYPER_OT14_Pos)			// 0x00004000
#define GPIO_OTYPER_OT14			GPIO_OTYPER_OT14_Msk
#define GPIO_OTYPER_OT15_Pos		(15U)
#define GPIO_OTYPER_OT15_Msk		(0x1U << GPIO_OTYPER_OT15_Pos)			// 0x00008000
#define GPIO_OTYPER_OT15			GPIO_OTYPER_OT15_Msk

// Legacy defines
#define GPIO_OTYPER_OT_0			GPIO_OTYPER_OT0
#define GPIO_OTYPER_OT_1			GPIO_OTYPER_OT1
#define GPIO_OTYPER_OT_2			GPIO_OTYPER_OT2
#define GPIO_OTYPER_OT_3			GPIO_OTYPER_OT3
#define GPIO_OTYPER_OT_4			GPIO_OTYPER_OT4
#define GPIO_OTYPER_OT_5			GPIO_OTYPER_OT5
#define GPIO_OTYPER_OT_6			GPIO_OTYPER_OT6
#define GPIO_OTYPER_OT_7			GPIO_OTYPER_OT7
#define GPIO_OTYPER_OT_8			GPIO_OTYPER_OT8
#define GPIO_OTYPER_OT_9			GPIO_OTYPER_OT9
#define GPIO_OTYPER_OT_10			GPIO_OTYPER_OT10
#define GPIO_OTYPER_OT_11			GPIO_OTYPER_OT11
#define GPIO_OTYPER_OT_12			GPIO_OTYPER_OT12
#define GPIO_OTYPER_OT_13			GPIO_OTYPER_OT13
#define GPIO_OTYPER_OT_14			GPIO_OTYPER_OT14
#define GPIO_OTYPER_OT_15			GPIO_OTYPER_OT15

//  Bits definition for GPIO_OSPEEDR register
#define GPIO_OSPEEDR_OSPEED0_Pos		(0U)
#define GPIO_OSPEEDR_OSPEED0_Msk		(0x3U << GPIO_OSPEEDR_OSPEED0_Pos)	//  0x00000003
#define GPIO_OSPEEDR_OSPEED0		GPIO_OSPEEDR_OSPEED0_Msk
#define GPIO_OSPEEDR_OSPEED0_0		(0x1U << GPIO_OSPEEDR_OSPEED0_Pos)	//  0x00000001
#define GPIO_OSPEEDR_OSPEED0_1		(0x2U << GPIO_OSPEEDR_OSPEED0_Pos)	//  0x00000002
#define GPIO_OSPEEDR_OSPEED1_Pos		(2U)
#define GPIO_OSPEEDR_OSPEED1_Msk		(0x3U << GPIO_OSPEEDR_OSPEED1_Pos)	//  0x0000000C
#define GPIO_OSPEEDR_OSPEED1		GPIO_OSPEEDR_OSPEED1_Msk
#define GPIO_OSPEEDR_OSPEED1_0		(0x1U << GPIO_OSPEEDR_OSPEED1_Pos)	//  0x00000004
#define GPIO_OSPEEDR_OSPEED1_1		(0x2U << GPIO_OSPEEDR_OSPEED1_Pos)	//  0x00000008
#define GPIO_OSPEEDR_OSPEED2_Pos		(4U)
#define GPIO_OSPEEDR_OSPEED2_Msk		(0x3U << GPIO_OSPEEDR_OSPEED2_Pos)	//  0x00000030
#define GPIO_OSPEEDR_OSPEED2		GPIO_OSPEEDR_OSPEED2_Msk
#define GPIO_OSPEEDR_OSPEED2_0		(0x1U << GPIO_OSPEEDR_OSPEED2_Pos)	//  0x00000010
#define GPIO_OSPEEDR_OSPEED2_1		(0x2U << GPIO_OSPEEDR_OSPEED2_Pos)	//  0x00000020
#define GPIO_OSPEEDR_OSPEED3_Pos		(6U)
#define GPIO_OSPEEDR_OSPEED3_Msk		(0x3U << GPIO_OSPEEDR_OSPEED3_Pos)	//  0x000000C0
#define GPIO_OSPEEDR_OSPEED3		GPIO_OSPEEDR_OSPEED3_Msk
#define GPIO_OSPEEDR_OSPEED3_0		(0x1U << GPIO_OSPEEDR_OSPEED3_Pos)	//  0x00000040
#define GPIO_OSPEEDR_OSPEED3_1		(0x2U << GPIO_OSPEEDR_OSPEED3_Pos)	//  0x00000080
#define GPIO_OSPEEDR_OSPEED4_Pos		(8U)
#define GPIO_OSPEEDR_OSPEED4_Msk		(0x3U << GPIO_OSPEEDR_OSPEED4_Pos)	//  0x00000300
#define GPIO_OSPEEDR_OSPEED4		GPIO_OSPEEDR_OSPEED4_Msk
#define GPIO_OSPEEDR_OSPEED4_0		(0x1U << GPIO_OSPEEDR_OSPEED4_Pos)	//  0x00000100
#define GPIO_OSPEEDR_OSPEED4_1		(0x2U << GPIO_OSPEEDR_OSPEED4_Pos)	//  0x00000200
#define GPIO_OSPEEDR_OSPEED5_Pos		(10U)
#define GPIO_OSPEEDR_OSPEED5_Msk		(0x3U << GPIO_OSPEEDR_OSPEED5_Pos)	//  0x00000C00
#define GPIO_OSPEEDR_OSPEED5		GPIO_OSPEEDR_OSPEED5_Msk
#define GPIO_OSPEEDR_OSPEED5_0		(0x1U << GPIO_OSPEEDR_OSPEED5_Pos)	//  0x00000400
#define GPIO_OSPEEDR_OSPEED5_1		(0x2U << GPIO_OSPEEDR_OSPEED5_Pos)	//  0x00000800
#define GPIO_OSPEEDR_OSPEED6_Pos		(12U)
#define GPIO_OSPEEDR_OSPEED6_Msk		(0x3U << GPIO_OSPEEDR_OSPEED6_Pos)	//  0x00003000
#define GPIO_OSPEEDR_OSPEED6		GPIO_OSPEEDR_OSPEED6_Msk
#define GPIO_OSPEEDR_OSPEED6_0		(0x1U << GPIO_OSPEEDR_OSPEED6_Pos)	//  0x00001000
#define GPIO_OSPEEDR_OSPEED6_1		(0x2U << GPIO_OSPEEDR_OSPEED6_Pos)	//  0x00002000
#define GPIO_OSPEEDR_OSPEED7_Pos		(14U)
#define GPIO_OSPEEDR_OSPEED7_Msk		(0x3U << GPIO_OSPEEDR_OSPEED7_Pos)	//  0x0000C000
#define GPIO_OSPEEDR_OSPEED7		GPIO_OSPEEDR_OSPEED7_Msk
#define GPIO_OSPEEDR_OSPEED7_0		(0x1U << GPIO_OSPEEDR_OSPEED7_Pos)	//  0x00004000
#define GPIO_OSPEEDR_OSPEED7_1		(0x2U << GPIO_OSPEEDR_OSPEED7_Pos)	//  0x00008000
#define GPIO_OSPEEDR_OSPEED8_Pos		(16U)
#define GPIO_OSPEEDR_OSPEED8_Msk		(0x3U << GPIO_OSPEEDR_OSPEED8_Pos)	//  0x00030000
#define GPIO_OSPEEDR_OSPEED8		GPIO_OSPEEDR_OSPEED8_Msk
#define GPIO_OSPEEDR_OSPEED8_0		(0x1U << GPIO_OSPEEDR_OSPEED8_Pos)	//  0x00010000
#define GPIO_OSPEEDR_OSPEED8_1		(0x2U << GPIO_OSPEEDR_OSPEED8_Pos)	//  0x00020000
#define GPIO_OSPEEDR_OSPEED9_Pos		(18U)
#define GPIO_OSPEEDR_OSPEED9_Msk		(0x3U << GPIO_OSPEEDR_OSPEED9_Pos)	//  0x000C0000
#define GPIO_OSPEEDR_OSPEED9		GPIO_OSPEEDR_OSPEED9_Msk
#define GPIO_OSPEEDR_OSPEED9_0		(0x1U << GPIO_OSPEEDR_OSPEED9_Pos)	//  0x00040000
#define GPIO_OSPEEDR_OSPEED9_1		(0x2U << GPIO_OSPEEDR_OSPEED9_Pos)	//  0x00080000
#define GPIO_OSPEEDR_OSPEED10_Pos		(20U)
#define GPIO_OSPEEDR_OSPEED10_Msk		(0x3U << GPIO_OSPEEDR_OSPEED10_Pos)	//  0x00300000
#define GPIO_OSPEEDR_OSPEED10		GPIO_OSPEEDR_OSPEED10_Msk
#define GPIO_OSPEEDR_OSPEED10_0		(0x1U << GPIO_OSPEEDR_OSPEED10_Pos)	//  0x00100000
#define GPIO_OSPEEDR_OSPEED10_1		(0x2U << GPIO_OSPEEDR_OSPEED10_Pos)	//  0x00200000
#define GPIO_OSPEEDR_OSPEED11_Pos		(22U)
#define GPIO_OSPEEDR_OSPEED11_Msk		(0x3U << GPIO_OSPEEDR_OSPEED11_Pos)	//  0x00C00000
#define GPIO_OSPEEDR_OSPEED11		GPIO_OSPEEDR_OSPEED11_Msk
#define GPIO_OSPEEDR_OSPEED11_0		(0x1U << GPIO_OSPEEDR_OSPEED11_Pos)	//  0x00400000
#define GPIO_OSPEEDR_OSPEED11_1		(0x2U << GPIO_OSPEEDR_OSPEED11_Pos)	//  0x00800000
#define GPIO_OSPEEDR_OSPEED12_Pos		(24U)
#define GPIO_OSPEEDR_OSPEED12_Msk		(0x3U << GPIO_OSPEEDR_OSPEED12_Pos)	//  0x03000000
#define GPIO_OSPEEDR_OSPEED12		GPIO_OSPEEDR_OSPEED12_Msk
#define GPIO_OSPEEDR_OSPEED12_0		(0x1U << GPIO_OSPEEDR_OSPEED12_Pos)	//  0x01000000
#define GPIO_OSPEEDR_OSPEED12_1		(0x2U << GPIO_OSPEEDR_OSPEED12_Pos)	//  0x02000000
#define GPIO_OSPEEDR_OSPEED13_Pos		(26U)
#define GPIO_OSPEEDR_OSPEED13_Msk		(0x3U << GPIO_OSPEEDR_OSPEED13_Pos)	//  0x0C000000
#define GPIO_OSPEEDR_OSPEED13		GPIO_OSPEEDR_OSPEED13_Msk
#define GPIO_OSPEEDR_OSPEED13_0		(0x1U << GPIO_OSPEEDR_OSPEED13_Pos)	//  0x04000000
#define GPIO_OSPEEDR_OSPEED13_1		(0x2U << GPIO_OSPEEDR_OSPEED13_Pos)	//  0x08000000
#define GPIO_OSPEEDR_OSPEED14_Pos		(28U)
#define GPIO_OSPEEDR_OSPEED14_Msk		(0x3U << GPIO_OSPEEDR_OSPEED14_Pos)	//  0x30000000
#define GPIO_OSPEEDR_OSPEED14		GPIO_OSPEEDR_OSPEED14_Msk
#define GPIO_OSPEEDR_OSPEED14_0		(0x1U << GPIO_OSPEEDR_OSPEED14_Pos)	//  0x10000000
#define GPIO_OSPEEDR_OSPEED14_1		(0x2U << GPIO_OSPEEDR_OSPEED14_Pos)	//  0x20000000
#define GPIO_OSPEEDR_OSPEED15_Pos		(30U)
#define GPIO_OSPEEDR_OSPEED15_Msk		(0x3U << GPIO_OSPEEDR_OSPEED15_Pos)	//  0xC0000000
#define GPIO_OSPEEDR_OSPEED15		GPIO_OSPEEDR_OSPEED15_Msk
#define GPIO_OSPEEDR_OSPEED15_0		(0x1U << GPIO_OSPEEDR_OSPEED15_Pos)	//  0x40000000
#define GPIO_OSPEEDR_OSPEED15_1		(0x2U << GPIO_OSPEEDR_OSPEED15_Pos)	//  0x80000000

// Legacy defines
#define GPIO_OSPEEDER_OSPEEDR0		GPIO_OSPEEDR_OSPEED0
#define GPIO_OSPEEDER_OSPEEDR0_0	GPIO_OSPEEDR_OSPEED0_0
#define GPIO_OSPEEDER_OSPEEDR0_1	GPIO_OSPEEDR_OSPEED0_1
#define GPIO_OSPEEDER_OSPEEDR1		GPIO_OSPEEDR_OSPEED1
#define GPIO_OSPEEDER_OSPEEDR1_0	GPIO_OSPEEDR_OSPEED1_0
#define GPIO_OSPEEDER_OSPEEDR1_1	GPIO_OSPEEDR_OSPEED1_1
#define GPIO_OSPEEDER_OSPEEDR2		GPIO_OSPEEDR_OSPEED2
#define GPIO_OSPEEDER_OSPEEDR2_0	GPIO_OSPEEDR_OSPEED2_0
#define GPIO_OSPEEDER_OSPEEDR2_1	GPIO_OSPEEDR_OSPEED2_1
#define GPIO_OSPEEDER_OSPEEDR3		GPIO_OSPEEDR_OSPEED3
#define GPIO_OSPEEDER_OSPEEDR3_0	GPIO_OSPEEDR_OSPEED3_0
#define GPIO_OSPEEDER_OSPEEDR3_1	GPIO_OSPEEDR_OSPEED3_1
#define GPIO_OSPEEDER_OSPEEDR4		GPIO_OSPEEDR_OSPEED4
#define GPIO_OSPEEDER_OSPEEDR4_0	GPIO_OSPEEDR_OSPEED4_0
#define GPIO_OSPEEDER_OSPEEDR4_1	GPIO_OSPEEDR_OSPEED4_1
#define GPIO_OSPEEDER_OSPEEDR5		GPIO_OSPEEDR_OSPEED5
#define GPIO_OSPEEDER_OSPEEDR5_0	GPIO_OSPEEDR_OSPEED5_0
#define GPIO_OSPEEDER_OSPEEDR5_1	GPIO_OSPEEDR_OSPEED5_1
#define GPIO_OSPEEDER_OSPEEDR6		GPIO_OSPEEDR_OSPEED6
#define GPIO_OSPEEDER_OSPEEDR6_0	GPIO_OSPEEDR_OSPEED6_0
#define GPIO_OSPEEDER_OSPEEDR6_1	GPIO_OSPEEDR_OSPEED6_1
#define GPIO_OSPEEDER_OSPEEDR7		GPIO_OSPEEDR_OSPEED7
#define GPIO_OSPEEDER_OSPEEDR7_0	GPIO_OSPEEDR_OSPEED7_0
#define GPIO_OSPEEDER_OSPEEDR7_1	GPIO_OSPEEDR_OSPEED7_1
#define GPIO_OSPEEDER_OSPEEDR8		GPIO_OSPEEDR_OSPEED8
#define GPIO_OSPEEDER_OSPEEDR8_0	GPIO_OSPEEDR_OSPEED8_0
#define GPIO_OSPEEDER_OSPEEDR8_1	GPIO_OSPEEDR_OSPEED8_1
#define GPIO_OSPEEDER_OSPEEDR9		GPIO_OSPEEDR_OSPEED9
#define GPIO_OSPEEDER_OSPEEDR9_0	GPIO_OSPEEDR_OSPEED9_0
#define GPIO_OSPEEDER_OSPEEDR9_1	GPIO_OSPEEDR_OSPEED9_1
#define GPIO_OSPEEDER_OSPEEDR10		GPIO_OSPEEDR_OSPEED10
#define GPIO_OSPEEDER_OSPEEDR10_0	GPIO_OSPEEDR_OSPEED10_0
#define GPIO_OSPEEDER_OSPEEDR10_1	GPIO_OSPEEDR_OSPEED10_1
#define GPIO_OSPEEDER_OSPEEDR11		GPIO_OSPEEDR_OSPEED11
#define GPIO_OSPEEDER_OSPEEDR11_0	GPIO_OSPEEDR_OSPEED11_0
#define GPIO_OSPEEDER_OSPEEDR11_1	GPIO_OSPEEDR_OSPEED11_1
#define GPIO_OSPEEDER_OSPEEDR12		GPIO_OSPEEDR_OSPEED12
#define GPIO_OSPEEDER_OSPEEDR12_0	GPIO_OSPEEDR_OSPEED12_0
#define GPIO_OSPEEDER_OSPEEDR12_1	GPIO_OSPEEDR_OSPEED12_1
#define GPIO_OSPEEDER_OSPEEDR13		GPIO_OSPEEDR_OSPEED13
#define GPIO_OSPEEDER_OSPEEDR13_0	GPIO_OSPEEDR_OSPEED13_0
#define GPIO_OSPEEDER_OSPEEDR13_1	GPIO_OSPEEDR_OSPEED13_1
#define GPIO_OSPEEDER_OSPEEDR14		GPIO_OSPEEDR_OSPEED14
#define GPIO_OSPEEDER_OSPEEDR14_0	GPIO_OSPEEDR_OSPEED14_0
#define GPIO_OSPEEDER_OSPEEDR14_1	GPIO_OSPEEDR_OSPEED14_1
#define GPIO_OSPEEDER_OSPEEDR15		GPIO_OSPEEDR_OSPEED15
#define GPIO_OSPEEDER_OSPEEDR15_0	GPIO_OSPEEDR_OSPEED15_0
#define GPIO_OSPEEDER_OSPEEDR15_1	GPIO_OSPEEDR_OSPEED15_1

//  Bits definition for GPIO_PUPDR register
#define GPIO_PUPDR_PUPD0_Pos		(0U)
#define GPIO_PUPDR_PUPD0_Msk		(0x3U << GPIO_PUPDR_PUPD0_Pos)			// 0x00000003
#define GPIO_PUPDR_PUPD0		GPIO_PUPDR_PUPD0_Msk
#define GPIO_PUPDR_PUPD0_0		(0x1U << GPIO_PUPDR_PUPD0_Pos)			// 0x00000001
#define GPIO_PUPDR_PUPD0_1		(0x2U << GPIO_PUPDR_PUPD0_Pos)			// 0x00000002
#define GPIO_PUPDR_PUPD1_Pos		(2U)
#define GPIO_PUPDR_PUPD1_Msk		(0x3U << GPIO_PUPDR_PUPD1_Pos)			// 0x0000000C
#define GPIO_PUPDR_PUPD1		GPIO_PUPDR_PUPD1_Msk
#define GPIO_PUPDR_PUPD1_0		(0x1U << GPIO_PUPDR_PUPD1_Pos)			// 0x00000004
#define GPIO_PUPDR_PUPD1_1		(0x2U << GPIO_PUPDR_PUPD1_Pos)			// 0x00000008
#define GPIO_PUPDR_PUPD2_Pos		(4U)
#define GPIO_PUPDR_PUPD2_Msk		(0x3U << GPIO_PUPDR_PUPD2_Pos)			// 0x00000030
#define GPIO_PUPDR_PUPD2		GPIO_PUPDR_PUPD2_Msk
#define GPIO_PUPDR_PUPD2_0		(0x1U << GPIO_PUPDR_PUPD2_Pos)			// 0x00000010
#define GPIO_PUPDR_PUPD2_1		(0x2U << GPIO_PUPDR_PUPD2_Pos)			// 0x00000020
#define GPIO_PUPDR_PUPD3_Pos		(6U)
#define GPIO_PUPDR_PUPD3_Msk		(0x3U << GPIO_PUPDR_PUPD3_Pos)			// 0x000000C0
#define GPIO_PUPDR_PUPD3		GPIO_PUPDR_PUPD3_Msk
#define GPIO_PUPDR_PUPD3_0		(0x1U << GPIO_PUPDR_PUPD3_Pos)			// 0x00000040
#define GPIO_PUPDR_PUPD3_1		(0x2U << GPIO_PUPDR_PUPD3_Pos)			// 0x00000080
#define GPIO_PUPDR_PUPD4_Pos		(8U)
#define GPIO_PUPDR_PUPD4_Msk		(0x3U << GPIO_PUPDR_PUPD4_Pos)			// 0x00000300
#define GPIO_PUPDR_PUPD4		GPIO_PUPDR_PUPD4_Msk
#define GPIO_PUPDR_PUPD4_0		(0x1U << GPIO_PUPDR_PUPD4_Pos)			// 0x00000100
#define GPIO_PUPDR_PUPD4_1		(0x2U << GPIO_PUPDR_PUPD4_Pos)			// 0x00000200
#define GPIO_PUPDR_PUPD5_Pos		(10U)
#define GPIO_PUPDR_PUPD5_Msk		(0x3U << GPIO_PUPDR_PUPD5_Pos)			// 0x00000C00
#define GPIO_PUPDR_PUPD5		GPIO_PUPDR_PUPD5_Msk
#define GPIO_PUPDR_PUPD5_0		(0x1U << GPIO_PUPDR_PUPD5_Pos)			// 0x00000400
#define GPIO_PUPDR_PUPD5_1		(0x2U << GPIO_PUPDR_PUPD5_Pos)			// 0x00000800
#define GPIO_PUPDR_PUPD6_Pos		(12U)
#define GPIO_PUPDR_PUPD6_Msk		(0x3U << GPIO_PUPDR_PUPD6_Pos)			// 0x00003000
#define GPIO_PUPDR_PUPD6		GPIO_PUPDR_PUPD6_Msk
#define GPIO_PUPDR_PUPD6_0		(0x1U << GPIO_PUPDR_PUPD6_Pos)			// 0x00001000
#define GPIO_PUPDR_PUPD6_1		(0x2U << GPIO_PUPDR_PUPD6_Pos)			// 0x00002000
#define GPIO_PUPDR_PUPD7_Pos		(14U)
#define GPIO_PUPDR_PUPD7_Msk		(0x3U << GPIO_PUPDR_PUPD7_Pos)			// 0x0000C000
#define GPIO_PUPDR_PUPD7		GPIO_PUPDR_PUPD7_Msk
#define GPIO_PUPDR_PUPD7_0		(0x1U << GPIO_PUPDR_PUPD7_Pos)			// 0x00004000
#define GPIO_PUPDR_PUPD7_1		(0x2U << GPIO_PUPDR_PUPD7_Pos)			// 0x00008000
#define GPIO_PUPDR_PUPD8_Pos		(16U)
#define GPIO_PUPDR_PUPD8_Msk		(0x3U << GPIO_PUPDR_PUPD8_Pos)			// 0x00030000
#define GPIO_PUPDR_PUPD8		GPIO_PUPDR_PUPD8_Msk
#define GPIO_PUPDR_PUPD8_0		(0x1U << GPIO_PUPDR_PUPD8_Pos)			// 0x00010000
#define GPIO_PUPDR_PUPD8_1		(0x2U << GPIO_PUPDR_PUPD8_Pos)			// 0x00020000
#define GPIO_PUPDR_PUPD9_Pos		(18U)
#define GPIO_PUPDR_PUPD9_Msk		(0x3U << GPIO_PUPDR_PUPD9_Pos)			// 0x000C0000
#define GPIO_PUPDR_PUPD9		GPIO_PUPDR_PUPD9_Msk
#define GPIO_PUPDR_PUPD9_0		(0x1U << GPIO_PUPDR_PUPD9_Pos)			// 0x00040000
#define GPIO_PUPDR_PUPD9_1		(0x2U << GPIO_PUPDR_PUPD9_Pos)			// 0x00080000
#define GPIO_PUPDR_PUPD10_Pos		(20U)
#define GPIO_PUPDR_PUPD10_Msk		(0x3U << GPIO_PUPDR_PUPD10_Pos)	//  0x00300000
#define GPIO_PUPDR_PUPD10		GPIO_PUPDR_PUPD10_Msk
#define GPIO_PUPDR_PUPD10_0		(0x1U << GPIO_PUPDR_PUPD10_Pos)	//  0x00100000
#define GPIO_PUPDR_PUPD10_1		(0x2U << GPIO_PUPDR_PUPD10_Pos)	//  0x00200000
#define GPIO_PUPDR_PUPD11_Pos		(22U)
#define GPIO_PUPDR_PUPD11_Msk		(0x3U << GPIO_PUPDR_PUPD11_Pos)	//  0x00C00000
#define GPIO_PUPDR_PUPD11		GPIO_PUPDR_PUPD11_Msk
#define GPIO_PUPDR_PUPD11_0		(0x1U << GPIO_PUPDR_PUPD11_Pos)	//  0x00400000
#define GPIO_PUPDR_PUPD11_1		(0x2U << GPIO_PUPDR_PUPD11_Pos)	//  0x00800000
#define GPIO_PUPDR_PUPD12_Pos		(24U)
#define GPIO_PUPDR_PUPD12_Msk		(0x3U << GPIO_PUPDR_PUPD12_Pos)	//  0x03000000
#define GPIO_PUPDR_PUPD12		GPIO_PUPDR_PUPD12_Msk
#define GPIO_PUPDR_PUPD12_0		(0x1U << GPIO_PUPDR_PUPD12_Pos)	//  0x01000000
#define GPIO_PUPDR_PUPD12_1		(0x2U << GPIO_PUPDR_PUPD12_Pos)	//  0x02000000
#define GPIO_PUPDR_PUPD13_Pos		(26U)
#define GPIO_PUPDR_PUPD13_Msk		(0x3U << GPIO_PUPDR_PUPD13_Pos)	//  0x0C000000
#define GPIO_PUPDR_PUPD13		GPIO_PUPDR_PUPD13_Msk
#define GPIO_PUPDR_PUPD13_0		(0x1U << GPIO_PUPDR_PUPD13_Pos)	//  0x04000000
#define GPIO_PUPDR_PUPD13_1		(0x2U << GPIO_PUPDR_PUPD13_Pos)	//  0x08000000
#define GPIO_PUPDR_PUPD14_Pos		(28U)
#define GPIO_PUPDR_PUPD14_Msk		(0x3U << GPIO_PUPDR_PUPD14_Pos)	//  0x30000000
#define GPIO_PUPDR_PUPD14		GPIO_PUPDR_PUPD14_Msk
#define GPIO_PUPDR_PUPD14_0		(0x1U << GPIO_PUPDR_PUPD14_Pos)	//  0x10000000
#define GPIO_PUPDR_PUPD14_1		(0x2U << GPIO_PUPDR_PUPD14_Pos)	//  0x20000000
#define GPIO_PUPDR_PUPD15_Pos		(30U)
#define GPIO_PUPDR_PUPD15_Msk		(0x3U << GPIO_PUPDR_PUPD15_Pos)	//  0xC0000000
#define GPIO_PUPDR_PUPD15		GPIO_PUPDR_PUPD15_Msk
#define GPIO_PUPDR_PUPD15_0		(0x1U << GPIO_PUPDR_PUPD15_Pos)	//  0x40000000
#define GPIO_PUPDR_PUPD15_1		(0x2U << GPIO_PUPDR_PUPD15_Pos)	//  0x80000000

// Legacy defines
#define GPIO_PUPDR_PUPDR0			GPIO_PUPDR_PUPD0
#define GPIO_PUPDR_PUPDR0_0			GPIO_PUPDR_PUPD0_0
#define GPIO_PUPDR_PUPDR0_1			GPIO_PUPDR_PUPD0_1
#define GPIO_PUPDR_PUPDR1			GPIO_PUPDR_PUPD1
#define GPIO_PUPDR_PUPDR1_0			GPIO_PUPDR_PUPD1_0
#define GPIO_PUPDR_PUPDR1_1			GPIO_PUPDR_PUPD1_1
#define GPIO_PUPDR_PUPDR2			GPIO_PUPDR_PUPD2
#define GPIO_PUPDR_PUPDR2_0			GPIO_PUPDR_PUPD2_0
#define GPIO_PUPDR_PUPDR2_1			GPIO_PUPDR_PUPD2_1
#define GPIO_PUPDR_PUPDR3			GPIO_PUPDR_PUPD3
#define GPIO_PUPDR_PUPDR3_0			GPIO_PUPDR_PUPD3_0
#define GPIO_PUPDR_PUPDR3_1			GPIO_PUPDR_PUPD3_1
#define GPIO_PUPDR_PUPDR4			GPIO_PUPDR_PUPD4
#define GPIO_PUPDR_PUPDR4_0			GPIO_PUPDR_PUPD4_0
#define GPIO_PUPDR_PUPDR4_1			GPIO_PUPDR_PUPD4_1
#define GPIO_PUPDR_PUPDR5			GPIO_PUPDR_PUPD5
#define GPIO_PUPDR_PUPDR5_0			GPIO_PUPDR_PUPD5_0
#define GPIO_PUPDR_PUPDR5_1			GPIO_PUPDR_PUPD5_1
#define GPIO_PUPDR_PUPDR6			GPIO_PUPDR_PUPD6
#define GPIO_PUPDR_PUPDR6_0			GPIO_PUPDR_PUPD6_0
#define GPIO_PUPDR_PUPDR6_1			GPIO_PUPDR_PUPD6_1
#define GPIO_PUPDR_PUPDR7			GPIO_PUPDR_PUPD7
#define GPIO_PUPDR_PUPDR7_0			GPIO_PUPDR_PUPD7_0
#define GPIO_PUPDR_PUPDR7_1			GPIO_PUPDR_PUPD7_1
#define GPIO_PUPDR_PUPDR8			GPIO_PUPDR_PUPD8
#define GPIO_PUPDR_PUPDR8_0			GPIO_PUPDR_PUPD8_0
#define GPIO_PUPDR_PUPDR8_1			GPIO_PUPDR_PUPD8_1
#define GPIO_PUPDR_PUPDR9			GPIO_PUPDR_PUPD9
#define GPIO_PUPDR_PUPDR9_0			GPIO_PUPDR_PUPD9_0
#define GPIO_PUPDR_PUPDR9_1			GPIO_PUPDR_PUPD9_1
#define GPIO_PUPDR_PUPDR10			GPIO_PUPDR_PUPD10
#define GPIO_PUPDR_PUPDR10_0			GPIO_PUPDR_PUPD10_0
#define GPIO_PUPDR_PUPDR10_1			GPIO_PUPDR_PUPD10_1
#define GPIO_PUPDR_PUPDR11			GPIO_PUPDR_PUPD11
#define GPIO_PUPDR_PUPDR11_0			GPIO_PUPDR_PUPD11_0
#define GPIO_PUPDR_PUPDR11_1			GPIO_PUPDR_PUPD11_1
#define GPIO_PUPDR_PUPDR12			GPIO_PUPDR_PUPD12
#define GPIO_PUPDR_PUPDR12_0			GPIO_PUPDR_PUPD12_0
#define GPIO_PUPDR_PUPDR12_1			GPIO_PUPDR_PUPD12_1
#define GPIO_PUPDR_PUPDR13			GPIO_PUPDR_PUPD13
#define GPIO_PUPDR_PUPDR13_0			GPIO_PUPDR_PUPD13_0
#define GPIO_PUPDR_PUPDR13_1			GPIO_PUPDR_PUPD13_1
#define GPIO_PUPDR_PUPDR14			GPIO_PUPDR_PUPD14
#define GPIO_PUPDR_PUPDR14_0			GPIO_PUPDR_PUPD14_0
#define GPIO_PUPDR_PUPDR14_1			GPIO_PUPDR_PUPD14_1
#define GPIO_PUPDR_PUPDR15			GPIO_PUPDR_PUPD15
#define GPIO_PUPDR_PUPDR15_0			GPIO_PUPDR_PUPD15_0
#define GPIO_PUPDR_PUPDR15_1			GPIO_PUPDR_PUPD15_1

//  Bits definition for GPIO_IDR register
#define GPIO_IDR_ID0_Pos			(0U)
#define GPIO_IDR_ID0_Msk			(0x1U << GPIO_IDR_ID0_Pos)			// 0x00000001
#define GPIO_IDR_ID0			GPIO_IDR_ID0_Msk
#define GPIO_IDR_ID1_Pos			(1U)
#define GPIO_IDR_ID1_Msk			(0x1U << GPIO_IDR_ID1_Pos)			// 0x00000002
#define GPIO_IDR_ID1			GPIO_IDR_ID1_Msk
#define GPIO_IDR_ID2_Pos			(2U)
#define GPIO_IDR_ID2_Msk			(0x1U << GPIO_IDR_ID2_Pos)			// 0x00000004
#define GPIO_IDR_ID2			GPIO_IDR_ID2_Msk
#define GPIO_IDR_ID3_Pos			(3U)
#define GPIO_IDR_ID3_Msk			(0x1U << GPIO_IDR_ID3_Pos)			// 0x00000008
#define GPIO_IDR_ID3			GPIO_IDR_ID3_Msk
#define GPIO_IDR_ID4_Pos			(4U)
#define GPIO_IDR_ID4_Msk			(0x1U << GPIO_IDR_ID4_Pos)			// 0x00000010
#define GPIO_IDR_ID4			GPIO_IDR_ID4_Msk
#define GPIO_IDR_ID5_Pos			(5U)
#define GPIO_IDR_ID5_Msk			(0x1U << GPIO_IDR_ID5_Pos)			// 0x00000020
#define GPIO_IDR_ID5			GPIO_IDR_ID5_Msk
#define GPIO_IDR_ID6_Pos			(6U)
#define GPIO_IDR_ID6_Msk			(0x1U << GPIO_IDR_ID6_Pos)			// 0x00000040
#define GPIO_IDR_ID6			GPIO_IDR_ID6_Msk
#define GPIO_IDR_ID7_Pos			(7U)
#define GPIO_IDR_ID7_Msk			(0x1U << GPIO_IDR_ID7_Pos)			// 0x00000080
#define GPIO_IDR_ID7			GPIO_IDR_ID7_Msk
#define GPIO_IDR_ID8_Pos			(8U)
#define GPIO_IDR_ID8_Msk			(0x1U << GPIO_IDR_ID8_Pos)			// 0x00000100
#define GPIO_IDR_ID8			GPIO_IDR_ID8_Msk
#define GPIO_IDR_ID9_Pos			(9U)
#define GPIO_IDR_ID9_Msk			(0x1U << GPIO_IDR_ID9_Pos)			// 0x00000200
#define GPIO_IDR_ID9			GPIO_IDR_ID9_Msk
#define GPIO_IDR_ID10_Pos			(10U)
#define GPIO_IDR_ID10_Msk			(0x1U << GPIO_IDR_ID10_Pos)			// 0x00000400
#define GPIO_IDR_ID10			GPIO_IDR_ID10_Msk
#define GPIO_IDR_ID11_Pos			(11U)
#define GPIO_IDR_ID11_Msk			(0x1U << GPIO_IDR_ID11_Pos)			// 0x00000800
#define GPIO_IDR_ID11			GPIO_IDR_ID11_Msk
#define GPIO_IDR_ID12_Pos			(12U)
#define GPIO_IDR_ID12_Msk			(0x1U << GPIO_IDR_ID12_Pos)			// 0x00001000
#define GPIO_IDR_ID12			GPIO_IDR_ID12_Msk
#define GPIO_IDR_ID13_Pos			(13U)
#define GPIO_IDR_ID13_Msk			(0x1U << GPIO_IDR_ID13_Pos)			// 0x00002000
#define GPIO_IDR_ID13			GPIO_IDR_ID13_Msk
#define GPIO_IDR_ID14_Pos			(14U)
#define GPIO_IDR_ID14_Msk			(0x1U << GPIO_IDR_ID14_Pos)			// 0x00004000
#define GPIO_IDR_ID14			GPIO_IDR_ID14_Msk
#define GPIO_IDR_ID15_Pos			(15U)
#define GPIO_IDR_ID15_Msk			(0x1U << GPIO_IDR_ID15_Pos)			// 0x00008000
#define GPIO_IDR_ID15			GPIO_IDR_ID15_Msk

// Legacy defines
#define GPIO_IDR_IDR_0			GPIO_IDR_ID0
#define GPIO_IDR_IDR_1			GPIO_IDR_ID1
#define GPIO_IDR_IDR_2			GPIO_IDR_ID2
#define GPIO_IDR_IDR_3			GPIO_IDR_ID3
#define GPIO_IDR_IDR_4			GPIO_IDR_ID4
#define GPIO_IDR_IDR_5			GPIO_IDR_ID5
#define GPIO_IDR_IDR_6			GPIO_IDR_ID6
#define GPIO_IDR_IDR_7			GPIO_IDR_ID7
#define GPIO_IDR_IDR_8			GPIO_IDR_ID8
#define GPIO_IDR_IDR_9			GPIO_IDR_ID9
#define GPIO_IDR_IDR_10			GPIO_IDR_ID10
#define GPIO_IDR_IDR_11			GPIO_IDR_ID11
#define GPIO_IDR_IDR_12			GPIO_IDR_ID12
#define GPIO_IDR_IDR_13			GPIO_IDR_ID13
#define GPIO_IDR_IDR_14			GPIO_IDR_ID14
#define GPIO_IDR_IDR_15			GPIO_IDR_ID15

//  Bits definition for GPIO_ODR register
#define GPIO_ODR_OD0_Pos			(0U)
#define GPIO_ODR_OD0_Msk			(0x1U << GPIO_ODR_OD0_Pos)			// 0x00000001
#define GPIO_ODR_OD0			GPIO_ODR_OD0_Msk
#define GPIO_ODR_OD1_Pos			(1U)
#define GPIO_ODR_OD1_Msk			(0x1U << GPIO_ODR_OD1_Pos)			// 0x00000002
#define GPIO_ODR_OD1			GPIO_ODR_OD1_Msk
#define GPIO_ODR_OD2_Pos			(2U)
#define GPIO_ODR_OD2_Msk			(0x1U << GPIO_ODR_OD2_Pos)			// 0x00000004
#define GPIO_ODR_OD2			GPIO_ODR_OD2_Msk
#define GPIO_ODR_OD3_Pos			(3U)
#define GPIO_ODR_OD3_Msk			(0x1U << GPIO_ODR_OD3_Pos)			// 0x00000008
#define GPIO_ODR_OD3			GPIO_ODR_OD3_Msk
#define GPIO_ODR_OD4_Pos			(4U)
#define GPIO_ODR_OD4_Msk			(0x1U << GPIO_ODR_OD4_Pos)			// 0x00000010
#define GPIO_ODR_OD4			GPIO_ODR_OD4_Msk
#define GPIO_ODR_OD5_Pos			(5U)
#define GPIO_ODR_OD5_Msk			(0x1U << GPIO_ODR_OD5_Pos)			// 0x00000020
#define GPIO_ODR_OD5			GPIO_ODR_OD5_Msk
#define GPIO_ODR_OD6_Pos			(6U)
#define GPIO_ODR_OD6_Msk			(0x1U << GPIO_ODR_OD6_Pos)			// 0x00000040
#define GPIO_ODR_OD6			GPIO_ODR_OD6_Msk
#define GPIO_ODR_OD7_Pos			(7U)
#define GPIO_ODR_OD7_Msk			(0x1U << GPIO_ODR_OD7_Pos)			// 0x00000080
#define GPIO_ODR_OD7			GPIO_ODR_OD7_Msk
#define GPIO_ODR_OD8_Pos			(8U)
#define GPIO_ODR_OD8_Msk			(0x1U << GPIO_ODR_OD8_Pos)			// 0x00000100
#define GPIO_ODR_OD8			GPIO_ODR_OD8_Msk
#define GPIO_ODR_OD9_Pos			(9U)
#define GPIO_ODR_OD9_Msk			(0x1U << GPIO_ODR_OD9_Pos)			// 0x00000200
#define GPIO_ODR_OD9			GPIO_ODR_OD9_Msk
#define GPIO_ODR_OD10_Pos			(10U)
#define GPIO_ODR_OD10_Msk			(0x1U << GPIO_ODR_OD10_Pos)			// 0x00000400
#define GPIO_ODR_OD10			GPIO_ODR_OD10_Msk
#define GPIO_ODR_OD11_Pos			(11U)
#define GPIO_ODR_OD11_Msk			(0x1U << GPIO_ODR_OD11_Pos)			// 0x00000800
#define GPIO_ODR_OD11			GPIO_ODR_OD11_Msk
#define GPIO_ODR_OD12_Pos			(12U)
#define GPIO_ODR_OD12_Msk			(0x1U << GPIO_ODR_OD12_Pos)			// 0x00001000
#define GPIO_ODR_OD12			GPIO_ODR_OD12_Msk
#define GPIO_ODR_OD13_Pos			(13U)
#define GPIO_ODR_OD13_Msk			(0x1U << GPIO_ODR_OD13_Pos)			// 0x00002000
#define GPIO_ODR_OD13			GPIO_ODR_OD13_Msk
#define GPIO_ODR_OD14_Pos			(14U)
#define GPIO_ODR_OD14_Msk			(0x1U << GPIO_ODR_OD14_Pos)			// 0x00004000
#define GPIO_ODR_OD14			GPIO_ODR_OD14_Msk
#define GPIO_ODR_OD15_Pos			(15U)
#define GPIO_ODR_OD15_Msk			(0x1U << GPIO_ODR_OD15_Pos)			// 0x00008000
#define GPIO_ODR_OD15			GPIO_ODR_OD15_Msk
// Legacy defines
#define GPIO_ODR_ODR_0			GPIO_ODR_OD0
#define GPIO_ODR_ODR_1			GPIO_ODR_OD1
#define GPIO_ODR_ODR_2			GPIO_ODR_OD2
#define GPIO_ODR_ODR_3			GPIO_ODR_OD3
#define GPIO_ODR_ODR_4			GPIO_ODR_OD4
#define GPIO_ODR_ODR_5			GPIO_ODR_OD5
#define GPIO_ODR_ODR_6			GPIO_ODR_OD6
#define GPIO_ODR_ODR_7			GPIO_ODR_OD7
#define GPIO_ODR_ODR_8			GPIO_ODR_OD8
#define GPIO_ODR_ODR_9			GPIO_ODR_OD9
#define GPIO_ODR_ODR_10			GPIO_ODR_OD10
#define GPIO_ODR_ODR_11			GPIO_ODR_OD11
#define GPIO_ODR_ODR_12			GPIO_ODR_OD12
#define GPIO_ODR_ODR_13			GPIO_ODR_OD13
#define GPIO_ODR_ODR_14			GPIO_ODR_OD14
#define GPIO_ODR_ODR_15			GPIO_ODR_OD15

//  Bits definition for GPIO_BSRR register
#define GPIO_BSRR_BS0_Pos			(0U)
#define GPIO_BSRR_BS0_Msk			(0x1U << GPIO_BSRR_BS0_Pos)			// 0x00000001
#define GPIO_BSRR_BS0			GPIO_BSRR_BS0_Msk
#define GPIO_BSRR_BS1_Pos			(1U)
#define GPIO_BSRR_BS1_Msk			(0x1U << GPIO_BSRR_BS1_Pos)			// 0x00000002
#define GPIO_BSRR_BS1			GPIO_BSRR_BS1_Msk
#define GPIO_BSRR_BS2_Pos			(2U)
#define GPIO_BSRR_BS2_Msk			(0x1U << GPIO_BSRR_BS2_Pos)			// 0x00000004
#define GPIO_BSRR_BS2			GPIO_BSRR_BS2_Msk
#define GPIO_BSRR_BS3_Pos			(3U)
#define GPIO_BSRR_BS3_Msk			(0x1U << GPIO_BSRR_BS3_Pos)			// 0x00000008
#define GPIO_BSRR_BS3			GPIO_BSRR_BS3_Msk
#define GPIO_BSRR_BS4_Pos			(4U)
#define GPIO_BSRR_BS4_Msk			(0x1U << GPIO_BSRR_BS4_Pos)			// 0x00000010
#define GPIO_BSRR_BS4			GPIO_BSRR_BS4_Msk
#define GPIO_BSRR_BS5_Pos			(5U)
#define GPIO_BSRR_BS5_Msk			(0x1U << GPIO_BSRR_BS5_Pos)			// 0x00000020
#define GPIO_BSRR_BS5			GPIO_BSRR_BS5_Msk
#define GPIO_BSRR_BS6_Pos			(6U)
#define GPIO_BSRR_BS6_Msk			(0x1U << GPIO_BSRR_BS6_Pos)			// 0x00000040
#define GPIO_BSRR_BS6			GPIO_BSRR_BS6_Msk
#define GPIO_BSRR_BS7_Pos			(7U)
#define GPIO_BSRR_BS7_Msk			(0x1U << GPIO_BSRR_BS7_Pos)			// 0x00000080
#define GPIO_BSRR_BS7			GPIO_BSRR_BS7_Msk
#define GPIO_BSRR_BS8_Pos			(8U)
#define GPIO_BSRR_BS8_Msk			(0x1U << GPIO_BSRR_BS8_Pos)			// 0x00000100
#define GPIO_BSRR_BS8			GPIO_BSRR_BS8_Msk
#define GPIO_BSRR_BS9_Pos			(9U)
#define GPIO_BSRR_BS9_Msk			(0x1U << GPIO_BSRR_BS9_Pos)			// 0x00000200
#define GPIO_BSRR_BS9			GPIO_BSRR_BS9_Msk
#define GPIO_BSRR_BS10_Pos		(10U)
#define GPIO_BSRR_BS10_Msk		(0x1U << GPIO_BSRR_BS10_Pos)			// 0x00000400
#define GPIO_BSRR_BS10			GPIO_BSRR_BS10_Msk
#define GPIO_BSRR_BS11_Pos		(11U)
#define GPIO_BSRR_BS11_Msk		(0x1U << GPIO_BSRR_BS11_Pos)			// 0x00000800
#define GPIO_BSRR_BS11			GPIO_BSRR_BS11_Msk
#define GPIO_BSRR_BS12_Pos		(12U)
#define GPIO_BSRR_BS12_Msk		(0x1U << GPIO_BSRR_BS12_Pos)			// 0x00001000
#define GPIO_BSRR_BS12			GPIO_BSRR_BS12_Msk
#define GPIO_BSRR_BS13_Pos		(13U)
#define GPIO_BSRR_BS13_Msk		(0x1U << GPIO_BSRR_BS13_Pos)			// 0x00002000
#define GPIO_BSRR_BS13			GPIO_BSRR_BS13_Msk
#define GPIO_BSRR_BS14_Pos		(14U)
#define GPIO_BSRR_BS14_Msk		(0x1U << GPIO_BSRR_BS14_Pos)			// 0x00004000
#define GPIO_BSRR_BS14			GPIO_BSRR_BS14_Msk
#define GPIO_BSRR_BS15_Pos		(15U)
#define GPIO_BSRR_BS15_Msk		(0x1U << GPIO_BSRR_BS15_Pos)			// 0x00008000
#define GPIO_BSRR_BS15			GPIO_BSRR_BS15_Msk
#define GPIO_BSRR_BR0_Pos			(16U)
#define GPIO_BSRR_BR0_Msk			(0x1U << GPIO_BSRR_BR0_Pos)			// 0x00010000
#define GPIO_BSRR_BR0			GPIO_BSRR_BR0_Msk
#define GPIO_BSRR_BR1_Pos			(17U)
#define GPIO_BSRR_BR1_Msk			(0x1U << GPIO_BSRR_BR1_Pos)			// 0x00020000
#define GPIO_BSRR_BR1			GPIO_BSRR_BR1_Msk
#define GPIO_BSRR_BR2_Pos			(18U)
#define GPIO_BSRR_BR2_Msk			(0x1U << GPIO_BSRR_BR2_Pos)			// 0x00040000
#define GPIO_BSRR_BR2			GPIO_BSRR_BR2_Msk
#define GPIO_BSRR_BR3_Pos			(19U)
#define GPIO_BSRR_BR3_Msk			(0x1U << GPIO_BSRR_BR3_Pos)			// 0x00080000
#define GPIO_BSRR_BR3			GPIO_BSRR_BR3_Msk
#define GPIO_BSRR_BR4_Pos			(20U)
#define GPIO_BSRR_BR4_Msk			(0x1U << GPIO_BSRR_BR4_Pos)			// 0x00100000
#define GPIO_BSRR_BR4			GPIO_BSRR_BR4_Msk
#define GPIO_BSRR_BR5_Pos			(21U)
#define GPIO_BSRR_BR5_Msk			(0x1U << GPIO_BSRR_BR5_Pos)			// 0x00200000
#define GPIO_BSRR_BR5			GPIO_BSRR_BR5_Msk
#define GPIO_BSRR_BR6_Pos			(22U)
#define GPIO_BSRR_BR6_Msk			(0x1U << GPIO_BSRR_BR6_Pos)			// 0x00400000
#define GPIO_BSRR_BR6			GPIO_BSRR_BR6_Msk
#define GPIO_BSRR_BR7_Pos			(23U)
#define GPIO_BSRR_BR7_Msk			(0x1U << GPIO_BSRR_BR7_Pos)			// 0x00800000
#define GPIO_BSRR_BR7			GPIO_BSRR_BR7_Msk
#define GPIO_BSRR_BR8_Pos			(24U)
#define GPIO_BSRR_BR8_Msk			(0x1U << GPIO_BSRR_BR8_Pos)			// 0x01000000
#define GPIO_BSRR_BR8			GPIO_BSRR_BR8_Msk
#define GPIO_BSRR_BR9_Pos			(25U)
#define GPIO_BSRR_BR9_Msk			(0x1U << GPIO_BSRR_BR9_Pos)			// 0x02000000
#define GPIO_BSRR_BR9			GPIO_BSRR_BR9_Msk
#define GPIO_BSRR_BR10_Pos		(26U)
#define GPIO_BSRR_BR10_Msk		(0x1U << GPIO_BSRR_BR10_Pos)			// 0x04000000
#define GPIO_BSRR_BR10			GPIO_BSRR_BR10_Msk
#define GPIO_BSRR_BR11_Pos		(27U)
#define GPIO_BSRR_BR11_Msk		(0x1U << GPIO_BSRR_BR11_Pos)			// 0x08000000
#define GPIO_BSRR_BR11			GPIO_BSRR_BR11_Msk
#define GPIO_BSRR_BR12_Pos		(28U)
#define GPIO_BSRR_BR12_Msk		(0x1U << GPIO_BSRR_BR12_Pos)			// 0x10000000
#define GPIO_BSRR_BR12			GPIO_BSRR_BR12_Msk
#define GPIO_BSRR_BR13_Pos		(29U)
#define GPIO_BSRR_BR13_Msk		(0x1U << GPIO_BSRR_BR13_Pos)			// 0x20000000
#define GPIO_BSRR_BR13			GPIO_BSRR_BR13_Msk
#define GPIO_BSRR_BR14_Pos		(30U)
#define GPIO_BSRR_BR14_Msk		(0x1U << GPIO_BSRR_BR14_Pos)			// 0x40000000
#define GPIO_BSRR_BR14			GPIO_BSRR_BR14_Msk
#define GPIO_BSRR_BR15_Pos		(31U)
#define GPIO_BSRR_BR15_Msk		(0x1U << GPIO_BSRR_BR15_Pos)			// 0x80000000
#define GPIO_BSRR_BR15			GPIO_BSRR_BR15_Msk

// Legacy defines
#define GPIO_BSRR_BS_0			GPIO_BSRR_BS0
#define GPIO_BSRR_BS_1			GPIO_BSRR_BS1
#define GPIO_BSRR_BS_2			GPIO_BSRR_BS2
#define GPIO_BSRR_BS_3			GPIO_BSRR_BS3
#define GPIO_BSRR_BS_4			GPIO_BSRR_BS4
#define GPIO_BSRR_BS_5			GPIO_BSRR_BS5
#define GPIO_BSRR_BS_6			GPIO_BSRR_BS6
#define GPIO_BSRR_BS_7			GPIO_BSRR_BS7
#define GPIO_BSRR_BS_8			GPIO_BSRR_BS8
#define GPIO_BSRR_BS_9			GPIO_BSRR_BS9
#define GPIO_BSRR_BS_10			GPIO_BSRR_BS10
#define GPIO_BSRR_BS_11			GPIO_BSRR_BS11
#define GPIO_BSRR_BS_12			GPIO_BSRR_BS12
#define GPIO_BSRR_BS_13			GPIO_BSRR_BS13
#define GPIO_BSRR_BS_14			GPIO_BSRR_BS14
#define GPIO_BSRR_BS_15			GPIO_BSRR_BS15
#define GPIO_BSRR_BR_0			GPIO_BSRR_BR0
#define GPIO_BSRR_BR_1			GPIO_BSRR_BR1
#define GPIO_BSRR_BR_2			GPIO_BSRR_BR2
#define GPIO_BSRR_BR_3			GPIO_BSRR_BR3
#define GPIO_BSRR_BR_4			GPIO_BSRR_BR4
#define GPIO_BSRR_BR_5			GPIO_BSRR_BR5
#define GPIO_BSRR_BR_6			GPIO_BSRR_BR6
#define GPIO_BSRR_BR_7			GPIO_BSRR_BR7
#define GPIO_BSRR_BR_8			GPIO_BSRR_BR8
#define GPIO_BSRR_BR_9			GPIO_BSRR_BR9
#define GPIO_BSRR_BR_10			GPIO_BSRR_BR10
#define GPIO_BSRR_BR_11			GPIO_BSRR_BR11
#define GPIO_BSRR_BR_12			GPIO_BSRR_BR12
#define GPIO_BSRR_BR_13			GPIO_BSRR_BR13
#define GPIO_BSRR_BR_14			GPIO_BSRR_BR14
#define GPIO_BSRR_BR_15			GPIO_BSRR_BR15
// Bit definition for GPIO_LCKR register
#define GPIO_LCKR_LCK0_Pos		(0U)
#define GPIO_LCKR_LCK0_Msk		(0x1U << GPIO_LCKR_LCK0_Pos)			// 0x00000001
#define GPIO_LCKR_LCK0			GPIO_LCKR_LCK0_Msk
#define GPIO_LCKR_LCK1_Pos		(1U)
#define GPIO_LCKR_LCK1_Msk		(0x1U << GPIO_LCKR_LCK1_Pos)			// 0x00000002
#define GPIO_LCKR_LCK1			GPIO_LCKR_LCK1_Msk
#define GPIO_LCKR_LCK2_Pos		(2U)
#define GPIO_LCKR_LCK2_Msk		(0x1U << GPIO_LCKR_LCK2_Pos)			// 0x00000004
#define GPIO_LCKR_LCK2			GPIO_LCKR_LCK2_Msk
#define GPIO_LCKR_LCK3_Pos		(3U)
#define GPIO_LCKR_LCK3_Msk		(0x1U << GPIO_LCKR_LCK3_Pos)			// 0x00000008
#define GPIO_LCKR_LCK3			GPIO_LCKR_LCK3_Msk
#define GPIO_LCKR_LCK4_Pos		(4U)
#define GPIO_LCKR_LCK4_Msk		(0x1U << GPIO_LCKR_LCK4_Pos)			// 0x00000010
#define GPIO_LCKR_LCK4			GPIO_LCKR_LCK4_Msk
#define GPIO_LCKR_LCK5_Pos		(5U)
#define GPIO_LCKR_LCK5_Msk		(0x1U << GPIO_LCKR_LCK5_Pos)			// 0x00000020
#define GPIO_LCKR_LCK5			GPIO_LCKR_LCK5_Msk
#define GPIO_LCKR_LCK6_Pos		(6U)
#define GPIO_LCKR_LCK6_Msk		(0x1U << GPIO_LCKR_LCK6_Pos)			// 0x00000040
#define GPIO_LCKR_LCK6			GPIO_LCKR_LCK6_Msk
#define GPIO_LCKR_LCK7_Pos		(7U)
#define GPIO_LCKR_LCK7_Msk		(0x1U << GPIO_LCKR_LCK7_Pos)			// 0x00000080
#define GPIO_LCKR_LCK7			GPIO_LCKR_LCK7_Msk
#define GPIO_LCKR_LCK8_Pos		(8U)
#define GPIO_LCKR_LCK8_Msk		(0x1U << GPIO_LCKR_LCK8_Pos)			// 0x00000100
#define GPIO_LCKR_LCK8			GPIO_LCKR_LCK8_Msk
#define GPIO_LCKR_LCK9_Pos		(9U)
#define GPIO_LCKR_LCK9_Msk		(0x1U << GPIO_LCKR_LCK9_Pos)			// 0x00000200
#define GPIO_LCKR_LCK9			GPIO_LCKR_LCK9_Msk
#define GPIO_LCKR_LCK10_Pos		(10U)
#define GPIO_LCKR_LCK10_Msk		(0x1U << GPIO_LCKR_LCK10_Pos)			// 0x00000400
#define GPIO_LCKR_LCK10			GPIO_LCKR_LCK10_Msk
#define GPIO_LCKR_LCK11_Pos		(11U)
#define GPIO_LCKR_LCK11_Msk		(0x1U << GPIO_LCKR_LCK11_Pos)			// 0x00000800
#define GPIO_LCKR_LCK11			GPIO_LCKR_LCK11_Msk
#define GPIO_LCKR_LCK12_Pos		(12U)
#define GPIO_LCKR_LCK12_Msk		(0x1U << GPIO_LCKR_LCK12_Pos)			// 0x00001000
#define GPIO_LCKR_LCK12			GPIO_LCKR_LCK12_Msk
#define GPIO_LCKR_LCK13_Pos		(13U)
#define GPIO_LCKR_LCK13_Msk		(0x1U << GPIO_LCKR_LCK13_Pos)			// 0x00002000
#define GPIO_LCKR_LCK13			GPIO_LCKR_LCK13_Msk
#define GPIO_LCKR_LCK14_Pos		(14U)
#define GPIO_LCKR_LCK14_Msk		(0x1U << GPIO_LCKR_LCK14_Pos)			// 0x00004000
#define GPIO_LCKR_LCK14			GPIO_LCKR_LCK14_Msk
#define GPIO_LCKR_LCK15_Pos		(15U)
#define GPIO_LCKR_LCK15_Msk		(0x1U << GPIO_LCKR_LCK15_Pos)			// 0x00008000
#define GPIO_LCKR_LCK15			GPIO_LCKR_LCK15_Msk
#define GPIO_LCKR_LCKK_Pos		(16U)
#define GPIO_LCKR_LCKK_Msk		(0x1U << GPIO_LCKR_LCKK_Pos)			// 0x00010000
#define GPIO_LCKR_LCKK			GPIO_LCKR_LCKK_Msk
// Bit definition for GPIO_AFRL register
#define GPIO_AFRL_AFSEL0_Pos		(0U)
#define GPIO_AFRL_AFSEL0_Msk		(0xFU << GPIO_AFRL_AFSEL0_Pos)			// 0x0000000F
#define GPIO_AFRL_AFSEL0			GPIO_AFRL_AFSEL0_Msk
#define GPIO_AFRL_AFSEL0_0		(0x1U << GPIO_AFRL_AFSEL0_Pos)			// 0x00000001
#define GPIO_AFRL_AFSEL0_1		(0x2U << GPIO_AFRL_AFSEL0_Pos)			// 0x00000002
#define GPIO_AFRL_AFSEL0_2		(0x4U << GPIO_AFRL_AFSEL0_Pos)			// 0x00000004
#define GPIO_AFRL_AFSEL0_3		(0x8U << GPIO_AFRL_AFSEL0_Pos)			// 0x00000008
#define GPIO_AFRL_AFSEL1_Pos		(4U)
#define GPIO_AFRL_AFSEL1_Msk		(0xFU << GPIO_AFRL_AFSEL1_Pos)			// 0x000000F0
#define GPIO_AFRL_AFSEL1			GPIO_AFRL_AFSEL1_Msk
#define GPIO_AFRL_AFSEL1_0		(0x1U << GPIO_AFRL_AFSEL1_Pos)			// 0x00000010
#define GPIO_AFRL_AFSEL1_1		(0x2U << GPIO_AFRL_AFSEL1_Pos)			// 0x00000020
#define GPIO_AFRL_AFSEL1_2		(0x4U << GPIO_AFRL_AFSEL1_Pos)			// 0x00000040
#define GPIO_AFRL_AFSEL1_3		(0x8U << GPIO_AFRL_AFSEL1_Pos)			// 0x00000080
#define GPIO_AFRL_AFSEL2_Pos		(8U)
#define GPIO_AFRL_AFSEL2_Msk		(0xFU << GPIO_AFRL_AFSEL2_Pos)			// 0x00000F00
#define GPIO_AFRL_AFSEL2			GPIO_AFRL_AFSEL2_Msk
#define GPIO_AFRL_AFSEL2_0		(0x1U << GPIO_AFRL_AFSEL2_Pos)			// 0x00000100
#define GPIO_AFRL_AFSEL2_1		(0x2U << GPIO_AFRL_AFSEL2_Pos)			// 0x00000200
#define GPIO_AFRL_AFSEL2_2		(0x4U << GPIO_AFRL_AFSEL2_Pos)			// 0x00000400
#define GPIO_AFRL_AFSEL2_3		(0x8U << GPIO_AFRL_AFSEL2_Pos)			// 0x00000800
#define GPIO_AFRL_AFSEL3_Pos		(12U)
#define GPIO_AFRL_AFSEL3_Msk		(0xFU << GPIO_AFRL_AFSEL3_Pos)			// 0x0000F000
#define GPIO_AFRL_AFSEL3			GPIO_AFRL_AFSEL3_Msk
#define GPIO_AFRL_AFSEL3_0		(0x1U << GPIO_AFRL_AFSEL3_Pos)			// 0x00001000
#define GPIO_AFRL_AFSEL3_1		(0x2U << GPIO_AFRL_AFSEL3_Pos)			// 0x00002000
#define GPIO_AFRL_AFSEL3_2		(0x4U << GPIO_AFRL_AFSEL3_Pos)			// 0x00004000
#define GPIO_AFRL_AFSEL3_3		(0x8U << GPIO_AFRL_AFSEL3_Pos)			// 0x00008000
#define GPIO_AFRL_AFSEL4_Pos		(16U)
#define GPIO_AFRL_AFSEL4_Msk		(0xFU << GPIO_AFRL_AFSEL4_Pos)			// 0x000F0000
#define GPIO_AFRL_AFSEL4			GPIO_AFRL_AFSEL4_Msk
#define GPIO_AFRL_AFSEL4_0		(0x1U << GPIO_AFRL_AFSEL4_Pos)			// 0x00010000
#define GPIO_AFRL_AFSEL4_1		(0x2U << GPIO_AFRL_AFSEL4_Pos)			// 0x00020000
#define GPIO_AFRL_AFSEL4_2		(0x4U << GPIO_AFRL_AFSEL4_Pos)			// 0x00040000
#define GPIO_AFRL_AFSEL4_3		(0x8U << GPIO_AFRL_AFSEL4_Pos)			// 0x00080000
#define GPIO_AFRL_AFSEL5_Pos		(20U)
#define GPIO_AFRL_AFSEL5_Msk		(0xFU << GPIO_AFRL_AFSEL5_Pos)			// 0x00F00000
#define GPIO_AFRL_AFSEL5			GPIO_AFRL_AFSEL5_Msk
#define GPIO_AFRL_AFSEL5_0		(0x1U << GPIO_AFRL_AFSEL5_Pos)			// 0x00100000
#define GPIO_AFRL_AFSEL5_1		(0x2U << GPIO_AFRL_AFSEL5_Pos)			// 0x00200000
#define GPIO_AFRL_AFSEL5_2		(0x4U << GPIO_AFRL_AFSEL5_Pos)			// 0x00400000
#define GPIO_AFRL_AFSEL5_3		(0x8U << GPIO_AFRL_AFSEL5_Pos)			// 0x00800000
#define GPIO_AFRL_AFSEL6_Pos		(24U)
#define GPIO_AFRL_AFSEL6_Msk		(0xFU << GPIO_AFRL_AFSEL6_Pos)			// 0x0F000000
#define GPIO_AFRL_AFSEL6			GPIO_AFRL_AFSEL6_Msk
#define GPIO_AFRL_AFSEL6_0		(0x1U << GPIO_AFRL_AFSEL6_Pos)			// 0x01000000
#define GPIO_AFRL_AFSEL6_1		(0x2U << GPIO_AFRL_AFSEL6_Pos)			// 0x02000000
#define GPIO_AFRL_AFSEL6_2		(0x4U << GPIO_AFRL_AFSEL6_Pos)			// 0x04000000
#define GPIO_AFRL_AFSEL6_3		(0x8U << GPIO_AFRL_AFSEL6_Pos)			// 0x08000000
#define GPIO_AFRL_AFSEL7_Pos		(28U)
#define GPIO_AFRL_AFSEL7_Msk		(0xFU << GPIO_AFRL_AFSEL7_Pos)			// 0xF0000000
#define GPIO_AFRL_AFSEL7			GPIO_AFRL_AFSEL7_Msk
#define GPIO_AFRL_AFSEL7_0		(0x1U << GPIO_AFRL_AFSEL7_Pos)			// 0x10000000
#define GPIO_AFRL_AFSEL7_1		(0x2U << GPIO_AFRL_AFSEL7_Pos)			// 0x20000000
#define GPIO_AFRL_AFSEL7_2		(0x4U << GPIO_AFRL_AFSEL7_Pos)			// 0x40000000
#define GPIO_AFRL_AFSEL7_3		(0x8U << GPIO_AFRL_AFSEL7_Pos)			// 0x80000000

// Legacy defines
#define GPIO_AFRL_AFRL0			GPIO_AFRL_AFSEL0
#define GPIO_AFRL_AFRL0_0			GPIO_AFRL_AFSEL0_0
#define GPIO_AFRL_AFRL0_1			GPIO_AFRL_AFSEL0_1
#define GPIO_AFRL_AFRL0_2			GPIO_AFRL_AFSEL0_2
#define GPIO_AFRL_AFRL0_3			GPIO_AFRL_AFSEL0_3
#define GPIO_AFRL_AFRL1			GPIO_AFRL_AFSEL1
#define GPIO_AFRL_AFRL1_0			GPIO_AFRL_AFSEL1_0
#define GPIO_AFRL_AFRL1_1			GPIO_AFRL_AFSEL1_1
#define GPIO_AFRL_AFRL1_2			GPIO_AFRL_AFSEL1_2
#define GPIO_AFRL_AFRL1_3			GPIO_AFRL_AFSEL1_3
#define GPIO_AFRL_AFRL2			GPIO_AFRL_AFSEL2
#define GPIO_AFRL_AFRL2_0			GPIO_AFRL_AFSEL2_0
#define GPIO_AFRL_AFRL2_1			GPIO_AFRL_AFSEL2_1
#define GPIO_AFRL_AFRL2_2			GPIO_AFRL_AFSEL2_2
#define GPIO_AFRL_AFRL2_3			GPIO_AFRL_AFSEL2_3
#define GPIO_AFRL_AFRL3			GPIO_AFRL_AFSEL3
#define GPIO_AFRL_AFRL3_0			GPIO_AFRL_AFSEL3_0
#define GPIO_AFRL_AFRL3_1			GPIO_AFRL_AFSEL3_1
#define GPIO_AFRL_AFRL3_2			GPIO_AFRL_AFSEL3_2
#define GPIO_AFRL_AFRL3_3			GPIO_AFRL_AFSEL3_3
#define GPIO_AFRL_AFRL4			GPIO_AFRL_AFSEL4
#define GPIO_AFRL_AFRL4_0			GPIO_AFRL_AFSEL4_0
#define GPIO_AFRL_AFRL4_1			GPIO_AFRL_AFSEL4_1
#define GPIO_AFRL_AFRL4_2			GPIO_AFRL_AFSEL4_2
#define GPIO_AFRL_AFRL4_3			GPIO_AFRL_AFSEL4_3
#define GPIO_AFRL_AFRL5			GPIO_AFRL_AFSEL5
#define GPIO_AFRL_AFRL5_0			GPIO_AFRL_AFSEL5_0
#define GPIO_AFRL_AFRL5_1			GPIO_AFRL_AFSEL5_1
#define GPIO_AFRL_AFRL5_2			GPIO_AFRL_AFSEL5_2
#define GPIO_AFRL_AFRL5_3			GPIO_AFRL_AFSEL5_3
#define GPIO_AFRL_AFRL6			GPIO_AFRL_AFSEL6
#define GPIO_AFRL_AFRL6_0			GPIO_AFRL_AFSEL6_0
#define GPIO_AFRL_AFRL6_1			GPIO_AFRL_AFSEL6_1
#define GPIO_AFRL_AFRL6_2			GPIO_AFRL_AFSEL6_2
#define GPIO_AFRL_AFRL6_3			GPIO_AFRL_AFSEL6_3
#define GPIO_AFRL_AFRL7			GPIO_AFRL_AFSEL7
#define GPIO_AFRL_AFRL7_0			GPIO_AFRL_AFSEL7_0
#define GPIO_AFRL_AFRL7_1			GPIO_AFRL_AFSEL7_1
#define GPIO_AFRL_AFRL7_2			GPIO_AFRL_AFSEL7_2
#define GPIO_AFRL_AFRL7_3			GPIO_AFRL_AFSEL7_3

// Bit definition for GPIO_AFRH register
#define GPIO_AFRH_AFSEL8_Pos		(0U)
#define GPIO_AFRH_AFSEL8_Msk		(0xFU << GPIO_AFRH_AFSEL8_Pos)			// 0x0000000F
#define GPIO_AFRH_AFSEL8			GPIO_AFRH_AFSEL8_Msk
#define GPIO_AFRH_AFSEL8_0		(0x1U << GPIO_AFRH_AFSEL8_Pos)			// 0x00000001
#define GPIO_AFRH_AFSEL8_1		(0x2U << GPIO_AFRH_AFSEL8_Pos)			// 0x00000002
#define GPIO_AFRH_AFSEL8_2		(0x4U << GPIO_AFRH_AFSEL8_Pos)			// 0x00000004
#define GPIO_AFRH_AFSEL8_3		(0x8U << GPIO_AFRH_AFSEL8_Pos)			// 0x00000008
#define GPIO_AFRH_AFSEL9_Pos		(4U)
#define GPIO_AFRH_AFSEL9_Msk		(0xFU << GPIO_AFRH_AFSEL9_Pos)			// 0x000000F0
#define GPIO_AFRH_AFSEL9			GPIO_AFRH_AFSEL9_Msk
#define GPIO_AFRH_AFSEL9_0		(0x1U << GPIO_AFRH_AFSEL9_Pos)			// 0x00000010
#define GPIO_AFRH_AFSEL9_1		(0x2U << GPIO_AFRH_AFSEL9_Pos)			// 0x00000020
#define GPIO_AFRH_AFSEL9_2		(0x4U << GPIO_AFRH_AFSEL9_Pos)			// 0x00000040
#define GPIO_AFRH_AFSEL9_3		(0x8U << GPIO_AFRH_AFSEL9_Pos)			// 0x00000080
#define GPIO_AFRH_AFSEL10_Pos		(8U)
#define GPIO_AFRH_AFSEL10_Msk		(0xFU << GPIO_AFRH_AFSEL10_Pos)	//  0x00000F00
#define GPIO_AFRH_AFSEL10			GPIO_AFRH_AFSEL10_Msk
#define GPIO_AFRH_AFSEL10_0		(0x1U << GPIO_AFRH_AFSEL10_Pos)	//  0x00000100
#define GPIO_AFRH_AFSEL10_1		(0x2U << GPIO_AFRH_AFSEL10_Pos)	//  0x00000200
#define GPIO_AFRH_AFSEL10_2		(0x4U << GPIO_AFRH_AFSEL10_Pos)	//  0x00000400
#define GPIO_AFRH_AFSEL10_3		(0x8U << GPIO_AFRH_AFSEL10_Pos)	//  0x00000800
#define GPIO_AFRH_AFSEL11_Pos		(12U)
#define GPIO_AFRH_AFSEL11_Msk		(0xFU << GPIO_AFRH_AFSEL11_Pos)	//  0x0000F000
#define GPIO_AFRH_AFSEL11			GPIO_AFRH_AFSEL11_Msk
#define GPIO_AFRH_AFSEL11_0		(0x1U << GPIO_AFRH_AFSEL11_Pos)	//  0x00001000
#define GPIO_AFRH_AFSEL11_1		(0x2U << GPIO_AFRH_AFSEL11_Pos)	//  0x00002000
#define GPIO_AFRH_AFSEL11_2		(0x4U << GPIO_AFRH_AFSEL11_Pos)	//  0x00004000
#define GPIO_AFRH_AFSEL11_3		(0x8U << GPIO_AFRH_AFSEL11_Pos)	//  0x00008000
#define GPIO_AFRH_AFSEL12_Pos		(16U)
#define GPIO_AFRH_AFSEL12_Msk		(0xFU << GPIO_AFRH_AFSEL12_Pos)	//  0x000F0000
#define GPIO_AFRH_AFSEL12			GPIO_AFRH_AFSEL12_Msk
#define GPIO_AFRH_AFSEL12_0		(0x1U << GPIO_AFRH_AFSEL12_Pos)	//  0x00010000
#define GPIO_AFRH_AFSEL12_1		(0x2U << GPIO_AFRH_AFSEL12_Pos)	//  0x00020000
#define GPIO_AFRH_AFSEL12_2		(0x4U << GPIO_AFRH_AFSEL12_Pos)	//  0x00040000
#define GPIO_AFRH_AFSEL12_3		(0x8U << GPIO_AFRH_AFSEL12_Pos)	//  0x00080000
#define GPIO_AFRH_AFSEL13_Pos		(20U)
#define GPIO_AFRH_AFSEL13_Msk		(0xFU << GPIO_AFRH_AFSEL13_Pos)	//  0x00F00000
#define GPIO_AFRH_AFSEL13			GPIO_AFRH_AFSEL13_Msk
#define GPIO_AFRH_AFSEL13_0		(0x1U << GPIO_AFRH_AFSEL13_Pos)	//  0x00100000
#define GPIO_AFRH_AFSEL13_1		(0x2U << GPIO_AFRH_AFSEL13_Pos)	//  0x00200000
#define GPIO_AFRH_AFSEL13_2		(0x4U << GPIO_AFRH_AFSEL13_Pos)	//  0x00400000
#define GPIO_AFRH_AFSEL13_3		(0x8U << GPIO_AFRH_AFSEL13_Pos)	//  0x00800000
#define GPIO_AFRH_AFSEL14_Pos		(24U)
#define GPIO_AFRH_AFSEL14_Msk		(0xFU << GPIO_AFRH_AFSEL14_Pos)	//  0x0F000000
#define GPIO_AFRH_AFSEL14			GPIO_AFRH_AFSEL14_Msk
#define GPIO_AFRH_AFSEL14_0		(0x1U << GPIO_AFRH_AFSEL14_Pos)	//  0x01000000
#define GPIO_AFRH_AFSEL14_1		(0x2U << GPIO_AFRH_AFSEL14_Pos)	//  0x02000000
#define GPIO_AFRH_AFSEL14_2		(0x4U << GPIO_AFRH_AFSEL14_Pos)	//  0x04000000
#define GPIO_AFRH_AFSEL14_3		(0x8U << GPIO_AFRH_AFSEL14_Pos)	//  0x08000000
#define GPIO_AFRH_AFSEL15_Pos		(28U)
#define GPIO_AFRH_AFSEL15_Msk		(0xFU << GPIO_AFRH_AFSEL15_Pos)	//  0xF0000000
#define GPIO_AFRH_AFSEL15			GPIO_AFRH_AFSEL15_Msk
#define GPIO_AFRH_AFSEL15_0		(0x1U << GPIO_AFRH_AFSEL15_Pos)	//  0x10000000
#define GPIO_AFRH_AFSEL15_1		(0x2U << GPIO_AFRH_AFSEL15_Pos)	//  0x20000000
#define GPIO_AFRH_AFSEL15_2		(0x4U << GPIO_AFRH_AFSEL15_Pos)	//  0x40000000
#define GPIO_AFRH_AFSEL15_3		(0x8U << GPIO_AFRH_AFSEL15_Pos)	//  0x80000000

// Legacy defines
#define GPIO_AFRH_AFRH0			GPIO_AFRH_AFSEL8
#define GPIO_AFRH_AFRH0_0			GPIO_AFRH_AFSEL8_0
#define GPIO_AFRH_AFRH0_1			GPIO_AFRH_AFSEL8_1
#define GPIO_AFRH_AFRH0_2			GPIO_AFRH_AFSEL8_2
#define GPIO_AFRH_AFRH0_3			GPIO_AFRH_AFSEL8_3
#define GPIO_AFRH_AFRH1			GPIO_AFRH_AFSEL9
#define GPIO_AFRH_AFRH1_0			GPIO_AFRH_AFSEL9_0
#define GPIO_AFRH_AFRH1_1			GPIO_AFRH_AFSEL9_1
#define GPIO_AFRH_AFRH1_2			GPIO_AFRH_AFSEL9_2
#define GPIO_AFRH_AFRH1_3			GPIO_AFRH_AFSEL9_3
#define GPIO_AFRH_AFRH2			GPIO_AFRH_AFSEL10
#define GPIO_AFRH_AFRH2_0			GPIO_AFRH_AFSEL10_0
#define GPIO_AFRH_AFRH2_1			GPIO_AFRH_AFSEL10_1
#define GPIO_AFRH_AFRH2_2			GPIO_AFRH_AFSEL10_2
#define GPIO_AFRH_AFRH2_3			GPIO_AFRH_AFSEL10_3
#define GPIO_AFRH_AFRH3			GPIO_AFRH_AFSEL11
#define GPIO_AFRH_AFRH3_0			GPIO_AFRH_AFSEL11_0
#define GPIO_AFRH_AFRH3_1			GPIO_AFRH_AFSEL11_1
#define GPIO_AFRH_AFRH3_2			GPIO_AFRH_AFSEL11_2
#define GPIO_AFRH_AFRH3_3			GPIO_AFRH_AFSEL11_3
#define GPIO_AFRH_AFRH4			GPIO_AFRH_AFSEL12
#define GPIO_AFRH_AFRH4_0			GPIO_AFRH_AFSEL12_0
#define GPIO_AFRH_AFRH4_1			GPIO_AFRH_AFSEL12_1
#define GPIO_AFRH_AFRH4_2			GPIO_AFRH_AFSEL12_2
#define GPIO_AFRH_AFRH4_3			GPIO_AFRH_AFSEL12_3
#define GPIO_AFRH_AFRH5			GPIO_AFRH_AFSEL13
#define GPIO_AFRH_AFRH5_0			GPIO_AFRH_AFSEL13_0
#define GPIO_AFRH_AFRH5_1			GPIO_AFRH_AFSEL13_1
#define GPIO_AFRH_AFRH5_2			GPIO_AFRH_AFSEL13_2
#define GPIO_AFRH_AFRH5_3			GPIO_AFRH_AFSEL13_3
#define GPIO_AFRH_AFRH6			GPIO_AFRH_AFSEL14
#define GPIO_AFRH_AFRH6_0			GPIO_AFRH_AFSEL14_0
#define GPIO_AFRH_AFRH6_1			GPIO_AFRH_AFSEL14_1
#define GPIO_AFRH_AFRH6_2			GPIO_AFRH_AFSEL14_2
#define GPIO_AFRH_AFRH6_3			GPIO_AFRH_AFSEL14_3
#define GPIO_AFRH_AFRH7			GPIO_AFRH_AFSEL15
#define GPIO_AFRH_AFRH7_0			GPIO_AFRH_AFSEL15_0
#define GPIO_AFRH_AFRH7_1			GPIO_AFRH_AFSEL15_1
#define GPIO_AFRH_AFRH7_2			GPIO_AFRH_AFSEL15_2
#define GPIO_AFRH_AFRH7_3			GPIO_AFRH_AFSEL15_3

//  Bits definition for GPIO_BRR register
#define GPIO_BRR_BR0_Pos			(0U)
#define GPIO_BRR_BR0_Msk			(0x1U << GPIO_BRR_BR0_Pos)			// 0x00000001
#define GPIO_BRR_BR0			GPIO_BRR_BR0_Msk
#define GPIO_BRR_BR1_Pos			(1U)
#define GPIO_BRR_BR1_Msk			(0x1U << GPIO_BRR_BR1_Pos)			// 0x00000002
#define GPIO_BRR_BR1			GPIO_BRR_BR1_Msk
#define GPIO_BRR_BR2_Pos			(2U)
#define GPIO_BRR_BR2_Msk			(0x1U << GPIO_BRR_BR2_Pos)			// 0x00000004
#define GPIO_BRR_BR2			GPIO_BRR_BR2_Msk
#define GPIO_BRR_BR3_Pos			(3U)
#define GPIO_BRR_BR3_Msk			(0x1U << GPIO_BRR_BR3_Pos)			// 0x00000008
#define GPIO_BRR_BR3			GPIO_BRR_BR3_Msk
#define GPIO_BRR_BR4_Pos			(4U)
#define GPIO_BRR_BR4_Msk			(0x1U << GPIO_BRR_BR4_Pos)			// 0x00000010
#define GPIO_BRR_BR4			GPIO_BRR_BR4_Msk
#define GPIO_BRR_BR5_Pos			(5U)
#define GPIO_BRR_BR5_Msk			(0x1U << GPIO_BRR_BR5_Pos)			// 0x00000020
#define GPIO_BRR_BR5			GPIO_BRR_BR5_Msk
#define GPIO_BRR_BR6_Pos			(6U)
#define GPIO_BRR_BR6_Msk			(0x1U << GPIO_BRR_BR6_Pos)			// 0x00000040
#define GPIO_BRR_BR6			GPIO_BRR_BR6_Msk
#define GPIO_BRR_BR7_Pos			(7U)
#define GPIO_BRR_BR7_Msk			(0x1U << GPIO_BRR_BR7_Pos)			// 0x00000080
#define GPIO_BRR_BR7			GPIO_BRR_BR7_Msk
#define GPIO_BRR_BR8_Pos			(8U)
#define GPIO_BRR_BR8_Msk			(0x1U << GPIO_BRR_BR8_Pos)			// 0x00000100
#define GPIO_BRR_BR8			GPIO_BRR_BR8_Msk
#define GPIO_BRR_BR9_Pos			(9U)
#define GPIO_BRR_BR9_Msk			(0x1U << GPIO_BRR_BR9_Pos)			// 0x00000200
#define GPIO_BRR_BR9			GPIO_BRR_BR9_Msk
#define GPIO_BRR_BR10_Pos			(10U)
#define GPIO_BRR_BR10_Msk			(0x1U << GPIO_BRR_BR10_Pos)			// 0x00000400
#define GPIO_BRR_BR10			GPIO_BRR_BR10_Msk
#define GPIO_BRR_BR11_Pos			(11U)
#define GPIO_BRR_BR11_Msk			(0x1U << GPIO_BRR_BR11_Pos)			// 0x00000800
#define GPIO_BRR_BR11			GPIO_BRR_BR11_Msk
#define GPIO_BRR_BR12_Pos			(12U)
#define GPIO_BRR_BR12_Msk			(0x1U << GPIO_BRR_BR12_Pos)			// 0x00001000
#define GPIO_BRR_BR12			GPIO_BRR_BR12_Msk
#define GPIO_BRR_BR13_Pos			(13U)
#define GPIO_BRR_BR13_Msk			(0x1U << GPIO_BRR_BR13_Pos)			// 0x00002000
#define GPIO_BRR_BR13			GPIO_BRR_BR13_Msk
#define GPIO_BRR_BR14_Pos			(14U)
#define GPIO_BRR_BR14_Msk			(0x1U << GPIO_BRR_BR14_Pos)			// 0x00004000
#define GPIO_BRR_BR14			GPIO_BRR_BR14_Msk
#define GPIO_BRR_BR15_Pos			(15U)
#define GPIO_BRR_BR15_Msk			(0x1U << GPIO_BRR_BR15_Pos)			// 0x00008000
#define GPIO_BRR_BR15			GPIO_BRR_BR15_Msk




// Inter-integrated Circuit Interface


//  Bit definition for I2C_CR1 register
#define I2C_CR1_PE_Pos		(0U)
#define I2C_CR1_PE_Msk		(0x1U << I2C_CR1_PE_Pos)			// 0x00000001
#define I2C_CR1_PE			I2C_CR1_PE_Msk			// Peripheral Enable
#define I2C_CR1_SMBUS_Pos		(1U)
#define I2C_CR1_SMBUS_Msk		(0x1U << I2C_CR1_SMBUS_Pos)			// 0x00000002
#define I2C_CR1_SMBUS		I2C_CR1_SMBUS_Msk			// SMBus Mode
#define I2C_CR1_SMBTYPE_Pos	(3U)
#define I2C_CR1_SMBTYPE_Msk	(0x1U << I2C_CR1_SMBTYPE_Pos)			// 0x00000008
#define I2C_CR1_SMBTYPE		I2C_CR1_SMBTYPE_Msk			// SMBus Type
#define I2C_CR1_ENARP_Pos		(4U)
#define I2C_CR1_ENARP_Msk		(0x1U << I2C_CR1_ENARP_Pos)			// 0x00000010
#define I2C_CR1_ENARP		I2C_CR1_ENARP_Msk			// ARP Enable
#define I2C_CR1_ENPEC_Pos		(5U)
#define I2C_CR1_ENPEC_Msk		(0x1U << I2C_CR1_ENPEC_Pos)			// 0x00000020
#define I2C_CR1_ENPEC		I2C_CR1_ENPEC_Msk			// PEC Enable
#define I2C_CR1_ENGC_Pos		(6U)
#define I2C_CR1_ENGC_Msk		(0x1U << I2C_CR1_ENGC_Pos)			// 0x00000040
#define I2C_CR1_ENGC		I2C_CR1_ENGC_Msk			// General Call Enable
#define I2C_CR1_NOSTRETCH_Pos	(7U)
#define I2C_CR1_NOSTRETCH_Msk	(0x1U << I2C_CR1_NOSTRETCH_Pos)			// 0x00000080
#define I2C_CR1_NOSTRETCH		I2C_CR1_NOSTRETCH_Msk			// Clock Stretching Disable (Slave mode)
#define I2C_CR1_START_Pos		(8U)
#define I2C_CR1_START_Msk		(0x1U << I2C_CR1_START_Pos)			// 0x00000100
#define I2C_CR1_START		I2C_CR1_START_Msk			// Start Generation
#define I2C_CR1_STOP_Pos		(9U)
#define I2C_CR1_STOP_Msk		(0x1U << I2C_CR1_STOP_Pos)			// 0x00000200
#define I2C_CR1_STOP		I2C_CR1_STOP_Msk			// Stop Generation
#define I2C_CR1_ACK_Pos		(10U)
#define I2C_CR1_ACK_Msk		(0x1U << I2C_CR1_ACK_Pos)			// 0x00000400
#define I2C_CR1_ACK		I2C_CR1_ACK_Msk			// Acknowledge Enable
#define I2C_CR1_POS_Pos		(11U)
#define I2C_CR1_POS_Msk		(0x1U << I2C_CR1_POS_Pos)			// 0x00000800
#define I2C_CR1_POS		I2C_CR1_POS_Msk			// Acknowledge/PEC Position (for data reception)
#define I2C_CR1_PEC_Pos		(12U)
#define I2C_CR1_PEC_Msk		(0x1U << I2C_CR1_PEC_Pos)			// 0x00001000
#define I2C_CR1_PEC		I2C_CR1_PEC_Msk			// Packet Error Checking
#define I2C_CR1_ALERT_Pos		(13U)
#define I2C_CR1_ALERT_Msk		(0x1U << I2C_CR1_ALERT_Pos)			// 0x00002000
#define I2C_CR1_ALERT		I2C_CR1_ALERT_Msk			// SMBus Alert
#define I2C_CR1_SWRST_Pos		(15U)
#define I2C_CR1_SWRST_Msk		(0x1U << I2C_CR1_SWRST_Pos)			// 0x00008000
#define I2C_CR1_SWRST		I2C_CR1_SWRST_Msk			// Software Reset

//  Bit definition for I2C_CR2 register
#define I2C_CR2_FREQ_Pos		(0U)
#define I2C_CR2_FREQ_Msk		(0x3FU << I2C_CR2_FREQ_Pos)			// 0x0000003F
#define I2C_CR2_FREQ		I2C_CR2_FREQ_Msk			// FREQ[5:0] bits (Peripheral Clock Frequency)
#define I2C_CR2_FREQ_0		(0x01U << I2C_CR2_FREQ_Pos)			// 0x00000001
#define I2C_CR2_FREQ_1		(0x02U << I2C_CR2_FREQ_Pos)			// 0x00000002
#define I2C_CR2_FREQ_2		(0x04U << I2C_CR2_FREQ_Pos)			// 0x00000004
#define I2C_CR2_FREQ_3		(0x08U << I2C_CR2_FREQ_Pos)			// 0x00000008
#define I2C_CR2_FREQ_4		(0x10U << I2C_CR2_FREQ_Pos)			// 0x00000010
#define I2C_CR2_FREQ_5		(0x20U << I2C_CR2_FREQ_Pos)			// 0x00000020

#define I2C_CR2_ITERREN_Pos	(8U)
#define I2C_CR2_ITERREN_Msk	(0x1U << I2C_CR2_ITERREN_Pos)			// 0x00000100
#define I2C_CR2_ITERREN		I2C_CR2_ITERREN_Msk			// Error Interrupt Enable
#define I2C_CR2_ITEVTEN_Pos	(9U)
#define I2C_CR2_ITEVTEN_Msk	(0x1U << I2C_CR2_ITEVTEN_Pos)			// 0x00000200
#define I2C_CR2_ITEVTEN		I2C_CR2_ITEVTEN_Msk			// Event Interrupt Enable
#define I2C_CR2_ITBUFEN_Pos	(10U)
#define I2C_CR2_ITBUFEN_Msk	(0x1U << I2C_CR2_ITBUFEN_Pos)			// 0x00000400
#define I2C_CR2_ITBUFEN		I2C_CR2_ITBUFEN_Msk			// Buffer Interrupt Enable
#define I2C_CR2_DMAEN_Pos		(11U)
#define I2C_CR2_DMAEN_Msk		(0x1U << I2C_CR2_DMAEN_Pos)			// 0x00000800
#define I2C_CR2_DMAEN		I2C_CR2_DMAEN_Msk			// DMA Requests Enable
#define I2C_CR2_LAST_Pos		(12U)
#define I2C_CR2_LAST_Msk		(0x1U << I2C_CR2_LAST_Pos)			// 0x00001000
#define I2C_CR2_LAST		I2C_CR2_LAST_Msk			// DMA Last Transfer

//  Bit definition for I2C_OAR1 register
#define I2C_OAR1_ADD1_7		0x000000FEU			// Interface Address
#define I2C_OAR1_ADD8_9		0x00000300U			// Interface Address

#define I2C_OAR1_ADD0_Pos		(0U)
#define I2C_OAR1_ADD0_Msk		(0x1U << I2C_OAR1_ADD0_Pos)			// 0x00000001
#define I2C_OAR1_ADD0		I2C_OAR1_ADD0_Msk			// Bit 0
#define I2C_OAR1_ADD1_Pos		(1U)
#define I2C_OAR1_ADD1_Msk		(0x1U << I2C_OAR1_ADD1_Pos)			// 0x00000002
#define I2C_OAR1_ADD1		I2C_OAR1_ADD1_Msk			// Bit 1
#define I2C_OAR1_ADD2_Pos		(2U)
#define I2C_OAR1_ADD2_Msk		(0x1U << I2C_OAR1_ADD2_Pos)			// 0x00000004
#define I2C_OAR1_ADD2		I2C_OAR1_ADD2_Msk			// Bit 2
#define I2C_OAR1_ADD3_Pos		(3U)
#define I2C_OAR1_ADD3_Msk		(0x1U << I2C_OAR1_ADD3_Pos)			// 0x00000008
#define I2C_OAR1_ADD3		I2C_OAR1_ADD3_Msk			// Bit 3
#define I2C_OAR1_ADD4_Pos		(4U)
#define I2C_OAR1_ADD4_Msk		(0x1U << I2C_OAR1_ADD4_Pos)			// 0x00000010
#define I2C_OAR1_ADD4		I2C_OAR1_ADD4_Msk			// Bit 4
#define I2C_OAR1_ADD5_Pos		(5U)
#define I2C_OAR1_ADD5_Msk		(0x1U << I2C_OAR1_ADD5_Pos)			// 0x00000020
#define I2C_OAR1_ADD5		I2C_OAR1_ADD5_Msk			// Bit 5
#define I2C_OAR1_ADD6_Pos		(6U)
#define I2C_OAR1_ADD6_Msk		(0x1U << I2C_OAR1_ADD6_Pos)			// 0x00000040
#define I2C_OAR1_ADD6		I2C_OAR1_ADD6_Msk			// Bit 6
#define I2C_OAR1_ADD7_Pos		(7U)
#define I2C_OAR1_ADD7_Msk		(0x1U << I2C_OAR1_ADD7_Pos)			// 0x00000080
#define I2C_OAR1_ADD7		I2C_OAR1_ADD7_Msk			// Bit 7
#define I2C_OAR1_ADD8_Pos		(8U)
#define I2C_OAR1_ADD8_Msk		(0x1U << I2C_OAR1_ADD8_Pos)			// 0x00000100
#define I2C_OAR1_ADD8		I2C_OAR1_ADD8_Msk			// Bit 8
#define I2C_OAR1_ADD9_Pos		(9U)
#define I2C_OAR1_ADD9_Msk		(0x1U << I2C_OAR1_ADD9_Pos)			// 0x00000200
#define I2C_OAR1_ADD9		I2C_OAR1_ADD9_Msk			// Bit 9

#define I2C_OAR1_ADDMODE_Pos	(15U)
#define I2C_OAR1_ADDMODE_Msk	(0x1U << I2C_OAR1_ADDMODE_Pos)			// 0x00008000
#define I2C_OAR1_ADDMODE		I2C_OAR1_ADDMODE_Msk			// Addressing Mode (Slave mode)

//  Bit definition for I2C_OAR2 register
#define I2C_OAR2_ENDUAL_Pos	(0U)
#define I2C_OAR2_ENDUAL_Msk	(0x1U << I2C_OAR2_ENDUAL_Pos)			// 0x00000001
#define I2C_OAR2_ENDUAL		I2C_OAR2_ENDUAL_Msk			// Dual addressing mode enable
#define I2C_OAR2_ADD2_Pos		(1U)
#define I2C_OAR2_ADD2_Msk		(0x7FU << I2C_OAR2_ADD2_Pos)			// 0x000000FE
#define I2C_OAR2_ADD2		I2C_OAR2_ADD2_Msk			// Interface address

//  Bit definition for I2C_DR register
#define I2C_DR_DR_Pos		(0U)
#define I2C_DR_DR_Msk		(0xFFU << I2C_DR_DR_Pos)			// 0x000000FF
#define I2C_DR_DR			I2C_DR_DR_Msk			// 8-bit Data Register

//  Bit definition for I2C_SR1 register
#define I2C_SR1_SB_Pos		(0U)
#define I2C_SR1_SB_Msk		(0x1U << I2C_SR1_SB_Pos)			// 0x00000001
#define I2C_SR1_SB			I2C_SR1_SB_Msk			// Start Bit (Master mode)
#define I2C_SR1_ADDR_Pos		(1U)
#define I2C_SR1_ADDR_Msk		(0x1U << I2C_SR1_ADDR_Pos)			// 0x00000002
#define I2C_SR1_ADDR		I2C_SR1_ADDR_Msk			// Address sent (master mode)/matched (slave mode)
#define I2C_SR1_BTF_Pos		(2U)
#define I2C_SR1_BTF_Msk		(0x1U << I2C_SR1_BTF_Pos)			// 0x00000004
#define I2C_SR1_BTF		I2C_SR1_BTF_Msk			// Byte Transfer Finished
#define I2C_SR1_ADD10_Pos		(3U)
#define I2C_SR1_ADD10_Msk		(0x1U << I2C_SR1_ADD10_Pos)			// 0x00000008
#define I2C_SR1_ADD10		I2C_SR1_ADD10_Msk			// 10-bit header sent (Master mode)
#define I2C_SR1_STOPF_Pos		(4U)
#define I2C_SR1_STOPF_Msk		(0x1U << I2C_SR1_STOPF_Pos)			// 0x00000010
#define I2C_SR1_STOPF		I2C_SR1_STOPF_Msk			// Stop detection (Slave mode)
#define I2C_SR1_RXNE_Pos		(6U)
#define I2C_SR1_RXNE_Msk		(0x1U << I2C_SR1_RXNE_Pos)			// 0x00000040
#define I2C_SR1_RXNE		I2C_SR1_RXNE_Msk			// Data Register not Empty (receivers)
#define I2C_SR1_TXE_Pos		(7U)
#define I2C_SR1_TXE_Msk		(0x1U << I2C_SR1_TXE_Pos)			// 0x00000080
#define I2C_SR1_TXE		I2C_SR1_TXE_Msk			// Data Register Empty (transmitters)
#define I2C_SR1_BERR_Pos		(8U)
#define I2C_SR1_BERR_Msk		(0x1U << I2C_SR1_BERR_Pos)			// 0x00000100
#define I2C_SR1_BERR		I2C_SR1_BERR_Msk			// Bus Error
#define I2C_SR1_ARLO_Pos		(9U)
#define I2C_SR1_ARLO_Msk		(0x1U << I2C_SR1_ARLO_Pos)			// 0x00000200
#define I2C_SR1_ARLO		I2C_SR1_ARLO_Msk			// Arbitration Lost (master mode)
#define I2C_SR1_AF_Pos		(10U)
#define I2C_SR1_AF_Msk		(0x1U << I2C_SR1_AF_Pos)			// 0x00000400
#define I2C_SR1_AF			I2C_SR1_AF_Msk			// Acknowledge Failure
#define I2C_SR1_OVR_Pos		(11U)
#define I2C_SR1_OVR_Msk		(0x1U << I2C_SR1_OVR_Pos)			// 0x00000800
#define I2C_SR1_OVR		I2C_SR1_OVR_Msk			// Overrun/Underrun
#define I2C_SR1_PECERR_Pos		(12U)
#define I2C_SR1_PECERR_Msk		(0x1U << I2C_SR1_PECERR_Pos)			// 0x00001000
#define I2C_SR1_PECERR		I2C_SR1_PECERR_Msk			// PEC Error in reception
#define I2C_SR1_TIMEOUT_Pos	(14U)
#define I2C_SR1_TIMEOUT_Msk	(0x1U << I2C_SR1_TIMEOUT_Pos)			// 0x00004000
#define I2C_SR1_TIMEOUT		I2C_SR1_TIMEOUT_Msk			// Timeout or Tlow Error
#define I2C_SR1_SMBALERT_Pos	(15U)
#define I2C_SR1_SMBALERT_Msk	(0x1U << I2C_SR1_SMBALERT_Pos)			// 0x00008000
#define I2C_SR1_SMBALERT		I2C_SR1_SMBALERT_Msk			// SMBus Alert

//  Bit definition for I2C_SR2 register
#define I2C_SR2_MSL_Pos		(0U)
#define I2C_SR2_MSL_Msk		(0x1U << I2C_SR2_MSL_Pos)			// 0x00000001
#define I2C_SR2_MSL		I2C_SR2_MSL_Msk			// Master/Slave
#define I2C_SR2_BUSY_Pos		(1U)
#define I2C_SR2_BUSY_Msk		(0x1U << I2C_SR2_BUSY_Pos)			// 0x00000002
#define I2C_SR2_BUSY		I2C_SR2_BUSY_Msk			// Bus Busy
#define I2C_SR2_TRA_Pos		(2U)
#define I2C_SR2_TRA_Msk		(0x1U << I2C_SR2_TRA_Pos)			// 0x00000004
#define I2C_SR2_TRA		I2C_SR2_TRA_Msk			// Transmitter/Receiver
#define I2C_SR2_GENCALL_Pos	(4U)
#define I2C_SR2_GENCALL_Msk	(0x1U << I2C_SR2_GENCALL_Pos)			// 0x00000010
#define I2C_SR2_GENCALL		I2C_SR2_GENCALL_Msk			// General Call Address (Slave mode)
#define I2C_SR2_SMBDEFAULT_Pos	(5U)
#define I2C_SR2_SMBDEFAULT_Msk	(0x1U << I2C_SR2_SMBDEFAULT_Pos)			// 0x00000020
#define I2C_SR2_SMBDEFAULT		I2C_SR2_SMBDEFAULT_Msk			// SMBus Device Default Address (Slave mode)
#define I2C_SR2_SMBHOST_Pos	(6U)
#define I2C_SR2_SMBHOST_Msk	(0x1U << I2C_SR2_SMBHOST_Pos)			// 0x00000040
#define I2C_SR2_SMBHOST		I2C_SR2_SMBHOST_Msk			// SMBus Host Header (Slave mode)
#define I2C_SR2_DUALF_Pos		(7U)
#define I2C_SR2_DUALF_Msk		(0x1U << I2C_SR2_DUALF_Pos)			// 0x00000080
#define I2C_SR2_DUALF		I2C_SR2_DUALF_Msk			// Dual Flag (Slave mode)
#define I2C_SR2_PEC_Pos		(8U)
#define I2C_SR2_PEC_Msk		(0xFFU << I2C_SR2_PEC_Pos)			// 0x0000FF00
#define I2C_SR2_PEC		I2C_SR2_PEC_Msk			// Packet Error Checking Register

//  Bit definition for I2C_CCR register
#define I2C_CCR_CCR_Pos		(0U)
#define I2C_CCR_CCR_Msk		(0xFFFU << I2C_CCR_CCR_Pos)			// 0x00000FFF
#define I2C_CCR_CCR		I2C_CCR_CCR_Msk			// Clock Control Register in Fast/Standard mode (Master mode)
#define I2C_CCR_DUTY_Pos		(14U)
#define I2C_CCR_DUTY_Msk		(0x1U << I2C_CCR_DUTY_Pos)			// 0x00004000
#define I2C_CCR_DUTY		I2C_CCR_DUTY_Msk			// Fast Mode Duty Cycle
#define I2C_CCR_FS_Pos		(15U)
#define I2C_CCR_FS_Msk		(0x1U << I2C_CCR_FS_Pos)			// 0x00008000
#define I2C_CCR_FS			I2C_CCR_FS_Msk			// I2C Master Mode Selection

//  Bit definition for I2C_TRISE register
#define I2C_TRISE_TRISE_Pos	(0U)
#define I2C_TRISE_TRISE_Msk	(0x3FU << I2C_TRISE_TRISE_Pos)			// 0x0000003F
#define I2C_TRISE_TRISE		I2C_TRISE_TRISE_Msk			// Maximum Rise Time in Fast/Standard mode (Master mode)

//  Bit definition for I2C_FLTR register
#define I2C_FLTR_DNF_Pos		(0U)
#define I2C_FLTR_DNF_Msk		(0xFU << I2C_FLTR_DNF_Pos)			// 0x0000000F
#define I2C_FLTR_DNF		I2C_FLTR_DNF_Msk			// Digital Noise Filter
#define I2C_FLTR_ANOFF_Pos		(4U)
#define I2C_FLTR_ANOFF_Msk		(0x1U << I2C_FLTR_ANOFF_Pos)			// 0x00000010
#define I2C_FLTR_ANOFF		I2C_FLTR_ANOFF_Msk			// Analog Noise Filter OFF



// Independent WATCHDOG


//  Bit definition for IWDG_KR register
#define IWDG_KR_KEY_Pos	(0U)
#define IWDG_KR_KEY_Msk	(0xFFFFU << IWDG_KR_KEY_Pos)			// 0x0000FFFF
#define IWDG_KR_KEY		IWDG_KR_KEY_Msk			// Key value (write only, read 0000h)

//  Bit definition for IWDG_PR register
#define IWDG_PR_PR_Pos	(0U)
#define IWDG_PR_PR_Msk	(0x7U << IWDG_PR_PR_Pos)			// 0x00000007
#define IWDG_PR_PR		IWDG_PR_PR_Msk			// PR[2:0] (Prescaler divider)
#define IWDG_PR_PR_0		(0x1U << IWDG_PR_PR_Pos)			// 0x01
#define IWDG_PR_PR_1		(0x2U << IWDG_PR_PR_Pos)			// 0x02
#define IWDG_PR_PR_2		(0x4U << IWDG_PR_PR_Pos)			// 0x04

//  Bit definition for IWDG_RLR register
#define IWDG_RLR_RL_Pos	(0U)
#define IWDG_RLR_RL_Msk	(0xFFFU << IWDG_RLR_RL_Pos)			// 0x00000FFF
#define IWDG_RLR_RL		IWDG_RLR_RL_Msk			// Watchdog counter reload value

//  Bit definition for IWDG_SR register
#define IWDG_SR_PVU_Pos	(0U)
#define IWDG_SR_PVU_Msk	(0x1U << IWDG_SR_PVU_Pos)			// 0x00000001
#define IWDG_SR_PVU		IWDG_SR_PVU_Msk			// Watchdog prescaler value update
#define IWDG_SR_RVU_Pos	(1U)
#define IWDG_SR_RVU_Msk	(0x1U << IWDG_SR_RVU_Pos)			// 0x00000002
#define IWDG_SR_RVU		IWDG_SR_RVU_Msk			// Watchdog counter reload value update





// Power Control


//  Bit definition for PWR_CR register
#define PWR_CR_LPDS_Pos		(0U)
#define PWR_CR_LPDS_Msk		(0x1U << PWR_CR_LPDS_Pos)			// 0x00000001
#define PWR_CR_LPDS		PWR_CR_LPDS_Msk			// Low-Power Deepsleep
#define PWR_CR_PDDS_Pos		(1U)
#define PWR_CR_PDDS_Msk		(0x1U << PWR_CR_PDDS_Pos)			// 0x00000002
#define PWR_CR_PDDS		PWR_CR_PDDS_Msk			// Power Down Deepsleep
#define PWR_CR_CWUF_Pos		(2U)
#define PWR_CR_CWUF_Msk		(0x1U << PWR_CR_CWUF_Pos)			// 0x00000004
#define PWR_CR_CWUF		PWR_CR_CWUF_Msk			// Clear Wakeup Flag
#define PWR_CR_CSBF_Pos		(3U)
#define PWR_CR_CSBF_Msk		(0x1U << PWR_CR_CSBF_Pos)			// 0x00000008
#define PWR_CR_CSBF		PWR_CR_CSBF_Msk			// Clear Standby Flag
#define PWR_CR_PVDE_Pos		(4U)
#define PWR_CR_PVDE_Msk		(0x1U << PWR_CR_PVDE_Pos)			// 0x00000010
#define PWR_CR_PVDE		PWR_CR_PVDE_Msk			// Power Voltage Detector Enable

#define PWR_CR_PLS_Pos		(5U)
#define PWR_CR_PLS_Msk		(0x7U << PWR_CR_PLS_Pos)			// 0x000000E0
#define PWR_CR_PLS		PWR_CR_PLS_Msk			// PLS[2:0] bits (PVD Level Selection)
#define PWR_CR_PLS_0		(0x1U << PWR_CR_PLS_Pos)			// 0x00000020
#define PWR_CR_PLS_1		(0x2U << PWR_CR_PLS_Pos)			// 0x00000040
#define PWR_CR_PLS_2		(0x4U << PWR_CR_PLS_Pos)			// 0x00000080

// PVD level configuration
#define PWR_CR_PLS_LEV0		0x00000000U			// PVD level 0
#define PWR_CR_PLS_LEV1		0x00000020U			// PVD level 1
#define PWR_CR_PLS_LEV2		0x00000040U			// PVD level 2
#define PWR_CR_PLS_LEV3		0x00000060U			// PVD level 3
#define PWR_CR_PLS_LEV4		0x00000080U			// PVD level 4
#define PWR_CR_PLS_LEV5		0x000000A0U			// PVD level 5
#define PWR_CR_PLS_LEV6		0x000000C0U			// PVD level 6
#define PWR_CR_PLS_LEV7		0x000000E0U			// PVD level 7
#define PWR_CR_DBP_Pos		(8U)
#define PWR_CR_DBP_Msk		(0x1U << PWR_CR_DBP_Pos)	// 0x00000100
#define PWR_CR_DBP		PWR_CR_DBP_Msk			// Disable Backup Domain write protection
#define PWR_CR_FPDS_Pos		(9U)
#define PWR_CR_FPDS_Msk		(0x1U << PWR_CR_FPDS_Pos)	// 0x00000200
#define PWR_CR_FPDS		PWR_CR_FPDS_Msk			// Flash power down in Stop mode
#define PWR_CR_LPLVDS_Pos	(10U)
#define PWR_CR_LPLVDS_Msk	(0x1U << PWR_CR_LPLVDS_Pos)	// 0x00000400
#define PWR_CR_LPLVDS		PWR_CR_LPLVDS_Msk		// Low Power Regulator Low Voltage in Deep Sleep mode
#define PWR_CR_MRLVDS_Pos	(11U)
#define PWR_CR_MRLVDS_Msk	(0x1U << PWR_CR_MRLVDS_Pos)	// 0x00000800
#define PWR_CR_MRLVDS		PWR_CR_MRLVDS_Msk		// Main Regulator Low Voltage in Deep Sleep mode
#define PWR_CR_ADCDC1_Pos	(13U)
#define PWR_CR_ADCDC1_Msk	(0x1U << PWR_CR_ADCDC1_Pos)	// 0x00002000
#define PWR_CR_ADCDC1		PWR_CR_ADCDC1_Msk		// Refer to AN4073 on how to use this bit
#define PWR_CR_VOS_Pos		(14U)
#define PWR_CR_VOS_Msk		(0x3U << PWR_CR_VOS_Pos)	// 0x0000C000
#define PWR_CR_VOS		PWR_CR_VOS_Msk			// VOS[1:0] bits (Regulator voltage scaling output selection)
#define PWR_CR_VOS_0		0x00004000U			// Bit 0
#define PWR_CR_VOS_1		0x00008000U			// Bit 1

// Legacy define
#define  PWR_CR_PMODE			PWR_CR_VOS

//  Bit definition for PWR_CSR register
#define PWR_CSR_WUF_Pos		(0U)
#define PWR_CSR_WUF_Msk		(0x1U << PWR_CSR_WUF_Pos)	// 0x00000001
#define PWR_CSR_WUF		PWR_CSR_WUF_Msk			// Wakeup Flag
#define PWR_CSR_SBF_Pos		(1U)
#define PWR_CSR_SBF_Msk		(0x1U << PWR_CSR_SBF_Pos)	// 0x00000002
#define PWR_CSR_SBF		PWR_CSR_SBF_Msk			// Standby Flag
#define PWR_CSR_PVDO_Pos	(2U)
#define PWR_CSR_PVDO_Msk	(0x1U << PWR_CSR_PVDO_Pos)	// 0x00000004
#define PWR_CSR_PVDO		PWR_CSR_PVDO_Msk		// PVD Output
#define PWR_CSR_BRR_Pos		(3U)
#define PWR_CSR_BRR_Msk		(0x1U << PWR_CSR_BRR_Pos)	// 0x00000008
#define PWR_CSR_BRR		PWR_CSR_BRR_Msk			// Backup regulator ready
#define PWR_CSR_EWUP_Pos	(8U)
#define PWR_CSR_EWUP_Msk	(0x1U << PWR_CSR_EWUP_Pos)	// 0x00000100
#define PWR_CSR_EWUP		PWR_CSR_EWUP_Msk		// Enable WKUP pin
#define PWR_CSR_BRE_Pos		(9U)
#define PWR_CSR_BRE_Msk		(0x1U << PWR_CSR_BRE_Pos)	// 0x00000200
#define PWR_CSR_BRE		PWR_CSR_BRE_Msk			// Backup regulator enable
#define PWR_CSR_VOSRDY_Pos	(14U)
#define PWR_CSR_VOSRDY_Msk	(0x1U << PWR_CSR_VOSRDY_Pos)	// 0x00004000
#define PWR_CSR_VOSRDY		PWR_CSR_VOSRDY_Msk		// Regulator voltage scaling output selection ready

// Legacy define
#define  PWR_CSR_REGRDY			PWR_CSR_VOSRDY



// Reset and Clock Control


//  Bit definition for RCC_CR register
#define RCC_CR_HSION_Pos			(0U)
#define RCC_CR_HSION_Msk			(0x1U << RCC_CR_HSION_Pos)			// 0x00000001
#define RCC_CR_HSION			RCC_CR_HSION_Msk
#define RCC_CR_HSIRDY_Pos			(1U)
#define RCC_CR_HSIRDY_Msk			(0x1U << RCC_CR_HSIRDY_Pos)			// 0x00000002
#define RCC_CR_HSIRDY			RCC_CR_HSIRDY_Msk

#define RCC_CR_HSITRIM_Pos			(3U)
#define RCC_CR_HSITRIM_Msk			(0x1FU << RCC_CR_HSITRIM_Pos)	//  0x000000F8
#define RCC_CR_HSITRIM			RCC_CR_HSITRIM_Msk
#define RCC_CR_HSITRIM_0			(0x01U << RCC_CR_HSITRIM_Pos)	//  0x00000008
#define RCC_CR_HSITRIM_1			(0x02U << RCC_CR_HSITRIM_Pos)	//  0x00000010
#define RCC_CR_HSITRIM_2			(0x04U << RCC_CR_HSITRIM_Pos)	//  0x00000020
#define RCC_CR_HSITRIM_3			(0x08U << RCC_CR_HSITRIM_Pos)	//  0x00000040
#define RCC_CR_HSITRIM_4			(0x10U << RCC_CR_HSITRIM_Pos)	//  0x00000080

#define RCC_CR_HSICAL_Pos			(8U)
#define RCC_CR_HSICAL_Msk			(0xFFU << RCC_CR_HSICAL_Pos)			// 0x0000FF00
#define RCC_CR_HSICAL			RCC_CR_HSICAL_Msk
#define RCC_CR_HSICAL_0			(0x01U << RCC_CR_HSICAL_Pos)			// 0x00000100
#define RCC_CR_HSICAL_1			(0x02U << RCC_CR_HSICAL_Pos)			// 0x00000200
#define RCC_CR_HSICAL_2			(0x04U << RCC_CR_HSICAL_Pos)			// 0x00000400
#define RCC_CR_HSICAL_3			(0x08U << RCC_CR_HSICAL_Pos)			// 0x00000800
#define RCC_CR_HSICAL_4			(0x10U << RCC_CR_HSICAL_Pos)			// 0x00001000
#define RCC_CR_HSICAL_5			(0x20U << RCC_CR_HSICAL_Pos)			// 0x00002000
#define RCC_CR_HSICAL_6			(0x40U << RCC_CR_HSICAL_Pos)			// 0x00004000
#define RCC_CR_HSICAL_7			(0x80U << RCC_CR_HSICAL_Pos)			// 0x00008000

#define RCC_CR_HSEON_Pos			(16U)
#define RCC_CR_HSEON_Msk			(0x1U << RCC_CR_HSEON_Pos)			// 0x00010000
#define RCC_CR_HSEON			RCC_CR_HSEON_Msk
#define RCC_CR_HSERDY_Pos			(17U)
#define RCC_CR_HSERDY_Msk			(0x1U << RCC_CR_HSERDY_Pos)			// 0x00020000
#define RCC_CR_HSERDY			RCC_CR_HSERDY_Msk
#define RCC_CR_HSEBYP_Pos			(18U)
#define RCC_CR_HSEBYP_Msk			(0x1U << RCC_CR_HSEBYP_Pos)			// 0x00040000
#define RCC_CR_HSEBYP			RCC_CR_HSEBYP_Msk
#define RCC_CR_CSSON_Pos			(19U)
#define RCC_CR_CSSON_Msk			(0x1U << RCC_CR_CSSON_Pos)			// 0x00080000
#define RCC_CR_CSSON			RCC_CR_CSSON_Msk
#define RCC_CR_PLLON_Pos			(24U)
#define RCC_CR_PLLON_Msk			(0x1U << RCC_CR_PLLON_Pos)			// 0x01000000
#define RCC_CR_PLLON			RCC_CR_PLLON_Msk
#define RCC_CR_PLLRDY_Pos			(25U)
#define RCC_CR_PLLRDY_Msk			(0x1U << RCC_CR_PLLRDY_Pos)			// 0x02000000
#define RCC_CR_PLLRDY			RCC_CR_PLLRDY_Msk
#define RCC_CR_PLLI2SON_Pos			(26U)
#define RCC_CR_PLLI2SON_Msk			(0x1U << RCC_CR_PLLI2SON_Pos)	//  0x04000000
#define RCC_CR_PLLI2SON			RCC_CR_PLLI2SON_Msk
#define RCC_CR_PLLI2SRDY_Pos		(27U)
#define RCC_CR_PLLI2SRDY_Msk		(0x1U << RCC_CR_PLLI2SRDY_Pos)	//  0x08000000
#define RCC_CR_PLLI2SRDY			RCC_CR_PLLI2SRDY_Msk

//  Bit definition for RCC_PLLCFGR register
#define RCC_PLLCFGR_PLLM_Pos		(0U)
#define RCC_PLLCFGR_PLLM_Msk		(0x3FU << RCC_PLLCFGR_PLLM_Pos)	//  0x0000003F
#define RCC_PLLCFGR_PLLM			RCC_PLLCFGR_PLLM_Msk
#define RCC_PLLCFGR_PLLM_0			(0x01U << RCC_PLLCFGR_PLLM_Pos)	//  0x00000001
#define RCC_PLLCFGR_PLLM_1			(0x02U << RCC_PLLCFGR_PLLM_Pos)	//  0x00000002
#define RCC_PLLCFGR_PLLM_2			(0x04U << RCC_PLLCFGR_PLLM_Pos)	//  0x00000004
#define RCC_PLLCFGR_PLLM_3			(0x08U << RCC_PLLCFGR_PLLM_Pos)	//  0x00000008
#define RCC_PLLCFGR_PLLM_4			(0x10U << RCC_PLLCFGR_PLLM_Pos)	//  0x00000010
#define RCC_PLLCFGR_PLLM_5			(0x20U << RCC_PLLCFGR_PLLM_Pos)	//  0x00000020

#define RCC_PLLCFGR_PLLN_Pos		(6U)
#define RCC_PLLCFGR_PLLN_Msk		(0x1FFU << RCC_PLLCFGR_PLLN_Pos)	//  0x00007FC0
#define RCC_PLLCFGR_PLLN			RCC_PLLCFGR_PLLN_Msk
#define RCC_PLLCFGR_PLLN_0			(0x001U << RCC_PLLCFGR_PLLN_Pos)	//  0x00000040
#define RCC_PLLCFGR_PLLN_1			(0x002U << RCC_PLLCFGR_PLLN_Pos)	//  0x00000080
#define RCC_PLLCFGR_PLLN_2			(0x004U << RCC_PLLCFGR_PLLN_Pos)	//  0x00000100
#define RCC_PLLCFGR_PLLN_3			(0x008U << RCC_PLLCFGR_PLLN_Pos)	//  0x00000200
#define RCC_PLLCFGR_PLLN_4			(0x010U << RCC_PLLCFGR_PLLN_Pos)	//  0x00000400
#define RCC_PLLCFGR_PLLN_5			(0x020U << RCC_PLLCFGR_PLLN_Pos)	//  0x00000800
#define RCC_PLLCFGR_PLLN_6			(0x040U << RCC_PLLCFGR_PLLN_Pos)	//  0x00001000
#define RCC_PLLCFGR_PLLN_7			(0x080U << RCC_PLLCFGR_PLLN_Pos)	//  0x00002000
#define RCC_PLLCFGR_PLLN_8			(0x100U << RCC_PLLCFGR_PLLN_Pos)	//  0x00004000

#define RCC_PLLCFGR_PLLP_Pos		(16U)
#define RCC_PLLCFGR_PLLP_Msk		(0x3U << RCC_PLLCFGR_PLLP_Pos)	//  0x00030000
#define RCC_PLLCFGR_PLLP			RCC_PLLCFGR_PLLP_Msk
#define RCC_PLLCFGR_PLLP_0			(0x1U << RCC_PLLCFGR_PLLP_Pos)	//  0x00010000
#define RCC_PLLCFGR_PLLP_1			(0x2U << RCC_PLLCFGR_PLLP_Pos)	//  0x00020000

#define RCC_PLLCFGR_PLLSRC_Pos		(22U)
#define RCC_PLLCFGR_PLLSRC_Msk		(0x1U << RCC_PLLCFGR_PLLSRC_Pos)	//  0x00400000
#define RCC_PLLCFGR_PLLSRC			RCC_PLLCFGR_PLLSRC_Msk
#define RCC_PLLCFGR_PLLSRC_HSE_Pos		(22U)
#define RCC_PLLCFGR_PLLSRC_HSE_Msk		(0x1U << RCC_PLLCFGR_PLLSRC_HSE_Pos)	//  0x00400000
#define RCC_PLLCFGR_PLLSRC_HSE		RCC_PLLCFGR_PLLSRC_HSE_Msk
#define RCC_PLLCFGR_PLLSRC_HSI		0x00000000U

#define RCC_PLLCFGR_PLLQ_Pos		(24U)
#define RCC_PLLCFGR_PLLQ_Msk		(0xFU << RCC_PLLCFGR_PLLQ_Pos)	//  0x0F000000
#define RCC_PLLCFGR_PLLQ			RCC_PLLCFGR_PLLQ_Msk
#define RCC_PLLCFGR_PLLQ_0			(0x1U << RCC_PLLCFGR_PLLQ_Pos)	//  0x01000000
#define RCC_PLLCFGR_PLLQ_1			(0x2U << RCC_PLLCFGR_PLLQ_Pos)	//  0x02000000
#define RCC_PLLCFGR_PLLQ_2			(0x4U << RCC_PLLCFGR_PLLQ_Pos)	//  0x04000000
#define RCC_PLLCFGR_PLLQ_3			(0x8U << RCC_PLLCFGR_PLLQ_Pos)	//  0x08000000

//  Bit definition for RCC_CFGR register
// SW configuration
#define RCC_CFGR_SW_Pos			(0U)
#define RCC_CFGR_SW_Msk			(0x3U << RCC_CFGR_SW_Pos)			// 0x00000003
#define RCC_CFGR_SW			RCC_CFGR_SW_Msk			// SW[1:0] bits (System clock Switch)
#define RCC_CFGR_SW_0			(0x1U << RCC_CFGR_SW_Pos)			// 0x00000001
#define RCC_CFGR_SW_1			(0x2U << RCC_CFGR_SW_Pos)			// 0x00000002

#define RCC_CFGR_SW_HSI			0x00000000U			// HSI selected as system clock
#define RCC_CFGR_SW_HSE			0x00000001U			// HSE selected as system clock
#define RCC_CFGR_SW_PLL			0x00000002U			// PLL selected as system clock

// SWS configuration
#define RCC_CFGR_SWS_Pos			(2U)
#define RCC_CFGR_SWS_Msk			(0x3U << RCC_CFGR_SWS_Pos)			// 0x0000000C
#define RCC_CFGR_SWS			RCC_CFGR_SWS_Msk			// SWS[1:0] bits (System Clock Switch Status)
#define RCC_CFGR_SWS_0			(0x1U << RCC_CFGR_SWS_Pos)			// 0x00000004
#define RCC_CFGR_SWS_1			(0x2U << RCC_CFGR_SWS_Pos)			// 0x00000008

#define RCC_CFGR_SWS_HSI			0x00000000U			// HSI oscillator used as system clock
#define RCC_CFGR_SWS_HSE			0x00000004U			// HSE oscillator used as system clock
#define RCC_CFGR_SWS_PLL			0x00000008U			// PLL used as system clock

// HPRE configuration
#define RCC_CFGR_HPRE_Pos			(4U)
#define RCC_CFGR_HPRE_Msk			(0xFU << RCC_CFGR_HPRE_Pos)			// 0x000000F0
#define RCC_CFGR_HPRE			RCC_CFGR_HPRE_Msk			// HPRE[3:0] bits (AHB prescaler)
#define RCC_CFGR_HPRE_0			(0x1U << RCC_CFGR_HPRE_Pos)			// 0x00000010
#define RCC_CFGR_HPRE_1			(0x2U << RCC_CFGR_HPRE_Pos)			// 0x00000020
#define RCC_CFGR_HPRE_2			(0x4U << RCC_CFGR_HPRE_Pos)			// 0x00000040
#define RCC_CFGR_HPRE_3			(0x8U << RCC_CFGR_HPRE_Pos)			// 0x00000080

#define RCC_CFGR_HPRE_DIV1			0x00000000U			// SYSCLK not divided
#define RCC_CFGR_HPRE_DIV2			0x00000080U			// SYSCLK divided by 2
#define RCC_CFGR_HPRE_DIV4			0x00000090U			// SYSCLK divided by 4
#define RCC_CFGR_HPRE_DIV8			0x000000A0U			// SYSCLK divided by 8
#define RCC_CFGR_HPRE_DIV16			0x000000B0U			// SYSCLK divided by 16
#define RCC_CFGR_HPRE_DIV64			0x000000C0U			// SYSCLK divided by 64
#define RCC_CFGR_HPRE_DIV128		0x000000D0U			// SYSCLK divided by 128
#define RCC_CFGR_HPRE_DIV256		0x000000E0U			// SYSCLK divided by 256
#define RCC_CFGR_HPRE_DIV512		0x000000F0U			// SYSCLK divided by 512

// PPRE1 configuration
#define RCC_CFGR_PPRE1_Pos			(10U)
#define RCC_CFGR_PPRE1_Msk			(0x7U << RCC_CFGR_PPRE1_Pos)			// 0x00001C00
#define RCC_CFGR_PPRE1			RCC_CFGR_PPRE1_Msk			// PRE1[2:0] bits (APB1 prescaler)
#define RCC_CFGR_PPRE1_0			(0x1U << RCC_CFGR_PPRE1_Pos)			// 0x00000400
#define RCC_CFGR_PPRE1_1			(0x2U << RCC_CFGR_PPRE1_Pos)			// 0x00000800
#define RCC_CFGR_PPRE1_2			(0x4U << RCC_CFGR_PPRE1_Pos)			// 0x00001000

#define RCC_CFGR_PPRE1_DIV1			0x00000000U			// HCLK not divided
#define RCC_CFGR_PPRE1_DIV2			0x00001000U			// HCLK divided by 2
#define RCC_CFGR_PPRE1_DIV4			0x00001400U			// HCLK divided by 4
#define RCC_CFGR_PPRE1_DIV8			0x00001800U			// HCLK divided by 8
#define RCC_CFGR_PPRE1_DIV16		0x00001C00U			// HCLK divided by 16

// PPRE2 configuration
#define RCC_CFGR_PPRE2_Pos			(13U)
#define RCC_CFGR_PPRE2_Msk			(0x7U << RCC_CFGR_PPRE2_Pos)			// 0x0000E000
#define RCC_CFGR_PPRE2			RCC_CFGR_PPRE2_Msk			// PRE2[2:0] bits (APB2 prescaler)
#define RCC_CFGR_PPRE2_0			(0x1U << RCC_CFGR_PPRE2_Pos)			// 0x00002000
#define RCC_CFGR_PPRE2_1			(0x2U << RCC_CFGR_PPRE2_Pos)			// 0x00004000
#define RCC_CFGR_PPRE2_2			(0x4U << RCC_CFGR_PPRE2_Pos)			// 0x00008000

#define RCC_CFGR_PPRE2_DIV1			0x00000000U			// HCLK not divided
#define RCC_CFGR_PPRE2_DIV2			0x00008000U			// HCLK divided by 2
#define RCC_CFGR_PPRE2_DIV4			0x0000A000U			// HCLK divided by 4
#define RCC_CFGR_PPRE2_DIV8			0x0000C000U			// HCLK divided by 8
#define RCC_CFGR_PPRE2_DIV16		0x0000E000U			// HCLK divided by 16

// RTCPRE configuration
#define RCC_CFGR_RTCPRE_Pos			(16U)
#define RCC_CFGR_RTCPRE_Msk			(0x1FU << RCC_CFGR_RTCPRE_Pos)	//  0x001F0000
#define RCC_CFGR_RTCPRE			RCC_CFGR_RTCPRE_Msk
#define RCC_CFGR_RTCPRE_0			(0x01U << RCC_CFGR_RTCPRE_Pos)	//  0x00010000
#define RCC_CFGR_RTCPRE_1			(0x02U << RCC_CFGR_RTCPRE_Pos)	//  0x00020000
#define RCC_CFGR_RTCPRE_2			(0x04U << RCC_CFGR_RTCPRE_Pos)	//  0x00040000
#define RCC_CFGR_RTCPRE_3			(0x08U << RCC_CFGR_RTCPRE_Pos)	//  0x00080000
#define RCC_CFGR_RTCPRE_4			(0x10U << RCC_CFGR_RTCPRE_Pos)	//  0x00100000

// MCO1 configuration
#define RCC_CFGR_MCO1_Pos			(21U)
#define RCC_CFGR_MCO1_Msk			(0x3U << RCC_CFGR_MCO1_Pos)			// 0x00600000
#define RCC_CFGR_MCO1			RCC_CFGR_MCO1_Msk
#define RCC_CFGR_MCO1_0			(0x1U << RCC_CFGR_MCO1_Pos)			// 0x00200000
#define RCC_CFGR_MCO1_1			(0x2U << RCC_CFGR_MCO1_Pos)			// 0x00400000

#define RCC_CFGR_I2SSRC_Pos			(23U)
#define RCC_CFGR_I2SSRC_Msk			(0x1U << RCC_CFGR_I2SSRC_Pos)	//  0x00800000
#define RCC_CFGR_I2SSRC			RCC_CFGR_I2SSRC_Msk

#define RCC_CFGR_MCO1PRE_Pos		(24U)
#define RCC_CFGR_MCO1PRE_Msk		(0x7U << RCC_CFGR_MCO1PRE_Pos)	//  0x07000000
#define RCC_CFGR_MCO1PRE			RCC_CFGR_MCO1PRE_Msk
#define RCC_CFGR_MCO1PRE_0			(0x1U << RCC_CFGR_MCO1PRE_Pos)	//  0x01000000
#define RCC_CFGR_MCO1PRE_1			(0x2U << RCC_CFGR_MCO1PRE_Pos)	//  0x02000000
#define RCC_CFGR_MCO1PRE_2			(0x4U << RCC_CFGR_MCO1PRE_Pos)	//  0x04000000

#define RCC_CFGR_MCO2PRE_Pos		(27U)
#define RCC_CFGR_MCO2PRE_Msk		(0x7U << RCC_CFGR_MCO2PRE_Pos)	//  0x38000000
#define RCC_CFGR_MCO2PRE			RCC_CFGR_MCO2PRE_Msk
#define RCC_CFGR_MCO2PRE_0			(0x1U << RCC_CFGR_MCO2PRE_Pos)	//  0x08000000
#define RCC_CFGR_MCO2PRE_1			(0x2U << RCC_CFGR_MCO2PRE_Pos)	//  0x10000000
#define RCC_CFGR_MCO2PRE_2			(0x4U << RCC_CFGR_MCO2PRE_Pos)	//  0x20000000

#define RCC_CFGR_MCO2_Pos			(30U)
#define RCC_CFGR_MCO2_Msk			(0x3U << RCC_CFGR_MCO2_Pos)			// 0xC0000000
#define RCC_CFGR_MCO2			RCC_CFGR_MCO2_Msk
#define RCC_CFGR_MCO2_0			(0x1U << RCC_CFGR_MCO2_Pos)			// 0x40000000
#define RCC_CFGR_MCO2_1			(0x2U << RCC_CFGR_MCO2_Pos)			// 0x80000000

//  Bit definition for RCC_CIR register
#define RCC_CIR_LSIRDYF_Pos			(0U)
#define RCC_CIR_LSIRDYF_Msk			(0x1U << RCC_CIR_LSIRDYF_Pos)	//  0x00000001
#define RCC_CIR_LSIRDYF			RCC_CIR_LSIRDYF_Msk
#define RCC_CIR_LSERDYF_Pos			(1U)
#define RCC_CIR_LSERDYF_Msk			(0x1U << RCC_CIR_LSERDYF_Pos)	//  0x00000002
#define RCC_CIR_LSERDYF			RCC_CIR_LSERDYF_Msk
#define RCC_CIR_HSIRDYF_Pos			(2U)
#define RCC_CIR_HSIRDYF_Msk			(0x1U << RCC_CIR_HSIRDYF_Pos)	//  0x00000004
#define RCC_CIR_HSIRDYF			RCC_CIR_HSIRDYF_Msk
#define RCC_CIR_HSERDYF_Pos			(3U)
#define RCC_CIR_HSERDYF_Msk			(0x1U << RCC_CIR_HSERDYF_Pos)	//  0x00000008
#define RCC_CIR_HSERDYF			RCC_CIR_HSERDYF_Msk
#define RCC_CIR_PLLRDYF_Pos			(4U)
#define RCC_CIR_PLLRDYF_Msk			(0x1U << RCC_CIR_PLLRDYF_Pos)	//  0x00000010
#define RCC_CIR_PLLRDYF			RCC_CIR_PLLRDYF_Msk
#define RCC_CIR_PLLI2SRDYF_Pos		(5U)
#define RCC_CIR_PLLI2SRDYF_Msk		(0x1U << RCC_CIR_PLLI2SRDYF_Pos)	//  0x00000020
#define RCC_CIR_PLLI2SRDYF			RCC_CIR_PLLI2SRDYF_Msk

#define RCC_CIR_CSSF_Pos			(7U)
#define RCC_CIR_CSSF_Msk			(0x1U << RCC_CIR_CSSF_Pos)			// 0x00000080
#define RCC_CIR_CSSF			RCC_CIR_CSSF_Msk
#define RCC_CIR_LSIRDYIE_Pos		(8U)
#define RCC_CIR_LSIRDYIE_Msk		(0x1U << RCC_CIR_LSIRDYIE_Pos)	//  0x00000100
#define RCC_CIR_LSIRDYIE			RCC_CIR_LSIRDYIE_Msk
#define RCC_CIR_LSERDYIE_Pos		(9U)
#define RCC_CIR_LSERDYIE_Msk		(0x1U << RCC_CIR_LSERDYIE_Pos)	//  0x00000200
#define RCC_CIR_LSERDYIE			RCC_CIR_LSERDYIE_Msk
#define RCC_CIR_HSIRDYIE_Pos		(10U)
#define RCC_CIR_HSIRDYIE_Msk		(0x1U << RCC_CIR_HSIRDYIE_Pos)	//  0x00000400
#define RCC_CIR_HSIRDYIE			RCC_CIR_HSIRDYIE_Msk
#define RCC_CIR_HSERDYIE_Pos		(11U)
#define RCC_CIR_HSERDYIE_Msk		(0x1U << RCC_CIR_HSERDYIE_Pos)	//  0x00000800
#define RCC_CIR_HSERDYIE			RCC_CIR_HSERDYIE_Msk
#define RCC_CIR_PLLRDYIE_Pos		(12U)
#define RCC_CIR_PLLRDYIE_Msk		(0x1U << RCC_CIR_PLLRDYIE_Pos)	//  0x00001000
#define RCC_CIR_PLLRDYIE			RCC_CIR_PLLRDYIE_Msk
#define RCC_CIR_PLLI2SRDYIE_Pos		(13U)
#define RCC_CIR_PLLI2SRDYIE_Msk		(0x1U << RCC_CIR_PLLI2SRDYIE_Pos)	//  0x00002000
#define RCC_CIR_PLLI2SRDYIE			RCC_CIR_PLLI2SRDYIE_Msk

#define RCC_CIR_LSIRDYC_Pos			(16U)
#define RCC_CIR_LSIRDYC_Msk			(0x1U << RCC_CIR_LSIRDYC_Pos)	//  0x00010000
#define RCC_CIR_LSIRDYC			RCC_CIR_LSIRDYC_Msk
#define RCC_CIR_LSERDYC_Pos			(17U)
#define RCC_CIR_LSERDYC_Msk			(0x1U << RCC_CIR_LSERDYC_Pos)	//  0x00020000
#define RCC_CIR_LSERDYC			RCC_CIR_LSERDYC_Msk
#define RCC_CIR_HSIRDYC_Pos			(18U)
#define RCC_CIR_HSIRDYC_Msk			(0x1U << RCC_CIR_HSIRDYC_Pos)	//  0x00040000
#define RCC_CIR_HSIRDYC			RCC_CIR_HSIRDYC_Msk
#define RCC_CIR_HSERDYC_Pos			(19U)
#define RCC_CIR_HSERDYC_Msk			(0x1U << RCC_CIR_HSERDYC_Pos)	//  0x00080000
#define RCC_CIR_HSERDYC			RCC_CIR_HSERDYC_Msk
#define RCC_CIR_PLLRDYC_Pos			(20U)
#define RCC_CIR_PLLRDYC_Msk			(0x1U << RCC_CIR_PLLRDYC_Pos)	//  0x00100000
#define RCC_CIR_PLLRDYC			RCC_CIR_PLLRDYC_Msk
#define RCC_CIR_PLLI2SRDYC_Pos		(21U)
#define RCC_CIR_PLLI2SRDYC_Msk		(0x1U << RCC_CIR_PLLI2SRDYC_Pos)	//  0x00200000
#define RCC_CIR_PLLI2SRDYC			RCC_CIR_PLLI2SRDYC_Msk

#define RCC_CIR_CSSC_Pos			(23U)
#define RCC_CIR_CSSC_Msk			(0x1U << RCC_CIR_CSSC_Pos)			// 0x00800000
#define RCC_CIR_CSSC			RCC_CIR_CSSC_Msk

//  Bit definition for RCC_AHB1RSTR register
#define RCC_AHB1RSTR_GPIOARST_Pos		(0U)
#define RCC_AHB1RSTR_GPIOARST_Msk		(0x1U << RCC_AHB1RSTR_GPIOARST_Pos)	//  0x00000001
#define RCC_AHB1RSTR_GPIOARST		RCC_AHB1RSTR_GPIOARST_Msk
#define RCC_AHB1RSTR_GPIOBRST_Pos		(1U)
#define RCC_AHB1RSTR_GPIOBRST_Msk		(0x1U << RCC_AHB1RSTR_GPIOBRST_Pos)	//  0x00000002
#define RCC_AHB1RSTR_GPIOBRST		RCC_AHB1RSTR_GPIOBRST_Msk
#define RCC_AHB1RSTR_GPIOCRST_Pos		(2U)
#define RCC_AHB1RSTR_GPIOCRST_Msk		(0x1U << RCC_AHB1RSTR_GPIOCRST_Pos)	//  0x00000004
#define RCC_AHB1RSTR_GPIOCRST		RCC_AHB1RSTR_GPIOCRST_Msk
#define RCC_AHB1RSTR_GPIODRST_Pos		(3U)
#define RCC_AHB1RSTR_GPIODRST_Msk		(0x1U << RCC_AHB1RSTR_GPIODRST_Pos)	//  0x00000008
#define RCC_AHB1RSTR_GPIODRST		RCC_AHB1RSTR_GPIODRST_Msk
#define RCC_AHB1RSTR_GPIOERST_Pos		(4U)
#define RCC_AHB1RSTR_GPIOERST_Msk		(0x1U << RCC_AHB1RSTR_GPIOERST_Pos)	//  0x00000010
#define RCC_AHB1RSTR_GPIOERST		RCC_AHB1RSTR_GPIOERST_Msk
#define RCC_AHB1RSTR_GPIOHRST_Pos		(7U)
#define RCC_AHB1RSTR_GPIOHRST_Msk		(0x1U << RCC_AHB1RSTR_GPIOHRST_Pos)	//  0x00000080
#define RCC_AHB1RSTR_GPIOHRST		RCC_AHB1RSTR_GPIOHRST_Msk
#define RCC_AHB1RSTR_CRCRST_Pos		(12U)
#define RCC_AHB1RSTR_CRCRST_Msk		(0x1U << RCC_AHB1RSTR_CRCRST_Pos)	//  0x00001000
#define RCC_AHB1RSTR_CRCRST			RCC_AHB1RSTR_CRCRST_Msk
#define RCC_AHB1RSTR_DMA1RST_Pos		(21U)
#define RCC_AHB1RSTR_DMA1RST_Msk		(0x1U << RCC_AHB1RSTR_DMA1RST_Pos)	//  0x00200000
#define RCC_AHB1RSTR_DMA1RST		RCC_AHB1RSTR_DMA1RST_Msk
#define RCC_AHB1RSTR_DMA2RST_Pos		(22U)
#define RCC_AHB1RSTR_DMA2RST_Msk		(0x1U << RCC_AHB1RSTR_DMA2RST_Pos)	//  0x00400000
#define RCC_AHB1RSTR_DMA2RST		RCC_AHB1RSTR_DMA2RST_Msk

//  Bit definition for RCC_AHB2RSTR register
#define RCC_AHB2RSTR_OTGFSRST_Pos		(7U)
#define RCC_AHB2RSTR_OTGFSRST_Msk		(0x1U << RCC_AHB2RSTR_OTGFSRST_Pos)	//  0x00000080
#define RCC_AHB2RSTR_OTGFSRST		RCC_AHB2RSTR_OTGFSRST_Msk
//  Bit definition for RCC_AHB3RSTR register


//  Bit definition for RCC_APB1RSTR register
#define RCC_APB1RSTR_TIM2RST_Pos		(0U)
#define RCC_APB1RSTR_TIM2RST_Msk		(0x1U << RCC_APB1RSTR_TIM2RST_Pos)	//  0x00000001
#define RCC_APB1RSTR_TIM2RST		RCC_APB1RSTR_TIM2RST_Msk
#define RCC_APB1RSTR_TIM3RST_Pos		(1U)
#define RCC_APB1RSTR_TIM3RST_Msk		(0x1U << RCC_APB1RSTR_TIM3RST_Pos)	//  0x00000002
#define RCC_APB1RSTR_TIM3RST		RCC_APB1RSTR_TIM3RST_Msk
#define RCC_APB1RSTR_TIM4RST_Pos		(2U)
#define RCC_APB1RSTR_TIM4RST_Msk		(0x1U << RCC_APB1RSTR_TIM4RST_Pos)	//  0x00000004
#define RCC_APB1RSTR_TIM4RST		RCC_APB1RSTR_TIM4RST_Msk
#define RCC_APB1RSTR_TIM5RST_Pos		(3U)
#define RCC_APB1RSTR_TIM5RST_Msk		(0x1U << RCC_APB1RSTR_TIM5RST_Pos)	//  0x00000008
#define RCC_APB1RSTR_TIM5RST		RCC_APB1RSTR_TIM5RST_Msk
#define RCC_APB1RSTR_WWDGRST_Pos		(11U)
#define RCC_APB1RSTR_WWDGRST_Msk		(0x1U << RCC_APB1RSTR_WWDGRST_Pos)	//  0x00000800
#define RCC_APB1RSTR_WWDGRST		RCC_APB1RSTR_WWDGRST_Msk
#define RCC_APB1RSTR_SPI2RST_Pos		(14U)
#define RCC_APB1RSTR_SPI2RST_Msk		(0x1U << RCC_APB1RSTR_SPI2RST_Pos)	//  0x00004000
#define RCC_APB1RSTR_SPI2RST		RCC_APB1RSTR_SPI2RST_Msk
#define RCC_APB1RSTR_SPI3RST_Pos		(15U)
#define RCC_APB1RSTR_SPI3RST_Msk		(0x1U << RCC_APB1RSTR_SPI3RST_Pos)	//  0x00008000
#define RCC_APB1RSTR_SPI3RST		RCC_APB1RSTR_SPI3RST_Msk
#define RCC_APB1RSTR_USART2RST_Pos		(17U)
#define RCC_APB1RSTR_USART2RST_Msk		(0x1U << RCC_APB1RSTR_USART2RST_Pos)	//  0x00020000
#define RCC_APB1RSTR_USART2RST		RCC_APB1RSTR_USART2RST_Msk
#define RCC_APB1RSTR_I2C1RST_Pos		(21U)
#define RCC_APB1RSTR_I2C1RST_Msk		(0x1U << RCC_APB1RSTR_I2C1RST_Pos)	//  0x00200000
#define RCC_APB1RSTR_I2C1RST		RCC_APB1RSTR_I2C1RST_Msk
#define RCC_APB1RSTR_I2C2RST_Pos		(22U)
#define RCC_APB1RSTR_I2C2RST_Msk		(0x1U << RCC_APB1RSTR_I2C2RST_Pos)	//  0x00400000
#define RCC_APB1RSTR_I2C2RST		RCC_APB1RSTR_I2C2RST_Msk
#define RCC_APB1RSTR_I2C3RST_Pos		(23U)
#define RCC_APB1RSTR_I2C3RST_Msk		(0x1U << RCC_APB1RSTR_I2C3RST_Pos)	//  0x00800000
#define RCC_APB1RSTR_I2C3RST		RCC_APB1RSTR_I2C3RST_Msk
#define RCC_APB1RSTR_PWRRST_Pos		(28U)
#define RCC_APB1RSTR_PWRRST_Msk		(0x1U << RCC_APB1RSTR_PWRRST_Pos)	//  0x10000000
#define RCC_APB1RSTR_PWRRST			RCC_APB1RSTR_PWRRST_Msk

//  Bit definition for RCC_APB2RSTR register
#define RCC_APB2RSTR_TIM1RST_Pos		(0U)
#define RCC_APB2RSTR_TIM1RST_Msk		(0x1U << RCC_APB2RSTR_TIM1RST_Pos)	//  0x00000001
#define RCC_APB2RSTR_TIM1RST		RCC_APB2RSTR_TIM1RST_Msk
#define RCC_APB2RSTR_USART1RST_Pos		(4U)
#define RCC_APB2RSTR_USART1RST_Msk		(0x1U << RCC_APB2RSTR_USART1RST_Pos)	//  0x00000010
#define RCC_APB2RSTR_USART1RST		RCC_APB2RSTR_USART1RST_Msk
#define RCC_APB2RSTR_USART6RST_Pos		(5U)
#define RCC_APB2RSTR_USART6RST_Msk		(0x1U << RCC_APB2RSTR_USART6RST_Pos)	//  0x00000020
#define RCC_APB2RSTR_USART6RST		RCC_APB2RSTR_USART6RST_Msk
#define RCC_APB2RSTR_ADCRST_Pos		(8U)
#define RCC_APB2RSTR_ADCRST_Msk		(0x1U << RCC_APB2RSTR_ADCRST_Pos)	//  0x00000100
#define RCC_APB2RSTR_ADCRST			RCC_APB2RSTR_ADCRST_Msk
#define RCC_APB2RSTR_SDIORST_Pos		(11U)
#define RCC_APB2RSTR_SDIORST_Msk		(0x1U << RCC_APB2RSTR_SDIORST_Pos)	//  0x00000800
#define RCC_APB2RSTR_SDIORST		RCC_APB2RSTR_SDIORST_Msk
#define RCC_APB2RSTR_SPI1RST_Pos		(12U)
#define RCC_APB2RSTR_SPI1RST_Msk		(0x1U << RCC_APB2RSTR_SPI1RST_Pos)	//  0x00001000
#define RCC_APB2RSTR_SPI1RST		RCC_APB2RSTR_SPI1RST_Msk
#define RCC_APB2RSTR_SPI4RST_Pos		(13U)
#define RCC_APB2RSTR_SPI4RST_Msk		(0x1U << RCC_APB2RSTR_SPI4RST_Pos)	//  0x00002000
#define RCC_APB2RSTR_SPI4RST		RCC_APB2RSTR_SPI4RST_Msk
#define RCC_APB2RSTR_SYSCFGRST_Pos		(14U)
#define RCC_APB2RSTR_SYSCFGRST_Msk		(0x1U << RCC_APB2RSTR_SYSCFGRST_Pos)	//  0x00004000
#define RCC_APB2RSTR_SYSCFGRST		RCC_APB2RSTR_SYSCFGRST_Msk
#define RCC_APB2RSTR_TIM9RST_Pos		(16U)
#define RCC_APB2RSTR_TIM9RST_Msk		(0x1U << RCC_APB2RSTR_TIM9RST_Pos)	//  0x00010000
#define RCC_APB2RSTR_TIM9RST		RCC_APB2RSTR_TIM9RST_Msk
#define RCC_APB2RSTR_TIM10RST_Pos		(17U)
#define RCC_APB2RSTR_TIM10RST_Msk		(0x1U << RCC_APB2RSTR_TIM10RST_Pos)	//  0x00020000
#define RCC_APB2RSTR_TIM10RST		RCC_APB2RSTR_TIM10RST_Msk
#define RCC_APB2RSTR_TIM11RST_Pos		(18U)
#define RCC_APB2RSTR_TIM11RST_Msk		(0x1U << RCC_APB2RSTR_TIM11RST_Pos)	//  0x00040000
#define RCC_APB2RSTR_TIM11RST		RCC_APB2RSTR_TIM11RST_Msk

// Old SPI1RST bit definition, maintained for legacy purpose
#define  RCC_APB2RSTR_SPI1			RCC_APB2RSTR_SPI1RST

//  Bit definition for RCC_AHB1ENR register
#define RCC_AHB1ENR_GPIOAEN_Pos		(0U)
#define RCC_AHB1ENR_GPIOAEN_Msk		(0x1U << RCC_AHB1ENR_GPIOAEN_Pos)	//  0x00000001
#define RCC_AHB1ENR_GPIOAEN			RCC_AHB1ENR_GPIOAEN_Msk
#define RCC_AHB1ENR_GPIOBEN_Pos		(1U)
#define RCC_AHB1ENR_GPIOBEN_Msk		(0x1U << RCC_AHB1ENR_GPIOBEN_Pos)	//  0x00000002
#define RCC_AHB1ENR_GPIOBEN			RCC_AHB1ENR_GPIOBEN_Msk
#define RCC_AHB1ENR_GPIOCEN_Pos		(2U)
#define RCC_AHB1ENR_GPIOCEN_Msk		(0x1U << RCC_AHB1ENR_GPIOCEN_Pos)	//  0x00000004
#define RCC_AHB1ENR_GPIOCEN			RCC_AHB1ENR_GPIOCEN_Msk
#define RCC_AHB1ENR_GPIODEN_Pos		(3U)
#define RCC_AHB1ENR_GPIODEN_Msk		(0x1U << RCC_AHB1ENR_GPIODEN_Pos)	//  0x00000008
#define RCC_AHB1ENR_GPIODEN			RCC_AHB1ENR_GPIODEN_Msk
#define RCC_AHB1ENR_GPIOEEN_Pos		(4U)
#define RCC_AHB1ENR_GPIOEEN_Msk		(0x1U << RCC_AHB1ENR_GPIOEEN_Pos)	//  0x00000010
#define RCC_AHB1ENR_GPIOEEN			RCC_AHB1ENR_GPIOEEN_Msk
#define RCC_AHB1ENR_GPIOHEN_Pos		(7U)
#define RCC_AHB1ENR_GPIOHEN_Msk		(0x1U << RCC_AHB1ENR_GPIOHEN_Pos)	//  0x00000080
#define RCC_AHB1ENR_GPIOHEN			RCC_AHB1ENR_GPIOHEN_Msk
#define RCC_AHB1ENR_CRCEN_Pos		(12U)
#define RCC_AHB1ENR_CRCEN_Msk		(0x1U << RCC_AHB1ENR_CRCEN_Pos)	//  0x00001000
#define RCC_AHB1ENR_CRCEN			RCC_AHB1ENR_CRCEN_Msk
#define RCC_AHB1ENR_BKPSRAMEN_Pos		(18U)
#define RCC_AHB1ENR_BKPSRAMEN_Msk		(0x1U << RCC_AHB1ENR_BKPSRAMEN_Pos)	//  0x00040000
#define RCC_AHB1ENR_BKPSRAMEN		RCC_AHB1ENR_BKPSRAMEN_Msk
#define RCC_AHB1ENR_DMA1EN_Pos		(21U)
#define RCC_AHB1ENR_DMA1EN_Msk		(0x1U << RCC_AHB1ENR_DMA1EN_Pos)	//  0x00200000
#define RCC_AHB1ENR_DMA1EN			RCC_AHB1ENR_DMA1EN_Msk
#define RCC_AHB1ENR_DMA2EN_Pos		(22U)
#define RCC_AHB1ENR_DMA2EN_Msk		(0x1U << RCC_AHB1ENR_DMA2EN_Pos)	//  0x00400000
#define RCC_AHB1ENR_DMA2EN			RCC_AHB1ENR_DMA2EN_Msk
//  Bit definition for RCC_AHB2ENR register
#define RCC_AHB2ENR_OTGFSEN_Pos		(7U)
#define RCC_AHB2ENR_OTGFSEN_Msk		(0x1U << RCC_AHB2ENR_OTGFSEN_Pos)	//  0x00000080
#define RCC_AHB2ENR_OTGFSEN			RCC_AHB2ENR_OTGFSEN_Msk

//  Bit definition for RCC_AHB3ENR register

//  Bit definition for RCC_APB1ENR register
#define RCC_APB1ENR_TIM2EN_Pos		(0U)
#define RCC_APB1ENR_TIM2EN_Msk		(0x1U << RCC_APB1ENR_TIM2EN_Pos)	//  0x00000001
#define RCC_APB1ENR_TIM2EN			RCC_APB1ENR_TIM2EN_Msk
#define RCC_APB1ENR_TIM3EN_Pos		(1U)
#define RCC_APB1ENR_TIM3EN_Msk		(0x1U << RCC_APB1ENR_TIM3EN_Pos)	//  0x00000002
#define RCC_APB1ENR_TIM3EN			RCC_APB1ENR_TIM3EN_Msk
#define RCC_APB1ENR_TIM4EN_Pos		(2U)
#define RCC_APB1ENR_TIM4EN_Msk		(0x1U << RCC_APB1ENR_TIM4EN_Pos)	//  0x00000004
#define RCC_APB1ENR_TIM4EN			RCC_APB1ENR_TIM4EN_Msk
#define RCC_APB1ENR_TIM5EN_Pos		(3U)
#define RCC_APB1ENR_TIM5EN_Msk		(0x1U << RCC_APB1ENR_TIM5EN_Pos)	//  0x00000008
#define RCC_APB1ENR_TIM5EN			RCC_APB1ENR_TIM5EN_Msk
#define RCC_APB1ENR_WWDGEN_Pos		(11U)
#define RCC_APB1ENR_WWDGEN_Msk		(0x1U << RCC_APB1ENR_WWDGEN_Pos)	//  0x00000800
#define RCC_APB1ENR_WWDGEN			RCC_APB1ENR_WWDGEN_Msk
#define RCC_APB1ENR_SPI2EN_Pos		(14U)
#define RCC_APB1ENR_SPI2EN_Msk		(0x1U << RCC_APB1ENR_SPI2EN_Pos)	//  0x00004000
#define RCC_APB1ENR_SPI2EN			RCC_APB1ENR_SPI2EN_Msk
#define RCC_APB1ENR_SPI3EN_Pos		(15U)
#define RCC_APB1ENR_SPI3EN_Msk		(0x1U << RCC_APB1ENR_SPI3EN_Pos)	//  0x00008000
#define RCC_APB1ENR_SPI3EN			RCC_APB1ENR_SPI3EN_Msk
#define RCC_APB1ENR_USART2EN_Pos		(17U)
#define RCC_APB1ENR_USART2EN_Msk		(0x1U << RCC_APB1ENR_USART2EN_Pos)	//  0x00020000
#define RCC_APB1ENR_USART2EN		RCC_APB1ENR_USART2EN_Msk
#define RCC_APB1ENR_I2C1EN_Pos		(21U)
#define RCC_APB1ENR_I2C1EN_Msk		(0x1U << RCC_APB1ENR_I2C1EN_Pos)	//  0x00200000
#define RCC_APB1ENR_I2C1EN			RCC_APB1ENR_I2C1EN_Msk
#define RCC_APB1ENR_I2C2EN_Pos		(22U)
#define RCC_APB1ENR_I2C2EN_Msk		(0x1U << RCC_APB1ENR_I2C2EN_Pos)	//  0x00400000
#define RCC_APB1ENR_I2C2EN			RCC_APB1ENR_I2C2EN_Msk
#define RCC_APB1ENR_I2C3EN_Pos		(23U)
#define RCC_APB1ENR_I2C3EN_Msk		(0x1U << RCC_APB1ENR_I2C3EN_Pos)	//  0x00800000
#define RCC_APB1ENR_I2C3EN			RCC_APB1ENR_I2C3EN_Msk
#define RCC_APB1ENR_PWREN_Pos		(28U)
#define RCC_APB1ENR_PWREN_Msk		(0x1U << RCC_APB1ENR_PWREN_Pos)	//  0x10000000
#define RCC_APB1ENR_PWREN			RCC_APB1ENR_PWREN_Msk

//  Bit definition for RCC_APB2ENR register
#define RCC_APB2ENR_TIM1EN_Pos		(0U)
#define RCC_APB2ENR_TIM1EN_Msk		(0x1U << RCC_APB2ENR_TIM1EN_Pos)	//  0x00000001
#define RCC_APB2ENR_TIM1EN			RCC_APB2ENR_TIM1EN_Msk
#define RCC_APB2ENR_USART1EN_Pos		(4U)
#define RCC_APB2ENR_USART1EN_Msk		(0x1U << RCC_APB2ENR_USART1EN_Pos)	//  0x00000010
#define RCC_APB2ENR_USART1EN		RCC_APB2ENR_USART1EN_Msk
#define RCC_APB2ENR_USART6EN_Pos		(5U)
#define RCC_APB2ENR_USART6EN_Msk		(0x1U << RCC_APB2ENR_USART6EN_Pos)	//  0x00000020
#define RCC_APB2ENR_USART6EN		RCC_APB2ENR_USART6EN_Msk
#define RCC_APB2ENR_ADC1EN_Pos		(8U)
#define RCC_APB2ENR_ADC1EN_Msk		(0x1U << RCC_APB2ENR_ADC1EN_Pos)	//  0x00000100
#define RCC_APB2ENR_ADC1EN			RCC_APB2ENR_ADC1EN_Msk
#define RCC_APB2ENR_SDIOEN_Pos		(11U)
#define RCC_APB2ENR_SDIOEN_Msk		(0x1U << RCC_APB2ENR_SDIOEN_Pos)	//  0x00000800
#define RCC_APB2ENR_SDIOEN			RCC_APB2ENR_SDIOEN_Msk
#define RCC_APB2ENR_SPI1EN_Pos		(12U)
#define RCC_APB2ENR_SPI1EN_Msk		(0x1U << RCC_APB2ENR_SPI1EN_Pos)	//  0x00001000
#define RCC_APB2ENR_SPI1EN			RCC_APB2ENR_SPI1EN_Msk
#define RCC_APB2ENR_SPI4EN_Pos		(13U)
#define RCC_APB2ENR_SPI4EN_Msk		(0x1U << RCC_APB2ENR_SPI4EN_Pos)	//  0x00002000
#define RCC_APB2ENR_SPI4EN			RCC_APB2ENR_SPI4EN_Msk
#define RCC_APB2ENR_SYSCFGEN_Pos		(14U)
#define RCC_APB2ENR_SYSCFGEN_Msk		(0x1U << RCC_APB2ENR_SYSCFGEN_Pos)	//  0x00004000
#define RCC_APB2ENR_SYSCFGEN		RCC_APB2ENR_SYSCFGEN_Msk
#define RCC_APB2ENR_TIM9EN_Pos		(16U)
#define RCC_APB2ENR_TIM9EN_Msk		(0x1U << RCC_APB2ENR_TIM9EN_Pos)	//  0x00010000
#define RCC_APB2ENR_TIM9EN			RCC_APB2ENR_TIM9EN_Msk
#define RCC_APB2ENR_TIM10EN_Pos		(17U)
#define RCC_APB2ENR_TIM10EN_Msk		(0x1U << RCC_APB2ENR_TIM10EN_Pos)	//  0x00020000
#define RCC_APB2ENR_TIM10EN			RCC_APB2ENR_TIM10EN_Msk
#define RCC_APB2ENR_TIM11EN_Pos		(18U)
#define RCC_APB2ENR_TIM11EN_Msk		(0x1U << RCC_APB2ENR_TIM11EN_Pos)	//  0x00040000
#define RCC_APB2ENR_TIM11EN			RCC_APB2ENR_TIM11EN_Msk

//  Bit definition for RCC_AHB1LPENR register
#define RCC_AHB1LPENR_GPIOALPEN_Pos		(0U)
#define RCC_AHB1LPENR_GPIOALPEN_Msk		(0x1U << RCC_AHB1LPENR_GPIOALPEN_Pos)	//  0x00000001
#define RCC_AHB1LPENR_GPIOALPEN		RCC_AHB1LPENR_GPIOALPEN_Msk
#define RCC_AHB1LPENR_GPIOBLPEN_Pos		(1U)
#define RCC_AHB1LPENR_GPIOBLPEN_Msk		(0x1U << RCC_AHB1LPENR_GPIOBLPEN_Pos)	//  0x00000002
#define RCC_AHB1LPENR_GPIOBLPEN		RCC_AHB1LPENR_GPIOBLPEN_Msk
#define RCC_AHB1LPENR_GPIOCLPEN_Pos		(2U)
#define RCC_AHB1LPENR_GPIOCLPEN_Msk		(0x1U << RCC_AHB1LPENR_GPIOCLPEN_Pos)	//  0x00000004
#define RCC_AHB1LPENR_GPIOCLPEN		RCC_AHB1LPENR_GPIOCLPEN_Msk
#define RCC_AHB1LPENR_GPIODLPEN_Pos		(3U)
#define RCC_AHB1LPENR_GPIODLPEN_Msk		(0x1U << RCC_AHB1LPENR_GPIODLPEN_Pos)	//  0x00000008
#define RCC_AHB1LPENR_GPIODLPEN		RCC_AHB1LPENR_GPIODLPEN_Msk
#define RCC_AHB1LPENR_GPIOELPEN_Pos		(4U)
#define RCC_AHB1LPENR_GPIOELPEN_Msk		(0x1U << RCC_AHB1LPENR_GPIOELPEN_Pos)	//  0x00000010
#define RCC_AHB1LPENR_GPIOELPEN		RCC_AHB1LPENR_GPIOELPEN_Msk
#define RCC_AHB1LPENR_GPIOHLPEN_Pos		(7U)
#define RCC_AHB1LPENR_GPIOHLPEN_Msk		(0x1U << RCC_AHB1LPENR_GPIOHLPEN_Pos)	//  0x00000080
#define RCC_AHB1LPENR_GPIOHLPEN		RCC_AHB1LPENR_GPIOHLPEN_Msk
#define RCC_AHB1LPENR_CRCLPEN_Pos		(12U)
#define RCC_AHB1LPENR_CRCLPEN_Msk		(0x1U << RCC_AHB1LPENR_CRCLPEN_Pos)	//  0x00001000
#define RCC_AHB1LPENR_CRCLPEN		RCC_AHB1LPENR_CRCLPEN_Msk
#define RCC_AHB1LPENR_FLITFLPEN_Pos		(15U)
#define RCC_AHB1LPENR_FLITFLPEN_Msk		(0x1U << RCC_AHB1LPENR_FLITFLPEN_Pos)	//  0x00008000
#define RCC_AHB1LPENR_FLITFLPEN		RCC_AHB1LPENR_FLITFLPEN_Msk
#define RCC_AHB1LPENR_SRAM1LPEN_Pos		(16U)
#define RCC_AHB1LPENR_SRAM1LPEN_Msk		(0x1U << RCC_AHB1LPENR_SRAM1LPEN_Pos)	//  0x00010000
#define RCC_AHB1LPENR_SRAM1LPEN		RCC_AHB1LPENR_SRAM1LPEN_Msk
#define RCC_AHB1LPENR_SRAM2LPEN_Pos		(17U)
#define RCC_AHB1LPENR_SRAM2LPEN_Msk		(0x1U << RCC_AHB1LPENR_SRAM2LPEN_Pos)	//  0x00020000
#define RCC_AHB1LPENR_SRAM2LPEN		RCC_AHB1LPENR_SRAM2LPEN_Msk
#define RCC_AHB1LPENR_BKPSRAMLPEN_Pos	(18U)
#define RCC_AHB1LPENR_BKPSRAMLPEN_Msk	(0x1U << RCC_AHB1LPENR_BKPSRAMLPEN_Pos)	//  0x00040000
#define RCC_AHB1LPENR_BKPSRAMLPEN		RCC_AHB1LPENR_BKPSRAMLPEN_Msk
#define RCC_AHB1LPENR_DMA1LPEN_Pos		(21U)
#define RCC_AHB1LPENR_DMA1LPEN_Msk		(0x1U << RCC_AHB1LPENR_DMA1LPEN_Pos)	//  0x00200000
#define RCC_AHB1LPENR_DMA1LPEN		RCC_AHB1LPENR_DMA1LPEN_Msk
#define RCC_AHB1LPENR_DMA2LPEN_Pos		(22U)
#define RCC_AHB1LPENR_DMA2LPEN_Msk		(0x1U << RCC_AHB1LPENR_DMA2LPEN_Pos)	//  0x00400000
#define RCC_AHB1LPENR_DMA2LPEN		RCC_AHB1LPENR_DMA2LPEN_Msk


//  Bit definition for RCC_AHB2LPENR register
#define RCC_AHB2LPENR_OTGFSLPEN_Pos		(7U)
#define RCC_AHB2LPENR_OTGFSLPEN_Msk		(0x1U << RCC_AHB2LPENR_OTGFSLPEN_Pos)	//  0x00000080
#define RCC_AHB2LPENR_OTGFSLPEN		RCC_AHB2LPENR_OTGFSLPEN_Msk

//  Bit definition for RCC_AHB3LPENR register

//  Bit definition for RCC_APB1LPENR register
#define RCC_APB1LPENR_TIM2LPEN_Pos		(0U)
#define RCC_APB1LPENR_TIM2LPEN_Msk		(0x1U << RCC_APB1LPENR_TIM2LPEN_Pos)	//  0x00000001
#define RCC_APB1LPENR_TIM2LPEN		RCC_APB1LPENR_TIM2LPEN_Msk
#define RCC_APB1LPENR_TIM3LPEN_Pos		(1U)
#define RCC_APB1LPENR_TIM3LPEN_Msk		(0x1U << RCC_APB1LPENR_TIM3LPEN_Pos)	//  0x00000002
#define RCC_APB1LPENR_TIM3LPEN		RCC_APB1LPENR_TIM3LPEN_Msk
#define RCC_APB1LPENR_TIM4LPEN_Pos		(2U)
#define RCC_APB1LPENR_TIM4LPEN_Msk		(0x1U << RCC_APB1LPENR_TIM4LPEN_Pos)	//  0x00000004
#define RCC_APB1LPENR_TIM4LPEN		RCC_APB1LPENR_TIM4LPEN_Msk
#define RCC_APB1LPENR_TIM5LPEN_Pos		(3U)
#define RCC_APB1LPENR_TIM5LPEN_Msk		(0x1U << RCC_APB1LPENR_TIM5LPEN_Pos)	//  0x00000008
#define RCC_APB1LPENR_TIM5LPEN		RCC_APB1LPENR_TIM5LPEN_Msk
#define RCC_APB1LPENR_WWDGLPEN_Pos		(11U)
#define RCC_APB1LPENR_WWDGLPEN_Msk		(0x1U << RCC_APB1LPENR_WWDGLPEN_Pos)	//  0x00000800
#define RCC_APB1LPENR_WWDGLPEN		RCC_APB1LPENR_WWDGLPEN_Msk
#define RCC_APB1LPENR_SPI2LPEN_Pos		(14U)
#define RCC_APB1LPENR_SPI2LPEN_Msk		(0x1U << RCC_APB1LPENR_SPI2LPEN_Pos)	//  0x00004000
#define RCC_APB1LPENR_SPI2LPEN		RCC_APB1LPENR_SPI2LPEN_Msk
#define RCC_APB1LPENR_SPI3LPEN_Pos		(15U)
#define RCC_APB1LPENR_SPI3LPEN_Msk		(0x1U << RCC_APB1LPENR_SPI3LPEN_Pos)	//  0x00008000
#define RCC_APB1LPENR_SPI3LPEN		RCC_APB1LPENR_SPI3LPEN_Msk
#define RCC_APB1LPENR_USART2LPEN_Pos	(17U)
#define RCC_APB1LPENR_USART2LPEN_Msk	(0x1U << RCC_APB1LPENR_USART2LPEN_Pos)	//  0x00020000
#define RCC_APB1LPENR_USART2LPEN		RCC_APB1LPENR_USART2LPEN_Msk
#define RCC_APB1LPENR_I2C1LPEN_Pos		(21U)
#define RCC_APB1LPENR_I2C1LPEN_Msk		(0x1U << RCC_APB1LPENR_I2C1LPEN_Pos)	//  0x00200000
#define RCC_APB1LPENR_I2C1LPEN		RCC_APB1LPENR_I2C1LPEN_Msk
#define RCC_APB1LPENR_I2C2LPEN_Pos		(22U)
#define RCC_APB1LPENR_I2C2LPEN_Msk		(0x1U << RCC_APB1LPENR_I2C2LPEN_Pos)	//  0x00400000
#define RCC_APB1LPENR_I2C2LPEN		RCC_APB1LPENR_I2C2LPEN_Msk
#define RCC_APB1LPENR_I2C3LPEN_Pos		(23U)
#define RCC_APB1LPENR_I2C3LPEN_Msk		(0x1U << RCC_APB1LPENR_I2C3LPEN_Pos)	//  0x00800000
#define RCC_APB1LPENR_I2C3LPEN		RCC_APB1LPENR_I2C3LPEN_Msk
#define RCC_APB1LPENR_PWRLPEN_Pos		(28U)
#define RCC_APB1LPENR_PWRLPEN_Msk		(0x1U << RCC_APB1LPENR_PWRLPEN_Pos)	//  0x10000000
#define RCC_APB1LPENR_PWRLPEN		RCC_APB1LPENR_PWRLPEN_Msk
#define RCC_APB1LPENR_DACLPEN_Pos		(29U)
#define RCC_APB1LPENR_DACLPEN_Msk		(0x1U << RCC_APB1LPENR_DACLPEN_Pos)	//  0x20000000
#define RCC_APB1LPENR_DACLPEN		RCC_APB1LPENR_DACLPEN_Msk

//  Bit definition for RCC_APB2LPENR register
#define RCC_APB2LPENR_TIM1LPEN_Pos		(0U)
#define RCC_APB2LPENR_TIM1LPEN_Msk		(0x1U << RCC_APB2LPENR_TIM1LPEN_Pos)	//  0x00000001
#define RCC_APB2LPENR_TIM1LPEN		RCC_APB2LPENR_TIM1LPEN_Msk
#define RCC_APB2LPENR_USART1LPEN_Pos	(4U)
#define RCC_APB2LPENR_USART1LPEN_Msk	(0x1U << RCC_APB2LPENR_USART1LPEN_Pos)	//  0x00000010
#define RCC_APB2LPENR_USART1LPEN		RCC_APB2LPENR_USART1LPEN_Msk
#define RCC_APB2LPENR_USART6LPEN_Pos	(5U)
#define RCC_APB2LPENR_USART6LPEN_Msk	(0x1U << RCC_APB2LPENR_USART6LPEN_Pos)	//  0x00000020
#define RCC_APB2LPENR_USART6LPEN		RCC_APB2LPENR_USART6LPEN_Msk
#define RCC_APB2LPENR_ADC1LPEN_Pos		(8U)
#define RCC_APB2LPENR_ADC1LPEN_Msk		(0x1U << RCC_APB2LPENR_ADC1LPEN_Pos)	//  0x00000100
#define RCC_APB2LPENR_ADC1LPEN		RCC_APB2LPENR_ADC1LPEN_Msk
#define RCC_APB2LPENR_SDIOLPEN_Pos		(11U)
#define RCC_APB2LPENR_SDIOLPEN_Msk		(0x1U << RCC_APB2LPENR_SDIOLPEN_Pos)	//  0x00000800
#define RCC_APB2LPENR_SDIOLPEN		RCC_APB2LPENR_SDIOLPEN_Msk
#define RCC_APB2LPENR_SPI1LPEN_Pos		(12U)
#define RCC_APB2LPENR_SPI1LPEN_Msk		(0x1U << RCC_APB2LPENR_SPI1LPEN_Pos)	//  0x00001000
#define RCC_APB2LPENR_SPI1LPEN		RCC_APB2LPENR_SPI1LPEN_Msk
#define RCC_APB2LPENR_SPI4LPEN_Pos		(13U)
#define RCC_APB2LPENR_SPI4LPEN_Msk		(0x1U << RCC_APB2LPENR_SPI4LPEN_Pos)	//  0x00002000
#define RCC_APB2LPENR_SPI4LPEN		RCC_APB2LPENR_SPI4LPEN_Msk
#define RCC_APB2LPENR_SYSCFGLPEN_Pos	(14U)
#define RCC_APB2LPENR_SYSCFGLPEN_Msk	(0x1U << RCC_APB2LPENR_SYSCFGLPEN_Pos)	//  0x00004000
#define RCC_APB2LPENR_SYSCFGLPEN		RCC_APB2LPENR_SYSCFGLPEN_Msk
#define RCC_APB2LPENR_TIM9LPEN_Pos		(16U)
#define RCC_APB2LPENR_TIM9LPEN_Msk		(0x1U << RCC_APB2LPENR_TIM9LPEN_Pos)	//  0x00010000
#define RCC_APB2LPENR_TIM9LPEN		RCC_APB2LPENR_TIM9LPEN_Msk
#define RCC_APB2LPENR_TIM10LPEN_Pos		(17U)
#define RCC_APB2LPENR_TIM10LPEN_Msk		(0x1U << RCC_APB2LPENR_TIM10LPEN_Pos)	//  0x00020000
#define RCC_APB2LPENR_TIM10LPEN		RCC_APB2LPENR_TIM10LPEN_Msk
#define RCC_APB2LPENR_TIM11LPEN_Pos		(18U)
#define RCC_APB2LPENR_TIM11LPEN_Msk		(0x1U << RCC_APB2LPENR_TIM11LPEN_Pos)	//  0x00040000
#define RCC_APB2LPENR_TIM11LPEN		RCC_APB2LPENR_TIM11LPEN_Msk

//  Bit definition for RCC_BDCR register
#define RCC_BDCR_LSEON_Pos			(0U)
#define RCC_BDCR_LSEON_Msk			(0x1U << RCC_BDCR_LSEON_Pos)			// 0x00000001
#define RCC_BDCR_LSEON			RCC_BDCR_LSEON_Msk
#define RCC_BDCR_LSERDY_Pos			(1U)
#define RCC_BDCR_LSERDY_Msk			(0x1U << RCC_BDCR_LSERDY_Pos)	//  0x00000002
#define RCC_BDCR_LSERDY			RCC_BDCR_LSERDY_Msk
#define RCC_BDCR_LSEBYP_Pos			(2U)
#define RCC_BDCR_LSEBYP_Msk			(0x1U << RCC_BDCR_LSEBYP_Pos)	//  0x00000004
#define RCC_BDCR_LSEBYP			RCC_BDCR_LSEBYP_Msk

#define RCC_BDCR_RTCSEL_Pos			(8U)
#define RCC_BDCR_RTCSEL_Msk			(0x3U << RCC_BDCR_RTCSEL_Pos)	//  0x00000300
#define RCC_BDCR_RTCSEL			RCC_BDCR_RTCSEL_Msk
#define RCC_BDCR_RTCSEL_0			(0x1U << RCC_BDCR_RTCSEL_Pos)	//  0x00000100
#define RCC_BDCR_RTCSEL_1			(0x2U << RCC_BDCR_RTCSEL_Pos)	//  0x00000200

#define RCC_BDCR_RTCEN_Pos			(15U)
#define RCC_BDCR_RTCEN_Msk			(0x1U << RCC_BDCR_RTCEN_Pos)			// 0x00008000
#define RCC_BDCR_RTCEN			RCC_BDCR_RTCEN_Msk
#define RCC_BDCR_BDRST_Pos			(16U)
#define RCC_BDCR_BDRST_Msk			(0x1U << RCC_BDCR_BDRST_Pos)			// 0x00010000
#define RCC_BDCR_BDRST			RCC_BDCR_BDRST_Msk

//  Bit definition for RCC_CSR register
#define RCC_CSR_LSION_Pos			(0U)
#define RCC_CSR_LSION_Msk			(0x1U << RCC_CSR_LSION_Pos)			// 0x00000001
#define RCC_CSR_LSION			RCC_CSR_LSION_Msk
#define RCC_CSR_LSIRDY_Pos			(1U)
#define RCC_CSR_LSIRDY_Msk			(0x1U << RCC_CSR_LSIRDY_Pos)			// 0x00000002
#define RCC_CSR_LSIRDY			RCC_CSR_LSIRDY_Msk
#define RCC_CSR_RMVF_Pos			(24U)
#define RCC_CSR_RMVF_Msk			(0x1U << RCC_CSR_RMVF_Pos)			// 0x01000000
#define RCC_CSR_RMVF			RCC_CSR_RMVF_Msk
#define RCC_CSR_BORRSTF_Pos			(25U)
#define RCC_CSR_BORRSTF_Msk			(0x1U << RCC_CSR_BORRSTF_Pos)	//  0x02000000
#define RCC_CSR_BORRSTF			RCC_CSR_BORRSTF_Msk
#define RCC_CSR_PADRSTF_Pos			(26U)
#define RCC_CSR_PADRSTF_Msk			(0x1U << RCC_CSR_PADRSTF_Pos)	//  0x04000000
#define RCC_CSR_PADRSTF			RCC_CSR_PADRSTF_Msk
#define RCC_CSR_PORRSTF_Pos			(27U)
#define RCC_CSR_PORRSTF_Msk			(0x1U << RCC_CSR_PORRSTF_Pos)	//  0x08000000
#define RCC_CSR_PORRSTF			RCC_CSR_PORRSTF_Msk
#define RCC_CSR_SFTRSTF_Pos			(28U)
#define RCC_CSR_SFTRSTF_Msk			(0x1U << RCC_CSR_SFTRSTF_Pos)	//  0x10000000
#define RCC_CSR_SFTRSTF			RCC_CSR_SFTRSTF_Msk
#define RCC_CSR_WDGRSTF_Pos			(29U)
#define RCC_CSR_WDGRSTF_Msk			(0x1U << RCC_CSR_WDGRSTF_Pos)	//  0x20000000
#define RCC_CSR_WDGRSTF			RCC_CSR_WDGRSTF_Msk
#define RCC_CSR_WWDGRSTF_Pos		(30U)
#define RCC_CSR_WWDGRSTF_Msk		(0x1U << RCC_CSR_WWDGRSTF_Pos)	//  0x40000000
#define RCC_CSR_WWDGRSTF			RCC_CSR_WWDGRSTF_Msk
#define RCC_CSR_LPWRRSTF_Pos		(31U)
#define RCC_CSR_LPWRRSTF_Msk		(0x1U << RCC_CSR_LPWRRSTF_Pos)	//  0x80000000
#define RCC_CSR_LPWRRSTF			RCC_CSR_LPWRRSTF_Msk

//  Bit definition for RCC_SSCGR register
#define RCC_SSCGR_MODPER_Pos		(0U)
#define RCC_SSCGR_MODPER_Msk		(0x1FFFU << RCC_SSCGR_MODPER_Pos)	//  0x00001FFF
#define RCC_SSCGR_MODPER			RCC_SSCGR_MODPER_Msk
#define RCC_SSCGR_INCSTEP_Pos		(13U)
#define RCC_SSCGR_INCSTEP_Msk		(0x7FFFU << RCC_SSCGR_INCSTEP_Pos)	//  0x0FFFE000
#define RCC_SSCGR_INCSTEP			RCC_SSCGR_INCSTEP_Msk
#define RCC_SSCGR_SPREADSEL_Pos		(30U)
#define RCC_SSCGR_SPREADSEL_Msk		(0x1U << RCC_SSCGR_SPREADSEL_Pos)	//  0x40000000
#define RCC_SSCGR_SPREADSEL			RCC_SSCGR_SPREADSEL_Msk
#define RCC_SSCGR_SSCGEN_Pos		(31U)
#define RCC_SSCGR_SSCGEN_Msk		(0x1U << RCC_SSCGR_SSCGEN_Pos)	//  0x80000000
#define RCC_SSCGR_SSCGEN			RCC_SSCGR_SSCGEN_Msk

//  Bit definition for RCC_PLLI2SCFGR register
#define RCC_PLLI2SCFGR_PLLI2SN_Pos		(6U)
#define RCC_PLLI2SCFGR_PLLI2SN_Msk		(0x1FFU << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00007FC0
#define RCC_PLLI2SCFGR_PLLI2SN		RCC_PLLI2SCFGR_PLLI2SN_Msk
#define RCC_PLLI2SCFGR_PLLI2SN_0		(0x001U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00000040
#define RCC_PLLI2SCFGR_PLLI2SN_1		(0x002U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00000080
#define RCC_PLLI2SCFGR_PLLI2SN_2		(0x004U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00000100
#define RCC_PLLI2SCFGR_PLLI2SN_3		(0x008U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00000200
#define RCC_PLLI2SCFGR_PLLI2SN_4		(0x010U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00000400
#define RCC_PLLI2SCFGR_PLLI2SN_5		(0x020U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00000800
#define RCC_PLLI2SCFGR_PLLI2SN_6		(0x040U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00001000
#define RCC_PLLI2SCFGR_PLLI2SN_7		(0x080U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00002000
#define RCC_PLLI2SCFGR_PLLI2SN_8		(0x100U << RCC_PLLI2SCFGR_PLLI2SN_Pos)	//  0x00004000

#define RCC_PLLI2SCFGR_PLLI2SR_Pos		(28U)
#define RCC_PLLI2SCFGR_PLLI2SR_Msk		(0x7U << RCC_PLLI2SCFGR_PLLI2SR_Pos)	//  0x70000000
#define RCC_PLLI2SCFGR_PLLI2SR		RCC_PLLI2SCFGR_PLLI2SR_Msk
#define RCC_PLLI2SCFGR_PLLI2SR_0		(0x1U << RCC_PLLI2SCFGR_PLLI2SR_Pos)	//  0x10000000
#define RCC_PLLI2SCFGR_PLLI2SR_1		(0x2U << RCC_PLLI2SCFGR_PLLI2SR_Pos)	//  0x20000000
#define RCC_PLLI2SCFGR_PLLI2SR_2		(0x4U << RCC_PLLI2SCFGR_PLLI2SR_Pos)	//  0x40000000

//  Bit definition for RCC_DCKCFGR register
#define RCC_DCKCFGR_TIMPRE_Pos		(24U)
#define RCC_DCKCFGR_TIMPRE_Msk		(0x1U << RCC_DCKCFGR_TIMPRE_Pos)	//  0x01000000
#define RCC_DCKCFGR_TIMPRE			RCC_DCKCFGR_TIMPRE_Msk




// Real-Time Clock (RTC)


//  Bits definition for RTC_TR register
#define RTC_TR_PM_Pos			(22U)
#define RTC_TR_PM_Msk			(0x1U << RTC_TR_PM_Pos)			// 0x00400000
#define RTC_TR_PM			RTC_TR_PM_Msk
#define RTC_TR_HT_Pos			(20U)
#define RTC_TR_HT_Msk			(0x3U << RTC_TR_HT_Pos)			// 0x00300000
#define RTC_TR_HT			RTC_TR_HT_Msk
#define RTC_TR_HT_0			(0x1U << RTC_TR_HT_Pos)			// 0x00100000
#define RTC_TR_HT_1			(0x2U << RTC_TR_HT_Pos)			// 0x00200000
#define RTC_TR_HU_Pos			(16U)
#define RTC_TR_HU_Msk			(0xFU << RTC_TR_HU_Pos)			// 0x000F0000
#define RTC_TR_HU			RTC_TR_HU_Msk
#define RTC_TR_HU_0			(0x1U << RTC_TR_HU_Pos)			// 0x00010000
#define RTC_TR_HU_1			(0x2U << RTC_TR_HU_Pos)			// 0x00020000
#define RTC_TR_HU_2			(0x4U << RTC_TR_HU_Pos)			// 0x00040000
#define RTC_TR_HU_3			(0x8U << RTC_TR_HU_Pos)			// 0x00080000
#define RTC_TR_MNT_Pos			(12U)
#define RTC_TR_MNT_Msk			(0x7U << RTC_TR_MNT_Pos)			// 0x00007000
#define RTC_TR_MNT			RTC_TR_MNT_Msk
#define RTC_TR_MNT_0			(0x1U << RTC_TR_MNT_Pos)			// 0x00001000
#define RTC_TR_MNT_1			(0x2U << RTC_TR_MNT_Pos)			// 0x00002000
#define RTC_TR_MNT_2			(0x4U << RTC_TR_MNT_Pos)			// 0x00004000
#define RTC_TR_MNU_Pos			(8U)
#define RTC_TR_MNU_Msk			(0xFU << RTC_TR_MNU_Pos)			// 0x00000F00
#define RTC_TR_MNU			RTC_TR_MNU_Msk
#define RTC_TR_MNU_0			(0x1U << RTC_TR_MNU_Pos)			// 0x00000100
#define RTC_TR_MNU_1			(0x2U << RTC_TR_MNU_Pos)			// 0x00000200
#define RTC_TR_MNU_2			(0x4U << RTC_TR_MNU_Pos)			// 0x00000400
#define RTC_TR_MNU_3			(0x8U << RTC_TR_MNU_Pos)			// 0x00000800
#define RTC_TR_ST_Pos			(4U)
#define RTC_TR_ST_Msk			(0x7U << RTC_TR_ST_Pos)			// 0x00000070
#define RTC_TR_ST			RTC_TR_ST_Msk
#define RTC_TR_ST_0			(0x1U << RTC_TR_ST_Pos)			// 0x00000010
#define RTC_TR_ST_1			(0x2U << RTC_TR_ST_Pos)			// 0x00000020
#define RTC_TR_ST_2			(0x4U << RTC_TR_ST_Pos)			// 0x00000040
#define RTC_TR_SU_Pos			(0U)
#define RTC_TR_SU_Msk			(0xFU << RTC_TR_SU_Pos)			// 0x0000000F
#define RTC_TR_SU			RTC_TR_SU_Msk
#define RTC_TR_SU_0			(0x1U << RTC_TR_SU_Pos)			// 0x00000001
#define RTC_TR_SU_1			(0x2U << RTC_TR_SU_Pos)			// 0x00000002
#define RTC_TR_SU_2			(0x4U << RTC_TR_SU_Pos)			// 0x00000004
#define RTC_TR_SU_3			(0x8U << RTC_TR_SU_Pos)			// 0x00000008

//  Bits definition for RTC_DR register
#define RTC_DR_YT_Pos			(20U)
#define RTC_DR_YT_Msk			(0xFU << RTC_DR_YT_Pos)			// 0x00F00000
#define RTC_DR_YT			RTC_DR_YT_Msk
#define RTC_DR_YT_0			(0x1U << RTC_DR_YT_Pos)			// 0x00100000
#define RTC_DR_YT_1			(0x2U << RTC_DR_YT_Pos)			// 0x00200000
#define RTC_DR_YT_2			(0x4U << RTC_DR_YT_Pos)			// 0x00400000
#define RTC_DR_YT_3			(0x8U << RTC_DR_YT_Pos)			// 0x00800000
#define RTC_DR_YU_Pos			(16U)
#define RTC_DR_YU_Msk			(0xFU << RTC_DR_YU_Pos)			// 0x000F0000
#define RTC_DR_YU			RTC_DR_YU_Msk
#define RTC_DR_YU_0			(0x1U << RTC_DR_YU_Pos)			// 0x00010000
#define RTC_DR_YU_1			(0x2U << RTC_DR_YU_Pos)			// 0x00020000
#define RTC_DR_YU_2			(0x4U << RTC_DR_YU_Pos)			// 0x00040000
#define RTC_DR_YU_3			(0x8U << RTC_DR_YU_Pos)			// 0x00080000
#define RTC_DR_WDU_Pos			(13U)
#define RTC_DR_WDU_Msk			(0x7U << RTC_DR_WDU_Pos)			// 0x0000E000
#define RTC_DR_WDU			RTC_DR_WDU_Msk
#define RTC_DR_WDU_0			(0x1U << RTC_DR_WDU_Pos)			// 0x00002000
#define RTC_DR_WDU_1			(0x2U << RTC_DR_WDU_Pos)			// 0x00004000
#define RTC_DR_WDU_2			(0x4U << RTC_DR_WDU_Pos)			// 0x00008000
#define RTC_DR_MT_Pos			(12U)
#define RTC_DR_MT_Msk			(0x1U << RTC_DR_MT_Pos)			// 0x00001000
#define RTC_DR_MT			RTC_DR_MT_Msk
#define RTC_DR_MU_Pos			(8U)
#define RTC_DR_MU_Msk			(0xFU << RTC_DR_MU_Pos)			// 0x00000F00
#define RTC_DR_MU			RTC_DR_MU_Msk
#define RTC_DR_MU_0			(0x1U << RTC_DR_MU_Pos)			// 0x00000100
#define RTC_DR_MU_1			(0x2U << RTC_DR_MU_Pos)			// 0x00000200
#define RTC_DR_MU_2			(0x4U << RTC_DR_MU_Pos)			// 0x00000400
#define RTC_DR_MU_3			(0x8U << RTC_DR_MU_Pos)			// 0x00000800
#define RTC_DR_DT_Pos			(4U)
#define RTC_DR_DT_Msk			(0x3U << RTC_DR_DT_Pos)			// 0x00000030
#define RTC_DR_DT			RTC_DR_DT_Msk
#define RTC_DR_DT_0			(0x1U << RTC_DR_DT_Pos)			// 0x00000010
#define RTC_DR_DT_1			(0x2U << RTC_DR_DT_Pos)			// 0x00000020
#define RTC_DR_DU_Pos			(0U)
#define RTC_DR_DU_Msk			(0xFU << RTC_DR_DU_Pos)			// 0x0000000F
#define RTC_DR_DU			RTC_DR_DU_Msk
#define RTC_DR_DU_0			(0x1U << RTC_DR_DU_Pos)			// 0x00000001
#define RTC_DR_DU_1			(0x2U << RTC_DR_DU_Pos)			// 0x00000002
#define RTC_DR_DU_2			(0x4U << RTC_DR_DU_Pos)			// 0x00000004
#define RTC_DR_DU_3			(0x8U << RTC_DR_DU_Pos)			// 0x00000008

//  Bits definition for RTC_CR register
#define RTC_CR_COE_Pos			(23U)
#define RTC_CR_COE_Msk			(0x1U << RTC_CR_COE_Pos)			// 0x00800000
#define RTC_CR_COE			RTC_CR_COE_Msk
#define RTC_CR_OSEL_Pos		(21U)
#define RTC_CR_OSEL_Msk		(0x3U << RTC_CR_OSEL_Pos)			// 0x00600000
#define RTC_CR_OSEL			RTC_CR_OSEL_Msk
#define RTC_CR_OSEL_0			(0x1U << RTC_CR_OSEL_Pos)			// 0x00200000
#define RTC_CR_OSEL_1			(0x2U << RTC_CR_OSEL_Pos)			// 0x00400000
#define RTC_CR_POL_Pos			(20U)
#define RTC_CR_POL_Msk			(0x1U << RTC_CR_POL_Pos)			// 0x00100000
#define RTC_CR_POL			RTC_CR_POL_Msk
#define RTC_CR_COSEL_Pos		(19U)
#define RTC_CR_COSEL_Msk		(0x1U << RTC_CR_COSEL_Pos)			// 0x00080000
#define RTC_CR_COSEL			RTC_CR_COSEL_Msk
#define RTC_CR_BCK_Pos			(18U)
#define RTC_CR_BCK_Msk			(0x1U << RTC_CR_BCK_Pos)			// 0x00040000
#define RTC_CR_BCK			RTC_CR_BCK_Msk
#define RTC_CR_SUB1H_Pos		(17U)
#define RTC_CR_SUB1H_Msk		(0x1U << RTC_CR_SUB1H_Pos)			// 0x00020000
#define RTC_CR_SUB1H			RTC_CR_SUB1H_Msk
#define RTC_CR_ADD1H_Pos		(16U)
#define RTC_CR_ADD1H_Msk		(0x1U << RTC_CR_ADD1H_Pos)			// 0x00010000
#define RTC_CR_ADD1H			RTC_CR_ADD1H_Msk
#define RTC_CR_TSIE_Pos		(15U)
#define RTC_CR_TSIE_Msk		(0x1U << RTC_CR_TSIE_Pos)			// 0x00008000
#define RTC_CR_TSIE			RTC_CR_TSIE_Msk
#define RTC_CR_WUTIE_Pos		(14U)
#define RTC_CR_WUTIE_Msk		(0x1U << RTC_CR_WUTIE_Pos)			// 0x00004000
#define RTC_CR_WUTIE			RTC_CR_WUTIE_Msk
#define RTC_CR_ALRBIE_Pos		(13U)
#define RTC_CR_ALRBIE_Msk		(0x1U << RTC_CR_ALRBIE_Pos)			// 0x00002000
#define RTC_CR_ALRBIE			RTC_CR_ALRBIE_Msk
#define RTC_CR_ALRAIE_Pos		(12U)
#define RTC_CR_ALRAIE_Msk		(0x1U << RTC_CR_ALRAIE_Pos)			// 0x00001000
#define RTC_CR_ALRAIE			RTC_CR_ALRAIE_Msk
#define RTC_CR_TSE_Pos			(11U)
#define RTC_CR_TSE_Msk			(0x1U << RTC_CR_TSE_Pos)			// 0x00000800
#define RTC_CR_TSE			RTC_CR_TSE_Msk
#define RTC_CR_WUTE_Pos		(10U)
#define RTC_CR_WUTE_Msk		(0x1U << RTC_CR_WUTE_Pos)			// 0x00000400
#define RTC_CR_WUTE			RTC_CR_WUTE_Msk
#define RTC_CR_ALRBE_Pos		(9U)
#define RTC_CR_ALRBE_Msk		(0x1U << RTC_CR_ALRBE_Pos)			// 0x00000200
#define RTC_CR_ALRBE			RTC_CR_ALRBE_Msk
#define RTC_CR_ALRAE_Pos		(8U)
#define RTC_CR_ALRAE_Msk		(0x1U << RTC_CR_ALRAE_Pos)			// 0x00000100
#define RTC_CR_ALRAE			RTC_CR_ALRAE_Msk
#define RTC_CR_DCE_Pos			(7U)
#define RTC_CR_DCE_Msk			(0x1U << RTC_CR_DCE_Pos)			// 0x00000080
#define RTC_CR_DCE			RTC_CR_DCE_Msk
#define RTC_CR_FMT_Pos			(6U)
#define RTC_CR_FMT_Msk			(0x1U << RTC_CR_FMT_Pos)			// 0x00000040
#define RTC_CR_FMT			RTC_CR_FMT_Msk
#define RTC_CR_BYPSHAD_Pos		(5U)
#define RTC_CR_BYPSHAD_Msk		(0x1U << RTC_CR_BYPSHAD_Pos)			// 0x00000020
#define RTC_CR_BYPSHAD			RTC_CR_BYPSHAD_Msk
#define RTC_CR_REFCKON_Pos		(4U)
#define RTC_CR_REFCKON_Msk		(0x1U << RTC_CR_REFCKON_Pos)			// 0x00000010
#define RTC_CR_REFCKON			RTC_CR_REFCKON_Msk
#define RTC_CR_TSEDGE_Pos		(3U)
#define RTC_CR_TSEDGE_Msk		(0x1U << RTC_CR_TSEDGE_Pos)			// 0x00000008
#define RTC_CR_TSEDGE			RTC_CR_TSEDGE_Msk
#define RTC_CR_WUCKSEL_Pos		(0U)
#define RTC_CR_WUCKSEL_Msk		(0x7U << RTC_CR_WUCKSEL_Pos)			// 0x00000007
#define RTC_CR_WUCKSEL			RTC_CR_WUCKSEL_Msk
#define RTC_CR_WUCKSEL_0		(0x1U << RTC_CR_WUCKSEL_Pos)			// 0x00000001
#define RTC_CR_WUCKSEL_1		(0x2U << RTC_CR_WUCKSEL_Pos)			// 0x00000002
#define RTC_CR_WUCKSEL_2		(0x4U << RTC_CR_WUCKSEL_Pos)			// 0x00000004

//  Bits definition for RTC_ISR register
#define RTC_ISR_RECALPF_Pos		(16U)
#define RTC_ISR_RECALPF_Msk		(0x1U << RTC_ISR_RECALPF_Pos)			// 0x00010000
#define RTC_ISR_RECALPF		RTC_ISR_RECALPF_Msk
#define RTC_ISR_TAMP1F_Pos		(13U)
#define RTC_ISR_TAMP1F_Msk		(0x1U << RTC_ISR_TAMP1F_Pos)			// 0x00002000
#define RTC_ISR_TAMP1F			RTC_ISR_TAMP1F_Msk
#define RTC_ISR_TAMP2F_Pos		(14U)
#define RTC_ISR_TAMP2F_Msk		(0x1U << RTC_ISR_TAMP2F_Pos)			// 0x00004000
#define RTC_ISR_TAMP2F			RTC_ISR_TAMP2F_Msk
#define RTC_ISR_TSOVF_Pos		(12U)
#define RTC_ISR_TSOVF_Msk		(0x1U << RTC_ISR_TSOVF_Pos)			// 0x00001000
#define RTC_ISR_TSOVF			RTC_ISR_TSOVF_Msk
#define RTC_ISR_TSF_Pos		(11U)
#define RTC_ISR_TSF_Msk		(0x1U << RTC_ISR_TSF_Pos)			// 0x00000800
#define RTC_ISR_TSF			RTC_ISR_TSF_Msk
#define RTC_ISR_WUTF_Pos		(10U)
#define RTC_ISR_WUTF_Msk		(0x1U << RTC_ISR_WUTF_Pos)			// 0x00000400
#define RTC_ISR_WUTF			RTC_ISR_WUTF_Msk
#define RTC_ISR_ALRBF_Pos		(9U)
#define RTC_ISR_ALRBF_Msk		(0x1U << RTC_ISR_ALRBF_Pos)			// 0x00000200
#define RTC_ISR_ALRBF			RTC_ISR_ALRBF_Msk
#define RTC_ISR_ALRAF_Pos		(8U)
#define RTC_ISR_ALRAF_Msk		(0x1U << RTC_ISR_ALRAF_Pos)			// 0x00000100
#define RTC_ISR_ALRAF			RTC_ISR_ALRAF_Msk
#define RTC_ISR_INIT_Pos		(7U)
#define RTC_ISR_INIT_Msk		(0x1U << RTC_ISR_INIT_Pos)			// 0x00000080
#define RTC_ISR_INIT			RTC_ISR_INIT_Msk
#define RTC_ISR_INITF_Pos		(6U)
#define RTC_ISR_INITF_Msk		(0x1U << RTC_ISR_INITF_Pos)			// 0x00000040
#define RTC_ISR_INITF			RTC_ISR_INITF_Msk
#define RTC_ISR_RSF_Pos		(5U)
#define RTC_ISR_RSF_Msk		(0x1U << RTC_ISR_RSF_Pos)			// 0x00000020
#define RTC_ISR_RSF			RTC_ISR_RSF_Msk
#define RTC_ISR_INITS_Pos		(4U)
#define RTC_ISR_INITS_Msk		(0x1U << RTC_ISR_INITS_Pos)			// 0x00000010
#define RTC_ISR_INITS			RTC_ISR_INITS_Msk
#define RTC_ISR_SHPF_Pos		(3U)
#define RTC_ISR_SHPF_Msk		(0x1U << RTC_ISR_SHPF_Pos)			// 0x00000008
#define RTC_ISR_SHPF			RTC_ISR_SHPF_Msk
#define RTC_ISR_WUTWF_Pos		(2U)
#define RTC_ISR_WUTWF_Msk		(0x1U << RTC_ISR_WUTWF_Pos)			// 0x00000004
#define RTC_ISR_WUTWF			RTC_ISR_WUTWF_Msk
#define RTC_ISR_ALRBWF_Pos		(1U)
#define RTC_ISR_ALRBWF_Msk		(0x1U << RTC_ISR_ALRBWF_Pos)			// 0x00000002
#define RTC_ISR_ALRBWF			RTC_ISR_ALRBWF_Msk
#define RTC_ISR_ALRAWF_Pos		(0U)
#define RTC_ISR_ALRAWF_Msk		(0x1U << RTC_ISR_ALRAWF_Pos)			// 0x00000001
#define RTC_ISR_ALRAWF			RTC_ISR_ALRAWF_Msk

//  Bits definition for RTC_PRER register
#define RTC_PRER_PREDIV_A_Pos		(16U)
#define RTC_PRER_PREDIV_A_Msk		(0x7FU << RTC_PRER_PREDIV_A_Pos)			// 0x007F0000
#define RTC_PRER_PREDIV_A		RTC_PRER_PREDIV_A_Msk
#define RTC_PRER_PREDIV_S_Pos		(0U)
#define RTC_PRER_PREDIV_S_Msk		(0x7FFFU << RTC_PRER_PREDIV_S_Pos)	//  0x00007FFF
#define RTC_PRER_PREDIV_S		RTC_PRER_PREDIV_S_Msk

//  Bits definition for RTC_WUTR register
#define RTC_WUTR_WUT_Pos		(0U)
#define RTC_WUTR_WUT_Msk		(0xFFFFU << RTC_WUTR_WUT_Pos)			// 0x0000FFFF
#define RTC_WUTR_WUT			RTC_WUTR_WUT_Msk

//  Bits definition for RTC_CALIBR register
#define RTC_CALIBR_DCS_Pos		(7U)
#define RTC_CALIBR_DCS_Msk		(0x1U << RTC_CALIBR_DCS_Pos)			// 0x00000080
#define RTC_CALIBR_DCS			RTC_CALIBR_DCS_Msk
#define RTC_CALIBR_DC_Pos		(0U)
#define RTC_CALIBR_DC_Msk		(0x1FU << RTC_CALIBR_DC_Pos)			// 0x0000001F
#define RTC_CALIBR_DC			RTC_CALIBR_DC_Msk

//  Bits definition for RTC_ALRMAR register
#define RTC_ALRMAR_MSK4_Pos		(31U)
#define RTC_ALRMAR_MSK4_Msk		(0x1U << RTC_ALRMAR_MSK4_Pos)			// 0x80000000
#define RTC_ALRMAR_MSK4		RTC_ALRMAR_MSK4_Msk
#define RTC_ALRMAR_WDSEL_Pos		(30U)
#define RTC_ALRMAR_WDSEL_Msk		(0x1U << RTC_ALRMAR_WDSEL_Pos)			// 0x40000000
#define RTC_ALRMAR_WDSEL		RTC_ALRMAR_WDSEL_Msk
#define RTC_ALRMAR_DT_Pos		(28U)
#define RTC_ALRMAR_DT_Msk		(0x3U << RTC_ALRMAR_DT_Pos)			// 0x30000000
#define RTC_ALRMAR_DT			RTC_ALRMAR_DT_Msk
#define RTC_ALRMAR_DT_0		(0x1U << RTC_ALRMAR_DT_Pos)			// 0x10000000
#define RTC_ALRMAR_DT_1		(0x2U << RTC_ALRMAR_DT_Pos)			// 0x20000000
#define RTC_ALRMAR_DU_Pos		(24U)
#define RTC_ALRMAR_DU_Msk		(0xFU << RTC_ALRMAR_DU_Pos)			// 0x0F000000
#define RTC_ALRMAR_DU			RTC_ALRMAR_DU_Msk
#define RTC_ALRMAR_DU_0		(0x1U << RTC_ALRMAR_DU_Pos)			// 0x01000000
#define RTC_ALRMAR_DU_1		(0x2U << RTC_ALRMAR_DU_Pos)			// 0x02000000
#define RTC_ALRMAR_DU_2		(0x4U << RTC_ALRMAR_DU_Pos)			// 0x04000000
#define RTC_ALRMAR_DU_3		(0x8U << RTC_ALRMAR_DU_Pos)			// 0x08000000
#define RTC_ALRMAR_MSK3_Pos		(23U)
#define RTC_ALRMAR_MSK3_Msk		(0x1U << RTC_ALRMAR_MSK3_Pos)			// 0x00800000
#define RTC_ALRMAR_MSK3		RTC_ALRMAR_MSK3_Msk
#define RTC_ALRMAR_PM_Pos		(22U)
#define RTC_ALRMAR_PM_Msk		(0x1U << RTC_ALRMAR_PM_Pos)			// 0x00400000
#define RTC_ALRMAR_PM			RTC_ALRMAR_PM_Msk
#define RTC_ALRMAR_HT_Pos		(20U)
#define RTC_ALRMAR_HT_Msk		(0x3U << RTC_ALRMAR_HT_Pos)			// 0x00300000
#define RTC_ALRMAR_HT			RTC_ALRMAR_HT_Msk
#define RTC_ALRMAR_HT_0		(0x1U << RTC_ALRMAR_HT_Pos)			// 0x00100000
#define RTC_ALRMAR_HT_1		(0x2U << RTC_ALRMAR_HT_Pos)			// 0x00200000
#define RTC_ALRMAR_HU_Pos		(16U)
#define RTC_ALRMAR_HU_Msk		(0xFU << RTC_ALRMAR_HU_Pos)			// 0x000F0000
#define RTC_ALRMAR_HU			RTC_ALRMAR_HU_Msk
#define RTC_ALRMAR_HU_0		(0x1U << RTC_ALRMAR_HU_Pos)			// 0x00010000
#define RTC_ALRMAR_HU_1		(0x2U << RTC_ALRMAR_HU_Pos)			// 0x00020000
#define RTC_ALRMAR_HU_2		(0x4U << RTC_ALRMAR_HU_Pos)			// 0x00040000
#define RTC_ALRMAR_HU_3		(0x8U << RTC_ALRMAR_HU_Pos)			// 0x00080000
#define RTC_ALRMAR_MSK2_Pos		(15U)
#define RTC_ALRMAR_MSK2_Msk		(0x1U << RTC_ALRMAR_MSK2_Pos)			// 0x00008000
#define RTC_ALRMAR_MSK2		RTC_ALRMAR_MSK2_Msk
#define RTC_ALRMAR_MNT_Pos		(12U)
#define RTC_ALRMAR_MNT_Msk		(0x7U << RTC_ALRMAR_MNT_Pos)			// 0x00007000
#define RTC_ALRMAR_MNT			RTC_ALRMAR_MNT_Msk
#define RTC_ALRMAR_MNT_0		(0x1U << RTC_ALRMAR_MNT_Pos)			// 0x00001000
#define RTC_ALRMAR_MNT_1		(0x2U << RTC_ALRMAR_MNT_Pos)			// 0x00002000
#define RTC_ALRMAR_MNT_2		(0x4U << RTC_ALRMAR_MNT_Pos)			// 0x00004000
#define RTC_ALRMAR_MNU_Pos		(8U)
#define RTC_ALRMAR_MNU_Msk		(0xFU << RTC_ALRMAR_MNU_Pos)			// 0x00000F00
#define RTC_ALRMAR_MNU			RTC_ALRMAR_MNU_Msk
#define RTC_ALRMAR_MNU_0		(0x1U << RTC_ALRMAR_MNU_Pos)			// 0x00000100
#define RTC_ALRMAR_MNU_1		(0x2U << RTC_ALRMAR_MNU_Pos)			// 0x00000200
#define RTC_ALRMAR_MNU_2		(0x4U << RTC_ALRMAR_MNU_Pos)			// 0x00000400
#define RTC_ALRMAR_MNU_3		(0x8U << RTC_ALRMAR_MNU_Pos)			// 0x00000800
#define RTC_ALRMAR_MSK1_Pos		(7U)
#define RTC_ALRMAR_MSK1_Msk		(0x1U << RTC_ALRMAR_MSK1_Pos)			// 0x00000080
#define RTC_ALRMAR_MSK1		RTC_ALRMAR_MSK1_Msk
#define RTC_ALRMAR_ST_Pos		(4U)
#define RTC_ALRMAR_ST_Msk		(0x7U << RTC_ALRMAR_ST_Pos)			// 0x00000070
#define RTC_ALRMAR_ST			RTC_ALRMAR_ST_Msk
#define RTC_ALRMAR_ST_0		(0x1U << RTC_ALRMAR_ST_Pos)			// 0x00000010
#define RTC_ALRMAR_ST_1		(0x2U << RTC_ALRMAR_ST_Pos)			// 0x00000020
#define RTC_ALRMAR_ST_2		(0x4U << RTC_ALRMAR_ST_Pos)			// 0x00000040
#define RTC_ALRMAR_SU_Pos		(0U)
#define RTC_ALRMAR_SU_Msk		(0xFU << RTC_ALRMAR_SU_Pos)			// 0x0000000F
#define RTC_ALRMAR_SU			RTC_ALRMAR_SU_Msk
#define RTC_ALRMAR_SU_0		(0x1U << RTC_ALRMAR_SU_Pos)			// 0x00000001
#define RTC_ALRMAR_SU_1		(0x2U << RTC_ALRMAR_SU_Pos)			// 0x00000002
#define RTC_ALRMAR_SU_2		(0x4U << RTC_ALRMAR_SU_Pos)			// 0x00000004
#define RTC_ALRMAR_SU_3		(0x8U << RTC_ALRMAR_SU_Pos)			// 0x00000008

//  Bits definition for RTC_ALRMBR register
#define RTC_ALRMBR_MSK4_Pos		(31U)
#define RTC_ALRMBR_MSK4_Msk		(0x1U << RTC_ALRMBR_MSK4_Pos)			// 0x80000000
#define RTC_ALRMBR_MSK4		RTC_ALRMBR_MSK4_Msk
#define RTC_ALRMBR_WDSEL_Pos		(30U)
#define RTC_ALRMBR_WDSEL_Msk		(0x1U << RTC_ALRMBR_WDSEL_Pos)			// 0x40000000
#define RTC_ALRMBR_WDSEL		RTC_ALRMBR_WDSEL_Msk
#define RTC_ALRMBR_DT_Pos		(28U)
#define RTC_ALRMBR_DT_Msk		(0x3U << RTC_ALRMBR_DT_Pos)			// 0x30000000
#define RTC_ALRMBR_DT			RTC_ALRMBR_DT_Msk
#define RTC_ALRMBR_DT_0		(0x1U << RTC_ALRMBR_DT_Pos)			// 0x10000000
#define RTC_ALRMBR_DT_1		(0x2U << RTC_ALRMBR_DT_Pos)			// 0x20000000
#define RTC_ALRMBR_DU_Pos		(24U)
#define RTC_ALRMBR_DU_Msk		(0xFU << RTC_ALRMBR_DU_Pos)			// 0x0F000000
#define RTC_ALRMBR_DU			RTC_ALRMBR_DU_Msk
#define RTC_ALRMBR_DU_0		(0x1U << RTC_ALRMBR_DU_Pos)			// 0x01000000
#define RTC_ALRMBR_DU_1		(0x2U << RTC_ALRMBR_DU_Pos)			// 0x02000000
#define RTC_ALRMBR_DU_2		(0x4U << RTC_ALRMBR_DU_Pos)			// 0x04000000
#define RTC_ALRMBR_DU_3		(0x8U << RTC_ALRMBR_DU_Pos)			// 0x08000000
#define RTC_ALRMBR_MSK3_Pos		(23U)
#define RTC_ALRMBR_MSK3_Msk		(0x1U << RTC_ALRMBR_MSK3_Pos)			// 0x00800000
#define RTC_ALRMBR_MSK3		RTC_ALRMBR_MSK3_Msk
#define RTC_ALRMBR_PM_Pos		(22U)
#define RTC_ALRMBR_PM_Msk		(0x1U << RTC_ALRMBR_PM_Pos)			// 0x00400000
#define RTC_ALRMBR_PM			RTC_ALRMBR_PM_Msk
#define RTC_ALRMBR_HT_Pos		(20U)
#define RTC_ALRMBR_HT_Msk		(0x3U << RTC_ALRMBR_HT_Pos)			// 0x00300000
#define RTC_ALRMBR_HT			RTC_ALRMBR_HT_Msk
#define RTC_ALRMBR_HT_0		(0x1U << RTC_ALRMBR_HT_Pos)			// 0x00100000
#define RTC_ALRMBR_HT_1		(0x2U << RTC_ALRMBR_HT_Pos)			// 0x00200000
#define RTC_ALRMBR_HU_Pos		(16U)
#define RTC_ALRMBR_HU_Msk		(0xFU << RTC_ALRMBR_HU_Pos)			// 0x000F0000
#define RTC_ALRMBR_HU			RTC_ALRMBR_HU_Msk
#define RTC_ALRMBR_HU_0		(0x1U << RTC_ALRMBR_HU_Pos)			// 0x00010000
#define RTC_ALRMBR_HU_1		(0x2U << RTC_ALRMBR_HU_Pos)			// 0x00020000
#define RTC_ALRMBR_HU_2		(0x4U << RTC_ALRMBR_HU_Pos)			// 0x00040000
#define RTC_ALRMBR_HU_3		(0x8U << RTC_ALRMBR_HU_Pos)			// 0x00080000
#define RTC_ALRMBR_MSK2_Pos		(15U)
#define RTC_ALRMBR_MSK2_Msk		(0x1U << RTC_ALRMBR_MSK2_Pos)			// 0x00008000
#define RTC_ALRMBR_MSK2		RTC_ALRMBR_MSK2_Msk
#define RTC_ALRMBR_MNT_Pos		(12U)
#define RTC_ALRMBR_MNT_Msk		(0x7U << RTC_ALRMBR_MNT_Pos)			// 0x00007000
#define RTC_ALRMBR_MNT			RTC_ALRMBR_MNT_Msk
#define RTC_ALRMBR_MNT_0		(0x1U << RTC_ALRMBR_MNT_Pos)			// 0x00001000
#define RTC_ALRMBR_MNT_1		(0x2U << RTC_ALRMBR_MNT_Pos)			// 0x00002000
#define RTC_ALRMBR_MNT_2		(0x4U << RTC_ALRMBR_MNT_Pos)			// 0x00004000
#define RTC_ALRMBR_MNU_Pos		(8U)
#define RTC_ALRMBR_MNU_Msk		(0xFU << RTC_ALRMBR_MNU_Pos)			// 0x00000F00
#define RTC_ALRMBR_MNU			RTC_ALRMBR_MNU_Msk
#define RTC_ALRMBR_MNU_0		(0x1U << RTC_ALRMBR_MNU_Pos)			// 0x00000100
#define RTC_ALRMBR_MNU_1		(0x2U << RTC_ALRMBR_MNU_Pos)			// 0x00000200
#define RTC_ALRMBR_MNU_2		(0x4U << RTC_ALRMBR_MNU_Pos)			// 0x00000400
#define RTC_ALRMBR_MNU_3		(0x8U << RTC_ALRMBR_MNU_Pos)			// 0x00000800
#define RTC_ALRMBR_MSK1_Pos		(7U)
#define RTC_ALRMBR_MSK1_Msk		(0x1U << RTC_ALRMBR_MSK1_Pos)			// 0x00000080
#define RTC_ALRMBR_MSK1		RTC_ALRMBR_MSK1_Msk
#define RTC_ALRMBR_ST_Pos		(4U)
#define RTC_ALRMBR_ST_Msk		(0x7U << RTC_ALRMBR_ST_Pos)			// 0x00000070
#define RTC_ALRMBR_ST			RTC_ALRMBR_ST_Msk
#define RTC_ALRMBR_ST_0		(0x1U << RTC_ALRMBR_ST_Pos)			// 0x00000010
#define RTC_ALRMBR_ST_1		(0x2U << RTC_ALRMBR_ST_Pos)			// 0x00000020
#define RTC_ALRMBR_ST_2		(0x4U << RTC_ALRMBR_ST_Pos)			// 0x00000040
#define RTC_ALRMBR_SU_Pos		(0U)
#define RTC_ALRMBR_SU_Msk		(0xFU << RTC_ALRMBR_SU_Pos)			// 0x0000000F
#define RTC_ALRMBR_SU			RTC_ALRMBR_SU_Msk
#define RTC_ALRMBR_SU_0		(0x1U << RTC_ALRMBR_SU_Pos)			// 0x00000001
#define RTC_ALRMBR_SU_1		(0x2U << RTC_ALRMBR_SU_Pos)			// 0x00000002
#define RTC_ALRMBR_SU_2		(0x4U << RTC_ALRMBR_SU_Pos)			// 0x00000004
#define RTC_ALRMBR_SU_3		(0x8U << RTC_ALRMBR_SU_Pos)			// 0x00000008

//  Bits definition for RTC_WPR register
#define RTC_WPR_KEY_Pos		(0U)
#define RTC_WPR_KEY_Msk		(0xFFU << RTC_WPR_KEY_Pos)			// 0x000000FF
#define RTC_WPR_KEY			RTC_WPR_KEY_Msk

//  Bits definition for RTC_SSR register
#define RTC_SSR_SS_Pos			(0U)
#define RTC_SSR_SS_Msk			(0xFFFFU << RTC_SSR_SS_Pos)			// 0x0000FFFF
#define RTC_SSR_SS			RTC_SSR_SS_Msk

//  Bits definition for RTC_SHIFTR register
#define RTC_SHIFTR_SUBFS_Pos		(0U)
#define RTC_SHIFTR_SUBFS_Msk		(0x7FFFU << RTC_SHIFTR_SUBFS_Pos)			// 0x00007FFF
#define RTC_SHIFTR_SUBFS		RTC_SHIFTR_SUBFS_Msk
#define RTC_SHIFTR_ADD1S_Pos		(31U)
#define RTC_SHIFTR_ADD1S_Msk		(0x1U << RTC_SHIFTR_ADD1S_Pos)			// 0x80000000
#define RTC_SHIFTR_ADD1S		RTC_SHIFTR_ADD1S_Msk

//  Bits definition for RTC_TSTR register
#define RTC_TSTR_PM_Pos		(22U)
#define RTC_TSTR_PM_Msk		(0x1U << RTC_TSTR_PM_Pos)			// 0x00400000
#define RTC_TSTR_PM			RTC_TSTR_PM_Msk
#define RTC_TSTR_HT_Pos		(20U)
#define RTC_TSTR_HT_Msk		(0x3U << RTC_TSTR_HT_Pos)			// 0x00300000
#define RTC_TSTR_HT			RTC_TSTR_HT_Msk
#define RTC_TSTR_HT_0			(0x1U << RTC_TSTR_HT_Pos)			// 0x00100000
#define RTC_TSTR_HT_1			(0x2U << RTC_TSTR_HT_Pos)			// 0x00200000
#define RTC_TSTR_HU_Pos		(16U)
#define RTC_TSTR_HU_Msk		(0xFU << RTC_TSTR_HU_Pos)			// 0x000F0000
#define RTC_TSTR_HU			RTC_TSTR_HU_Msk
#define RTC_TSTR_HU_0			(0x1U << RTC_TSTR_HU_Pos)			// 0x00010000
#define RTC_TSTR_HU_1			(0x2U << RTC_TSTR_HU_Pos)			// 0x00020000
#define RTC_TSTR_HU_2			(0x4U << RTC_TSTR_HU_Pos)			// 0x00040000
#define RTC_TSTR_HU_3			(0x8U << RTC_TSTR_HU_Pos)			// 0x00080000
#define RTC_TSTR_MNT_Pos		(12U)
#define RTC_TSTR_MNT_Msk		(0x7U << RTC_TSTR_MNT_Pos)			// 0x00007000
#define RTC_TSTR_MNT			RTC_TSTR_MNT_Msk
#define RTC_TSTR_MNT_0			(0x1U << RTC_TSTR_MNT_Pos)			// 0x00001000
#define RTC_TSTR_MNT_1			(0x2U << RTC_TSTR_MNT_Pos)			// 0x00002000
#define RTC_TSTR_MNT_2			(0x4U << RTC_TSTR_MNT_Pos)			// 0x00004000
#define RTC_TSTR_MNU_Pos		(8U)
#define RTC_TSTR_MNU_Msk		(0xFU << RTC_TSTR_MNU_Pos)			// 0x00000F00
#define RTC_TSTR_MNU			RTC_TSTR_MNU_Msk
#define RTC_TSTR_MNU_0			(0x1U << RTC_TSTR_MNU_Pos)			// 0x00000100
#define RTC_TSTR_MNU_1			(0x2U << RTC_TSTR_MNU_Pos)			// 0x00000200
#define RTC_TSTR_MNU_2			(0x4U << RTC_TSTR_MNU_Pos)			// 0x00000400
#define RTC_TSTR_MNU_3			(0x8U << RTC_TSTR_MNU_Pos)			// 0x00000800
#define RTC_TSTR_ST_Pos		(4U)
#define RTC_TSTR_ST_Msk		(0x7U << RTC_TSTR_ST_Pos)			// 0x00000070
#define RTC_TSTR_ST			RTC_TSTR_ST_Msk
#define RTC_TSTR_ST_0			(0x1U << RTC_TSTR_ST_Pos)			// 0x00000010
#define RTC_TSTR_ST_1			(0x2U << RTC_TSTR_ST_Pos)			// 0x00000020
#define RTC_TSTR_ST_2			(0x4U << RTC_TSTR_ST_Pos)			// 0x00000040
#define RTC_TSTR_SU_Pos		(0U)
#define RTC_TSTR_SU_Msk		(0xFU << RTC_TSTR_SU_Pos)			// 0x0000000F
#define RTC_TSTR_SU			RTC_TSTR_SU_Msk
#define RTC_TSTR_SU_0			(0x1U << RTC_TSTR_SU_Pos)			// 0x00000001
#define RTC_TSTR_SU_1			(0x2U << RTC_TSTR_SU_Pos)			// 0x00000002
#define RTC_TSTR_SU_2			(0x4U << RTC_TSTR_SU_Pos)			// 0x00000004
#define RTC_TSTR_SU_3			(0x8U << RTC_TSTR_SU_Pos)			// 0x00000008

//  Bits definition for RTC_TSDR register
#define RTC_TSDR_WDU_Pos		(13U)
#define RTC_TSDR_WDU_Msk		(0x7U << RTC_TSDR_WDU_Pos)			// 0x0000E000
#define RTC_TSDR_WDU			RTC_TSDR_WDU_Msk
#define RTC_TSDR_WDU_0			(0x1U << RTC_TSDR_WDU_Pos)			// 0x00002000
#define RTC_TSDR_WDU_1			(0x2U << RTC_TSDR_WDU_Pos)			// 0x00004000
#define RTC_TSDR_WDU_2			(0x4U << RTC_TSDR_WDU_Pos)			// 0x00008000
#define RTC_TSDR_MT_Pos		(12U)
#define RTC_TSDR_MT_Msk		(0x1U << RTC_TSDR_MT_Pos)			// 0x00001000
#define RTC_TSDR_MT			RTC_TSDR_MT_Msk
#define RTC_TSDR_MU_Pos		(8U)
#define RTC_TSDR_MU_Msk		(0xFU << RTC_TSDR_MU_Pos)			// 0x00000F00
#define RTC_TSDR_MU			RTC_TSDR_MU_Msk
#define RTC_TSDR_MU_0			(0x1U << RTC_TSDR_MU_Pos)			// 0x00000100
#define RTC_TSDR_MU_1			(0x2U << RTC_TSDR_MU_Pos)			// 0x00000200
#define RTC_TSDR_MU_2			(0x4U << RTC_TSDR_MU_Pos)			// 0x00000400
#define RTC_TSDR_MU_3			(0x8U << RTC_TSDR_MU_Pos)			// 0x00000800
#define RTC_TSDR_DT_Pos		(4U)
#define RTC_TSDR_DT_Msk		(0x3U << RTC_TSDR_DT_Pos)			// 0x00000030
#define RTC_TSDR_DT			RTC_TSDR_DT_Msk
#define RTC_TSDR_DT_0			(0x1U << RTC_TSDR_DT_Pos)			// 0x00000010
#define RTC_TSDR_DT_1			(0x2U << RTC_TSDR_DT_Pos)			// 0x00000020
#define RTC_TSDR_DU_Pos		(0U)
#define RTC_TSDR_DU_Msk		(0xFU << RTC_TSDR_DU_Pos)			// 0x0000000F
#define RTC_TSDR_DU			RTC_TSDR_DU_Msk
#define RTC_TSDR_DU_0			(0x1U << RTC_TSDR_DU_Pos)			// 0x00000001
#define RTC_TSDR_DU_1			(0x2U << RTC_TSDR_DU_Pos)			// 0x00000002
#define RTC_TSDR_DU_2			(0x4U << RTC_TSDR_DU_Pos)			// 0x00000004
#define RTC_TSDR_DU_3			(0x8U << RTC_TSDR_DU_Pos)			// 0x00000008

//  Bits definition for RTC_TSSSR register
#define RTC_TSSSR_SS_Pos		(0U)
#define RTC_TSSSR_SS_Msk		(0xFFFFU << RTC_TSSSR_SS_Pos)			// 0x0000FFFF
#define RTC_TSSSR_SS			RTC_TSSSR_SS_Msk

//  Bits definition for RTC_CAL register
#define RTC_CALR_CALP_Pos		(15U)
#define RTC_CALR_CALP_Msk		(0x1U << RTC_CALR_CALP_Pos)			// 0x00008000
#define RTC_CALR_CALP			RTC_CALR_CALP_Msk
#define RTC_CALR_CALW8_Pos		(14U)
#define RTC_CALR_CALW8_Msk		(0x1U << RTC_CALR_CALW8_Pos)			// 0x00004000
#define RTC_CALR_CALW8			RTC_CALR_CALW8_Msk
#define RTC_CALR_CALW16_Pos		(13U)
#define RTC_CALR_CALW16_Msk		(0x1U << RTC_CALR_CALW16_Pos)			// 0x00002000
#define RTC_CALR_CALW16		RTC_CALR_CALW16_Msk
#define RTC_CALR_CALM_Pos		(0U)
#define RTC_CALR_CALM_Msk		(0x1FFU << RTC_CALR_CALM_Pos)			// 0x000001FF
#define RTC_CALR_CALM			RTC_CALR_CALM_Msk
#define RTC_CALR_CALM_0		(0x001U << RTC_CALR_CALM_Pos)			// 0x00000001
#define RTC_CALR_CALM_1		(0x002U << RTC_CALR_CALM_Pos)			// 0x00000002
#define RTC_CALR_CALM_2		(0x004U << RTC_CALR_CALM_Pos)			// 0x00000004
#define RTC_CALR_CALM_3		(0x008U << RTC_CALR_CALM_Pos)			// 0x00000008
#define RTC_CALR_CALM_4		(0x010U << RTC_CALR_CALM_Pos)			// 0x00000010
#define RTC_CALR_CALM_5		(0x020U << RTC_CALR_CALM_Pos)			// 0x00000020
#define RTC_CALR_CALM_6		(0x040U << RTC_CALR_CALM_Pos)			// 0x00000040
#define RTC_CALR_CALM_7		(0x080U << RTC_CALR_CALM_Pos)			// 0x00000080
#define RTC_CALR_CALM_8		(0x100U << RTC_CALR_CALM_Pos)			// 0x00000100

//  Bits definition for RTC_TAFCR register
#define RTC_TAFCR_ALARMOUTTYPE_Pos	(18U)
#define RTC_TAFCR_ALARMOUTTYPE_Msk	(0x1U << RTC_TAFCR_ALARMOUTTYPE_Pos)	//  0x00040000
#define RTC_TAFCR_ALARMOUTTYPE		RTC_TAFCR_ALARMOUTTYPE_Msk
#define RTC_TAFCR_TSINSEL_Pos		(17U)
#define RTC_TAFCR_TSINSEL_Msk		(0x1U << RTC_TAFCR_TSINSEL_Pos)			// 0x00020000
#define RTC_TAFCR_TSINSEL		RTC_TAFCR_TSINSEL_Msk
#define RTC_TAFCR_TAMPINSEL_Pos	(16U)
#define RTC_TAFCR_TAMPINSEL_Msk	(0x1U << RTC_TAFCR_TAMPINSEL_Pos)			// 0x00010000
#define RTC_TAFCR_TAMPINSEL		RTC_TAFCR_TAMPINSEL_Msk
#define RTC_TAFCR_TAMPPUDIS_Pos	(15U)
#define RTC_TAFCR_TAMPPUDIS_Msk	(0x1U << RTC_TAFCR_TAMPPUDIS_Pos)			// 0x00008000
#define RTC_TAFCR_TAMPPUDIS		RTC_TAFCR_TAMPPUDIS_Msk
#define RTC_TAFCR_TAMPPRCH_Pos		(13U)
#define RTC_TAFCR_TAMPPRCH_Msk		(0x3U << RTC_TAFCR_TAMPPRCH_Pos)			// 0x00006000
#define RTC_TAFCR_TAMPPRCH		RTC_TAFCR_TAMPPRCH_Msk
#define RTC_TAFCR_TAMPPRCH_0		(0x1U << RTC_TAFCR_TAMPPRCH_Pos)			// 0x00002000
#define RTC_TAFCR_TAMPPRCH_1		(0x2U << RTC_TAFCR_TAMPPRCH_Pos)			// 0x00004000
#define RTC_TAFCR_TAMPFLT_Pos		(11U)
#define RTC_TAFCR_TAMPFLT_Msk		(0x3U << RTC_TAFCR_TAMPFLT_Pos)			// 0x00001800
#define RTC_TAFCR_TAMPFLT		RTC_TAFCR_TAMPFLT_Msk
#define RTC_TAFCR_TAMPFLT_0		(0x1U << RTC_TAFCR_TAMPFLT_Pos)			// 0x00000800
#define RTC_TAFCR_TAMPFLT_1		(0x2U << RTC_TAFCR_TAMPFLT_Pos)			// 0x00001000
#define RTC_TAFCR_TAMPFREQ_Pos		(8U)
#define RTC_TAFCR_TAMPFREQ_Msk		(0x7U << RTC_TAFCR_TAMPFREQ_Pos)			// 0x00000700
#define RTC_TAFCR_TAMPFREQ		RTC_TAFCR_TAMPFREQ_Msk
#define RTC_TAFCR_TAMPFREQ_0		(0x1U << RTC_TAFCR_TAMPFREQ_Pos)			// 0x00000100
#define RTC_TAFCR_TAMPFREQ_1		(0x2U << RTC_TAFCR_TAMPFREQ_Pos)			// 0x00000200
#define RTC_TAFCR_TAMPFREQ_2		(0x4U << RTC_TAFCR_TAMPFREQ_Pos)			// 0x00000400
#define RTC_TAFCR_TAMPTS_Pos		(7U)
#define RTC_TAFCR_TAMPTS_Msk		(0x1U << RTC_TAFCR_TAMPTS_Pos)			// 0x00000080
#define RTC_TAFCR_TAMPTS		RTC_TAFCR_TAMPTS_Msk
#define RTC_TAFCR_TAMP2TRG_Pos		(4U)
#define RTC_TAFCR_TAMP2TRG_Msk		(0x1U << RTC_TAFCR_TAMP2TRG_Pos)			// 0x00000010
#define RTC_TAFCR_TAMP2TRG		RTC_TAFCR_TAMP2TRG_Msk
#define RTC_TAFCR_TAMP2E_Pos		(3U)
#define RTC_TAFCR_TAMP2E_Msk		(0x1U << RTC_TAFCR_TAMP2E_Pos)			// 0x00000008
#define RTC_TAFCR_TAMP2E		RTC_TAFCR_TAMP2E_Msk
#define RTC_TAFCR_TAMPIE_Pos		(2U)
#define RTC_TAFCR_TAMPIE_Msk		(0x1U << RTC_TAFCR_TAMPIE_Pos)			// 0x00000004
#define RTC_TAFCR_TAMPIE		RTC_TAFCR_TAMPIE_Msk
#define RTC_TAFCR_TAMP1TRG_Pos		(1U)
#define RTC_TAFCR_TAMP1TRG_Msk		(0x1U << RTC_TAFCR_TAMP1TRG_Pos)			// 0x00000002
#define RTC_TAFCR_TAMP1TRG		RTC_TAFCR_TAMP1TRG_Msk
#define RTC_TAFCR_TAMP1E_Pos		(0U)
#define RTC_TAFCR_TAMP1E_Msk		(0x1U << RTC_TAFCR_TAMP1E_Pos)			// 0x00000001
#define RTC_TAFCR_TAMP1E		RTC_TAFCR_TAMP1E_Msk

//  Bits definition for RTC_ALRMASSR register
#define RTC_ALRMASSR_MASKSS_Pos	(24U)
#define RTC_ALRMASSR_MASKSS_Msk	(0xFU << RTC_ALRMASSR_MASKSS_Pos)			// 0x0F000000
#define RTC_ALRMASSR_MASKSS		RTC_ALRMASSR_MASKSS_Msk
#define RTC_ALRMASSR_MASKSS_0		(0x1U << RTC_ALRMASSR_MASKSS_Pos)			// 0x01000000
#define RTC_ALRMASSR_MASKSS_1		(0x2U << RTC_ALRMASSR_MASKSS_Pos)			// 0x02000000
#define RTC_ALRMASSR_MASKSS_2		(0x4U << RTC_ALRMASSR_MASKSS_Pos)			// 0x04000000
#define RTC_ALRMASSR_MASKSS_3		(0x8U << RTC_ALRMASSR_MASKSS_Pos)			// 0x08000000
#define RTC_ALRMASSR_SS_Pos		(0U)
#define RTC_ALRMASSR_SS_Msk		(0x7FFFU << RTC_ALRMASSR_SS_Pos)			// 0x00007FFF
#define RTC_ALRMASSR_SS		RTC_ALRMASSR_SS_Msk

//  Bits definition for RTC_ALRMBSSR register
#define RTC_ALRMBSSR_MASKSS_Pos	(24U)
#define RTC_ALRMBSSR_MASKSS_Msk	(0xFU << RTC_ALRMBSSR_MASKSS_Pos)			// 0x0F000000
#define RTC_ALRMBSSR_MASKSS		RTC_ALRMBSSR_MASKSS_Msk
#define RTC_ALRMBSSR_MASKSS_0		(0x1U << RTC_ALRMBSSR_MASKSS_Pos)			// 0x01000000
#define RTC_ALRMBSSR_MASKSS_1		(0x2U << RTC_ALRMBSSR_MASKSS_Pos)			// 0x02000000
#define RTC_ALRMBSSR_MASKSS_2		(0x4U << RTC_ALRMBSSR_MASKSS_Pos)			// 0x04000000
#define RTC_ALRMBSSR_MASKSS_3		(0x8U << RTC_ALRMBSSR_MASKSS_Pos)			// 0x08000000
#define RTC_ALRMBSSR_SS_Pos		(0U)
#define RTC_ALRMBSSR_SS_Msk		(0x7FFFU << RTC_ALRMBSSR_SS_Pos)			// 0x00007FFF
#define RTC_ALRMBSSR_SS		RTC_ALRMBSSR_SS_Msk

//  Bits definition for RTC_BKP0R register
#define RTC_BKP0R_Pos			(0U)
#define RTC_BKP0R_Msk			(0xFFFFFFFFU << RTC_BKP0R_Pos)			// 0xFFFFFFFF
#define RTC_BKP0R			RTC_BKP0R_Msk

//  Bits definition for RTC_BKP1R register
#define RTC_BKP1R_Pos			(0U)
#define RTC_BKP1R_Msk			(0xFFFFFFFFU << RTC_BKP1R_Pos)			// 0xFFFFFFFF
#define RTC_BKP1R			RTC_BKP1R_Msk

//  Bits definition for RTC_BKP2R register
#define RTC_BKP2R_Pos			(0U)
#define RTC_BKP2R_Msk			(0xFFFFFFFFU << RTC_BKP2R_Pos)			// 0xFFFFFFFF
#define RTC_BKP2R			RTC_BKP2R_Msk

//  Bits definition for RTC_BKP3R register
#define RTC_BKP3R_Pos			(0U)
#define RTC_BKP3R_Msk			(0xFFFFFFFFU << RTC_BKP3R_Pos)			// 0xFFFFFFFF
#define RTC_BKP3R			RTC_BKP3R_Msk

//  Bits definition for RTC_BKP4R register
#define RTC_BKP4R_Pos			(0U)
#define RTC_BKP4R_Msk			(0xFFFFFFFFU << RTC_BKP4R_Pos)			// 0xFFFFFFFF
#define RTC_BKP4R			RTC_BKP4R_Msk

//  Bits definition for RTC_BKP5R register
#define RTC_BKP5R_Pos			(0U)
#define RTC_BKP5R_Msk			(0xFFFFFFFFU << RTC_BKP5R_Pos)			// 0xFFFFFFFF
#define RTC_BKP5R			RTC_BKP5R_Msk

//  Bits definition for RTC_BKP6R register
#define RTC_BKP6R_Pos			(0U)
#define RTC_BKP6R_Msk			(0xFFFFFFFFU << RTC_BKP6R_Pos)			// 0xFFFFFFFF
#define RTC_BKP6R			RTC_BKP6R_Msk

//  Bits definition for RTC_BKP7R register
#define RTC_BKP7R_Pos			(0U)
#define RTC_BKP7R_Msk			(0xFFFFFFFFU << RTC_BKP7R_Pos)			// 0xFFFFFFFF
#define RTC_BKP7R			RTC_BKP7R_Msk

//  Bits definition for RTC_BKP8R register
#define RTC_BKP8R_Pos			(0U)
#define RTC_BKP8R_Msk			(0xFFFFFFFFU << RTC_BKP8R_Pos)			// 0xFFFFFFFF
#define RTC_BKP8R			RTC_BKP8R_Msk

//  Bits definition for RTC_BKP9R register
#define RTC_BKP9R_Pos			(0U)
#define RTC_BKP9R_Msk			(0xFFFFFFFFU << RTC_BKP9R_Pos)			// 0xFFFFFFFF
#define RTC_BKP9R			RTC_BKP9R_Msk

//  Bits definition for RTC_BKP10R register
#define RTC_BKP10R_Pos			(0U)
#define RTC_BKP10R_Msk			(0xFFFFFFFFU << RTC_BKP10R_Pos)			// 0xFFFFFFFF
#define RTC_BKP10R			RTC_BKP10R_Msk

//  Bits definition for RTC_BKP11R register
#define RTC_BKP11R_Pos			(0U)
#define RTC_BKP11R_Msk			(0xFFFFFFFFU << RTC_BKP11R_Pos)			// 0xFFFFFFFF
#define RTC_BKP11R			RTC_BKP11R_Msk

//  Bits definition for RTC_BKP12R register
#define RTC_BKP12R_Pos			(0U)
#define RTC_BKP12R_Msk			(0xFFFFFFFFU << RTC_BKP12R_Pos)			// 0xFFFFFFFF
#define RTC_BKP12R			RTC_BKP12R_Msk

//  Bits definition for RTC_BKP13R register
#define RTC_BKP13R_Pos			(0U)
#define RTC_BKP13R_Msk			(0xFFFFFFFFU << RTC_BKP13R_Pos)			// 0xFFFFFFFF
#define RTC_BKP13R			RTC_BKP13R_Msk

//  Bits definition for RTC_BKP14R register
#define RTC_BKP14R_Pos			(0U)
#define RTC_BKP14R_Msk			(0xFFFFFFFFU << RTC_BKP14R_Pos)			// 0xFFFFFFFF
#define RTC_BKP14R			RTC_BKP14R_Msk

//  Bits definition for RTC_BKP15R register
#define RTC_BKP15R_Pos			(0U)
#define RTC_BKP15R_Msk			(0xFFFFFFFFU << RTC_BKP15R_Pos)			// 0xFFFFFFFF
#define RTC_BKP15R			RTC_BKP15R_Msk

//  Bits definition for RTC_BKP16R register
#define RTC_BKP16R_Pos			(0U)
#define RTC_BKP16R_Msk			(0xFFFFFFFFU << RTC_BKP16R_Pos)			// 0xFFFFFFFF
#define RTC_BKP16R			RTC_BKP16R_Msk

//  Bits definition for RTC_BKP17R register
#define RTC_BKP17R_Pos			(0U)
#define RTC_BKP17R_Msk			(0xFFFFFFFFU << RTC_BKP17R_Pos)			// 0xFFFFFFFF
#define RTC_BKP17R			RTC_BKP17R_Msk

//  Bits definition for RTC_BKP18R register
#define RTC_BKP18R_Pos			(0U)
#define RTC_BKP18R_Msk			(0xFFFFFFFFU << RTC_BKP18R_Pos)			// 0xFFFFFFFF
#define RTC_BKP18R			RTC_BKP18R_Msk

//  Bits definition for RTC_BKP19R register
#define RTC_BKP19R_Pos			(0U)
#define RTC_BKP19R_Msk			(0xFFFFFFFFU << RTC_BKP19R_Pos)			// 0xFFFFFFFF
#define RTC_BKP19R			RTC_BKP19R_Msk




// SD host Interface


//  Bit definition for SDIO_POWER register
#define SDIO_POWER_PWRCTRL_Pos		(0U)
#define SDIO_POWER_PWRCTRL_Msk		(0x3U << SDIO_POWER_PWRCTRL_Pos)			// 0x00000003
#define SDIO_POWER_PWRCTRL		SDIO_POWER_PWRCTRL_Msk			// PWRCTRL[1:0] bits (Power supply control bits)
#define SDIO_POWER_PWRCTRL_0		(0x1U << SDIO_POWER_PWRCTRL_Pos)			// 0x01
#define SDIO_POWER_PWRCTRL_1		(0x2U << SDIO_POWER_PWRCTRL_Pos)			// 0x02

//  Bit definition for SDIO_CLKCR register
#define SDIO_CLKCR_CLKDIV_Pos		(0U)
#define SDIO_CLKCR_CLKDIV_Msk		(0xFFU << SDIO_CLKCR_CLKDIV_Pos)			// 0x000000FF
#define SDIO_CLKCR_CLKDIV		SDIO_CLKCR_CLKDIV_Msk			// Clock divide factor
#define SDIO_CLKCR_CLKEN_Pos		(8U)
#define SDIO_CLKCR_CLKEN_Msk		(0x1U << SDIO_CLKCR_CLKEN_Pos)			// 0x00000100
#define SDIO_CLKCR_CLKEN		SDIO_CLKCR_CLKEN_Msk			// Clock enable bit
#define SDIO_CLKCR_PWRSAV_Pos		(9U)
#define SDIO_CLKCR_PWRSAV_Msk		(0x1U << SDIO_CLKCR_PWRSAV_Pos)			// 0x00000200
#define SDIO_CLKCR_PWRSAV		SDIO_CLKCR_PWRSAV_Msk			// Power saving configuration bit
#define SDIO_CLKCR_BYPASS_Pos		(10U)
#define SDIO_CLKCR_BYPASS_Msk		(0x1U << SDIO_CLKCR_BYPASS_Pos)			// 0x00000400
#define SDIO_CLKCR_BYPASS		SDIO_CLKCR_BYPASS_Msk			// Clock divider bypass enable bit

#define SDIO_CLKCR_WIDBUS_Pos		(11U)
#define SDIO_CLKCR_WIDBUS_Msk		(0x3U << SDIO_CLKCR_WIDBUS_Pos)			// 0x00001800
#define SDIO_CLKCR_WIDBUS		SDIO_CLKCR_WIDBUS_Msk			// WIDBUS[1:0] bits (Wide bus mode enable bit)
#define SDIO_CLKCR_WIDBUS_0		(0x1U << SDIO_CLKCR_WIDBUS_Pos)			// 0x0800
#define SDIO_CLKCR_WIDBUS_1		(0x2U << SDIO_CLKCR_WIDBUS_Pos)			// 0x1000

#define SDIO_CLKCR_NEGEDGE_Pos		(13U)
#define SDIO_CLKCR_NEGEDGE_Msk		(0x1U << SDIO_CLKCR_NEGEDGE_Pos)			// 0x00002000
#define SDIO_CLKCR_NEGEDGE		SDIO_CLKCR_NEGEDGE_Msk			// SDIO_CK dephasing selection bit
#define SDIO_CLKCR_HWFC_EN_Pos		(14U)
#define SDIO_CLKCR_HWFC_EN_Msk		(0x1U << SDIO_CLKCR_HWFC_EN_Pos)			// 0x00004000
#define SDIO_CLKCR_HWFC_EN		SDIO_CLKCR_HWFC_EN_Msk			// HW Flow Control enable

//  Bit definition for SDIO_ARG register
#define SDIO_ARG_CMDARG_Pos		(0U)
#define SDIO_ARG_CMDARG_Msk		(0xFFFFFFFFU << SDIO_ARG_CMDARG_Pos)	//  0xFFFFFFFF
#define SDIO_ARG_CMDARG			SDIO_ARG_CMDARG_Msk			// Command argument

//  Bit definition for SDIO_CMD register
#define SDIO_CMD_CMDINDEX_Pos		(0U)
#define SDIO_CMD_CMDINDEX_Msk		(0x3FU << SDIO_CMD_CMDINDEX_Pos)			// 0x0000003F
#define SDIO_CMD_CMDINDEX		SDIO_CMD_CMDINDEX_Msk			// Command Index

#define SDIO_CMD_WAITRESP_Pos		(6U)
#define SDIO_CMD_WAITRESP_Msk		(0x3U << SDIO_CMD_WAITRESP_Pos)			// 0x000000C0
#define SDIO_CMD_WAITRESP		SDIO_CMD_WAITRESP_Msk			// WAITRESP[1:0] bits (Wait for response bits)
#define SDIO_CMD_WAITRESP_0		(0x1U << SDIO_CMD_WAITRESP_Pos)			// 0x0040
#define SDIO_CMD_WAITRESP_1		(0x2U << SDIO_CMD_WAITRESP_Pos)			// 0x0080

#define SDIO_CMD_WAITINT_Pos		(8U)
#define SDIO_CMD_WAITINT_Msk		(0x1U << SDIO_CMD_WAITINT_Pos)			// 0x00000100
#define SDIO_CMD_WAITINT		SDIO_CMD_WAITINT_Msk			// CPSM Waits for Interrupt Request
#define SDIO_CMD_WAITPEND_Pos		(9U)
#define SDIO_CMD_WAITPEND_Msk		(0x1U << SDIO_CMD_WAITPEND_Pos)			// 0x00000200
#define SDIO_CMD_WAITPEND		SDIO_CMD_WAITPEND_Msk			// CPSM Waits for ends of data transfer (CmdPend internal signal)
#define SDIO_CMD_CPSMEN_Pos		(10U)
#define SDIO_CMD_CPSMEN_Msk		(0x1U << SDIO_CMD_CPSMEN_Pos)			// 0x00000400
#define SDIO_CMD_CPSMEN			SDIO_CMD_CPSMEN_Msk			// Command path state machine (CPSM) Enable bit
#define SDIO_CMD_SDIOSUSPEND_Pos	(11U)
#define SDIO_CMD_SDIOSUSPEND_Msk	(0x1U << SDIO_CMD_SDIOSUSPEND_Pos)	//  0x00000800
#define SDIO_CMD_SDIOSUSPEND		SDIO_CMD_SDIOSUSPEND_Msk			// SD I/O suspend command
#define SDIO_CMD_ENCMDCOMPL_Pos		(12U)
#define SDIO_CMD_ENCMDCOMPL_Msk		(0x1U << SDIO_CMD_ENCMDCOMPL_Pos)	//  0x00001000
#define SDIO_CMD_ENCMDCOMPL		SDIO_CMD_ENCMDCOMPL_Msk			// Enable CMD completion
#define SDIO_CMD_NIEN_Pos		(13U)
#define SDIO_CMD_NIEN_Msk		(0x1U << SDIO_CMD_NIEN_Pos)			// 0x00002000
#define SDIO_CMD_NIEN			SDIO_CMD_NIEN_Msk			// Not Interrupt Enable
#define SDIO_CMD_CEATACMD_Pos		(14U)
#define SDIO_CMD_CEATACMD_Msk		(0x1U << SDIO_CMD_CEATACMD_Pos)			// 0x00004000
#define SDIO_CMD_CEATACMD		SDIO_CMD_CEATACMD_Msk			// CE-ATA command

//  Bit definition for SDIO_RESPCMD register
#define SDIO_RESPCMD_RESPCMD_Pos	(0U)
#define SDIO_RESPCMD_RESPCMD_Msk	(0x3FU << SDIO_RESPCMD_RESPCMD_Pos)	//  0x0000003F
#define SDIO_RESPCMD_RESPCMD		SDIO_RESPCMD_RESPCMD_Msk			// Response command index

//  Bit definition for SDIO_RESP0 register
#define SDIO_RESP0_CARDSTATUS0_Pos	(0U)
#define SDIO_RESP0_CARDSTATUS0_Msk	(0xFFFFFFFFU << SDIO_RESP0_CARDSTATUS0_Pos)	//  0xFFFFFFFF
#define SDIO_RESP0_CARDSTATUS0		SDIO_RESP0_CARDSTATUS0_Msk			// Card Status

//  Bit definition for SDIO_RESP1 register
#define SDIO_RESP1_CARDSTATUS1_Pos	(0U)
#define SDIO_RESP1_CARDSTATUS1_Msk	(0xFFFFFFFFU << SDIO_RESP1_CARDSTATUS1_Pos)	//  0xFFFFFFFF
#define SDIO_RESP1_CARDSTATUS1		SDIO_RESP1_CARDSTATUS1_Msk			// Card Status

//  Bit definition for SDIO_RESP2 register
#define SDIO_RESP2_CARDSTATUS2_Pos	(0U)
#define SDIO_RESP2_CARDSTATUS2_Msk	(0xFFFFFFFFU << SDIO_RESP2_CARDSTATUS2_Pos)	//  0xFFFFFFFF
#define SDIO_RESP2_CARDSTATUS2		SDIO_RESP2_CARDSTATUS2_Msk			// Card Status

//  Bit definition for SDIO_RESP3 register
#define SDIO_RESP3_CARDSTATUS3_Pos	(0U)
#define SDIO_RESP3_CARDSTATUS3_Msk	(0xFFFFFFFFU << SDIO_RESP3_CARDSTATUS3_Pos)	//  0xFFFFFFFF
#define SDIO_RESP3_CARDSTATUS3		SDIO_RESP3_CARDSTATUS3_Msk			// Card Status

//  Bit definition for SDIO_RESP4 register
#define SDIO_RESP4_CARDSTATUS4_Pos	(0U)
#define SDIO_RESP4_CARDSTATUS4_Msk	(0xFFFFFFFFU << SDIO_RESP4_CARDSTATUS4_Pos)	//  0xFFFFFFFF
#define SDIO_RESP4_CARDSTATUS4		SDIO_RESP4_CARDSTATUS4_Msk			// Card Status

//  Bit definition for SDIO_DTIMER register
#define SDIO_DTIMER_DATATIME_Pos	(0U)
#define SDIO_DTIMER_DATATIME_Msk	(0xFFFFFFFFU << SDIO_DTIMER_DATATIME_Pos)	//  0xFFFFFFFF
#define SDIO_DTIMER_DATATIME		SDIO_DTIMER_DATATIME_Msk			// Data timeout period.

//  Bit definition for SDIO_DLEN register
#define SDIO_DLEN_DATALENGTH_Pos	(0U)
#define SDIO_DLEN_DATALENGTH_Msk	(0x1FFFFFFU << SDIO_DLEN_DATALENGTH_Pos)	//  0x01FFFFFF
#define SDIO_DLEN_DATALENGTH		SDIO_DLEN_DATALENGTH_Msk			// Data length value

//  Bit definition for SDIO_DCTRL register
#define SDIO_DCTRL_DTEN_Pos		(0U)
#define SDIO_DCTRL_DTEN_Msk		(0x1U << SDIO_DCTRL_DTEN_Pos)			// 0x00000001
#define SDIO_DCTRL_DTEN			SDIO_DCTRL_DTEN_Msk			// Data transfer enabled bit
#define SDIO_DCTRL_DTDIR_Pos		(1U)
#define SDIO_DCTRL_DTDIR_Msk		(0x1U << SDIO_DCTRL_DTDIR_Pos)			// 0x00000002
#define SDIO_DCTRL_DTDIR		SDIO_DCTRL_DTDIR_Msk			// Data transfer direction selection
#define SDIO_DCTRL_DTMODE_Pos		(2U)
#define SDIO_DCTRL_DTMODE_Msk		(0x1U << SDIO_DCTRL_DTMODE_Pos)			// 0x00000004
#define SDIO_DCTRL_DTMODE		SDIO_DCTRL_DTMODE_Msk			// Data transfer mode selection
#define SDIO_DCTRL_DMAEN_Pos		(3U)
#define SDIO_DCTRL_DMAEN_Msk		(0x1U << SDIO_DCTRL_DMAEN_Pos)			// 0x00000008
#define SDIO_DCTRL_DMAEN		SDIO_DCTRL_DMAEN_Msk			// DMA enabled bit

#define SDIO_DCTRL_DBLOCKSIZE_Pos	(4U)
#define SDIO_DCTRL_DBLOCKSIZE_Msk	(0xFU << SDIO_DCTRL_DBLOCKSIZE_Pos)	//  0x000000F0
#define SDIO_DCTRL_DBLOCKSIZE		SDIO_DCTRL_DBLOCKSIZE_Msk			// DBLOCKSIZE[3:0] bits (Data block size)
#define SDIO_DCTRL_DBLOCKSIZE_0		(0x1U << SDIO_DCTRL_DBLOCKSIZE_Pos)	//  0x0010
#define SDIO_DCTRL_DBLOCKSIZE_1		(0x2U << SDIO_DCTRL_DBLOCKSIZE_Pos)	//  0x0020
#define SDIO_DCTRL_DBLOCKSIZE_2		(0x4U << SDIO_DCTRL_DBLOCKSIZE_Pos)	//  0x0040
#define SDIO_DCTRL_DBLOCKSIZE_3		(0x8U << SDIO_DCTRL_DBLOCKSIZE_Pos)	//  0x0080

#define SDIO_DCTRL_RWSTART_Pos		(8U)
#define SDIO_DCTRL_RWSTART_Msk		(0x1U << SDIO_DCTRL_RWSTART_Pos)			// 0x00000100
#define SDIO_DCTRL_RWSTART		SDIO_DCTRL_RWSTART_Msk			// Read wait start
#define SDIO_DCTRL_RWSTOP_Pos		(9U)
#define SDIO_DCTRL_RWSTOP_Msk		(0x1U << SDIO_DCTRL_RWSTOP_Pos)			// 0x00000200
#define SDIO_DCTRL_RWSTOP		SDIO_DCTRL_RWSTOP_Msk			// Read wait stop
#define SDIO_DCTRL_RWMOD_Pos		(10U)
#define SDIO_DCTRL_RWMOD_Msk		(0x1U << SDIO_DCTRL_RWMOD_Pos)			// 0x00000400
#define SDIO_DCTRL_RWMOD		SDIO_DCTRL_RWMOD_Msk			// Read wait mode
#define SDIO_DCTRL_SDIOEN_Pos		(11U)
#define SDIO_DCTRL_SDIOEN_Msk		(0x1U << SDIO_DCTRL_SDIOEN_Pos)			// 0x00000800
#define SDIO_DCTRL_SDIOEN		SDIO_DCTRL_SDIOEN_Msk			// SD I/O enable functions

//  Bit definition for SDIO_DCOUNT register
#define SDIO_DCOUNT_DATACOUNT_Pos	(0U)
#define SDIO_DCOUNT_DATACOUNT_Msk	(0x1FFFFFFU << SDIO_DCOUNT_DATACOUNT_Pos)	//  0x01FFFFFF
#define SDIO_DCOUNT_DATACOUNT		SDIO_DCOUNT_DATACOUNT_Msk			// Data count value

//  Bit definition for SDIO_STA register
#define SDIO_STA_CCRCFAIL_Pos		(0U)
#define SDIO_STA_CCRCFAIL_Msk		(0x1U << SDIO_STA_CCRCFAIL_Pos)			// 0x00000001
#define SDIO_STA_CCRCFAIL		SDIO_STA_CCRCFAIL_Msk			// Command response received (CRC check failed)
#define SDIO_STA_DCRCFAIL_Pos		(1U)
#define SDIO_STA_DCRCFAIL_Msk		(0x1U << SDIO_STA_DCRCFAIL_Pos)			// 0x00000002
#define SDIO_STA_DCRCFAIL		SDIO_STA_DCRCFAIL_Msk			// Data block sent/received (CRC check failed)
#define SDIO_STA_CTIMEOUT_Pos		(2U)
#define SDIO_STA_CTIMEOUT_Msk		(0x1U << SDIO_STA_CTIMEOUT_Pos)			// 0x00000004
#define SDIO_STA_CTIMEOUT		SDIO_STA_CTIMEOUT_Msk			// Command response timeout
#define SDIO_STA_DTIMEOUT_Pos		(3U)
#define SDIO_STA_DTIMEOUT_Msk		(0x1U << SDIO_STA_DTIMEOUT_Pos)			// 0x00000008
#define SDIO_STA_DTIMEOUT		SDIO_STA_DTIMEOUT_Msk			// Data timeout
#define SDIO_STA_TXUNDERR_Pos		(4U)
#define SDIO_STA_TXUNDERR_Msk		(0x1U << SDIO_STA_TXUNDERR_Pos)			// 0x00000010
#define SDIO_STA_TXUNDERR		SDIO_STA_TXUNDERR_Msk			// Transmit FIFO underrun error
#define SDIO_STA_RXOVERR_Pos		(5U)
#define SDIO_STA_RXOVERR_Msk		(0x1U << SDIO_STA_RXOVERR_Pos)			// 0x00000020
#define SDIO_STA_RXOVERR		SDIO_STA_RXOVERR_Msk			// Received FIFO overrun error
#define SDIO_STA_CMDREND_Pos		(6U)
#define SDIO_STA_CMDREND_Msk		(0x1U << SDIO_STA_CMDREND_Pos)			// 0x00000040
#define SDIO_STA_CMDREND		SDIO_STA_CMDREND_Msk			// Command response received (CRC check passed)
#define SDIO_STA_CMDSENT_Pos		(7U)
#define SDIO_STA_CMDSENT_Msk		(0x1U << SDIO_STA_CMDSENT_Pos)			// 0x00000080
#define SDIO_STA_CMDSENT		SDIO_STA_CMDSENT_Msk			// Command sent (no response required)
#define SDIO_STA_DATAEND_Pos		(8U)
#define SDIO_STA_DATAEND_Msk		(0x1U << SDIO_STA_DATAEND_Pos)			// 0x00000100
#define SDIO_STA_DATAEND		SDIO_STA_DATAEND_Msk			// Data end (data counter, SDIDCOUNT, is zero)
#define SDIO_STA_STBITERR_Pos		(9U)
#define SDIO_STA_STBITERR_Msk		(0x1U << SDIO_STA_STBITERR_Pos)			// 0x00000200
#define SDIO_STA_STBITERR		SDIO_STA_STBITERR_Msk			// Start bit not detected on all data signals in wide bus mode
#define SDIO_STA_DBCKEND_Pos		(10U)
#define SDIO_STA_DBCKEND_Msk		(0x1U << SDIO_STA_DBCKEND_Pos)			// 0x00000400
#define SDIO_STA_DBCKEND		SDIO_STA_DBCKEND_Msk			// Data block sent/received (CRC check passed)
#define SDIO_STA_CMDACT_Pos		(11U)
#define SDIO_STA_CMDACT_Msk		(0x1U << SDIO_STA_CMDACT_Pos)			// 0x00000800
#define SDIO_STA_CMDACT			SDIO_STA_CMDACT_Msk			// Command transfer in progress
#define SDIO_STA_TXACT_Pos		(12U)
#define SDIO_STA_TXACT_Msk		(0x1U << SDIO_STA_TXACT_Pos)			// 0x00001000
#define SDIO_STA_TXACT			SDIO_STA_TXACT_Msk			// Data transmit in progress
#define SDIO_STA_RXACT_Pos		(13U)
#define SDIO_STA_RXACT_Msk		(0x1U << SDIO_STA_RXACT_Pos)			// 0x00002000
#define SDIO_STA_RXACT			SDIO_STA_RXACT_Msk			// Data receive in progress
#define SDIO_STA_TXFIFOHE_Pos		(14U)
#define SDIO_STA_TXFIFOHE_Msk		(0x1U << SDIO_STA_TXFIFOHE_Pos)			// 0x00004000
#define SDIO_STA_TXFIFOHE		SDIO_STA_TXFIFOHE_Msk			// Transmit FIFO Half Empty: at least 8 words can be written into the FIFO
#define SDIO_STA_RXFIFOHF_Pos		(15U)
#define SDIO_STA_RXFIFOHF_Msk		(0x1U << SDIO_STA_RXFIFOHF_Pos)			// 0x00008000
#define SDIO_STA_RXFIFOHF		SDIO_STA_RXFIFOHF_Msk			// Receive FIFO Half Full: there are at least 8 words in the FIFO
#define SDIO_STA_TXFIFOF_Pos		(16U)
#define SDIO_STA_TXFIFOF_Msk		(0x1U << SDIO_STA_TXFIFOF_Pos)			// 0x00010000
#define SDIO_STA_TXFIFOF		SDIO_STA_TXFIFOF_Msk			// Transmit FIFO full
#define SDIO_STA_RXFIFOF_Pos		(17U)
#define SDIO_STA_RXFIFOF_Msk		(0x1U << SDIO_STA_RXFIFOF_Pos)			// 0x00020000
#define SDIO_STA_RXFIFOF		SDIO_STA_RXFIFOF_Msk			// Receive FIFO full
#define SDIO_STA_TXFIFOE_Pos		(18U)
#define SDIO_STA_TXFIFOE_Msk		(0x1U << SDIO_STA_TXFIFOE_Pos)			// 0x00040000
#define SDIO_STA_TXFIFOE		SDIO_STA_TXFIFOE_Msk			// Transmit FIFO empty
#define SDIO_STA_RXFIFOE_Pos		(19U)
#define SDIO_STA_RXFIFOE_Msk		(0x1U << SDIO_STA_RXFIFOE_Pos)			// 0x00080000
#define SDIO_STA_RXFIFOE		SDIO_STA_RXFIFOE_Msk			// Receive FIFO empty
#define SDIO_STA_TXDAVL_Pos		(20U)
#define SDIO_STA_TXDAVL_Msk		(0x1U << SDIO_STA_TXDAVL_Pos)			// 0x00100000
#define SDIO_STA_TXDAVL			SDIO_STA_TXDAVL_Msk			// Data available in transmit FIFO
#define SDIO_STA_RXDAVL_Pos		(21U)
#define SDIO_STA_RXDAVL_Msk		(0x1U << SDIO_STA_RXDAVL_Pos)			// 0x00200000
#define SDIO_STA_RXDAVL			SDIO_STA_RXDAVL_Msk			// Data available in receive FIFO
#define SDIO_STA_SDIOIT_Pos		(22U)
#define SDIO_STA_SDIOIT_Msk		(0x1U << SDIO_STA_SDIOIT_Pos)			// 0x00400000
#define SDIO_STA_SDIOIT			SDIO_STA_SDIOIT_Msk			// SDIO interrupt received
#define SDIO_STA_CEATAEND_Pos		(23U)
#define SDIO_STA_CEATAEND_Msk		(0x1U << SDIO_STA_CEATAEND_Pos)			// 0x00800000
#define SDIO_STA_CEATAEND		SDIO_STA_CEATAEND_Msk			// CE-ATA command completion signal received for CMD61

//  Bit definition for SDIO_ICR register
#define SDIO_ICR_CCRCFAILC_Pos		(0U)
#define SDIO_ICR_CCRCFAILC_Msk		(0x1U << SDIO_ICR_CCRCFAILC_Pos)			// 0x00000001
#define SDIO_ICR_CCRCFAILC		SDIO_ICR_CCRCFAILC_Msk			// CCRCFAIL flag clear bit
#define SDIO_ICR_DCRCFAILC_Pos		(1U)
#define SDIO_ICR_DCRCFAILC_Msk		(0x1U << SDIO_ICR_DCRCFAILC_Pos)			// 0x00000002
#define SDIO_ICR_DCRCFAILC		SDIO_ICR_DCRCFAILC_Msk			// DCRCFAIL flag clear bit
#define SDIO_ICR_CTIMEOUTC_Pos		(2U)
#define SDIO_ICR_CTIMEOUTC_Msk		(0x1U << SDIO_ICR_CTIMEOUTC_Pos)			// 0x00000004
#define SDIO_ICR_CTIMEOUTC		SDIO_ICR_CTIMEOUTC_Msk			// CTIMEOUT flag clear bit
#define SDIO_ICR_DTIMEOUTC_Pos		(3U)
#define SDIO_ICR_DTIMEOUTC_Msk		(0x1U << SDIO_ICR_DTIMEOUTC_Pos)			// 0x00000008
#define SDIO_ICR_DTIMEOUTC		SDIO_ICR_DTIMEOUTC_Msk			// DTIMEOUT flag clear bit
#define SDIO_ICR_TXUNDERRC_Pos		(4U)
#define SDIO_ICR_TXUNDERRC_Msk		(0x1U << SDIO_ICR_TXUNDERRC_Pos)			// 0x00000010
#define SDIO_ICR_TXUNDERRC		SDIO_ICR_TXUNDERRC_Msk			// TXUNDERR flag clear bit
#define SDIO_ICR_RXOVERRC_Pos		(5U)
#define SDIO_ICR_RXOVERRC_Msk		(0x1U << SDIO_ICR_RXOVERRC_Pos)			// 0x00000020
#define SDIO_ICR_RXOVERRC		SDIO_ICR_RXOVERRC_Msk			// RXOVERR flag clear bit
#define SDIO_ICR_CMDRENDC_Pos		(6U)
#define SDIO_ICR_CMDRENDC_Msk		(0x1U << SDIO_ICR_CMDRENDC_Pos)			// 0x00000040
#define SDIO_ICR_CMDRENDC		SDIO_ICR_CMDRENDC_Msk			// CMDREND flag clear bit
#define SDIO_ICR_CMDSENTC_Pos		(7U)
#define SDIO_ICR_CMDSENTC_Msk		(0x1U << SDIO_ICR_CMDSENTC_Pos)			// 0x00000080
#define SDIO_ICR_CMDSENTC		SDIO_ICR_CMDSENTC_Msk			// CMDSENT flag clear bit
#define SDIO_ICR_DATAENDC_Pos		(8U)
#define SDIO_ICR_DATAENDC_Msk		(0x1U << SDIO_ICR_DATAENDC_Pos)			// 0x00000100
#define SDIO_ICR_DATAENDC		SDIO_ICR_DATAENDC_Msk			// DATAEND flag clear bit
#define SDIO_ICR_STBITERRC_Pos		(9U)
#define SDIO_ICR_STBITERRC_Msk		(0x1U << SDIO_ICR_STBITERRC_Pos)			// 0x00000200
#define SDIO_ICR_STBITERRC		SDIO_ICR_STBITERRC_Msk			// STBITERR flag clear bit
#define SDIO_ICR_DBCKENDC_Pos		(10U)
#define SDIO_ICR_DBCKENDC_Msk		(0x1U << SDIO_ICR_DBCKENDC_Pos)			// 0x00000400
#define SDIO_ICR_DBCKENDC		SDIO_ICR_DBCKENDC_Msk			// DBCKEND flag clear bit
#define SDIO_ICR_SDIOITC_Pos		(22U)
#define SDIO_ICR_SDIOITC_Msk		(0x1U << SDIO_ICR_SDIOITC_Pos)			// 0x00400000
#define SDIO_ICR_SDIOITC		SDIO_ICR_SDIOITC_Msk			// SDIOIT flag clear bit
#define SDIO_ICR_CEATAENDC_Pos		(23U)
#define SDIO_ICR_CEATAENDC_Msk		(0x1U << SDIO_ICR_CEATAENDC_Pos)			// 0x00800000
#define SDIO_ICR_CEATAENDC		SDIO_ICR_CEATAENDC_Msk			// CEATAEND flag clear bit

//  Bit definition for SDIO_MASK register
#define SDIO_MASK_CCRCFAILIE_Pos	(0U)
#define SDIO_MASK_CCRCFAILIE_Msk	(0x1U << SDIO_MASK_CCRCFAILIE_Pos)	//  0x00000001
#define SDIO_MASK_CCRCFAILIE		SDIO_MASK_CCRCFAILIE_Msk			// Command CRC Fail Interrupt Enable
#define SDIO_MASK_DCRCFAILIE_Pos	(1U)
#define SDIO_MASK_DCRCFAILIE_Msk	(0x1U << SDIO_MASK_DCRCFAILIE_Pos)	//  0x00000002
#define SDIO_MASK_DCRCFAILIE		SDIO_MASK_DCRCFAILIE_Msk			// Data CRC Fail Interrupt Enable
#define SDIO_MASK_CTIMEOUTIE_Pos	(2U)
#define SDIO_MASK_CTIMEOUTIE_Msk	(0x1U << SDIO_MASK_CTIMEOUTIE_Pos)	//  0x00000004
#define SDIO_MASK_CTIMEOUTIE		SDIO_MASK_CTIMEOUTIE_Msk			// Command TimeOut Interrupt Enable
#define SDIO_MASK_DTIMEOUTIE_Pos	(3U)
#define SDIO_MASK_DTIMEOUTIE_Msk	(0x1U << SDIO_MASK_DTIMEOUTIE_Pos)	//  0x00000008
#define SDIO_MASK_DTIMEOUTIE		SDIO_MASK_DTIMEOUTIE_Msk			// Data TimeOut Interrupt Enable
#define SDIO_MASK_TXUNDERRIE_Pos	(4U)
#define SDIO_MASK_TXUNDERRIE_Msk	(0x1U << SDIO_MASK_TXUNDERRIE_Pos)	//  0x00000010
#define SDIO_MASK_TXUNDERRIE		SDIO_MASK_TXUNDERRIE_Msk			// Tx FIFO UnderRun Error Interrupt Enable
#define SDIO_MASK_RXOVERRIE_Pos		(5U)
#define SDIO_MASK_RXOVERRIE_Msk		(0x1U << SDIO_MASK_RXOVERRIE_Pos)	//  0x00000020
#define SDIO_MASK_RXOVERRIE		SDIO_MASK_RXOVERRIE_Msk			// Rx FIFO OverRun Error Interrupt Enable
#define SDIO_MASK_CMDRENDIE_Pos		(6U)
#define SDIO_MASK_CMDRENDIE_Msk		(0x1U << SDIO_MASK_CMDRENDIE_Pos)	//  0x00000040
#define SDIO_MASK_CMDRENDIE		SDIO_MASK_CMDRENDIE_Msk			// Command Response Received Interrupt Enable
#define SDIO_MASK_CMDSENTIE_Pos		(7U)
#define SDIO_MASK_CMDSENTIE_Msk		(0x1U << SDIO_MASK_CMDSENTIE_Pos)	//  0x00000080
#define SDIO_MASK_CMDSENTIE		SDIO_MASK_CMDSENTIE_Msk			// Command Sent Interrupt Enable
#define SDIO_MASK_DATAENDIE_Pos		(8U)
#define SDIO_MASK_DATAENDIE_Msk		(0x1U << SDIO_MASK_DATAENDIE_Pos)	//  0x00000100
#define SDIO_MASK_DATAENDIE		SDIO_MASK_DATAENDIE_Msk			// Data End Interrupt Enable
#define SDIO_MASK_STBITERRIE_Pos	(9U)
#define SDIO_MASK_STBITERRIE_Msk	(0x1U << SDIO_MASK_STBITERRIE_Pos)	//  0x00000200
#define SDIO_MASK_STBITERRIE		SDIO_MASK_STBITERRIE_Msk			// Start Bit Error Interrupt Enable
#define SDIO_MASK_DBCKENDIE_Pos		(10U)
#define SDIO_MASK_DBCKENDIE_Msk		(0x1U << SDIO_MASK_DBCKENDIE_Pos)	//  0x00000400
#define SDIO_MASK_DBCKENDIE		SDIO_MASK_DBCKENDIE_Msk			// Data Block End Interrupt Enable
#define SDIO_MASK_CMDACTIE_Pos		(11U)
#define SDIO_MASK_CMDACTIE_Msk		(0x1U << SDIO_MASK_CMDACTIE_Pos)			// 0x00000800
#define SDIO_MASK_CMDACTIE		SDIO_MASK_CMDACTIE_Msk			// CCommand Acting Interrupt Enable
#define SDIO_MASK_TXACTIE_Pos		(12U)
#define SDIO_MASK_TXACTIE_Msk		(0x1U << SDIO_MASK_TXACTIE_Pos)			// 0x00001000
#define SDIO_MASK_TXACTIE		SDIO_MASK_TXACTIE_Msk			// Data Transmit Acting Interrupt Enable
#define SDIO_MASK_RXACTIE_Pos		(13U)
#define SDIO_MASK_RXACTIE_Msk		(0x1U << SDIO_MASK_RXACTIE_Pos)			// 0x00002000
#define SDIO_MASK_RXACTIE		SDIO_MASK_RXACTIE_Msk			// Data receive acting interrupt enabled
#define SDIO_MASK_TXFIFOHEIE_Pos	(14U)
#define SDIO_MASK_TXFIFOHEIE_Msk	(0x1U << SDIO_MASK_TXFIFOHEIE_Pos)	//  0x00004000
#define SDIO_MASK_TXFIFOHEIE		SDIO_MASK_TXFIFOHEIE_Msk			// Tx FIFO Half Empty interrupt Enable
#define SDIO_MASK_RXFIFOHFIE_Pos	(15U)
#define SDIO_MASK_RXFIFOHFIE_Msk	(0x1U << SDIO_MASK_RXFIFOHFIE_Pos)	//  0x00008000
#define SDIO_MASK_RXFIFOHFIE		SDIO_MASK_RXFIFOHFIE_Msk			// Rx FIFO Half Full interrupt Enable
#define SDIO_MASK_TXFIFOFIE_Pos		(16U)
#define SDIO_MASK_TXFIFOFIE_Msk		(0x1U << SDIO_MASK_TXFIFOFIE_Pos)	//  0x00010000
#define SDIO_MASK_TXFIFOFIE		SDIO_MASK_TXFIFOFIE_Msk			// Tx FIFO Full interrupt Enable
#define SDIO_MASK_RXFIFOFIE_Pos		(17U)
#define SDIO_MASK_RXFIFOFIE_Msk		(0x1U << SDIO_MASK_RXFIFOFIE_Pos)	//  0x00020000
#define SDIO_MASK_RXFIFOFIE		SDIO_MASK_RXFIFOFIE_Msk			// Rx FIFO Full interrupt Enable
#define SDIO_MASK_TXFIFOEIE_Pos		(18U)
#define SDIO_MASK_TXFIFOEIE_Msk		(0x1U << SDIO_MASK_TXFIFOEIE_Pos)	//  0x00040000
#define SDIO_MASK_TXFIFOEIE		SDIO_MASK_TXFIFOEIE_Msk			// Tx FIFO Empty interrupt Enable
#define SDIO_MASK_RXFIFOEIE_Pos		(19U)
#define SDIO_MASK_RXFIFOEIE_Msk		(0x1U << SDIO_MASK_RXFIFOEIE_Pos)	//  0x00080000
#define SDIO_MASK_RXFIFOEIE		SDIO_MASK_RXFIFOEIE_Msk			// Rx FIFO Empty interrupt Enable
#define SDIO_MASK_TXDAVLIE_Pos		(20U)
#define SDIO_MASK_TXDAVLIE_Msk		(0x1U << SDIO_MASK_TXDAVLIE_Pos)			// 0x00100000
#define SDIO_MASK_TXDAVLIE		SDIO_MASK_TXDAVLIE_Msk			// Data available in Tx FIFO interrupt Enable
#define SDIO_MASK_RXDAVLIE_Pos		(21U)
#define SDIO_MASK_RXDAVLIE_Msk		(0x1U << SDIO_MASK_RXDAVLIE_Pos)			// 0x00200000
#define SDIO_MASK_RXDAVLIE		SDIO_MASK_RXDAVLIE_Msk			// Data available in Rx FIFO interrupt Enable
#define SDIO_MASK_SDIOITIE_Pos		(22U)
#define SDIO_MASK_SDIOITIE_Msk		(0x1U << SDIO_MASK_SDIOITIE_Pos)			// 0x00400000
#define SDIO_MASK_SDIOITIE		SDIO_MASK_SDIOITIE_Msk			// SDIO Mode Interrupt Received interrupt Enable
#define SDIO_MASK_CEATAENDIE_Pos	(23U)
#define SDIO_MASK_CEATAENDIE_Msk	(0x1U << SDIO_MASK_CEATAENDIE_Pos)	//  0x00800000
#define SDIO_MASK_CEATAENDIE		SDIO_MASK_CEATAENDIE_Msk			// CE-ATA command completion signal received Interrupt Enable

//  Bit definition for SDIO_FIFOCNT register
#define SDIO_FIFOCNT_FIFOCOUNT_Pos	(0U)
#define SDIO_FIFOCNT_FIFOCOUNT_Msk	(0xFFFFFFU << SDIO_FIFOCNT_FIFOCOUNT_Pos)	//  0x00FFFFFF
#define SDIO_FIFOCNT_FIFOCOUNT		SDIO_FIFOCNT_FIFOCOUNT_Msk			// Remaining number of words to be written to or read from the FIFO

//  Bit definition for SDIO_FIFO register
#define SDIO_FIFO_FIFODATA_Pos		(0U)
#define SDIO_FIFO_FIFODATA_Msk		(0xFFFFFFFFU << SDIO_FIFO_FIFODATA_Pos)	//  0xFFFFFFFF
#define SDIO_FIFO_FIFODATA		SDIO_FIFO_FIFODATA_Msk			// Receive and transmit FIFO data

// Serial Peripheral Interface

// Specific device feature definitions (not present on all devices in the STM32F4 serie)

#define  SPI_I2S_SUPPORT			// I2S support
#define  SPI_I2S_FULLDUPLEX_SUPPORT			// I2S Full-Duplex support
//  Bit definition for SPI_CR1 register
#define SPI_CR1_CPHA_Pos		(0U)
#define SPI_CR1_CPHA_Msk		(0x1U << SPI_CR1_CPHA_Pos)			// 0x00000001
#define SPI_CR1_CPHA			SPI_CR1_CPHA_Msk			// Clock Phase
#define SPI_CR1_CPOL_Pos		(1U)
#define SPI_CR1_CPOL_Msk		(0x1U << SPI_CR1_CPOL_Pos)			// 0x00000002
#define SPI_CR1_CPOL			SPI_CR1_CPOL_Msk			// Clock Polarity
#define SPI_CR1_MSTR_Pos		(2U)
#define SPI_CR1_MSTR_Msk		(0x1U << SPI_CR1_MSTR_Pos)			// 0x00000004
#define SPI_CR1_MSTR			SPI_CR1_MSTR_Msk			// Master Selection

#define SPI_CR1_BR_Pos		(3U)
#define SPI_CR1_BR_Msk		(0x7U << SPI_CR1_BR_Pos)			// 0x00000038
#define SPI_CR1_BR			SPI_CR1_BR_Msk			// BR[2:0] bits (Baud Rate Control)
#define SPI_CR1_BR_0			(0x1U << SPI_CR1_BR_Pos)			// 0x00000008
#define SPI_CR1_BR_1			(0x2U << SPI_CR1_BR_Pos)			// 0x00000010
#define SPI_CR1_BR_2			(0x4U << SPI_CR1_BR_Pos)			// 0x00000020

#define SPI_CR1_SPE_Pos		(6U)
#define SPI_CR1_SPE_Msk		(0x1U << SPI_CR1_SPE_Pos)			// 0x00000040
#define SPI_CR1_SPE			SPI_CR1_SPE_Msk			// SPI Enable
#define SPI_CR1_LSBFIRST_Pos		(7U)
#define SPI_CR1_LSBFIRST_Msk		(0x1U << SPI_CR1_LSBFIRST_Pos)			// 0x00000080
#define SPI_CR1_LSBFIRST		SPI_CR1_LSBFIRST_Msk			// Frame Format
#define SPI_CR1_SSI_Pos		(8U)
#define SPI_CR1_SSI_Msk		(0x1U << SPI_CR1_SSI_Pos)			// 0x00000100
#define SPI_CR1_SSI			SPI_CR1_SSI_Msk			// Internal slave select
#define SPI_CR1_SSM_Pos		(9U)
#define SPI_CR1_SSM_Msk		(0x1U << SPI_CR1_SSM_Pos)			// 0x00000200
#define SPI_CR1_SSM			SPI_CR1_SSM_Msk			// Software slave management
#define SPI_CR1_RXONLY_Pos		(10U)
#define SPI_CR1_RXONLY_Msk		(0x1U << SPI_CR1_RXONLY_Pos)			// 0x00000400
#define SPI_CR1_RXONLY		SPI_CR1_RXONLY_Msk			// Receive only
#define SPI_CR1_DFF_Pos		(11U)
#define SPI_CR1_DFF_Msk		(0x1U << SPI_CR1_DFF_Pos)			// 0x00000800
#define SPI_CR1_DFF			SPI_CR1_DFF_Msk			// Data Frame Format
#define SPI_CR1_CRCNEXT_Pos		(12U)
#define SPI_CR1_CRCNEXT_Msk		(0x1U << SPI_CR1_CRCNEXT_Pos)			// 0x00001000
#define SPI_CR1_CRCNEXT		SPI_CR1_CRCNEXT_Msk			// Transmit CRC next
#define SPI_CR1_CRCEN_Pos		(13U)
#define SPI_CR1_CRCEN_Msk		(0x1U << SPI_CR1_CRCEN_Pos)			// 0x00002000
#define SPI_CR1_CRCEN		SPI_CR1_CRCEN_Msk			// Hardware CRC calculation enable
#define SPI_CR1_BIDIOE_Pos		(14U)
#define SPI_CR1_BIDIOE_Msk		(0x1U << SPI_CR1_BIDIOE_Pos)			// 0x00004000
#define SPI_CR1_BIDIOE		SPI_CR1_BIDIOE_Msk			// Output enable in bidirectional mode
#define SPI_CR1_BIDIMODE_Pos		(15U)
#define SPI_CR1_BIDIMODE_Msk		(0x1U << SPI_CR1_BIDIMODE_Pos)			// 0x00008000
#define SPI_CR1_BIDIMODE		SPI_CR1_BIDIMODE_Msk			// Bidirectional data mode enable

//  Bit definition for SPI_CR2 register
#define SPI_CR2_RXDMAEN_Pos		(0U)
#define SPI_CR2_RXDMAEN_Msk		(0x1U << SPI_CR2_RXDMAEN_Pos)			// 0x00000001
#define SPI_CR2_RXDMAEN		SPI_CR2_RXDMAEN_Msk			// Rx Buffer DMA Enable
#define SPI_CR2_TXDMAEN_Pos		(1U)
#define SPI_CR2_TXDMAEN_Msk		(0x1U << SPI_CR2_TXDMAEN_Pos)			// 0x00000002
#define SPI_CR2_TXDMAEN		SPI_CR2_TXDMAEN_Msk			// Tx Buffer DMA Enable
#define SPI_CR2_SSOE_Pos		(2U)
#define SPI_CR2_SSOE_Msk		(0x1U << SPI_CR2_SSOE_Pos)			// 0x00000004
#define SPI_CR2_SSOE			SPI_CR2_SSOE_Msk			// SS Output Enable
#define SPI_CR2_FRF_Pos		(4U)
#define SPI_CR2_FRF_Msk		(0x1U << SPI_CR2_FRF_Pos)			// 0x00000010
#define SPI_CR2_FRF			SPI_CR2_FRF_Msk			// Frame Format
#define SPI_CR2_ERRIE_Pos		(5U)
#define SPI_CR2_ERRIE_Msk		(0x1U << SPI_CR2_ERRIE_Pos)			// 0x00000020
#define SPI_CR2_ERRIE		SPI_CR2_ERRIE_Msk			// Error Interrupt Enable
#define SPI_CR2_RXNEIE_Pos		(6U)
#define SPI_CR2_RXNEIE_Msk		(0x1U << SPI_CR2_RXNEIE_Pos)			// 0x00000040
#define SPI_CR2_RXNEIE		SPI_CR2_RXNEIE_Msk			// RX buffer Not Empty Interrupt Enable
#define SPI_CR2_TXEIE_Pos		(7U)
#define SPI_CR2_TXEIE_Msk		(0x1U << SPI_CR2_TXEIE_Pos)			// 0x00000080
#define SPI_CR2_TXEIE		SPI_CR2_TXEIE_Msk			// Tx buffer Empty Interrupt Enable

//  Bit definition for SPI_SR register
#define SPI_SR_RXNE_Pos		(0U)
#define SPI_SR_RXNE_Msk		(0x1U << SPI_SR_RXNE_Pos)			// 0x00000001
#define SPI_SR_RXNE			SPI_SR_RXNE_Msk			// Receive buffer Not Empty
#define SPI_SR_TXE_Pos		(1U)
#define SPI_SR_TXE_Msk		(0x1U << SPI_SR_TXE_Pos)			// 0x00000002
#define SPI_SR_TXE			SPI_SR_TXE_Msk			// Transmit buffer Empty
#define SPI_SR_CHSIDE_Pos		(2U)
#define SPI_SR_CHSIDE_Msk		(0x1U << SPI_SR_CHSIDE_Pos)			// 0x00000004
#define SPI_SR_CHSIDE		SPI_SR_CHSIDE_Msk			// Channel side
#define SPI_SR_UDR_Pos		(3U)
#define SPI_SR_UDR_Msk		(0x1U << SPI_SR_UDR_Pos)			// 0x00000008
#define SPI_SR_UDR			SPI_SR_UDR_Msk			// Underrun flag
#define SPI_SR_CRCERR_Pos		(4U)
#define SPI_SR_CRCERR_Msk		(0x1U << SPI_SR_CRCERR_Pos)			// 0x00000010
#define SPI_SR_CRCERR		SPI_SR_CRCERR_Msk			// CRC Error flag
#define SPI_SR_MODF_Pos		(5U)
#define SPI_SR_MODF_Msk		(0x1U << SPI_SR_MODF_Pos)			// 0x00000020
#define SPI_SR_MODF			SPI_SR_MODF_Msk			// Mode fault
#define SPI_SR_OVR_Pos		(6U)
#define SPI_SR_OVR_Msk		(0x1U << SPI_SR_OVR_Pos)			// 0x00000040
#define SPI_SR_OVR			SPI_SR_OVR_Msk			// Overrun flag
#define SPI_SR_BSY_Pos		(7U)
#define SPI_SR_BSY_Msk		(0x1U << SPI_SR_BSY_Pos)			// 0x00000080
#define SPI_SR_BSY			SPI_SR_BSY_Msk			// Busy flag
#define SPI_SR_FRE_Pos		(8U)
#define SPI_SR_FRE_Msk		(0x1U << SPI_SR_FRE_Pos)			// 0x00000100
#define SPI_SR_FRE			SPI_SR_FRE_Msk			// Frame format error flag

//  Bit definition for SPI_DR register
#define SPI_DR_DR_Pos		(0U)
#define SPI_DR_DR_Msk		(0xFFFFU << SPI_DR_DR_Pos)			// 0x0000FFFF
#define SPI_DR_DR			SPI_DR_DR_Msk			// Data Register

//  Bit definition for SPI_CRCPR register
#define SPI_CRCPR_CRCPOLY_Pos	(0U)
#define SPI_CRCPR_CRCPOLY_Msk	(0xFFFFU << SPI_CRCPR_CRCPOLY_Pos)			// 0x0000FFFF
#define SPI_CRCPR_CRCPOLY		SPI_CRCPR_CRCPOLY_Msk			// CRC polynomial register

//  Bit definition for SPI_RXCRCR register
#define SPI_RXCRCR_RXCRC_Pos		(0U)
#define SPI_RXCRCR_RXCRC_Msk		(0xFFFFU << SPI_RXCRCR_RXCRC_Pos)			// 0x0000FFFF
#define SPI_RXCRCR_RXCRC		SPI_RXCRCR_RXCRC_Msk			// Rx CRC Register

//  Bit definition for SPI_TXCRCR register
#define SPI_TXCRCR_TXCRC_Pos		(0U)
#define SPI_TXCRCR_TXCRC_Msk		(0xFFFFU << SPI_TXCRCR_TXCRC_Pos)			// 0x0000FFFF
#define SPI_TXCRCR_TXCRC		SPI_TXCRCR_TXCRC_Msk			// Tx CRC Register

//  Bit definition for SPI_I2SCFGR register
#define SPI_I2SCFGR_CHLEN_Pos	(0U)
#define SPI_I2SCFGR_CHLEN_Msk	(0x1U << SPI_I2SCFGR_CHLEN_Pos)			// 0x00000001
#define SPI_I2SCFGR_CHLEN		SPI_I2SCFGR_CHLEN_Msk			// Channel length (number of bits per audio channel)

#define SPI_I2SCFGR_DATLEN_Pos	(1U)
#define SPI_I2SCFGR_DATLEN_Msk	(0x3U << SPI_I2SCFGR_DATLEN_Pos)			// 0x00000006
#define SPI_I2SCFGR_DATLEN		SPI_I2SCFGR_DATLEN_Msk			// DATLEN[1:0] bits (Data length to be transferred)
#define SPI_I2SCFGR_DATLEN_0		(0x1U << SPI_I2SCFGR_DATLEN_Pos)			// 0x00000002
#define SPI_I2SCFGR_DATLEN_1		(0x2U << SPI_I2SCFGR_DATLEN_Pos)			// 0x00000004

#define SPI_I2SCFGR_CKPOL_Pos	(3U)
#define SPI_I2SCFGR_CKPOL_Msk	(0x1U << SPI_I2SCFGR_CKPOL_Pos)			// 0x00000008
#define SPI_I2SCFGR_CKPOL		SPI_I2SCFGR_CKPOL_Msk			// steady state clock polarity

#define SPI_I2SCFGR_I2SSTD_Pos	(4U)
#define SPI_I2SCFGR_I2SSTD_Msk	(0x3U << SPI_I2SCFGR_I2SSTD_Pos)			// 0x00000030
#define SPI_I2SCFGR_I2SSTD		SPI_I2SCFGR_I2SSTD_Msk			// I2SSTD[1:0] bits (I2S standard selection)
#define SPI_I2SCFGR_I2SSTD_0		(0x1U << SPI_I2SCFGR_I2SSTD_Pos)			// 0x00000010
#define SPI_I2SCFGR_I2SSTD_1		(0x2U << SPI_I2SCFGR_I2SSTD_Pos)			// 0x00000020

#define SPI_I2SCFGR_PCMSYNC_Pos	(7U)
#define SPI_I2SCFGR_PCMSYNC_Msk	(0x1U << SPI_I2SCFGR_PCMSYNC_Pos)			// 0x00000080
#define SPI_I2SCFGR_PCMSYNC		SPI_I2SCFGR_PCMSYNC_Msk			// PCM frame synchronization

#define SPI_I2SCFGR_I2SCFG_Pos	(8U)
#define SPI_I2SCFGR_I2SCFG_Msk	(0x3U << SPI_I2SCFGR_I2SCFG_Pos)			// 0x00000300
#define SPI_I2SCFGR_I2SCFG		SPI_I2SCFGR_I2SCFG_Msk			// I2SCFG[1:0] bits (I2S configuration mode)
#define SPI_I2SCFGR_I2SCFG_0		(0x1U << SPI_I2SCFGR_I2SCFG_Pos)			// 0x00000100
#define SPI_I2SCFGR_I2SCFG_1		(0x2U << SPI_I2SCFGR_I2SCFG_Pos)			// 0x00000200

#define SPI_I2SCFGR_I2SE_Pos		(10U)
#define SPI_I2SCFGR_I2SE_Msk		(0x1U << SPI_I2SCFGR_I2SE_Pos)			// 0x00000400
#define SPI_I2SCFGR_I2SE		SPI_I2SCFGR_I2SE_Msk			// I2S Enable
#define SPI_I2SCFGR_I2SMOD_Pos	(11U)
#define SPI_I2SCFGR_I2SMOD_Msk	(0x1U << SPI_I2SCFGR_I2SMOD_Pos)			// 0x00000800
#define SPI_I2SCFGR_I2SMOD		SPI_I2SCFGR_I2SMOD_Msk			// I2S mode selection

//  Bit definition for SPI_I2SPR register
#define SPI_I2SPR_I2SDIV_Pos		(0U)
#define SPI_I2SPR_I2SDIV_Msk		(0xFFU << SPI_I2SPR_I2SDIV_Pos)			// 0x000000FF
#define SPI_I2SPR_I2SDIV		SPI_I2SPR_I2SDIV_Msk			// I2S Linear prescaler
#define SPI_I2SPR_ODD_Pos		(8U)
#define SPI_I2SPR_ODD_Msk		(0x1U << SPI_I2SPR_ODD_Pos)			// 0x00000100
#define SPI_I2SPR_ODD		SPI_I2SPR_ODD_Msk			// Odd factor for the prescaler
#define SPI_I2SPR_MCKOE_Pos		(9U)
#define SPI_I2SPR_MCKOE_Msk		(0x1U << SPI_I2SPR_MCKOE_Pos)			// 0x00000200
#define SPI_I2SPR_MCKOE		SPI_I2SPR_MCKOE_Msk			// Master Clock Output Enable



// SYSCFG


//  Bit definition for SYSCFG_MEMRMP register
#define SYSCFG_MEMRMP_MEM_MODE_Pos		(0U)
#define SYSCFG_MEMRMP_MEM_MODE_Msk		(0x3U << SYSCFG_MEMRMP_MEM_MODE_Pos)	//  0x00000003
#define SYSCFG_MEMRMP_MEM_MODE		SYSCFG_MEMRMP_MEM_MODE_Msk			// SYSCFG_Memory Remap Config
#define SYSCFG_MEMRMP_MEM_MODE_0		(0x1U << SYSCFG_MEMRMP_MEM_MODE_Pos)	//  0x00000001
#define SYSCFG_MEMRMP_MEM_MODE_1		(0x2U << SYSCFG_MEMRMP_MEM_MODE_Pos)	//  0x00000002
//  Bit definition for SYSCFG_PMC register
#define SYSCFG_PMC_ADC1DC2_Pos		(16U)
#define SYSCFG_PMC_ADC1DC2_Msk		(0x1U << SYSCFG_PMC_ADC1DC2_Pos)	//  0x00010000
#define SYSCFG_PMC_ADC1DC2			SYSCFG_PMC_ADC1DC2_Msk			// Refer to AN4073 on how to use this bit

//  Bit definition for SYSCFG_EXTICR1 register
#define SYSCFG_EXTICR1_EXTI0_Pos		(0U)
#define SYSCFG_EXTICR1_EXTI0_Msk		(0xFU << SYSCFG_EXTICR1_EXTI0_Pos)	//  0x0000000F
#define SYSCFG_EXTICR1_EXTI0			SYSCFG_EXTICR1_EXTI0_Msk			// EXTI 0 configuration
#define SYSCFG_EXTICR1_EXTI1_Pos		(4U)
#define SYSCFG_EXTICR1_EXTI1_Msk		(0xFU << SYSCFG_EXTICR1_EXTI1_Pos)	//  0x000000F0
#define SYSCFG_EXTICR1_EXTI1			SYSCFG_EXTICR1_EXTI1_Msk			// EXTI 1 configuration
#define SYSCFG_EXTICR1_EXTI2_Pos		(8U)
#define SYSCFG_EXTICR1_EXTI2_Msk		(0xFU << SYSCFG_EXTICR1_EXTI2_Pos)	//  0x00000F00
#define SYSCFG_EXTICR1_EXTI2			SYSCFG_EXTICR1_EXTI2_Msk			// EXTI 2 configuration
#define SYSCFG_EXTICR1_EXTI3_Pos		(12U)
#define SYSCFG_EXTICR1_EXTI3_Msk		(0xFU << SYSCFG_EXTICR1_EXTI3_Pos)	//  0x0000F000
#define SYSCFG_EXTICR1_EXTI3			SYSCFG_EXTICR1_EXTI3_Msk			// EXTI 3 configuration

// EXTI0 configuration
#define SYSCFG_EXTICR1_EXTI0_PA		0x0000U			// PA[0] pin
#define SYSCFG_EXTICR1_EXTI0_PB		0x0001U			// PB[0] pin
#define SYSCFG_EXTICR1_EXTI0_PC		0x0002U			// PC[0] pin
#define SYSCFG_EXTICR1_EXTI0_PD		0x0003U			// PD[0] pin
#define SYSCFG_EXTICR1_EXTI0_PE		0x0004U			// PE[0] pin
#define SYSCFG_EXTICR1_EXTI0_PH		0x0007U			// PH[0] pin

// EXTI1 configuration
#define SYSCFG_EXTICR1_EXTI1_PA		0x0000U			// PA[1] pin
#define SYSCFG_EXTICR1_EXTI1_PB		0x0010U			// PB[1] pin
#define SYSCFG_EXTICR1_EXTI1_PC		0x0020U			// PC[1] pin
#define SYSCFG_EXTICR1_EXTI1_PD		0x0030U			// PD[1] pin
#define SYSCFG_EXTICR1_EXTI1_PE		0x0040U			// PE[1] pin
#define SYSCFG_EXTICR1_EXTI1_PH		0x0070U			// PH[1] pin

// EXTI2 configuration
#define SYSCFG_EXTICR1_EXTI2_PA		0x0000U			// PA[2] pin
#define SYSCFG_EXTICR1_EXTI2_PB		0x0100U			// PB[2] pin
#define SYSCFG_EXTICR1_EXTI2_PC		0x0200U			// PC[2] pin
#define SYSCFG_EXTICR1_EXTI2_PD		0x0300U			// PD[2] pin
#define SYSCFG_EXTICR1_EXTI2_PE		0x0400U			// PE[2] pin
#define SYSCFG_EXTICR1_EXTI2_PH		0x0700U			// PH[2] pin

// EXTI3 configuration
#define SYSCFG_EXTICR1_EXTI3_PA		0x0000U			// PA[3] pin
#define SYSCFG_EXTICR1_EXTI3_PB		0x1000U			// PB[3] pin
#define SYSCFG_EXTICR1_EXTI3_PC		0x2000U			// PC[3] pin
#define SYSCFG_EXTICR1_EXTI3_PD		0x3000U			// PD[3] pin
#define SYSCFG_EXTICR1_EXTI3_PE		0x4000U			// PE[3] pin
#define SYSCFG_EXTICR1_EXTI3_PH		0x7000U			// PH[3] pin

//  Bit definition for SYSCFG_EXTICR2 register
#define SYSCFG_EXTICR2_EXTI4_Pos		(0U)
#define SYSCFG_EXTICR2_EXTI4_Msk		(0xFU << SYSCFG_EXTICR2_EXTI4_Pos)	//  0x0000000F
#define SYSCFG_EXTICR2_EXTI4			SYSCFG_EXTICR2_EXTI4_Msk			// EXTI 4 configuration
#define SYSCFG_EXTICR2_EXTI5_Pos		(4U)
#define SYSCFG_EXTICR2_EXTI5_Msk		(0xFU << SYSCFG_EXTICR2_EXTI5_Pos)	//  0x000000F0
#define SYSCFG_EXTICR2_EXTI5			SYSCFG_EXTICR2_EXTI5_Msk			// EXTI 5 configuration
#define SYSCFG_EXTICR2_EXTI6_Pos		(8U)
#define SYSCFG_EXTICR2_EXTI6_Msk		(0xFU << SYSCFG_EXTICR2_EXTI6_Pos)	//  0x00000F00
#define SYSCFG_EXTICR2_EXTI6			SYSCFG_EXTICR2_EXTI6_Msk			// EXTI 6 configuration
#define SYSCFG_EXTICR2_EXTI7_Pos		(12U)
#define SYSCFG_EXTICR2_EXTI7_Msk		(0xFU << SYSCFG_EXTICR2_EXTI7_Pos)	//  0x0000F000
#define SYSCFG_EXTICR2_EXTI7			SYSCFG_EXTICR2_EXTI7_Msk			// EXTI 7 configuration

// EXTI4 configuration
#define SYSCFG_EXTICR2_EXTI4_PA		0x0000U			// PA[4] pin
#define SYSCFG_EXTICR2_EXTI4_PB		0x0001U			// PB[4] pin
#define SYSCFG_EXTICR2_EXTI4_PC		0x0002U			// PC[4] pin
#define SYSCFG_EXTICR2_EXTI4_PD		0x0003U			// PD[4] pin
#define SYSCFG_EXTICR2_EXTI4_PE		0x0004U			// PE[4] pin
#define SYSCFG_EXTICR2_EXTI4_PH		0x0007U			// PH[4] pin

// EXTI5 configuration
#define SYSCFG_EXTICR2_EXTI5_PA		0x0000U			// PA[5] pin
#define SYSCFG_EXTICR2_EXTI5_PB		0x0010U			// PB[5] pin
#define SYSCFG_EXTICR2_EXTI5_PC		0x0020U			// PC[5] pin
#define SYSCFG_EXTICR2_EXTI5_PD		0x0030U			// PD[5] pin
#define SYSCFG_EXTICR2_EXTI5_PE		0x0040U			// PE[5] pin
#define SYSCFG_EXTICR2_EXTI5_PH		0x0070U			// PH[5] pin

// EXTI6 configuration
#define SYSCFG_EXTICR2_EXTI6_PA		0x0000U			// PA[6] pin
#define SYSCFG_EXTICR2_EXTI6_PB		0x0100U			// PB[6] pin
#define SYSCFG_EXTICR2_EXTI6_PC		0x0200U			// PC[6] pin
#define SYSCFG_EXTICR2_EXTI6_PD		0x0300U			// PD[6] pin
#define SYSCFG_EXTICR2_EXTI6_PE		0x0400U			// PE[6] pin
#define SYSCFG_EXTICR2_EXTI6_PH		0x0700U			// PH[6] pin

// EXTI7 configuration
#define SYSCFG_EXTICR2_EXTI7_PA		0x0000U			// PA[7] pin
#define SYSCFG_EXTICR2_EXTI7_PB		0x1000U			// PB[7] pin
#define SYSCFG_EXTICR2_EXTI7_PC		0x2000U			// PC[7] pin
#define SYSCFG_EXTICR2_EXTI7_PD		0x3000U			// PD[7] pin
#define SYSCFG_EXTICR2_EXTI7_PE		0x4000U			// PE[7] pin
#define SYSCFG_EXTICR2_EXTI7_PH		0x7000U			// PH[7] pin

//  Bit definition for SYSCFG_EXTICR3 register
#define SYSCFG_EXTICR3_EXTI8_Pos		(0U)
#define SYSCFG_EXTICR3_EXTI8_Msk		(0xFU << SYSCFG_EXTICR3_EXTI8_Pos)	//  0x0000000F
#define SYSCFG_EXTICR3_EXTI8			SYSCFG_EXTICR3_EXTI8_Msk			// EXTI 8 configuration
#define SYSCFG_EXTICR3_EXTI9_Pos		(4U)
#define SYSCFG_EXTICR3_EXTI9_Msk		(0xFU << SYSCFG_EXTICR3_EXTI9_Pos)	//  0x000000F0
#define SYSCFG_EXTICR3_EXTI9			SYSCFG_EXTICR3_EXTI9_Msk			// EXTI 9 configuration
#define SYSCFG_EXTICR3_EXTI10_Pos		(8U)
#define SYSCFG_EXTICR3_EXTI10_Msk		(0xFU << SYSCFG_EXTICR3_EXTI10_Pos)	//  0x00000F00
#define SYSCFG_EXTICR3_EXTI10			SYSCFG_EXTICR3_EXTI10_Msk			// EXTI 10 configuration
#define SYSCFG_EXTICR3_EXTI11_Pos		(12U)
#define SYSCFG_EXTICR3_EXTI11_Msk		(0xFU << SYSCFG_EXTICR3_EXTI11_Pos)	//  0x0000F000
#define SYSCFG_EXTICR3_EXTI11			SYSCFG_EXTICR3_EXTI11_Msk			// EXTI 11 configuration

// EXTI8 configuration
#define SYSCFG_EXTICR3_EXTI8_PA		0x0000U			// PA[8] pin
#define SYSCFG_EXTICR3_EXTI8_PB		0x0001U			// PB[8] pin
#define SYSCFG_EXTICR3_EXTI8_PC		0x0002U			// PC[8] pin
#define SYSCFG_EXTICR3_EXTI8_PD		0x0003U			// PD[8] pin
#define SYSCFG_EXTICR3_EXTI8_PE		0x0004U			// PE[8] pin
#define SYSCFG_EXTICR3_EXTI8_PH		0x0007U			// PH[8] pin

// EXTI9 configuration
#define SYSCFG_EXTICR3_EXTI9_PA		0x0000U			// PA[9] pin
#define SYSCFG_EXTICR3_EXTI9_PB		0x0010U			// PB[9] pin
#define SYSCFG_EXTICR3_EXTI9_PC		0x0020U			// PC[9] pin
#define SYSCFG_EXTICR3_EXTI9_PD		0x0030U			// PD[9] pin
#define SYSCFG_EXTICR3_EXTI9_PE		0x0040U			// PE[9] pin
#define SYSCFG_EXTICR3_EXTI9_PH		0x0070U			// PH[9] pin

// EXTI10 configuration
#define SYSCFG_EXTICR3_EXTI10_PA		0x0000U			// PA[10] pin
#define SYSCFG_EXTICR3_EXTI10_PB		0x0100U			// PB[10] pin
#define SYSCFG_EXTICR3_EXTI10_PC		0x0200U			// PC[10] pin
#define SYSCFG_EXTICR3_EXTI10_PD		0x0300U			// PD[10] pin
#define SYSCFG_EXTICR3_EXTI10_PE		0x0400U			// PE[10] pin
#define SYSCFG_EXTICR3_EXTI10_PH		0x0700U			// PH[10] pin

// EXTI11 configuration
#define SYSCFG_EXTICR3_EXTI11_PA		0x0000U			// PA[11] pin
#define SYSCFG_EXTICR3_EXTI11_PB		0x1000U			// PB[11] pin
#define SYSCFG_EXTICR3_EXTI11_PC		0x2000U			// PC[11] pin
#define SYSCFG_EXTICR3_EXTI11_PD		0x3000U			// PD[11] pin
#define SYSCFG_EXTICR3_EXTI11_PE		0x4000U			// PE[11] pin
#define SYSCFG_EXTICR3_EXTI11_PH		0x7000U			// PH[11] pin

//  Bit definition for SYSCFG_EXTICR4 register
#define SYSCFG_EXTICR4_EXTI12_Pos		(0U)
#define SYSCFG_EXTICR4_EXTI12_Msk		(0xFU << SYSCFG_EXTICR4_EXTI12_Pos)	//  0x0000000F
#define SYSCFG_EXTICR4_EXTI12			SYSCFG_EXTICR4_EXTI12_Msk			// EXTI 12 configuration
#define SYSCFG_EXTICR4_EXTI13_Pos		(4U)
#define SYSCFG_EXTICR4_EXTI13_Msk		(0xFU << SYSCFG_EXTICR4_EXTI13_Pos)	//  0x000000F0
#define SYSCFG_EXTICR4_EXTI13			SYSCFG_EXTICR4_EXTI13_Msk			// EXTI 13 configuration
#define SYSCFG_EXTICR4_EXTI14_Pos		(8U)
#define SYSCFG_EXTICR4_EXTI14_Msk		(0xFU << SYSCFG_EXTICR4_EXTI14_Pos)	//  0x00000F00
#define SYSCFG_EXTICR4_EXTI14			SYSCFG_EXTICR4_EXTI14_Msk			// EXTI 14 configuration
#define SYSCFG_EXTICR4_EXTI15_Pos		(12U)
#define SYSCFG_EXTICR4_EXTI15_Msk		(0xFU << SYSCFG_EXTICR4_EXTI15_Pos)	//  0x0000F000
#define SYSCFG_EXTICR4_EXTI15			SYSCFG_EXTICR4_EXTI15_Msk			// EXTI 15 configuration

// EXTI12 configuration
#define SYSCFG_EXTICR4_EXTI12_PA		0x0000U			// PA[12] pin
#define SYSCFG_EXTICR4_EXTI12_PB		0x0001U			// PB[12] pin
#define SYSCFG_EXTICR4_EXTI12_PC		0x0002U			// PC[12] pin
#define SYSCFG_EXTICR4_EXTI12_PD		0x0003U			// PD[12] pin
#define SYSCFG_EXTICR4_EXTI12_PE		0x0004U			// PE[12] pin
#define SYSCFG_EXTICR4_EXTI12_PH		0x0007U			// PH[12] pin

// EXTI13 configuration
#define SYSCFG_EXTICR4_EXTI13_PA		0x0000U			// PA[13] pin
#define SYSCFG_EXTICR4_EXTI13_PB		0x0010U			// PB[13] pin
#define SYSCFG_EXTICR4_EXTI13_PC		0x0020U			// PC[13] pin
#define SYSCFG_EXTICR4_EXTI13_PD		0x0030U			// PD[13] pin
#define SYSCFG_EXTICR4_EXTI13_PE		0x0040U			// PE[13] pin
#define SYSCFG_EXTICR4_EXTI13_PH		0x0070U			// PH[13] pin

// EXTI14 configuration
#define SYSCFG_EXTICR4_EXTI14_PA		0x0000U			// PA[14] pin
#define SYSCFG_EXTICR4_EXTI14_PB		0x0100U			// PB[14] pin
#define SYSCFG_EXTICR4_EXTI14_PC		0x0200U			// PC[14] pin
#define SYSCFG_EXTICR4_EXTI14_PD		0x0300U			// PD[14] pin
#define SYSCFG_EXTICR4_EXTI14_PE		0x0400U			// PE[14] pin
#define SYSCFG_EXTICR4_EXTI14_PH		0x0700U			// PH[14] pin

// EXTI15 configuration
#define SYSCFG_EXTICR4_EXTI15_PA		0x0000U			// PA[15] pin
#define SYSCFG_EXTICR4_EXTI15_PB		0x1000U			// PB[15] pin
#define SYSCFG_EXTICR4_EXTI15_PC		0x2000U			// PC[15] pin
#define SYSCFG_EXTICR4_EXTI15_PD		0x3000U			// PD[15] pin
#define SYSCFG_EXTICR4_EXTI15_PE		0x4000U			// PE[15] pin
#define SYSCFG_EXTICR4_EXTI15_PH		0x7000U			// PH[15] pin

//  Bit definition for SYSCFG_CMPCR register
#define SYSCFG_CMPCR_CMP_PD_Pos		(0U)
#define SYSCFG_CMPCR_CMP_PD_Msk		(0x1U << SYSCFG_CMPCR_CMP_PD_Pos)	//  0x00000001
#define SYSCFG_CMPCR_CMP_PD			SYSCFG_CMPCR_CMP_PD_Msk			// Compensation cell ready flag
#define SYSCFG_CMPCR_READY_Pos		(8U)
#define SYSCFG_CMPCR_READY_Msk		(0x1U << SYSCFG_CMPCR_READY_Pos)	//  0x00000100
#define SYSCFG_CMPCR_READY			SYSCFG_CMPCR_READY_Msk			// Compensation cell power-down

// TIM

//  Bit definition for TIM_CR1 register
#define TIM_CR1_CEN_Pos		(0U)
#define TIM_CR1_CEN_Msk		(0x1U << TIM_CR1_CEN_Pos)			// 0x00000001
#define TIM_CR1_CEN		TIM_CR1_CEN_Msk			// Counter enable
#define TIM_CR1_UDIS_Pos		(1U)
#define TIM_CR1_UDIS_Msk		(0x1U << TIM_CR1_UDIS_Pos)			// 0x00000002
#define TIM_CR1_UDIS		TIM_CR1_UDIS_Msk			// Update disable
#define TIM_CR1_URS_Pos		(2U)
#define TIM_CR1_URS_Msk		(0x1U << TIM_CR1_URS_Pos)			// 0x00000004
#define TIM_CR1_URS		TIM_CR1_URS_Msk			// Update request source
#define TIM_CR1_OPM_Pos		(3U)
#define TIM_CR1_OPM_Msk		(0x1U << TIM_CR1_OPM_Pos)			// 0x00000008
#define TIM_CR1_OPM		TIM_CR1_OPM_Msk			// One pulse mode
#define TIM_CR1_DIR_Pos		(4U)
#define TIM_CR1_DIR_Msk		(0x1U << TIM_CR1_DIR_Pos)			// 0x00000010
#define TIM_CR1_DIR		TIM_CR1_DIR_Msk			// Direction

#define TIM_CR1_CMS_Pos		(5U)
#define TIM_CR1_CMS_Msk		(0x3U << TIM_CR1_CMS_Pos)			// 0x00000060
#define TIM_CR1_CMS		TIM_CR1_CMS_Msk			// CMS[1:0] bits (Center-aligned mode selection)
#define TIM_CR1_CMS_0		(0x1U << TIM_CR1_CMS_Pos)			// 0x0020
#define TIM_CR1_CMS_1		(0x2U << TIM_CR1_CMS_Pos)			// 0x0040

#define TIM_CR1_ARPE_Pos		(7U)
#define TIM_CR1_ARPE_Msk		(0x1U << TIM_CR1_ARPE_Pos)			// 0x00000080
#define TIM_CR1_ARPE		TIM_CR1_ARPE_Msk			// Auto-reload preload enable

#define TIM_CR1_CKD_Pos		(8U)
#define TIM_CR1_CKD_Msk		(0x3U << TIM_CR1_CKD_Pos)			// 0x00000300
#define TIM_CR1_CKD		TIM_CR1_CKD_Msk			// CKD[1:0] bits (clock division)
#define TIM_CR1_CKD_0		(0x1U << TIM_CR1_CKD_Pos)			// 0x0100
#define TIM_CR1_CKD_1		(0x2U << TIM_CR1_CKD_Pos)			// 0x0200

//  Bit definition for TIM_CR2 register
#define TIM_CR2_CCPC_Pos		(0U)
#define TIM_CR2_CCPC_Msk		(0x1U << TIM_CR2_CCPC_Pos)			// 0x00000001
#define TIM_CR2_CCPC		TIM_CR2_CCPC_Msk			// Capture/Compare Preloaded Control
#define TIM_CR2_CCUS_Pos		(2U)
#define TIM_CR2_CCUS_Msk		(0x1U << TIM_CR2_CCUS_Pos)			// 0x00000004
#define TIM_CR2_CCUS		TIM_CR2_CCUS_Msk			// Capture/Compare Control Update Selection
#define TIM_CR2_CCDS_Pos		(3U)
#define TIM_CR2_CCDS_Msk		(0x1U << TIM_CR2_CCDS_Pos)			// 0x00000008
#define TIM_CR2_CCDS		TIM_CR2_CCDS_Msk			// Capture/Compare DMA Selection

#define TIM_CR2_MMS_Pos		(4U)
#define TIM_CR2_MMS_Msk		(0x7U << TIM_CR2_MMS_Pos)			// 0x00000070
#define TIM_CR2_MMS		TIM_CR2_MMS_Msk			// MMS[2:0] bits (Master Mode Selection)
#define TIM_CR2_MMS_0		(0x1U << TIM_CR2_MMS_Pos)			// 0x0010
#define TIM_CR2_MMS_1		(0x2U << TIM_CR2_MMS_Pos)			// 0x0020
#define TIM_CR2_MMS_2		(0x4U << TIM_CR2_MMS_Pos)			// 0x0040

#define TIM_CR2_TI1S_Pos		(7U)
#define TIM_CR2_TI1S_Msk		(0x1U << TIM_CR2_TI1S_Pos)			// 0x00000080
#define TIM_CR2_TI1S		TIM_CR2_TI1S_Msk			// TI1 Selection
#define TIM_CR2_OIS1_Pos		(8U)
#define TIM_CR2_OIS1_Msk		(0x1U << TIM_CR2_OIS1_Pos)			// 0x00000100
#define TIM_CR2_OIS1		TIM_CR2_OIS1_Msk			// Output Idle state 1 (OC1 output)
#define TIM_CR2_OIS1N_Pos		(9U)
#define TIM_CR2_OIS1N_Msk		(0x1U << TIM_CR2_OIS1N_Pos)			// 0x00000200
#define TIM_CR2_OIS1N		TIM_CR2_OIS1N_Msk			// Output Idle state 1 (OC1N output)
#define TIM_CR2_OIS2_Pos		(10U)
#define TIM_CR2_OIS2_Msk		(0x1U << TIM_CR2_OIS2_Pos)			// 0x00000400
#define TIM_CR2_OIS2		TIM_CR2_OIS2_Msk			// Output Idle state 2 (OC2 output)
#define TIM_CR2_OIS2N_Pos		(11U)
#define TIM_CR2_OIS2N_Msk		(0x1U << TIM_CR2_OIS2N_Pos)			// 0x00000800
#define TIM_CR2_OIS2N		TIM_CR2_OIS2N_Msk			// Output Idle state 2 (OC2N output)
#define TIM_CR2_OIS3_Pos		(12U)
#define TIM_CR2_OIS3_Msk		(0x1U << TIM_CR2_OIS3_Pos)			// 0x00001000
#define TIM_CR2_OIS3		TIM_CR2_OIS3_Msk			// Output Idle state 3 (OC3 output)
#define TIM_CR2_OIS3N_Pos		(13U)
#define TIM_CR2_OIS3N_Msk		(0x1U << TIM_CR2_OIS3N_Pos)			// 0x00002000
#define TIM_CR2_OIS3N		TIM_CR2_OIS3N_Msk			// Output Idle state 3 (OC3N output)
#define TIM_CR2_OIS4_Pos		(14U)
#define TIM_CR2_OIS4_Msk		(0x1U << TIM_CR2_OIS4_Pos)			// 0x00004000
#define TIM_CR2_OIS4		TIM_CR2_OIS4_Msk			// Output Idle state 4 (OC4 output)

//  Bit definition for TIM_SMCR register
#define TIM_SMCR_SMS_Pos		(0U)
#define TIM_SMCR_SMS_Msk		(0x7U << TIM_SMCR_SMS_Pos)			// 0x00000007
#define TIM_SMCR_SMS		TIM_SMCR_SMS_Msk			// SMS[2:0] bits (Slave mode selection)
#define TIM_SMCR_SMS_0		(0x1U << TIM_SMCR_SMS_Pos)			// 0x0001
#define TIM_SMCR_SMS_1		(0x2U << TIM_SMCR_SMS_Pos)			// 0x0002
#define TIM_SMCR_SMS_2		(0x4U << TIM_SMCR_SMS_Pos)			// 0x0004

#define TIM_SMCR_TS_Pos		(4U)
#define TIM_SMCR_TS_Msk		(0x7U << TIM_SMCR_TS_Pos)			// 0x00000070
#define TIM_SMCR_TS		TIM_SMCR_TS_Msk			// TS[2:0] bits (Trigger selection)
#define TIM_SMCR_TS_0		(0x1U << TIM_SMCR_TS_Pos)			// 0x0010
#define TIM_SMCR_TS_1		(0x2U << TIM_SMCR_TS_Pos)			// 0x0020
#define TIM_SMCR_TS_2		(0x4U << TIM_SMCR_TS_Pos)			// 0x0040

#define TIM_SMCR_MSM_Pos		(7U)
#define TIM_SMCR_MSM_Msk		(0x1U << TIM_SMCR_MSM_Pos)			// 0x00000080
#define TIM_SMCR_MSM		TIM_SMCR_MSM_Msk			// Master/slave mode

#define TIM_SMCR_ETF_Pos		(8U)
#define TIM_SMCR_ETF_Msk		(0xFU << TIM_SMCR_ETF_Pos)			// 0x00000F00
#define TIM_SMCR_ETF		TIM_SMCR_ETF_Msk			// ETF[3:0] bits (External trigger filter)
#define TIM_SMCR_ETF_0		(0x1U << TIM_SMCR_ETF_Pos)			// 0x0100
#define TIM_SMCR_ETF_1		(0x2U << TIM_SMCR_ETF_Pos)			// 0x0200
#define TIM_SMCR_ETF_2		(0x4U << TIM_SMCR_ETF_Pos)			// 0x0400
#define TIM_SMCR_ETF_3		(0x8U << TIM_SMCR_ETF_Pos)			// 0x0800

#define TIM_SMCR_ETPS_Pos		(12U)
#define TIM_SMCR_ETPS_Msk		(0x3U << TIM_SMCR_ETPS_Pos)			// 0x00003000
#define TIM_SMCR_ETPS		TIM_SMCR_ETPS_Msk			// ETPS[1:0] bits (External trigger prescaler)
#define TIM_SMCR_ETPS_0		(0x1U << TIM_SMCR_ETPS_Pos)			// 0x1000
#define TIM_SMCR_ETPS_1		(0x2U << TIM_SMCR_ETPS_Pos)			// 0x2000

#define TIM_SMCR_ECE_Pos		(14U)
#define TIM_SMCR_ECE_Msk		(0x1U << TIM_SMCR_ECE_Pos)			// 0x00004000
#define TIM_SMCR_ECE		TIM_SMCR_ECE_Msk			// External clock enable
#define TIM_SMCR_ETP_Pos		(15U)
#define TIM_SMCR_ETP_Msk		(0x1U << TIM_SMCR_ETP_Pos)			// 0x00008000
#define TIM_SMCR_ETP		TIM_SMCR_ETP_Msk			// External trigger polarity

//  Bit definition for TIM_DIER register
#define TIM_DIER_UIE_Pos		(0U)
#define TIM_DIER_UIE_Msk		(0x1U << TIM_DIER_UIE_Pos)			// 0x00000001
#define TIM_DIER_UIE		TIM_DIER_UIE_Msk			// Update interrupt enable
#define TIM_DIER_CC1IE_Pos		(1U)
#define TIM_DIER_CC1IE_Msk		(0x1U << TIM_DIER_CC1IE_Pos)			// 0x00000002
#define TIM_DIER_CC1IE		TIM_DIER_CC1IE_Msk			// Capture/Compare 1 interrupt enable
#define TIM_DIER_CC2IE_Pos		(2U)
#define TIM_DIER_CC2IE_Msk		(0x1U << TIM_DIER_CC2IE_Pos)			// 0x00000004
#define TIM_DIER_CC2IE		TIM_DIER_CC2IE_Msk			// Capture/Compare 2 interrupt enable
#define TIM_DIER_CC3IE_Pos		(3U)
#define TIM_DIER_CC3IE_Msk		(0x1U << TIM_DIER_CC3IE_Pos)			// 0x00000008
#define TIM_DIER_CC3IE		TIM_DIER_CC3IE_Msk			// Capture/Compare 3 interrupt enable
#define TIM_DIER_CC4IE_Pos		(4U)
#define TIM_DIER_CC4IE_Msk		(0x1U << TIM_DIER_CC4IE_Pos)			// 0x00000010
#define TIM_DIER_CC4IE		TIM_DIER_CC4IE_Msk			// Capture/Compare 4 interrupt enable
#define TIM_DIER_COMIE_Pos		(5U)
#define TIM_DIER_COMIE_Msk		(0x1U << TIM_DIER_COMIE_Pos)			// 0x00000020
#define TIM_DIER_COMIE		TIM_DIER_COMIE_Msk			// COM interrupt enable
#define TIM_DIER_TIE_Pos		(6U)
#define TIM_DIER_TIE_Msk		(0x1U << TIM_DIER_TIE_Pos)			// 0x00000040
#define TIM_DIER_TIE		TIM_DIER_TIE_Msk			// Trigger interrupt enable
#define TIM_DIER_BIE_Pos		(7U)
#define TIM_DIER_BIE_Msk		(0x1U << TIM_DIER_BIE_Pos)			// 0x00000080
#define TIM_DIER_BIE		TIM_DIER_BIE_Msk			// Break interrupt enable
#define TIM_DIER_UDE_Pos		(8U)
#define TIM_DIER_UDE_Msk		(0x1U << TIM_DIER_UDE_Pos)			// 0x00000100
#define TIM_DIER_UDE		TIM_DIER_UDE_Msk			// Update DMA request enable
#define TIM_DIER_CC1DE_Pos		(9U)
#define TIM_DIER_CC1DE_Msk		(0x1U << TIM_DIER_CC1DE_Pos)			// 0x00000200
#define TIM_DIER_CC1DE		TIM_DIER_CC1DE_Msk			// Capture/Compare 1 DMA request enable
#define TIM_DIER_CC2DE_Pos		(10U)
#define TIM_DIER_CC2DE_Msk		(0x1U << TIM_DIER_CC2DE_Pos)			// 0x00000400
#define TIM_DIER_CC2DE		TIM_DIER_CC2DE_Msk			// Capture/Compare 2 DMA request enable
#define TIM_DIER_CC3DE_Pos		(11U)
#define TIM_DIER_CC3DE_Msk		(0x1U << TIM_DIER_CC3DE_Pos)			// 0x00000800
#define TIM_DIER_CC3DE		TIM_DIER_CC3DE_Msk			// Capture/Compare 3 DMA request enable
#define TIM_DIER_CC4DE_Pos		(12U)
#define TIM_DIER_CC4DE_Msk		(0x1U << TIM_DIER_CC4DE_Pos)			// 0x00001000
#define TIM_DIER_CC4DE		TIM_DIER_CC4DE_Msk			// Capture/Compare 4 DMA request enable
#define TIM_DIER_COMDE_Pos		(13U)
#define TIM_DIER_COMDE_Msk		(0x1U << TIM_DIER_COMDE_Pos)			// 0x00002000
#define TIM_DIER_COMDE		TIM_DIER_COMDE_Msk			// COM DMA request enable
#define TIM_DIER_TDE_Pos		(14U)
#define TIM_DIER_TDE_Msk		(0x1U << TIM_DIER_TDE_Pos)			// 0x00004000
#define TIM_DIER_TDE		TIM_DIER_TDE_Msk			// Trigger DMA request enable

//  Bit definition for TIM_SR register
#define TIM_SR_UIF_Pos		(0U)
#define TIM_SR_UIF_Msk		(0x1U << TIM_SR_UIF_Pos)			// 0x00000001
#define TIM_SR_UIF			TIM_SR_UIF_Msk			// Update interrupt Flag
#define TIM_SR_CC1IF_Pos		(1U)
#define TIM_SR_CC1IF_Msk		(0x1U << TIM_SR_CC1IF_Pos)			// 0x00000002
#define TIM_SR_CC1IF		TIM_SR_CC1IF_Msk			// Capture/Compare 1 interrupt Flag
#define TIM_SR_CC2IF_Pos		(2U)
#define TIM_SR_CC2IF_Msk		(0x1U << TIM_SR_CC2IF_Pos)			// 0x00000004
#define TIM_SR_CC2IF		TIM_SR_CC2IF_Msk			// Capture/Compare 2 interrupt Flag
#define TIM_SR_CC3IF_Pos		(3U)
#define TIM_SR_CC3IF_Msk		(0x1U << TIM_SR_CC3IF_Pos)			// 0x00000008
#define TIM_SR_CC3IF		TIM_SR_CC3IF_Msk			// Capture/Compare 3 interrupt Flag
#define TIM_SR_CC4IF_Pos		(4U)
#define TIM_SR_CC4IF_Msk		(0x1U << TIM_SR_CC4IF_Pos)			// 0x00000010
#define TIM_SR_CC4IF		TIM_SR_CC4IF_Msk			// Capture/Compare 4 interrupt Flag
#define TIM_SR_COMIF_Pos		(5U)
#define TIM_SR_COMIF_Msk		(0x1U << TIM_SR_COMIF_Pos)			// 0x00000020
#define TIM_SR_COMIF		TIM_SR_COMIF_Msk			// COM interrupt Flag
#define TIM_SR_TIF_Pos		(6U)
#define TIM_SR_TIF_Msk		(0x1U << TIM_SR_TIF_Pos)			// 0x00000040
#define TIM_SR_TIF			TIM_SR_TIF_Msk			// Trigger interrupt Flag
#define TIM_SR_BIF_Pos		(7U)
#define TIM_SR_BIF_Msk		(0x1U << TIM_SR_BIF_Pos)			// 0x00000080
#define TIM_SR_BIF			TIM_SR_BIF_Msk			// Break interrupt Flag
#define TIM_SR_CC1OF_Pos		(9U)
#define TIM_SR_CC1OF_Msk		(0x1U << TIM_SR_CC1OF_Pos)			// 0x00000200
#define TIM_SR_CC1OF		TIM_SR_CC1OF_Msk			// Capture/Compare 1 Overcapture Flag
#define TIM_SR_CC2OF_Pos		(10U)
#define TIM_SR_CC2OF_Msk		(0x1U << TIM_SR_CC2OF_Pos)			// 0x00000400
#define TIM_SR_CC2OF		TIM_SR_CC2OF_Msk			// Capture/Compare 2 Overcapture Flag
#define TIM_SR_CC3OF_Pos		(11U)
#define TIM_SR_CC3OF_Msk		(0x1U << TIM_SR_CC3OF_Pos)			// 0x00000800
#define TIM_SR_CC3OF		TIM_SR_CC3OF_Msk			// Capture/Compare 3 Overcapture Flag
#define TIM_SR_CC4OF_Pos		(12U)
#define TIM_SR_CC4OF_Msk		(0x1U << TIM_SR_CC4OF_Pos)			// 0x00001000
#define TIM_SR_CC4OF		TIM_SR_CC4OF_Msk			// Capture/Compare 4 Overcapture Flag

//  Bit definition for TIM_EGR register
#define TIM_EGR_UG_Pos		(0U)
#define TIM_EGR_UG_Msk		(0x1U << TIM_EGR_UG_Pos)			// 0x00000001
#define TIM_EGR_UG			TIM_EGR_UG_Msk			// Update Generation
#define TIM_EGR_CC1G_Pos		(1U)
#define TIM_EGR_CC1G_Msk		(0x1U << TIM_EGR_CC1G_Pos)			// 0x00000002
#define TIM_EGR_CC1G		TIM_EGR_CC1G_Msk			// Capture/Compare 1 Generation
#define TIM_EGR_CC2G_Pos		(2U)
#define TIM_EGR_CC2G_Msk		(0x1U << TIM_EGR_CC2G_Pos)			// 0x00000004
#define TIM_EGR_CC2G		TIM_EGR_CC2G_Msk			// Capture/Compare 2 Generation
#define TIM_EGR_CC3G_Pos		(3U)
#define TIM_EGR_CC3G_Msk		(0x1U << TIM_EGR_CC3G_Pos)			// 0x00000008
#define TIM_EGR_CC3G		TIM_EGR_CC3G_Msk			// Capture/Compare 3 Generation
#define TIM_EGR_CC4G_Pos		(4U)
#define TIM_EGR_CC4G_Msk		(0x1U << TIM_EGR_CC4G_Pos)			// 0x00000010
#define TIM_EGR_CC4G		TIM_EGR_CC4G_Msk			// Capture/Compare 4 Generation
#define TIM_EGR_COMG_Pos		(5U)
#define TIM_EGR_COMG_Msk		(0x1U << TIM_EGR_COMG_Pos)			// 0x00000020
#define TIM_EGR_COMG		TIM_EGR_COMG_Msk			// Capture/Compare Control Update Generation
#define TIM_EGR_TG_Pos		(6U)
#define TIM_EGR_TG_Msk		(0x1U << TIM_EGR_TG_Pos)			// 0x00000040
#define TIM_EGR_TG			TIM_EGR_TG_Msk			// Trigger Generation
#define TIM_EGR_BG_Pos		(7U)
#define TIM_EGR_BG_Msk		(0x1U << TIM_EGR_BG_Pos)			// 0x00000080
#define TIM_EGR_BG			TIM_EGR_BG_Msk			// Break Generation

//  Bit definition for TIM_CCMR1 register
#define TIM_CCMR1_CC1S_Pos		(0U)
#define TIM_CCMR1_CC1S_Msk		(0x3U << TIM_CCMR1_CC1S_Pos)			// 0x00000003
#define TIM_CCMR1_CC1S		TIM_CCMR1_CC1S_Msk			// CC1S[1:0] bits (Capture/Compare 1 Selection)
#define TIM_CCMR1_CC1S_0		(0x1U << TIM_CCMR1_CC1S_Pos)			// 0x0001
#define TIM_CCMR1_CC1S_1		(0x2U << TIM_CCMR1_CC1S_Pos)			// 0x0002

#define TIM_CCMR1_OC1FE_Pos	(2U)
#define TIM_CCMR1_OC1FE_Msk	(0x1U << TIM_CCMR1_OC1FE_Pos)			// 0x00000004
#define TIM_CCMR1_OC1FE		TIM_CCMR1_OC1FE_Msk			// Output Compare 1 Fast enable
#define TIM_CCMR1_OC1PE_Pos	(3U)
#define TIM_CCMR1_OC1PE_Msk	(0x1U << TIM_CCMR1_OC1PE_Pos)			// 0x00000008
#define TIM_CCMR1_OC1PE		TIM_CCMR1_OC1PE_Msk			// Output Compare 1 Preload enable

#define TIM_CCMR1_OC1M_Pos		(4U)
#define TIM_CCMR1_OC1M_Msk		(0x7U << TIM_CCMR1_OC1M_Pos)			// 0x00000070
#define TIM_CCMR1_OC1M		TIM_CCMR1_OC1M_Msk			// OC1M[2:0] bits (Output Compare 1 Mode)
#define TIM_CCMR1_OC1M_0		(0x1U << TIM_CCMR1_OC1M_Pos)			// 0x0010
#define TIM_CCMR1_OC1M_1		(0x2U << TIM_CCMR1_OC1M_Pos)			// 0x0020
#define TIM_CCMR1_OC1M_2		(0x4U << TIM_CCMR1_OC1M_Pos)			// 0x0040

#define TIM_CCMR1_OC1CE_Pos	(7U)
#define TIM_CCMR1_OC1CE_Msk	(0x1U << TIM_CCMR1_OC1CE_Pos)			// 0x00000080
#define TIM_CCMR1_OC1CE		TIM_CCMR1_OC1CE_Msk			// Output Compare 1Clear Enable

#define TIM_CCMR1_CC2S_Pos		(8U)
#define TIM_CCMR1_CC2S_Msk		(0x3U << TIM_CCMR1_CC2S_Pos)			// 0x00000300
#define TIM_CCMR1_CC2S		TIM_CCMR1_CC2S_Msk			// CC2S[1:0] bits (Capture/Compare 2 Selection)
#define TIM_CCMR1_CC2S_0		(0x1U << TIM_CCMR1_CC2S_Pos)			// 0x0100
#define TIM_CCMR1_CC2S_1		(0x2U << TIM_CCMR1_CC2S_Pos)			// 0x0200

#define TIM_CCMR1_OC2FE_Pos	(10U)
#define TIM_CCMR1_OC2FE_Msk	(0x1U << TIM_CCMR1_OC2FE_Pos)			// 0x00000400
#define TIM_CCMR1_OC2FE		TIM_CCMR1_OC2FE_Msk			// Output Compare 2 Fast enable
#define TIM_CCMR1_OC2PE_Pos	(11U)
#define TIM_CCMR1_OC2PE_Msk	(0x1U << TIM_CCMR1_OC2PE_Pos)			// 0x00000800
#define TIM_CCMR1_OC2PE		TIM_CCMR1_OC2PE_Msk			// Output Compare 2 Preload enable

#define TIM_CCMR1_OC2M_Pos		(12U)
#define TIM_CCMR1_OC2M_Msk		(0x7U << TIM_CCMR1_OC2M_Pos)			// 0x00007000
#define TIM_CCMR1_OC2M		TIM_CCMR1_OC2M_Msk			// OC2M[2:0] bits (Output Compare 2 Mode)
#define TIM_CCMR1_OC2M_0		(0x1U << TIM_CCMR1_OC2M_Pos)			// 0x1000
#define TIM_CCMR1_OC2M_1		(0x2U << TIM_CCMR1_OC2M_Pos)			// 0x2000
#define TIM_CCMR1_OC2M_2		(0x4U << TIM_CCMR1_OC2M_Pos)			// 0x4000

#define TIM_CCMR1_OC2CE_Pos	(15U)
#define TIM_CCMR1_OC2CE_Msk	(0x1U << TIM_CCMR1_OC2CE_Pos)			// 0x00008000
#define TIM_CCMR1_OC2CE		TIM_CCMR1_OC2CE_Msk			// Output Compare 2 Clear Enable

#define TIM_CCMR1_IC1PSC_Pos	(2U)
#define TIM_CCMR1_IC1PSC_Msk	(0x3U << TIM_CCMR1_IC1PSC_Pos)			// 0x0000000C
#define TIM_CCMR1_IC1PSC		TIM_CCMR1_IC1PSC_Msk			// IC1PSC[1:0] bits (Input Capture 1 Prescaler)
#define TIM_CCMR1_IC1PSC_0		(0x1U << TIM_CCMR1_IC1PSC_Pos)			// 0x0004
#define TIM_CCMR1_IC1PSC_1		(0x2U << TIM_CCMR1_IC1PSC_Pos)			// 0x0008

#define TIM_CCMR1_IC1F_Pos		(4U)
#define TIM_CCMR1_IC1F_Msk		(0xFU << TIM_CCMR1_IC1F_Pos)			// 0x000000F0
#define TIM_CCMR1_IC1F		TIM_CCMR1_IC1F_Msk			// IC1F[3:0] bits (Input Capture 1 Filter)
#define TIM_CCMR1_IC1F_0		(0x1U << TIM_CCMR1_IC1F_Pos)			// 0x0010
#define TIM_CCMR1_IC1F_1		(0x2U << TIM_CCMR1_IC1F_Pos)			// 0x0020
#define TIM_CCMR1_IC1F_2		(0x4U << TIM_CCMR1_IC1F_Pos)			// 0x0040
#define TIM_CCMR1_IC1F_3		(0x8U << TIM_CCMR1_IC1F_Pos)			// 0x0080

#define TIM_CCMR1_IC2PSC_Pos	(10U)
#define TIM_CCMR1_IC2PSC_Msk	(0x3U << TIM_CCMR1_IC2PSC_Pos)			// 0x00000C00
#define TIM_CCMR1_IC2PSC		TIM_CCMR1_IC2PSC_Msk			// IC2PSC[1:0] bits (Input Capture 2 Prescaler)
#define TIM_CCMR1_IC2PSC_0		(0x1U << TIM_CCMR1_IC2PSC_Pos)			// 0x0400
#define TIM_CCMR1_IC2PSC_1		(0x2U << TIM_CCMR1_IC2PSC_Pos)			// 0x0800

#define TIM_CCMR1_IC2F_Pos		(12U)
#define TIM_CCMR1_IC2F_Msk		(0xFU << TIM_CCMR1_IC2F_Pos)			// 0x0000F000
#define TIM_CCMR1_IC2F		TIM_CCMR1_IC2F_Msk			// IC2F[3:0] bits (Input Capture 2 Filter)
#define TIM_CCMR1_IC2F_0		(0x1U << TIM_CCMR1_IC2F_Pos)			// 0x1000
#define TIM_CCMR1_IC2F_1		(0x2U << TIM_CCMR1_IC2F_Pos)			// 0x2000
#define TIM_CCMR1_IC2F_2		(0x4U << TIM_CCMR1_IC2F_Pos)			// 0x4000
#define TIM_CCMR1_IC2F_3		(0x8U << TIM_CCMR1_IC2F_Pos)			// 0x8000

//  Bit definition for TIM_CCMR2 register
#define TIM_CCMR2_CC3S_Pos		(0U)
#define TIM_CCMR2_CC3S_Msk		(0x3U << TIM_CCMR2_CC3S_Pos)			// 0x00000003
#define TIM_CCMR2_CC3S		TIM_CCMR2_CC3S_Msk			// CC3S[1:0] bits (Capture/Compare 3 Selection)
#define TIM_CCMR2_CC3S_0		(0x1U << TIM_CCMR2_CC3S_Pos)			// 0x0001
#define TIM_CCMR2_CC3S_1		(0x2U << TIM_CCMR2_CC3S_Pos)			// 0x0002

#define TIM_CCMR2_OC3FE_Pos	(2U)
#define TIM_CCMR2_OC3FE_Msk	(0x1U << TIM_CCMR2_OC3FE_Pos)			// 0x00000004
#define TIM_CCMR2_OC3FE		TIM_CCMR2_OC3FE_Msk			// Output Compare 3 Fast enable
#define TIM_CCMR2_OC3PE_Pos	(3U)
#define TIM_CCMR2_OC3PE_Msk	(0x1U << TIM_CCMR2_OC3PE_Pos)			// 0x00000008
#define TIM_CCMR2_OC3PE		TIM_CCMR2_OC3PE_Msk			// Output Compare 3 Preload enable

#define TIM_CCMR2_OC3M_Pos		(4U)
#define TIM_CCMR2_OC3M_Msk		(0x7U << TIM_CCMR2_OC3M_Pos)			// 0x00000070
#define TIM_CCMR2_OC3M		TIM_CCMR2_OC3M_Msk			// OC3M[2:0] bits (Output Compare 3 Mode)
#define TIM_CCMR2_OC3M_0		(0x1U << TIM_CCMR2_OC3M_Pos)			// 0x0010
#define TIM_CCMR2_OC3M_1		(0x2U << TIM_CCMR2_OC3M_Pos)			// 0x0020
#define TIM_CCMR2_OC3M_2		(0x4U << TIM_CCMR2_OC3M_Pos)			// 0x0040

#define TIM_CCMR2_OC3CE_Pos	(7U)
#define TIM_CCMR2_OC3CE_Msk	(0x1U << TIM_CCMR2_OC3CE_Pos)			// 0x00000080
#define TIM_CCMR2_OC3CE		TIM_CCMR2_OC3CE_Msk			// Output Compare 3 Clear Enable

#define TIM_CCMR2_CC4S_Pos		(8U)
#define TIM_CCMR2_CC4S_Msk		(0x3U << TIM_CCMR2_CC4S_Pos)			// 0x00000300
#define TIM_CCMR2_CC4S		TIM_CCMR2_CC4S_Msk			// CC4S[1:0] bits (Capture/Compare 4 Selection)
#define TIM_CCMR2_CC4S_0		(0x1U << TIM_CCMR2_CC4S_Pos)			// 0x0100
#define TIM_CCMR2_CC4S_1		(0x2U << TIM_CCMR2_CC4S_Pos)			// 0x0200

#define TIM_CCMR2_OC4FE_Pos	(10U)
#define TIM_CCMR2_OC4FE_Msk	(0x1U << TIM_CCMR2_OC4FE_Pos)			// 0x00000400
#define TIM_CCMR2_OC4FE		TIM_CCMR2_OC4FE_Msk			// Output Compare 4 Fast enable
#define TIM_CCMR2_OC4PE_Pos	(11U)
#define TIM_CCMR2_OC4PE_Msk	(0x1U << TIM_CCMR2_OC4PE_Pos)			// 0x00000800
#define TIM_CCMR2_OC4PE		TIM_CCMR2_OC4PE_Msk			// Output Compare 4 Preload enable

#define TIM_CCMR2_OC4M_Pos		(12U)
#define TIM_CCMR2_OC4M_Msk		(0x7U << TIM_CCMR2_OC4M_Pos)			// 0x00007000
#define TIM_CCMR2_OC4M		TIM_CCMR2_OC4M_Msk			// OC4M[2:0] bits (Output Compare 4 Mode)
#define TIM_CCMR2_OC4M_0		(0x1U << TIM_CCMR2_OC4M_Pos)			// 0x1000
#define TIM_CCMR2_OC4M_1		(0x2U << TIM_CCMR2_OC4M_Pos)			// 0x2000
#define TIM_CCMR2_OC4M_2		(0x4U << TIM_CCMR2_OC4M_Pos)			// 0x4000

#define TIM_CCMR2_OC4CE_Pos	(15U)
#define TIM_CCMR2_OC4CE_Msk	(0x1U << TIM_CCMR2_OC4CE_Pos)			// 0x00008000
#define TIM_CCMR2_OC4CE		TIM_CCMR2_OC4CE_Msk			// Output Compare 4 Clear Enable

#define TIM_CCMR2_IC3PSC_Pos	(2U)
#define TIM_CCMR2_IC3PSC_Msk	(0x3U << TIM_CCMR2_IC3PSC_Pos)			// 0x0000000C
#define TIM_CCMR2_IC3PSC		TIM_CCMR2_IC3PSC_Msk			// IC3PSC[1:0] bits (Input Capture 3 Prescaler)
#define TIM_CCMR2_IC3PSC_0		(0x1U << TIM_CCMR2_IC3PSC_Pos)			// 0x0004
#define TIM_CCMR2_IC3PSC_1		(0x2U << TIM_CCMR2_IC3PSC_Pos)			// 0x0008

#define TIM_CCMR2_IC3F_Pos		(4U)
#define TIM_CCMR2_IC3F_Msk		(0xFU << TIM_CCMR2_IC3F_Pos)			// 0x000000F0
#define TIM_CCMR2_IC3F		TIM_CCMR2_IC3F_Msk			// IC3F[3:0] bits (Input Capture 3 Filter)
#define TIM_CCMR2_IC3F_0		(0x1U << TIM_CCMR2_IC3F_Pos)			// 0x0010
#define TIM_CCMR2_IC3F_1		(0x2U << TIM_CCMR2_IC3F_Pos)			// 0x0020
#define TIM_CCMR2_IC3F_2		(0x4U << TIM_CCMR2_IC3F_Pos)			// 0x0040
#define TIM_CCMR2_IC3F_3		(0x8U << TIM_CCMR2_IC3F_Pos)			// 0x0080

#define TIM_CCMR2_IC4PSC_Pos	(10U)
#define TIM_CCMR2_IC4PSC_Msk	(0x3U << TIM_CCMR2_IC4PSC_Pos)			// 0x00000C00
#define TIM_CCMR2_IC4PSC		TIM_CCMR2_IC4PSC_Msk			// IC4PSC[1:0] bits (Input Capture 4 Prescaler)
#define TIM_CCMR2_IC4PSC_0		(0x1U << TIM_CCMR2_IC4PSC_Pos)			// 0x0400
#define TIM_CCMR2_IC4PSC_1		(0x2U << TIM_CCMR2_IC4PSC_Pos)			// 0x0800

#define TIM_CCMR2_IC4F_Pos		(12U)
#define TIM_CCMR2_IC4F_Msk		(0xFU << TIM_CCMR2_IC4F_Pos)			// 0x0000F000
#define TIM_CCMR2_IC4F		TIM_CCMR2_IC4F_Msk			// IC4F[3:0] bits (Input Capture 4 Filter)
#define TIM_CCMR2_IC4F_0		(0x1U << TIM_CCMR2_IC4F_Pos)			// 0x1000
#define TIM_CCMR2_IC4F_1		(0x2U << TIM_CCMR2_IC4F_Pos)			// 0x2000
#define TIM_CCMR2_IC4F_2		(0x4U << TIM_CCMR2_IC4F_Pos)			// 0x4000
#define TIM_CCMR2_IC4F_3		(0x8U << TIM_CCMR2_IC4F_Pos)			// 0x8000

//  Bit definition for TIM_CCER register
#define TIM_CCER_CC1E_Pos		(0U)
#define TIM_CCER_CC1E_Msk		(0x1U << TIM_CCER_CC1E_Pos)			// 0x00000001
#define TIM_CCER_CC1E		TIM_CCER_CC1E_Msk			// Capture/Compare 1 output enable
#define TIM_CCER_CC1P_Pos		(1U)
#define TIM_CCER_CC1P_Msk		(0x1U << TIM_CCER_CC1P_Pos)			// 0x00000002
#define TIM_CCER_CC1P		TIM_CCER_CC1P_Msk			// Capture/Compare 1 output Polarity
#define TIM_CCER_CC1NE_Pos		(2U)
#define TIM_CCER_CC1NE_Msk		(0x1U << TIM_CCER_CC1NE_Pos)			// 0x00000004
#define TIM_CCER_CC1NE		TIM_CCER_CC1NE_Msk			// Capture/Compare 1 Complementary output enable
#define TIM_CCER_CC1NP_Pos		(3U)
#define TIM_CCER_CC1NP_Msk		(0x1U << TIM_CCER_CC1NP_Pos)			// 0x00000008
#define TIM_CCER_CC1NP		TIM_CCER_CC1NP_Msk			// Capture/Compare 1 Complementary output Polarity
#define TIM_CCER_CC2E_Pos		(4U)
#define TIM_CCER_CC2E_Msk		(0x1U << TIM_CCER_CC2E_Pos)			// 0x00000010
#define TIM_CCER_CC2E		TIM_CCER_CC2E_Msk			// Capture/Compare 2 output enable
#define TIM_CCER_CC2P_Pos		(5U)
#define TIM_CCER_CC2P_Msk		(0x1U << TIM_CCER_CC2P_Pos)			// 0x00000020
#define TIM_CCER_CC2P		TIM_CCER_CC2P_Msk			// Capture/Compare 2 output Polarity
#define TIM_CCER_CC2NE_Pos		(6U)
#define TIM_CCER_CC2NE_Msk		(0x1U << TIM_CCER_CC2NE_Pos)			// 0x00000040
#define TIM_CCER_CC2NE		TIM_CCER_CC2NE_Msk			// Capture/Compare 2 Complementary output enable
#define TIM_CCER_CC2NP_Pos		(7U)
#define TIM_CCER_CC2NP_Msk		(0x1U << TIM_CCER_CC2NP_Pos)			// 0x00000080
#define TIM_CCER_CC2NP		TIM_CCER_CC2NP_Msk			// Capture/Compare 2 Complementary output Polarity
#define TIM_CCER_CC3E_Pos		(8U)
#define TIM_CCER_CC3E_Msk		(0x1U << TIM_CCER_CC3E_Pos)			// 0x00000100
#define TIM_CCER_CC3E		TIM_CCER_CC3E_Msk			// Capture/Compare 3 output enable
#define TIM_CCER_CC3P_Pos		(9U)
#define TIM_CCER_CC3P_Msk		(0x1U << TIM_CCER_CC3P_Pos)			// 0x00000200
#define TIM_CCER_CC3P		TIM_CCER_CC3P_Msk			// Capture/Compare 3 output Polarity
#define TIM_CCER_CC3NE_Pos		(10U)
#define TIM_CCER_CC3NE_Msk		(0x1U << TIM_CCER_CC3NE_Pos)			// 0x00000400
#define TIM_CCER_CC3NE		TIM_CCER_CC3NE_Msk			// Capture/Compare 3 Complementary output enable
#define TIM_CCER_CC3NP_Pos		(11U)
#define TIM_CCER_CC3NP_Msk		(0x1U << TIM_CCER_CC3NP_Pos)			// 0x00000800
#define TIM_CCER_CC3NP		TIM_CCER_CC3NP_Msk			// Capture/Compare 3 Complementary output Polarity
#define TIM_CCER_CC4E_Pos		(12U)
#define TIM_CCER_CC4E_Msk		(0x1U << TIM_CCER_CC4E_Pos)			// 0x00001000
#define TIM_CCER_CC4E		TIM_CCER_CC4E_Msk			// Capture/Compare 4 output enable
#define TIM_CCER_CC4P_Pos		(13U)
#define TIM_CCER_CC4P_Msk		(0x1U << TIM_CCER_CC4P_Pos)			// 0x00002000
#define TIM_CCER_CC4P		TIM_CCER_CC4P_Msk			// Capture/Compare 4 output Polarity
#define TIM_CCER_CC4NP_Pos		(15U)
#define TIM_CCER_CC4NP_Msk		(0x1U << TIM_CCER_CC4NP_Pos)			// 0x00008000
#define TIM_CCER_CC4NP		TIM_CCER_CC4NP_Msk			// Capture/Compare 4 Complementary output Polarity

//  Bit definition for TIM_CNT register
#define TIM_CNT_CNT_Pos		(0U)
#define TIM_CNT_CNT_Msk		(0xFFFFU << TIM_CNT_CNT_Pos)			// 0x0000FFFF
#define TIM_CNT_CNT		TIM_CNT_CNT_Msk			// Counter Value

//  Bit definition for TIM_PSC register
#define TIM_PSC_PSC_Pos		(0U)
#define TIM_PSC_PSC_Msk		(0xFFFFU << TIM_PSC_PSC_Pos)			// 0x0000FFFF
#define TIM_PSC_PSC		TIM_PSC_PSC_Msk			// Prescaler Value

//  Bit definition for TIM_ARR register
#define TIM_ARR_ARR_Pos		(0U)
#define TIM_ARR_ARR_Msk		(0xFFFFU << TIM_ARR_ARR_Pos)			// 0x0000FFFF
#define TIM_ARR_ARR		TIM_ARR_ARR_Msk			// actual auto-reload Value

//  Bit definition for TIM_RCR register
#define TIM_RCR_REP_Pos		(0U)
#define TIM_RCR_REP_Msk		(0xFFU << TIM_RCR_REP_Pos)			// 0x000000FF
#define TIM_RCR_REP		TIM_RCR_REP_Msk			// Repetition Counter Value

//  Bit definition for TIM_CCR1 register
#define TIM_CCR1_CCR1_Pos		(0U)
#define TIM_CCR1_CCR1_Msk		(0xFFFFU << TIM_CCR1_CCR1_Pos)			// 0x0000FFFF
#define TIM_CCR1_CCR1		TIM_CCR1_CCR1_Msk			// Capture/Compare 1 Value

//  Bit definition for TIM_CCR2 register
#define TIM_CCR2_CCR2_Pos		(0U)
#define TIM_CCR2_CCR2_Msk		(0xFFFFU << TIM_CCR2_CCR2_Pos)			// 0x0000FFFF
#define TIM_CCR2_CCR2		TIM_CCR2_CCR2_Msk			// Capture/Compare 2 Value

//  Bit definition for TIM_CCR3 register
#define TIM_CCR3_CCR3_Pos		(0U)
#define TIM_CCR3_CCR3_Msk		(0xFFFFU << TIM_CCR3_CCR3_Pos)			// 0x0000FFFF
#define TIM_CCR3_CCR3		TIM_CCR3_CCR3_Msk			// Capture/Compare 3 Value

//  Bit definition for TIM_CCR4 register
#define TIM_CCR4_CCR4_Pos		(0U)
#define TIM_CCR4_CCR4_Msk		(0xFFFFU << TIM_CCR4_CCR4_Pos)			// 0x0000FFFF
#define TIM_CCR4_CCR4		TIM_CCR4_CCR4_Msk			// Capture/Compare 4 Value

//  Bit definition for TIM_BDTR register
#define TIM_BDTR_DTG_Pos		(0U)
#define TIM_BDTR_DTG_Msk		(0xFFU << TIM_BDTR_DTG_Pos)			// 0x000000FF
#define TIM_BDTR_DTG		TIM_BDTR_DTG_Msk			// DTG[0:7] bits (Dead-Time Generator set-up)
#define TIM_BDTR_DTG_0		(0x01U << TIM_BDTR_DTG_Pos)			// 0x0001
#define TIM_BDTR_DTG_1		(0x02U << TIM_BDTR_DTG_Pos)			// 0x0002
#define TIM_BDTR_DTG_2		(0x04U << TIM_BDTR_DTG_Pos)			// 0x0004
#define TIM_BDTR_DTG_3		(0x08U << TIM_BDTR_DTG_Pos)			// 0x0008
#define TIM_BDTR_DTG_4		(0x10U << TIM_BDTR_DTG_Pos)			// 0x0010
#define TIM_BDTR_DTG_5		(0x20U << TIM_BDTR_DTG_Pos)			// 0x0020
#define TIM_BDTR_DTG_6		(0x40U << TIM_BDTR_DTG_Pos)			// 0x0040
#define TIM_BDTR_DTG_7		(0x80U << TIM_BDTR_DTG_Pos)			// 0x0080

#define TIM_BDTR_LOCK_Pos		(8U)
#define TIM_BDTR_LOCK_Msk		(0x3U << TIM_BDTR_LOCK_Pos)			// 0x00000300
#define TIM_BDTR_LOCK		TIM_BDTR_LOCK_Msk			// LOCK[1:0] bits (Lock Configuration)
#define TIM_BDTR_LOCK_0		(0x1U << TIM_BDTR_LOCK_Pos)			// 0x0100
#define TIM_BDTR_LOCK_1		(0x2U << TIM_BDTR_LOCK_Pos)			// 0x0200

#define TIM_BDTR_OSSI_Pos		(10U)
#define TIM_BDTR_OSSI_Msk		(0x1U << TIM_BDTR_OSSI_Pos)			// 0x00000400
#define TIM_BDTR_OSSI		TIM_BDTR_OSSI_Msk			// Off-State Selection for Idle mode
#define TIM_BDTR_OSSR_Pos		(11U)
#define TIM_BDTR_OSSR_Msk		(0x1U << TIM_BDTR_OSSR_Pos)			// 0x00000800
#define TIM_BDTR_OSSR		TIM_BDTR_OSSR_Msk			// Off-State Selection for Run mode
#define TIM_BDTR_BKE_Pos		(12U)
#define TIM_BDTR_BKE_Msk		(0x1U << TIM_BDTR_BKE_Pos)			// 0x00001000
#define TIM_BDTR_BKE		TIM_BDTR_BKE_Msk			// Break enable
#define TIM_BDTR_BKP_Pos		(13U)
#define TIM_BDTR_BKP_Msk		(0x1U << TIM_BDTR_BKP_Pos)			// 0x00002000
#define TIM_BDTR_BKP		TIM_BDTR_BKP_Msk			// Break Polarity
#define TIM_BDTR_AOE_Pos		(14U)
#define TIM_BDTR_AOE_Msk		(0x1U << TIM_BDTR_AOE_Pos)			// 0x00004000
#define TIM_BDTR_AOE		TIM_BDTR_AOE_Msk			// Automatic Output enable
#define TIM_BDTR_MOE_Pos		(15U)
#define TIM_BDTR_MOE_Msk		(0x1U << TIM_BDTR_MOE_Pos)			// 0x00008000
#define TIM_BDTR_MOE		TIM_BDTR_MOE_Msk			// Main Output enable

//  Bit definition for TIM_DCR register
#define TIM_DCR_DBA_Pos		(0U)
#define TIM_DCR_DBA_Msk		(0x1FU << TIM_DCR_DBA_Pos)			// 0x0000001F
#define TIM_DCR_DBA		TIM_DCR_DBA_Msk			// DBA[4:0] bits (DMA Base Address)
#define TIM_DCR_DBA_0		(0x01U << TIM_DCR_DBA_Pos)			// 0x0001
#define TIM_DCR_DBA_1		(0x02U << TIM_DCR_DBA_Pos)			// 0x0002
#define TIM_DCR_DBA_2		(0x04U << TIM_DCR_DBA_Pos)			// 0x0004
#define TIM_DCR_DBA_3		(0x08U << TIM_DCR_DBA_Pos)			// 0x0008
#define TIM_DCR_DBA_4		(0x10U << TIM_DCR_DBA_Pos)			// 0x0010

#define TIM_DCR_DBL_Pos		(8U)
#define TIM_DCR_DBL_Msk		(0x1FU << TIM_DCR_DBL_Pos)			// 0x00001F00
#define TIM_DCR_DBL		TIM_DCR_DBL_Msk			// DBL[4:0] bits (DMA Burst Length)
#define TIM_DCR_DBL_0		(0x01U << TIM_DCR_DBL_Pos)			// 0x0100
#define TIM_DCR_DBL_1		(0x02U << TIM_DCR_DBL_Pos)			// 0x0200
#define TIM_DCR_DBL_2		(0x04U << TIM_DCR_DBL_Pos)			// 0x0400
#define TIM_DCR_DBL_3		(0x08U << TIM_DCR_DBL_Pos)			// 0x0800
#define TIM_DCR_DBL_4		(0x10U << TIM_DCR_DBL_Pos)			// 0x1000

//  Bit definition for TIM_DMAR register
#define TIM_DMAR_DMAB_Pos		(0U)
#define TIM_DMAR_DMAB_Msk		(0xFFFFU << TIM_DMAR_DMAB_Pos)			// 0x0000FFFF
#define TIM_DMAR_DMAB		TIM_DMAR_DMAB_Msk			// DMA register for burst accesses

//  Bit definition for TIM_OR register
#define TIM_OR_TI4_RMP_Pos		(6U)
#define TIM_OR_TI4_RMP_Msk		(0x3U << TIM_OR_TI4_RMP_Pos)			// 0x000000C0
#define TIM_OR_TI4_RMP		TIM_OR_TI4_RMP_Msk			// TI4_RMP[1:0] bits (TIM5 Input 4 remap)
#define TIM_OR_TI4_RMP_0		(0x1U << TIM_OR_TI4_RMP_Pos)			// 0x0040
#define TIM_OR_TI4_RMP_1		(0x2U << TIM_OR_TI4_RMP_Pos)			// 0x0080
#define TIM_OR_ITR1_RMP_Pos	(10U)
#define TIM_OR_ITR1_RMP_Msk	(0x3U << TIM_OR_ITR1_RMP_Pos)			// 0x00000C00
#define TIM_OR_ITR1_RMP		TIM_OR_ITR1_RMP_Msk			// ITR1_RMP[1:0] bits (TIM2 Internal trigger 1 remap)
#define TIM_OR_ITR1_RMP_0		(0x1U << TIM_OR_ITR1_RMP_Pos)			// 0x0400
#define TIM_OR_ITR1_RMP_1		(0x2U << TIM_OR_ITR1_RMP_Pos)			// 0x0800

// Universal Synchronous Asynchronous Receiver Transmitter

//  Bit definition for USART_SR register
#define USART_SR_PE_Pos		(0U)
#define USART_SR_PE_Msk		(0x1U << USART_SR_PE_Pos)			// 0x00000001
#define USART_SR_PE			USART_SR_PE_Msk			// Parity Error
#define USART_SR_FE_Pos		(1U)
#define USART_SR_FE_Msk		(0x1U << USART_SR_FE_Pos)			// 0x00000002
#define USART_SR_FE			USART_SR_FE_Msk			// Framing Error
#define USART_SR_NE_Pos		(2U)
#define USART_SR_NE_Msk		(0x1U << USART_SR_NE_Pos)			// 0x00000004
#define USART_SR_NE			USART_SR_NE_Msk			// Noise Error Flag
#define USART_SR_ORE_Pos		(3U)
#define USART_SR_ORE_Msk		(0x1U << USART_SR_ORE_Pos)			// 0x00000008
#define USART_SR_ORE			USART_SR_ORE_Msk			// OverRun Error
#define USART_SR_IDLE_Pos		(4U)
#define USART_SR_IDLE_Msk		(0x1U << USART_SR_IDLE_Pos)			// 0x00000010
#define USART_SR_IDLE			USART_SR_IDLE_Msk			// IDLE line detected
#define USART_SR_RXNE_Pos		(5U)
#define USART_SR_RXNE_Msk		(0x1U << USART_SR_RXNE_Pos)			// 0x00000020
#define USART_SR_RXNE			USART_SR_RXNE_Msk			// Read Data Register Not Empty
#define USART_SR_TC_Pos		(6U)
#define USART_SR_TC_Msk		(0x1U << USART_SR_TC_Pos)			// 0x00000040
#define USART_SR_TC			USART_SR_TC_Msk			// Transmission Complete
#define USART_SR_TXE_Pos		(7U)
#define USART_SR_TXE_Msk		(0x1U << USART_SR_TXE_Pos)			// 0x00000080
#define USART_SR_TXE			USART_SR_TXE_Msk			// Transmit Data Register Empty
#define USART_SR_LBD_Pos		(8U)
#define USART_SR_LBD_Msk		(0x1U << USART_SR_LBD_Pos)			// 0x00000100
#define USART_SR_LBD			USART_SR_LBD_Msk			// LIN Break Detection Flag
#define USART_SR_CTS_Pos		(9U)
#define USART_SR_CTS_Msk		(0x1U << USART_SR_CTS_Pos)			// 0x00000200
#define USART_SR_CTS			USART_SR_CTS_Msk			// CTS Flag

//  Bit definition for USART_DR register
#define USART_DR_DR_Pos		(0U)
#define USART_DR_DR_Msk		(0x1FFU << USART_DR_DR_Pos)			// 0x000001FF
#define USART_DR_DR			USART_DR_DR_Msk			// Data value

//  Bit definition for USART_BRR register
#define USART_BRR_DIV_Fraction_Pos	(0U)
#define USART_BRR_DIV_Fraction_Msk	(0xFU << USART_BRR_DIV_Fraction_Pos)	//  0x0000000F
#define USART_BRR_DIV_Fraction		USART_BRR_DIV_Fraction_Msk			// Fraction of USARTDIV
#define USART_BRR_DIV_Mantissa_Pos	(4U)
#define USART_BRR_DIV_Mantissa_Msk	(0xFFFU << USART_BRR_DIV_Mantissa_Pos)	//  0x0000FFF0
#define USART_BRR_DIV_Mantissa		USART_BRR_DIV_Mantissa_Msk			// Mantissa of USARTDIV

//  Bit definition for USART_CR1 register
#define USART_CR1_SBK_Pos		(0U)
#define USART_CR1_SBK_Msk		(0x1U << USART_CR1_SBK_Pos)			// 0x00000001
#define USART_CR1_SBK			USART_CR1_SBK_Msk			// Send Break
#define USART_CR1_RWU_Pos		(1U)
#define USART_CR1_RWU_Msk		(0x1U << USART_CR1_RWU_Pos)			// 0x00000002
#define USART_CR1_RWU			USART_CR1_RWU_Msk			// Receiver wakeup
#define USART_CR1_RE_Pos		(2U)
#define USART_CR1_RE_Msk		(0x1U << USART_CR1_RE_Pos)			// 0x00000004
#define USART_CR1_RE			USART_CR1_RE_Msk			// Receiver Enable
#define USART_CR1_TE_Pos		(3U)
#define USART_CR1_TE_Msk		(0x1U << USART_CR1_TE_Pos)			// 0x00000008
#define USART_CR1_TE			USART_CR1_TE_Msk			// Transmitter Enable
#define USART_CR1_IDLEIE_Pos		(4U)
#define USART_CR1_IDLEIE_Msk		(0x1U << USART_CR1_IDLEIE_Pos)			// 0x00000010
#define USART_CR1_IDLEIE		USART_CR1_IDLEIE_Msk			// IDLE Interrupt Enable
#define USART_CR1_RXNEIE_Pos		(5U)
#define USART_CR1_RXNEIE_Msk		(0x1U << USART_CR1_RXNEIE_Pos)			// 0x00000020
#define USART_CR1_RXNEIE		USART_CR1_RXNEIE_Msk			// RXNE Interrupt Enable
#define USART_CR1_TCIE_Pos		(6U)
#define USART_CR1_TCIE_Msk		(0x1U << USART_CR1_TCIE_Pos)			// 0x00000040
#define USART_CR1_TCIE			USART_CR1_TCIE_Msk			// Transmission Complete Interrupt Enable
#define USART_CR1_TXEIE_Pos		(7U)
#define USART_CR1_TXEIE_Msk		(0x1U << USART_CR1_TXEIE_Pos)			// 0x00000080
#define USART_CR1_TXEIE		USART_CR1_TXEIE_Msk			// PE Interrupt Enable
#define USART_CR1_PEIE_Pos		(8U)
#define USART_CR1_PEIE_Msk		(0x1U << USART_CR1_PEIE_Pos)			// 0x00000100
#define USART_CR1_PEIE			USART_CR1_PEIE_Msk			// PE Interrupt Enable
#define USART_CR1_PS_Pos		(9U)
#define USART_CR1_PS_Msk		(0x1U << USART_CR1_PS_Pos)			// 0x00000200
#define USART_CR1_PS			USART_CR1_PS_Msk			// Parity Selection
#define USART_CR1_PCE_Pos		(10U)
#define USART_CR1_PCE_Msk		(0x1U << USART_CR1_PCE_Pos)			// 0x00000400
#define USART_CR1_PCE			USART_CR1_PCE_Msk			// Parity Control Enable
#define USART_CR1_WAKE_Pos		(11U)
#define USART_CR1_WAKE_Msk		(0x1U << USART_CR1_WAKE_Pos)			// 0x00000800
#define USART_CR1_WAKE			USART_CR1_WAKE_Msk			// Wakeup method
#define USART_CR1_M_Pos		(12U)
#define USART_CR1_M_Msk		(0x1U << USART_CR1_M_Pos)			// 0x00001000
#define USART_CR1_M			USART_CR1_M_Msk			// Word length
#define USART_CR1_UE_Pos		(13U)
#define USART_CR1_UE_Msk		(0x1U << USART_CR1_UE_Pos)			// 0x00002000
#define USART_CR1_UE			USART_CR1_UE_Msk			// USART Enable
#define USART_CR1_OVER8_Pos		(15U)
#define USART_CR1_OVER8_Msk		(0x1U << USART_CR1_OVER8_Pos)			// 0x00008000
#define USART_CR1_OVER8		USART_CR1_OVER8_Msk			// USART Oversampling by 8 enable

//  Bit definition for USART_CR2 register
#define USART_CR2_ADD_Pos		(0U)
#define USART_CR2_ADD_Msk		(0xFU << USART_CR2_ADD_Pos)			// 0x0000000F
#define USART_CR2_ADD			USART_CR2_ADD_Msk			// Address of the USART node
#define USART_CR2_LBDL_Pos		(5U)
#define USART_CR2_LBDL_Msk		(0x1U << USART_CR2_LBDL_Pos)			// 0x00000020
#define USART_CR2_LBDL			USART_CR2_LBDL_Msk			// LIN Break Detection Length
#define USART_CR2_LBDIE_Pos		(6U)
#define USART_CR2_LBDIE_Msk		(0x1U << USART_CR2_LBDIE_Pos)			// 0x00000040
#define USART_CR2_LBDIE		USART_CR2_LBDIE_Msk			// LIN Break Detection Interrupt Enable
#define USART_CR2_LBCL_Pos		(8U)
#define USART_CR2_LBCL_Msk		(0x1U << USART_CR2_LBCL_Pos)			// 0x00000100
#define USART_CR2_LBCL			USART_CR2_LBCL_Msk			// Last Bit Clock pulse
#define USART_CR2_CPHA_Pos		(9U)
#define USART_CR2_CPHA_Msk		(0x1U << USART_CR2_CPHA_Pos)			// 0x00000200
#define USART_CR2_CPHA			USART_CR2_CPHA_Msk			// Clock Phase
#define USART_CR2_CPOL_Pos		(10U)
#define USART_CR2_CPOL_Msk		(0x1U << USART_CR2_CPOL_Pos)			// 0x00000400
#define USART_CR2_CPOL			USART_CR2_CPOL_Msk			// Clock Polarity
#define USART_CR2_CLKEN_Pos		(11U)
#define USART_CR2_CLKEN_Msk		(0x1U << USART_CR2_CLKEN_Pos)			// 0x00000800
#define USART_CR2_CLKEN		USART_CR2_CLKEN_Msk			// Clock Enable

#define USART_CR2_STOP_Pos		(12U)
#define USART_CR2_STOP_Msk		(0x3U << USART_CR2_STOP_Pos)			// 0x00003000
#define USART_CR2_STOP			USART_CR2_STOP_Msk			// STOP[1:0] bits (STOP bits)
#define USART_CR2_STOP_0		(0x1U << USART_CR2_STOP_Pos)			// 0x1000
#define USART_CR2_STOP_1		(0x2U << USART_CR2_STOP_Pos)			// 0x2000

#define USART_CR2_LINEN_Pos		(14U)
#define USART_CR2_LINEN_Msk		(0x1U << USART_CR2_LINEN_Pos)			// 0x00004000
#define USART_CR2_LINEN		USART_CR2_LINEN_Msk			// LIN mode enable

//  Bit definition for USART_CR3 register
#define USART_CR3_EIE_Pos		(0U)
#define USART_CR3_EIE_Msk		(0x1U << USART_CR3_EIE_Pos)			// 0x00000001
#define USART_CR3_EIE			USART_CR3_EIE_Msk			// Error Interrupt Enable
#define USART_CR3_IREN_Pos		(1U)
#define USART_CR3_IREN_Msk		(0x1U << USART_CR3_IREN_Pos)			// 0x00000002
#define USART_CR3_IREN			USART_CR3_IREN_Msk			// IrDA mode Enable
#define USART_CR3_IRLP_Pos		(2U)
#define USART_CR3_IRLP_Msk		(0x1U << USART_CR3_IRLP_Pos)			// 0x00000004
#define USART_CR3_IRLP			USART_CR3_IRLP_Msk			// IrDA Low-Power
#define USART_CR3_HDSEL_Pos		(3U)
#define USART_CR3_HDSEL_Msk		(0x1U << USART_CR3_HDSEL_Pos)			// 0x00000008
#define USART_CR3_HDSEL		USART_CR3_HDSEL_Msk			// Half-Duplex Selection
#define USART_CR3_NACK_Pos		(4U)
#define USART_CR3_NACK_Msk		(0x1U << USART_CR3_NACK_Pos)			// 0x00000010
#define USART_CR3_NACK			USART_CR3_NACK_Msk			// Smartcard NACK enable
#define USART_CR3_SCEN_Pos		(5U)
#define USART_CR3_SCEN_Msk		(0x1U << USART_CR3_SCEN_Pos)			// 0x00000020
#define USART_CR3_SCEN			USART_CR3_SCEN_Msk			// Smartcard mode enable
#define USART_CR3_DMAR_Pos		(6U)
#define USART_CR3_DMAR_Msk		(0x1U << USART_CR3_DMAR_Pos)			// 0x00000040
#define USART_CR3_DMAR			USART_CR3_DMAR_Msk			// DMA Enable Receiver
#define USART_CR3_DMAT_Pos		(7U)
#define USART_CR3_DMAT_Msk		(0x1U << USART_CR3_DMAT_Pos)			// 0x00000080
#define USART_CR3_DMAT			USART_CR3_DMAT_Msk			// DMA Enable Transmitter
#define USART_CR3_RTSE_Pos		(8U)
#define USART_CR3_RTSE_Msk		(0x1U << USART_CR3_RTSE_Pos)			// 0x00000100
#define USART_CR3_RTSE			USART_CR3_RTSE_Msk			// RTS Enable
#define USART_CR3_CTSE_Pos		(9U)
#define USART_CR3_CTSE_Msk		(0x1U << USART_CR3_CTSE_Pos)			// 0x00000200
#define USART_CR3_CTSE			USART_CR3_CTSE_Msk			// CTS Enable
#define USART_CR3_CTSIE_Pos		(10U)
#define USART_CR3_CTSIE_Msk		(0x1U << USART_CR3_CTSIE_Pos)			// 0x00000400
#define USART_CR3_CTSIE		USART_CR3_CTSIE_Msk			// CTS Interrupt Enable
#define USART_CR3_ONEBIT_Pos		(11U)
#define USART_CR3_ONEBIT_Msk		(0x1U << USART_CR3_ONEBIT_Pos)			// 0x00000800
#define USART_CR3_ONEBIT		USART_CR3_ONEBIT_Msk			// USART One bit method enable

//  Bit definition for USART_GTPR register
#define USART_GTPR_PSC_Pos		(0U)
#define USART_GTPR_PSC_Msk		(0xFFU << USART_GTPR_PSC_Pos)			// 0x000000FF
#define USART_GTPR_PSC			USART_GTPR_PSC_Msk			// PSC[7:0] bits (Prescaler value)
#define USART_GTPR_PSC_0		(0x01U << USART_GTPR_PSC_Pos)			// 0x0001
#define USART_GTPR_PSC_1		(0x02U << USART_GTPR_PSC_Pos)			// 0x0002
#define USART_GTPR_PSC_2		(0x04U << USART_GTPR_PSC_Pos)			// 0x0004
#define USART_GTPR_PSC_3		(0x08U << USART_GTPR_PSC_Pos)			// 0x0008
#define USART_GTPR_PSC_4		(0x10U << USART_GTPR_PSC_Pos)			// 0x0010
#define USART_GTPR_PSC_5		(0x20U << USART_GTPR_PSC_Pos)			// 0x0020
#define USART_GTPR_PSC_6		(0x40U << USART_GTPR_PSC_Pos)			// 0x0040
#define USART_GTPR_PSC_7		(0x80U << USART_GTPR_PSC_Pos)			// 0x0080

#define USART_GTPR_GT_Pos		(8U)
#define USART_GTPR_GT_Msk		(0xFFU << USART_GTPR_GT_Pos)			// 0x0000FF00
#define USART_GTPR_GT			USART_GTPR_GT_Msk			// Guard time value

// Window WATCHDOG

//  Bit definition for WWDG_CR register
#define WWDG_CR_T_Pos		(0U)
#define WWDG_CR_T_Msk		(0x7FU << WWDG_CR_T_Pos)			// 0x0000007F
#define WWDG_CR_T		WWDG_CR_T_Msk			// T[6:0] bits (7-Bit counter (MSB to LSB))
#define WWDG_CR_T_0		(0x01U << WWDG_CR_T_Pos)			// 0x01
#define WWDG_CR_T_1		(0x02U << WWDG_CR_T_Pos)			// 0x02
#define WWDG_CR_T_2		(0x04U << WWDG_CR_T_Pos)			// 0x04
#define WWDG_CR_T_3		(0x08U << WWDG_CR_T_Pos)			// 0x08
#define WWDG_CR_T_4		(0x10U << WWDG_CR_T_Pos)			// 0x10
#define WWDG_CR_T_5		(0x20U << WWDG_CR_T_Pos)			// 0x20
#define WWDG_CR_T_6		(0x40U << WWDG_CR_T_Pos)			// 0x40
// Legacy defines
#define  WWDG_CR_T0			WWDG_CR_T_0
#define  WWDG_CR_T1			WWDG_CR_T_1
#define  WWDG_CR_T2			WWDG_CR_T_2
#define  WWDG_CR_T3			WWDG_CR_T_3
#define  WWDG_CR_T4			WWDG_CR_T_4
#define  WWDG_CR_T5			WWDG_CR_T_5
#define  WWDG_CR_T6			WWDG_CR_T_6

#define WWDG_CR_WDGA_Pos		(7U)
#define WWDG_CR_WDGA_Msk		(0x1U << WWDG_CR_WDGA_Pos)			// 0x00000080
#define WWDG_CR_WDGA		WWDG_CR_WDGA_Msk			// Activation bit

//  Bit definition for WWDG_CFR register
#define WWDG_CFR_W_Pos		(0U)
#define WWDG_CFR_W_Msk		(0x7FU << WWDG_CFR_W_Pos)			// 0x0000007F
#define WWDG_CFR_W		WWDG_CFR_W_Msk			// W[6:0] bits (7-bit window value)
#define WWDG_CFR_W_0		(0x01U << WWDG_CFR_W_Pos)			// 0x0001
#define WWDG_CFR_W_1		(0x02U << WWDG_CFR_W_Pos)			// 0x0002
#define WWDG_CFR_W_2		(0x04U << WWDG_CFR_W_Pos)			// 0x0004
#define WWDG_CFR_W_3		(0x08U << WWDG_CFR_W_Pos)			// 0x0008
#define WWDG_CFR_W_4		(0x10U << WWDG_CFR_W_Pos)			// 0x0010
#define WWDG_CFR_W_5		(0x20U << WWDG_CFR_W_Pos)			// 0x0020
#define WWDG_CFR_W_6		(0x40U << WWDG_CFR_W_Pos)			// 0x0040
// Legacy defines
#define  WWDG_CFR_W0			WWDG_CFR_W_0
#define  WWDG_CFR_W1			WWDG_CFR_W_1
#define  WWDG_CFR_W2			WWDG_CFR_W_2
#define  WWDG_CFR_W3			WWDG_CFR_W_3
#define  WWDG_CFR_W4			WWDG_CFR_W_4
#define  WWDG_CFR_W5			WWDG_CFR_W_5
#define  WWDG_CFR_W6			WWDG_CFR_W_6

#define WWDG_CFR_WDGTB_Pos	(7U)
#define WWDG_CFR_WDGTB_Msk	(0x3U << WWDG_CFR_WDGTB_Pos)			// 0x00000180
#define WWDG_CFR_WDGTB		WWDG_CFR_WDGTB_Msk			// WDGTB[1:0] bits (Timer Base)
#define WWDG_CFR_WDGTB_0		(0x1U << WWDG_CFR_WDGTB_Pos)			// 0x0080
#define WWDG_CFR_WDGTB_1		(0x2U << WWDG_CFR_WDGTB_Pos)			// 0x0100
// Legacy defines
#define  WWDG_CFR_WDGTB0			WWDG_CFR_WDGTB_0
#define  WWDG_CFR_WDGTB1			WWDG_CFR_WDGTB_1

#define WWDG_CFR_EWI_Pos		(9U)
#define WWDG_CFR_EWI_Msk		(0x1U << WWDG_CFR_EWI_Pos)			// 0x00000200
#define WWDG_CFR_EWI		WWDG_CFR_EWI_Msk			// Early Wakeup Interrupt

//  Bit definition for WWDG_SR register
#define WWDG_SR_EWIF_Pos		(0U)
#define WWDG_SR_EWIF_Msk		(0x1U << WWDG_SR_EWIF_Pos)			// 0x00000001
#define WWDG_SR_EWIF		WWDG_SR_EWIF_Msk			// Early Wakeup Interrupt Flag

// DBG

//  Bit definition for DBGMCU_IDCODE register
#define DBGMCU_IDCODE_DEV_ID_Pos			(0U)
#define DBGMCU_IDCODE_DEV_ID_Msk			(0xFFFU << DBGMCU_IDCODE_DEV_ID_Pos)	//  0x00000FFF
#define DBGMCU_IDCODE_DEV_ID			DBGMCU_IDCODE_DEV_ID_Msk
#define DBGMCU_IDCODE_REV_ID_Pos			(16U)
#define DBGMCU_IDCODE_REV_ID_Msk			(0xFFFFU << DBGMCU_IDCODE_REV_ID_Pos)	//  0xFFFF0000
#define DBGMCU_IDCODE_REV_ID			DBGMCU_IDCODE_REV_ID_Msk

//  Bit definition for DBGMCU_CR register
#define DBGMCU_CR_DBG_SLEEP_Pos			(0U)
#define DBGMCU_CR_DBG_SLEEP_Msk			(0x1U << DBGMCU_CR_DBG_SLEEP_Pos)	//  0x00000001
#define DBGMCU_CR_DBG_SLEEP			DBGMCU_CR_DBG_SLEEP_Msk
#define DBGMCU_CR_DBG_STOP_Pos			(1U)
#define DBGMCU_CR_DBG_STOP_Msk			(0x1U << DBGMCU_CR_DBG_STOP_Pos)	//  0x00000002
#define DBGMCU_CR_DBG_STOP			DBGMCU_CR_DBG_STOP_Msk
#define DBGMCU_CR_DBG_STANDBY_Pos			(2U)
#define DBGMCU_CR_DBG_STANDBY_Msk			(0x1U << DBGMCU_CR_DBG_STANDBY_Pos)	//  0x00000004
#define DBGMCU_CR_DBG_STANDBY			DBGMCU_CR_DBG_STANDBY_Msk
#define DBGMCU_CR_TRACE_IOEN_Pos			(5U)
#define DBGMCU_CR_TRACE_IOEN_Msk			(0x1U << DBGMCU_CR_TRACE_IOEN_Pos)	//  0x00000020
#define DBGMCU_CR_TRACE_IOEN			DBGMCU_CR_TRACE_IOEN_Msk

#define DBGMCU_CR_TRACE_MODE_Pos			(6U)
#define DBGMCU_CR_TRACE_MODE_Msk			(0x3U << DBGMCU_CR_TRACE_MODE_Pos)	//  0x000000C0
#define DBGMCU_CR_TRACE_MODE			DBGMCU_CR_TRACE_MODE_Msk
#define DBGMCU_CR_TRACE_MODE_0			(0x1U << DBGMCU_CR_TRACE_MODE_Pos)	//  0x00000040
#define DBGMCU_CR_TRACE_MODE_1			(0x2U << DBGMCU_CR_TRACE_MODE_Pos)	//  0x00000080

//  Bit definition for DBGMCU_APB1_FZ register
#define DBGMCU_APB1_FZ_DBG_TIM2_STOP_Pos		(0U)
#define DBGMCU_APB1_FZ_DBG_TIM2_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_TIM2_STOP_Pos)	//  0x00000001
#define DBGMCU_APB1_FZ_DBG_TIM2_STOP			DBGMCU_APB1_FZ_DBG_TIM2_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_TIM3_STOP_Pos		(1U)
#define DBGMCU_APB1_FZ_DBG_TIM3_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_TIM3_STOP_Pos)	//  0x00000002
#define DBGMCU_APB1_FZ_DBG_TIM3_STOP			DBGMCU_APB1_FZ_DBG_TIM3_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_TIM4_STOP_Pos		(2U)
#define DBGMCU_APB1_FZ_DBG_TIM4_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_TIM4_STOP_Pos)	//  0x00000004
#define DBGMCU_APB1_FZ_DBG_TIM4_STOP			DBGMCU_APB1_FZ_DBG_TIM4_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_TIM5_STOP_Pos		(3U)
#define DBGMCU_APB1_FZ_DBG_TIM5_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_TIM5_STOP_Pos)	//  0x00000008
#define DBGMCU_APB1_FZ_DBG_TIM5_STOP			DBGMCU_APB1_FZ_DBG_TIM5_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_RTC_STOP_Pos		(10U)
#define DBGMCU_APB1_FZ_DBG_RTC_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_RTC_STOP_Pos)	//  0x00000400
#define DBGMCU_APB1_FZ_DBG_RTC_STOP			DBGMCU_APB1_FZ_DBG_RTC_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_WWDG_STOP_Pos		(11U)
#define DBGMCU_APB1_FZ_DBG_WWDG_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_WWDG_STOP_Pos)	//  0x00000800
#define DBGMCU_APB1_FZ_DBG_WWDG_STOP			DBGMCU_APB1_FZ_DBG_WWDG_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_IWDG_STOP_Pos		(12U)
#define DBGMCU_APB1_FZ_DBG_IWDG_STOP_Msk		(0x1U << DBGMCU_APB1_FZ_DBG_IWDG_STOP_Pos)	//  0x00001000
#define DBGMCU_APB1_FZ_DBG_IWDG_STOP			DBGMCU_APB1_FZ_DBG_IWDG_STOP_Msk
#define DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT_Pos	(21U)
#define DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT_Msk	(0x1U << DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT_Pos)	//  0x00200000
#define DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT		DBGMCU_APB1_FZ_DBG_I2C1_SMBUS_TIMEOUT_Msk
#define DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT_Pos	(22U)
#define DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT_Msk	(0x1U << DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT_Pos)	//  0x00400000
#define DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT		DBGMCU_APB1_FZ_DBG_I2C2_SMBUS_TIMEOUT_Msk
#define DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT_Pos	(23U)
#define DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT_Msk	(0x1U << DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT_Pos)	//  0x00800000
#define DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT		DBGMCU_APB1_FZ_DBG_I2C3_SMBUS_TIMEOUT_Msk
// Old IWDGSTOP bit definition, maintained for legacy purpose
#define  DBGMCU_APB1_FZ_DBG_IWDEG_STOP		DBGMCU_APB1_FZ_DBG_IWDG_STOP

//  Bit definition for DBGMCU_APB2_FZ register
#define DBGMCU_APB2_FZ_DBG_TIM1_STOP_Pos		(0U)
#define DBGMCU_APB2_FZ_DBG_TIM1_STOP_Msk		(0x1U << DBGMCU_APB2_FZ_DBG_TIM1_STOP_Pos)	//  0x00000001
#define DBGMCU_APB2_FZ_DBG_TIM1_STOP			DBGMCU_APB2_FZ_DBG_TIM1_STOP_Msk
#define DBGMCU_APB2_FZ_DBG_TIM9_STOP_Pos		(16U)
#define DBGMCU_APB2_FZ_DBG_TIM9_STOP_Msk		(0x1U << DBGMCU_APB2_FZ_DBG_TIM9_STOP_Pos)	//  0x00010000
#define DBGMCU_APB2_FZ_DBG_TIM9_STOP			DBGMCU_APB2_FZ_DBG_TIM9_STOP_Msk
#define DBGMCU_APB2_FZ_DBG_TIM10_STOP_Pos		(17U)
#define DBGMCU_APB2_FZ_DBG_TIM10_STOP_Msk		(0x1U << DBGMCU_APB2_FZ_DBG_TIM10_STOP_Pos)	//  0x00020000
#define DBGMCU_APB2_FZ_DBG_TIM10_STOP			DBGMCU_APB2_FZ_DBG_TIM10_STOP_Msk
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos		(18U)
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk		(0x1U << DBGMCU_APB2_FZ_DBG_TIM11_STOP_Pos)	//  0x00040000
#define DBGMCU_APB2_FZ_DBG_TIM11_STOP			DBGMCU_APB2_FZ_DBG_TIM11_STOP_Msk

// USB_OTG

//  Bit definition for USB_OTG_GOTGCTL register
#define USB_OTG_GOTGCTL_SRQSCS_Pos		(0U)
#define USB_OTG_GOTGCTL_SRQSCS_Msk		(0x1U << USB_OTG_GOTGCTL_SRQSCS_Pos)	//  0x00000001
#define USB_OTG_GOTGCTL_SRQSCS			USB_OTG_GOTGCTL_SRQSCS_Msk	//  Session request success
#define USB_OTG_GOTGCTL_SRQ_Pos			(1U)
#define USB_OTG_GOTGCTL_SRQ_Msk			(0x1U << USB_OTG_GOTGCTL_SRQ_Pos)	//  0x00000002
#define USB_OTG_GOTGCTL_SRQ			USB_OTG_GOTGCTL_SRQ_Msk	//  Session request
#define USB_OTG_GOTGCTL_HNGSCS_Pos		(8U)
#define USB_OTG_GOTGCTL_HNGSCS_Msk		(0x1U << USB_OTG_GOTGCTL_HNGSCS_Pos)	//  0x00000100
#define USB_OTG_GOTGCTL_HNGSCS			USB_OTG_GOTGCTL_HNGSCS_Msk	//  Host set HNP enable
#define USB_OTG_GOTGCTL_HNPRQ_Pos			(9U)
#define USB_OTG_GOTGCTL_HNPRQ_Msk			(0x1U << USB_OTG_GOTGCTL_HNPRQ_Pos)	//  0x00000200
#define USB_OTG_GOTGCTL_HNPRQ			USB_OTG_GOTGCTL_HNPRQ_Msk	//  HNP request
#define USB_OTG_GOTGCTL_HSHNPEN_Pos		(10U)
#define USB_OTG_GOTGCTL_HSHNPEN_Msk		(0x1U << USB_OTG_GOTGCTL_HSHNPEN_Pos)	//  0x00000400
#define USB_OTG_GOTGCTL_HSHNPEN			USB_OTG_GOTGCTL_HSHNPEN_Msk	//  Host set HNP enable
#define USB_OTG_GOTGCTL_DHNPEN_Pos		(11U)
#define USB_OTG_GOTGCTL_DHNPEN_Msk		(0x1U << USB_OTG_GOTGCTL_DHNPEN_Pos)	//  0x00000800
#define USB_OTG_GOTGCTL_DHNPEN			USB_OTG_GOTGCTL_DHNPEN_Msk	//  Device HNP enabled
#define USB_OTG_GOTGCTL_CIDSTS_Pos		(16U)
#define USB_OTG_GOTGCTL_CIDSTS_Msk		(0x1U << USB_OTG_GOTGCTL_CIDSTS_Pos)	//  0x00010000
#define USB_OTG_GOTGCTL_CIDSTS			USB_OTG_GOTGCTL_CIDSTS_Msk	//  Connector ID status
#define USB_OTG_GOTGCTL_DBCT_Pos			(17U)
#define USB_OTG_GOTGCTL_DBCT_Msk			(0x1U << USB_OTG_GOTGCTL_DBCT_Pos)	//  0x00020000
#define USB_OTG_GOTGCTL_DBCT			USB_OTG_GOTGCTL_DBCT_Msk	//  Long/short debounce time
#define USB_OTG_GOTGCTL_ASVLD_Pos			(18U)
#define USB_OTG_GOTGCTL_ASVLD_Msk			(0x1U << USB_OTG_GOTGCTL_ASVLD_Pos)	//  0x00040000
#define USB_OTG_GOTGCTL_ASVLD			USB_OTG_GOTGCTL_ASVLD_Msk	//  A-session valid
#define USB_OTG_GOTGCTL_BSVLD_Pos			(19U)
#define USB_OTG_GOTGCTL_BSVLD_Msk			(0x1U << USB_OTG_GOTGCTL_BSVLD_Pos)	//  0x00080000
#define USB_OTG_GOTGCTL_BSVLD			USB_OTG_GOTGCTL_BSVLD_Msk	//  B-session valid

//  Bit definition forUSB_OTG_HCFG register
#define USB_OTG_HCFG_FSLSPCS_Pos			(0U)
#define USB_OTG_HCFG_FSLSPCS_Msk			(0x3U << USB_OTG_HCFG_FSLSPCS_Pos)	//  0x00000003
#define USB_OTG_HCFG_FSLSPCS			USB_OTG_HCFG_FSLSPCS_Msk	//  FS/LS PHY clock select
#define USB_OTG_HCFG_FSLSPCS_0			(0x1U << USB_OTG_HCFG_FSLSPCS_Pos)	//  0x00000001
#define USB_OTG_HCFG_FSLSPCS_1			(0x2U << USB_OTG_HCFG_FSLSPCS_Pos)	//  0x00000002
#define USB_OTG_HCFG_FSLSS_Pos			(2U)
#define USB_OTG_HCFG_FSLSS_Msk			(0x1U << USB_OTG_HCFG_FSLSS_Pos)	//  0x00000004
#define USB_OTG_HCFG_FSLSS			USB_OTG_HCFG_FSLSS_Msk			// FS- and LS-only support

//  Bit definition for USB_OTG_DCFG register
#define USB_OTG_DCFG_DSPD_Pos			(0U)
#define USB_OTG_DCFG_DSPD_Msk			(0x3U << USB_OTG_DCFG_DSPD_Pos)	//  0x00000003
#define USB_OTG_DCFG_DSPD			USB_OTG_DCFG_DSPD_Msk			// Device speed
#define USB_OTG_DCFG_DSPD_0			(0x1U << USB_OTG_DCFG_DSPD_Pos)	//  0x00000001
#define USB_OTG_DCFG_DSPD_1			(0x2U << USB_OTG_DCFG_DSPD_Pos)	//  0x00000002
#define USB_OTG_DCFG_NZLSOHSK_Pos			(2U)
#define USB_OTG_DCFG_NZLSOHSK_Msk			(0x1U << USB_OTG_DCFG_NZLSOHSK_Pos)	//  0x00000004
#define USB_OTG_DCFG_NZLSOHSK			USB_OTG_DCFG_NZLSOHSK_Msk	//  Nonzero-length status OUT handshake

#define USB_OTG_DCFG_DAD_Pos			(4U)
#define USB_OTG_DCFG_DAD_Msk			(0x7FU << USB_OTG_DCFG_DAD_Pos)	//  0x000007F0
#define USB_OTG_DCFG_DAD			USB_OTG_DCFG_DAD_Msk			// Device address
#define USB_OTG_DCFG_DAD_0			(0x01U << USB_OTG_DCFG_DAD_Pos)	//  0x00000010
#define USB_OTG_DCFG_DAD_1			(0x02U << USB_OTG_DCFG_DAD_Pos)	//  0x00000020
#define USB_OTG_DCFG_DAD_2			(0x04U << USB_OTG_DCFG_DAD_Pos)	//  0x00000040
#define USB_OTG_DCFG_DAD_3			(0x08U << USB_OTG_DCFG_DAD_Pos)	//  0x00000080
#define USB_OTG_DCFG_DAD_4			(0x10U << USB_OTG_DCFG_DAD_Pos)	//  0x00000100
#define USB_OTG_DCFG_DAD_5			(0x20U << USB_OTG_DCFG_DAD_Pos)	//  0x00000200
#define USB_OTG_DCFG_DAD_6			(0x40U << USB_OTG_DCFG_DAD_Pos)	//  0x00000400

#define USB_OTG_DCFG_PFIVL_Pos			(11U)
#define USB_OTG_DCFG_PFIVL_Msk			(0x3U << USB_OTG_DCFG_PFIVL_Pos)	//  0x00001800
#define USB_OTG_DCFG_PFIVL			USB_OTG_DCFG_PFIVL_Msk			// Periodic (micro)frame interval
#define USB_OTG_DCFG_PFIVL_0			(0x1U << USB_OTG_DCFG_PFIVL_Pos)	//  0x00000800
#define USB_OTG_DCFG_PFIVL_1			(0x2U << USB_OTG_DCFG_PFIVL_Pos)	//  0x00001000

#define USB_OTG_DCFG_PERSCHIVL_Pos		(24U)
#define USB_OTG_DCFG_PERSCHIVL_Msk		(0x3U << USB_OTG_DCFG_PERSCHIVL_Pos)	//  0x03000000
#define USB_OTG_DCFG_PERSCHIVL			USB_OTG_DCFG_PERSCHIVL_Msk	//  Periodic scheduling interval
#define USB_OTG_DCFG_PERSCHIVL_0			(0x1U << USB_OTG_DCFG_PERSCHIVL_Pos)	//  0x01000000
#define USB_OTG_DCFG_PERSCHIVL_1			(0x2U << USB_OTG_DCFG_PERSCHIVL_Pos)	//  0x02000000

//  Bit definition for USB_OTG_PCGCR register
#define USB_OTG_PCGCR_STPPCLK_Pos			(0U)
#define USB_OTG_PCGCR_STPPCLK_Msk			(0x1U << USB_OTG_PCGCR_STPPCLK_Pos)	//  0x00000001
#define USB_OTG_PCGCR_STPPCLK			USB_OTG_PCGCR_STPPCLK_Msk	//  Stop PHY clock
#define USB_OTG_PCGCR_GATEHCLK_Pos		(1U)
#define USB_OTG_PCGCR_GATEHCLK_Msk		(0x1U << USB_OTG_PCGCR_GATEHCLK_Pos)	//  0x00000002
#define USB_OTG_PCGCR_GATEHCLK			USB_OTG_PCGCR_GATEHCLK_Msk	//  Gate HCLK
#define USB_OTG_PCGCR_PHYSUSP_Pos			(4U)
#define USB_OTG_PCGCR_PHYSUSP_Msk			(0x1U << USB_OTG_PCGCR_PHYSUSP_Pos)	//  0x00000010
#define USB_OTG_PCGCR_PHYSUSP			USB_OTG_PCGCR_PHYSUSP_Msk	//  PHY suspended

//  Bit definition for USB_OTG_GOTGINT register
#define USB_OTG_GOTGINT_SEDET_Pos			(2U)
#define USB_OTG_GOTGINT_SEDET_Msk			(0x1U << USB_OTG_GOTGINT_SEDET_Pos)	//  0x00000004
#define USB_OTG_GOTGINT_SEDET			USB_OTG_GOTGINT_SEDET_Msk	//  Session end detected
#define USB_OTG_GOTGINT_SRSSCHG_Pos		(8U)
#define USB_OTG_GOTGINT_SRSSCHG_Msk		(0x1U << USB_OTG_GOTGINT_SRSSCHG_Pos)	//  0x00000100
#define USB_OTG_GOTGINT_SRSSCHG			USB_OTG_GOTGINT_SRSSCHG_Msk	//  Session request success status change
#define USB_OTG_GOTGINT_HNSSCHG_Pos		(9U)
#define USB_OTG_GOTGINT_HNSSCHG_Msk		(0x1U << USB_OTG_GOTGINT_HNSSCHG_Pos)	//  0x00000200
#define USB_OTG_GOTGINT_HNSSCHG			USB_OTG_GOTGINT_HNSSCHG_Msk	//  Host negotiation success status change
#define USB_OTG_GOTGINT_HNGDET_Pos		(17U)
#define USB_OTG_GOTGINT_HNGDET_Msk		(0x1U << USB_OTG_GOTGINT_HNGDET_Pos)	//  0x00020000
#define USB_OTG_GOTGINT_HNGDET			USB_OTG_GOTGINT_HNGDET_Msk	//  Host negotiation detected
#define USB_OTG_GOTGINT_ADTOCHG_Pos		(18U)
#define USB_OTG_GOTGINT_ADTOCHG_Msk		(0x1U << USB_OTG_GOTGINT_ADTOCHG_Pos)	//  0x00040000
#define USB_OTG_GOTGINT_ADTOCHG			USB_OTG_GOTGINT_ADTOCHG_Msk	//  A-device timeout change
#define USB_OTG_GOTGINT_DBCDNE_Pos		(19U)
#define USB_OTG_GOTGINT_DBCDNE_Msk		(0x1U << USB_OTG_GOTGINT_DBCDNE_Pos)	//  0x00080000
#define USB_OTG_GOTGINT_DBCDNE			USB_OTG_GOTGINT_DBCDNE_Msk	//  Debounce done

//  Bit definition for USB_OTG_DCTL register
#define USB_OTG_DCTL_RWUSIG_Pos			(0U)
#define USB_OTG_DCTL_RWUSIG_Msk			(0x1U << USB_OTG_DCTL_RWUSIG_Pos)	//  0x00000001
#define USB_OTG_DCTL_RWUSIG			USB_OTG_DCTL_RWUSIG_Msk	//  Remote wakeup signaling
#define USB_OTG_DCTL_SDIS_Pos			(1U)
#define USB_OTG_DCTL_SDIS_Msk			(0x1U << USB_OTG_DCTL_SDIS_Pos)	//  0x00000002
#define USB_OTG_DCTL_SDIS			USB_OTG_DCTL_SDIS_Msk			// Soft disconnect
#define USB_OTG_DCTL_GINSTS_Pos			(2U)
#define USB_OTG_DCTL_GINSTS_Msk			(0x1U << USB_OTG_DCTL_GINSTS_Pos)	//  0x00000004
#define USB_OTG_DCTL_GINSTS			USB_OTG_DCTL_GINSTS_Msk	//  Global IN NAK status
#define USB_OTG_DCTL_GONSTS_Pos			(3U)
#define USB_OTG_DCTL_GONSTS_Msk			(0x1U << USB_OTG_DCTL_GONSTS_Pos)	//  0x00000008
#define USB_OTG_DCTL_GONSTS			USB_OTG_DCTL_GONSTS_Msk	//  Global OUT NAK status

#define USB_OTG_DCTL_TCTL_Pos			(4U)
#define USB_OTG_DCTL_TCTL_Msk			(0x7U << USB_OTG_DCTL_TCTL_Pos)	//  0x00000070
#define USB_OTG_DCTL_TCTL			USB_OTG_DCTL_TCTL_Msk			// Test control
#define USB_OTG_DCTL_TCTL_0			(0x1U << USB_OTG_DCTL_TCTL_Pos)	//  0x00000010
#define USB_OTG_DCTL_TCTL_1			(0x2U << USB_OTG_DCTL_TCTL_Pos)	//  0x00000020
#define USB_OTG_DCTL_TCTL_2			(0x4U << USB_OTG_DCTL_TCTL_Pos)	//  0x00000040
#define USB_OTG_DCTL_SGINAK_Pos			(7U)
#define USB_OTG_DCTL_SGINAK_Msk			(0x1U << USB_OTG_DCTL_SGINAK_Pos)	//  0x00000080
#define USB_OTG_DCTL_SGINAK			USB_OTG_DCTL_SGINAK_Msk	//  Set global IN NAK
#define USB_OTG_DCTL_CGINAK_Pos			(8U)
#define USB_OTG_DCTL_CGINAK_Msk			(0x1U << USB_OTG_DCTL_CGINAK_Pos)	//  0x00000100
#define USB_OTG_DCTL_CGINAK			USB_OTG_DCTL_CGINAK_Msk	//  Clear global IN NAK
#define USB_OTG_DCTL_SGONAK_Pos			(9U)
#define USB_OTG_DCTL_SGONAK_Msk			(0x1U << USB_OTG_DCTL_SGONAK_Pos)	//  0x00000200
#define USB_OTG_DCTL_SGONAK			USB_OTG_DCTL_SGONAK_Msk	//  Set global OUT NAK
#define USB_OTG_DCTL_CGONAK_Pos			(10U)
#define USB_OTG_DCTL_CGONAK_Msk			(0x1U << USB_OTG_DCTL_CGONAK_Pos)	//  0x00000400
#define USB_OTG_DCTL_CGONAK			USB_OTG_DCTL_CGONAK_Msk	//  Clear global OUT NAK
#define USB_OTG_DCTL_POPRGDNE_Pos		(11U)
#define USB_OTG_DCTL_POPRGDNE_Msk		(0x1U << USB_OTG_DCTL_POPRGDNE_Pos)	//  0x00000800
#define USB_OTG_DCTL_POPRGDNE			USB_OTG_DCTL_POPRGDNE_Msk	//  Power-on programming done

//  Bit definition for USB_OTG_HFIR register
#define USB_OTG_HFIR_FRIVL_Pos			(0U)
#define USB_OTG_HFIR_FRIVL_Msk			(0xFFFFU << USB_OTG_HFIR_FRIVL_Pos)	//  0x0000FFFF
#define USB_OTG_HFIR_FRIVL			USB_OTG_HFIR_FRIVL_Msk			// Frame interval

//  Bit definition for USB_OTG_HFNUM register
#define USB_OTG_HFNUM_FRNUM_Pos			(0U)
#define USB_OTG_HFNUM_FRNUM_Msk			(0xFFFFU << USB_OTG_HFNUM_FRNUM_Pos)	//  0x0000FFFF
#define USB_OTG_HFNUM_FRNUM			USB_OTG_HFNUM_FRNUM_Msk	//  Frame number
#define USB_OTG_HFNUM_FTREM_Pos			(16U)
#define USB_OTG_HFNUM_FTREM_Msk			(0xFFFFU << USB_OTG_HFNUM_FTREM_Pos)	//  0xFFFF0000
#define USB_OTG_HFNUM_FTREM			USB_OTG_HFNUM_FTREM_Msk	//  Frame time remaining

//  Bit definition for USB_OTG_DSTS register
#define USB_OTG_DSTS_SUSPSTS_Pos			(0U)
#define USB_OTG_DSTS_SUSPSTS_Msk			(0x1U << USB_OTG_DSTS_SUSPSTS_Pos)	//  0x00000001
#define USB_OTG_DSTS_SUSPSTS			USB_OTG_DSTS_SUSPSTS_Msk	//  Suspend status

#define USB_OTG_DSTS_ENUMSPD_Pos			(1U)
#define USB_OTG_DSTS_ENUMSPD_Msk			(0x3U << USB_OTG_DSTS_ENUMSPD_Pos)	//  0x00000006
#define USB_OTG_DSTS_ENUMSPD			USB_OTG_DSTS_ENUMSPD_Msk	//  Enumerated speed
#define USB_OTG_DSTS_ENUMSPD_0			(0x1U << USB_OTG_DSTS_ENUMSPD_Pos)	//  0x00000002
#define USB_OTG_DSTS_ENUMSPD_1			(0x2U << USB_OTG_DSTS_ENUMSPD_Pos)	//  0x00000004
#define USB_OTG_DSTS_EERR_Pos			(3U)
#define USB_OTG_DSTS_EERR_Msk			(0x1U << USB_OTG_DSTS_EERR_Pos)	//  0x00000008
#define USB_OTG_DSTS_EERR			USB_OTG_DSTS_EERR_Msk			// Erratic error
#define USB_OTG_DSTS_FNSOF_Pos			(8U)
#define USB_OTG_DSTS_FNSOF_Msk			(0x3FFFU << USB_OTG_DSTS_FNSOF_Pos)	//  0x003FFF00
#define USB_OTG_DSTS_FNSOF			USB_OTG_DSTS_FNSOF_Msk			// Frame number of the received SOF

//  Bit definition for USB_OTG_GAHBCFG register
#define USB_OTG_GAHBCFG_GINT_Pos			(0U)
#define USB_OTG_GAHBCFG_GINT_Msk			(0x1U << USB_OTG_GAHBCFG_GINT_Pos)	//  0x00000001
#define USB_OTG_GAHBCFG_GINT			USB_OTG_GAHBCFG_GINT_Msk	//  Global interrupt mask
#define USB_OTG_GAHBCFG_HBSTLEN_Pos		(1U)
#define USB_OTG_GAHBCFG_HBSTLEN_Msk		(0xFU << USB_OTG_GAHBCFG_HBSTLEN_Pos)	//  0x0000001E
#define USB_OTG_GAHBCFG_HBSTLEN			USB_OTG_GAHBCFG_HBSTLEN_Msk	//  Burst length/type
#define USB_OTG_GAHBCFG_HBSTLEN_0			(0x1U << USB_OTG_GAHBCFG_HBSTLEN_Pos)	//  0x00000002
#define USB_OTG_GAHBCFG_HBSTLEN_1			(0x2U << USB_OTG_GAHBCFG_HBSTLEN_Pos)	//  0x00000004
#define USB_OTG_GAHBCFG_HBSTLEN_2			(0x4U << USB_OTG_GAHBCFG_HBSTLEN_Pos)	//  0x00000008
#define USB_OTG_GAHBCFG_HBSTLEN_3			(0x8U << USB_OTG_GAHBCFG_HBSTLEN_Pos)	//  0x00000010
#define USB_OTG_GAHBCFG_DMAEN_Pos			(5U)
#define USB_OTG_GAHBCFG_DMAEN_Msk			(0x1U << USB_OTG_GAHBCFG_DMAEN_Pos)	//  0x00000020
#define USB_OTG_GAHBCFG_DMAEN			USB_OTG_GAHBCFG_DMAEN_Msk	//  DMA enable
#define USB_OTG_GAHBCFG_TXFELVL_Pos		(7U)
#define USB_OTG_GAHBCFG_TXFELVL_Msk		(0x1U << USB_OTG_GAHBCFG_TXFELVL_Pos)	//  0x00000080
#define USB_OTG_GAHBCFG_TXFELVL			USB_OTG_GAHBCFG_TXFELVL_Msk	//  TxFIFO empty level
#define USB_OTG_GAHBCFG_PTXFELVL_Pos		(8U)
#define USB_OTG_GAHBCFG_PTXFELVL_Msk		(0x1U << USB_OTG_GAHBCFG_PTXFELVL_Pos)	//  0x00000100
#define USB_OTG_GAHBCFG_PTXFELVL			USB_OTG_GAHBCFG_PTXFELVL_Msk	//  Periodic TxFIFO empty level

//  Bit definition for USB_OTG_GUSBCFG register
#define USB_OTG_GUSBCFG_TOCAL_Pos			(0U)
#define USB_OTG_GUSBCFG_TOCAL_Msk			(0x7U << USB_OTG_GUSBCFG_TOCAL_Pos)	//  0x00000007
#define USB_OTG_GUSBCFG_TOCAL			USB_OTG_GUSBCFG_TOCAL_Msk	//  FS timeout calibration
#define USB_OTG_GUSBCFG_TOCAL_0			(0x1U << USB_OTG_GUSBCFG_TOCAL_Pos)	//  0x00000001
#define USB_OTG_GUSBCFG_TOCAL_1			(0x2U << USB_OTG_GUSBCFG_TOCAL_Pos)	//  0x00000002
#define USB_OTG_GUSBCFG_TOCAL_2			(0x4U << USB_OTG_GUSBCFG_TOCAL_Pos)	//  0x00000004
#define USB_OTG_GUSBCFG_PHYSEL_Pos		(6U)
#define USB_OTG_GUSBCFG_PHYSEL_Msk		(0x1U << USB_OTG_GUSBCFG_PHYSEL_Pos)	//  0x00000040
#define USB_OTG_GUSBCFG_PHYSEL			USB_OTG_GUSBCFG_PHYSEL_Msk	//  USB 2.0 high-speed ULPI PHY or USB 1.1 full-speed serial transceiver select
#define USB_OTG_GUSBCFG_SRPCAP_Pos		(8U)
#define USB_OTG_GUSBCFG_SRPCAP_Msk		(0x1U << USB_OTG_GUSBCFG_SRPCAP_Pos)	//  0x00000100
#define USB_OTG_GUSBCFG_SRPCAP			USB_OTG_GUSBCFG_SRPCAP_Msk	//  SRP-capable
#define USB_OTG_GUSBCFG_HNPCAP_Pos		(9U)
#define USB_OTG_GUSBCFG_HNPCAP_Msk		(0x1U << USB_OTG_GUSBCFG_HNPCAP_Pos)	//  0x00000200
#define USB_OTG_GUSBCFG_HNPCAP			USB_OTG_GUSBCFG_HNPCAP_Msk	//  HNP-capable
#define USB_OTG_GUSBCFG_TRDT_Pos			(10U)
#define USB_OTG_GUSBCFG_TRDT_Msk			(0xFU << USB_OTG_GUSBCFG_TRDT_Pos)	//  0x00003C00
#define USB_OTG_GUSBCFG_TRDT			USB_OTG_GUSBCFG_TRDT_Msk	//  USB turnaround time
#define USB_OTG_GUSBCFG_TRDT_0			(0x1U << USB_OTG_GUSBCFG_TRDT_Pos)	//  0x00000400
#define USB_OTG_GUSBCFG_TRDT_1			(0x2U << USB_OTG_GUSBCFG_TRDT_Pos)	//  0x00000800
#define USB_OTG_GUSBCFG_TRDT_2			(0x4U << USB_OTG_GUSBCFG_TRDT_Pos)	//  0x00001000
#define USB_OTG_GUSBCFG_TRDT_3			(0x8U << USB_OTG_GUSBCFG_TRDT_Pos)	//  0x00002000
#define USB_OTG_GUSBCFG_PHYLPCS_Pos		(15U)
#define USB_OTG_GUSBCFG_PHYLPCS_Msk		(0x1U << USB_OTG_GUSBCFG_PHYLPCS_Pos)	//  0x00008000
#define USB_OTG_GUSBCFG_PHYLPCS			USB_OTG_GUSBCFG_PHYLPCS_Msk	//  PHY Low-power clock select
#define USB_OTG_GUSBCFG_ULPIFSLS_Pos		(17U)
#define USB_OTG_GUSBCFG_ULPIFSLS_Msk		(0x1U << USB_OTG_GUSBCFG_ULPIFSLS_Pos)	//  0x00020000
#define USB_OTG_GUSBCFG_ULPIFSLS			USB_OTG_GUSBCFG_ULPIFSLS_Msk	//  ULPI FS/LS select
#define USB_OTG_GUSBCFG_ULPIAR_Pos		(18U)
#define USB_OTG_GUSBCFG_ULPIAR_Msk		(0x1U << USB_OTG_GUSBCFG_ULPIAR_Pos)	//  0x00040000
#define USB_OTG_GUSBCFG_ULPIAR			USB_OTG_GUSBCFG_ULPIAR_Msk	//  ULPI Auto-resume
#define USB_OTG_GUSBCFG_ULPICSM_Pos		(19U)
#define USB_OTG_GUSBCFG_ULPICSM_Msk		(0x1U << USB_OTG_GUSBCFG_ULPICSM_Pos)	//  0x00080000
#define USB_OTG_GUSBCFG_ULPICSM			USB_OTG_GUSBCFG_ULPICSM_Msk	//  ULPI Clock SuspendM
#define USB_OTG_GUSBCFG_ULPIEVBUSD_Pos		(20U)
#define USB_OTG_GUSBCFG_ULPIEVBUSD_Msk		(0x1U << USB_OTG_GUSBCFG_ULPIEVBUSD_Pos)	//  0x00100000
#define USB_OTG_GUSBCFG_ULPIEVBUSD		USB_OTG_GUSBCFG_ULPIEVBUSD_Msk	//  ULPI External VBUS Drive
#define USB_OTG_GUSBCFG_ULPIEVBUSI_Pos		(21U)
#define USB_OTG_GUSBCFG_ULPIEVBUSI_Msk		(0x1U << USB_OTG_GUSBCFG_ULPIEVBUSI_Pos)	//  0x00200000
#define USB_OTG_GUSBCFG_ULPIEVBUSI		USB_OTG_GUSBCFG_ULPIEVBUSI_Msk	//  ULPI external VBUS indicator
#define USB_OTG_GUSBCFG_TSDPS_Pos			(22U)
#define USB_OTG_GUSBCFG_TSDPS_Msk			(0x1U << USB_OTG_GUSBCFG_TSDPS_Pos)	//  0x00400000
#define USB_OTG_GUSBCFG_TSDPS			USB_OTG_GUSBCFG_TSDPS_Msk	//  TermSel DLine pulsing selection
#define USB_OTG_GUSBCFG_PCCI_Pos			(23U)
#define USB_OTG_GUSBCFG_PCCI_Msk			(0x1U << USB_OTG_GUSBCFG_PCCI_Pos)	//  0x00800000
#define USB_OTG_GUSBCFG_PCCI			USB_OTG_GUSBCFG_PCCI_Msk	//  Indicator complement
#define USB_OTG_GUSBCFG_PTCI_Pos			(24U)
#define USB_OTG_GUSBCFG_PTCI_Msk			(0x1U << USB_OTG_GUSBCFG_PTCI_Pos)	//  0x01000000
#define USB_OTG_GUSBCFG_PTCI			USB_OTG_GUSBCFG_PTCI_Msk	//  Indicator pass through
#define USB_OTG_GUSBCFG_ULPIIPD_Pos		(25U)
#define USB_OTG_GUSBCFG_ULPIIPD_Msk		(0x1U << USB_OTG_GUSBCFG_ULPIIPD_Pos)	//  0x02000000
#define USB_OTG_GUSBCFG_ULPIIPD			USB_OTG_GUSBCFG_ULPIIPD_Msk	//  ULPI interface protect disable
#define USB_OTG_GUSBCFG_FHMOD_Pos			(29U)
#define USB_OTG_GUSBCFG_FHMOD_Msk			(0x1U << USB_OTG_GUSBCFG_FHMOD_Pos)	//  0x20000000
#define USB_OTG_GUSBCFG_FHMOD			USB_OTG_GUSBCFG_FHMOD_Msk	//  Forced host mode
#define USB_OTG_GUSBCFG_FDMOD_Pos			(30U)
#define USB_OTG_GUSBCFG_FDMOD_Msk			(0x1U << USB_OTG_GUSBCFG_FDMOD_Pos)	//  0x40000000
#define USB_OTG_GUSBCFG_FDMOD			USB_OTG_GUSBCFG_FDMOD_Msk	//  Forced peripheral mode
#define USB_OTG_GUSBCFG_CTXPKT_Pos		(31U)
#define USB_OTG_GUSBCFG_CTXPKT_Msk		(0x1U << USB_OTG_GUSBCFG_CTXPKT_Pos)	//  0x80000000
#define USB_OTG_GUSBCFG_CTXPKT			USB_OTG_GUSBCFG_CTXPKT_Msk	//  Corrupt Tx packet

//  Bit definition for USB_OTG_GRSTCTL register
#define USB_OTG_GRSTCTL_CSRST_Pos			(0U)
#define USB_OTG_GRSTCTL_CSRST_Msk			(0x1U << USB_OTG_GRSTCTL_CSRST_Pos)	//  0x00000001
#define USB_OTG_GRSTCTL_CSRST			USB_OTG_GRSTCTL_CSRST_Msk	//  Core soft reset
#define USB_OTG_GRSTCTL_HSRST_Pos			(1U)
#define USB_OTG_GRSTCTL_HSRST_Msk			(0x1U << USB_OTG_GRSTCTL_HSRST_Pos)	//  0x00000002
#define USB_OTG_GRSTCTL_HSRST			USB_OTG_GRSTCTL_HSRST_Msk	//  HCLK soft reset
#define USB_OTG_GRSTCTL_FCRST_Pos			(2U)
#define USB_OTG_GRSTCTL_FCRST_Msk			(0x1U << USB_OTG_GRSTCTL_FCRST_Pos)	//  0x00000004
#define USB_OTG_GRSTCTL_FCRST			USB_OTG_GRSTCTL_FCRST_Msk	//  Host frame counter reset
#define USB_OTG_GRSTCTL_RXFFLSH_Pos		(4U)
#define USB_OTG_GRSTCTL_RXFFLSH_Msk		(0x1U << USB_OTG_GRSTCTL_RXFFLSH_Pos)	//  0x00000010
#define USB_OTG_GRSTCTL_RXFFLSH			USB_OTG_GRSTCTL_RXFFLSH_Msk	//  RxFIFO flush
#define USB_OTG_GRSTCTL_TXFFLSH_Pos		(5U)
#define USB_OTG_GRSTCTL_TXFFLSH_Msk		(0x1U << USB_OTG_GRSTCTL_TXFFLSH_Pos)	//  0x00000020
#define USB_OTG_GRSTCTL_TXFFLSH			USB_OTG_GRSTCTL_TXFFLSH_Msk	//  TxFIFO flush

#define USB_OTG_GRSTCTL_TXFNUM_Pos		(6U)
#define USB_OTG_GRSTCTL_TXFNUM_Msk		(0x1FU << USB_OTG_GRSTCTL_TXFNUM_Pos)	//  0x000007C0
#define USB_OTG_GRSTCTL_TXFNUM			USB_OTG_GRSTCTL_TXFNUM_Msk	//  TxFIFO number
#define USB_OTG_GRSTCTL_TXFNUM_0			(0x01U << USB_OTG_GRSTCTL_TXFNUM_Pos)	//  0x00000040
#define USB_OTG_GRSTCTL_TXFNUM_1			(0x02U << USB_OTG_GRSTCTL_TXFNUM_Pos)	//  0x00000080
#define USB_OTG_GRSTCTL_TXFNUM_2			(0x04U << USB_OTG_GRSTCTL_TXFNUM_Pos)	//  0x00000100
#define USB_OTG_GRSTCTL_TXFNUM_3			(0x08U << USB_OTG_GRSTCTL_TXFNUM_Pos)	//  0x00000200
#define USB_OTG_GRSTCTL_TXFNUM_4			(0x10U << USB_OTG_GRSTCTL_TXFNUM_Pos)	//  0x00000400
#define USB_OTG_GRSTCTL_DMAREQ_Pos		(30U)
#define USB_OTG_GRSTCTL_DMAREQ_Msk		(0x1U << USB_OTG_GRSTCTL_DMAREQ_Pos)	//  0x40000000
#define USB_OTG_GRSTCTL_DMAREQ			USB_OTG_GRSTCTL_DMAREQ_Msk	//  DMA request signal
#define USB_OTG_GRSTCTL_AHBIDL_Pos		(31U)
#define USB_OTG_GRSTCTL_AHBIDL_Msk		(0x1U << USB_OTG_GRSTCTL_AHBIDL_Pos)	//  0x80000000
#define USB_OTG_GRSTCTL_AHBIDL			USB_OTG_GRSTCTL_AHBIDL_Msk	//  AHB master idle

//  Bit definition for USB_OTG_DIEPMSK register
#define USB_OTG_DIEPMSK_XFRCM_Pos			(0U)
#define USB_OTG_DIEPMSK_XFRCM_Msk			(0x1U << USB_OTG_DIEPMSK_XFRCM_Pos)	//  0x00000001
#define USB_OTG_DIEPMSK_XFRCM			USB_OTG_DIEPMSK_XFRCM_Msk	//  Transfer completed interrupt mask
#define USB_OTG_DIEPMSK_EPDM_Pos			(1U)
#define USB_OTG_DIEPMSK_EPDM_Msk			(0x1U << USB_OTG_DIEPMSK_EPDM_Pos)	//  0x00000002
#define USB_OTG_DIEPMSK_EPDM			USB_OTG_DIEPMSK_EPDM_Msk	//  Endpoint disabled interrupt mask
#define USB_OTG_DIEPMSK_TOM_Pos			(3U)
#define USB_OTG_DIEPMSK_TOM_Msk			(0x1U << USB_OTG_DIEPMSK_TOM_Pos)	//  0x00000008
#define USB_OTG_DIEPMSK_TOM			USB_OTG_DIEPMSK_TOM_Msk	//  Timeout condition mask (nonisochronous endpoints)
#define USB_OTG_DIEPMSK_ITTXFEMSK_Pos		(4U)
#define USB_OTG_DIEPMSK_ITTXFEMSK_Msk		(0x1U << USB_OTG_DIEPMSK_ITTXFEMSK_Pos)	//  0x00000010
#define USB_OTG_DIEPMSK_ITTXFEMSK			USB_OTG_DIEPMSK_ITTXFEMSK_Msk	//  IN token received when TxFIFO empty mask
#define USB_OTG_DIEPMSK_INEPNMM_Pos		(5U)
#define USB_OTG_DIEPMSK_INEPNMM_Msk		(0x1U << USB_OTG_DIEPMSK_INEPNMM_Pos)	//  0x00000020
#define USB_OTG_DIEPMSK_INEPNMM			USB_OTG_DIEPMSK_INEPNMM_Msk	//  IN token received with EP mismatch mask
#define USB_OTG_DIEPMSK_INEPNEM_Pos		(6U)
#define USB_OTG_DIEPMSK_INEPNEM_Msk		(0x1U << USB_OTG_DIEPMSK_INEPNEM_Pos)	//  0x00000040
#define USB_OTG_DIEPMSK_INEPNEM			USB_OTG_DIEPMSK_INEPNEM_Msk	//  IN endpoint NAK effective mask
#define USB_OTG_DIEPMSK_TXFURM_Pos		(8U)
#define USB_OTG_DIEPMSK_TXFURM_Msk		(0x1U << USB_OTG_DIEPMSK_TXFURM_Pos)	//  0x00000100
#define USB_OTG_DIEPMSK_TXFURM			USB_OTG_DIEPMSK_TXFURM_Msk	//  FIFO underrun mask
#define USB_OTG_DIEPMSK_BIM_Pos			(9U)
#define USB_OTG_DIEPMSK_BIM_Msk			(0x1U << USB_OTG_DIEPMSK_BIM_Pos)	//  0x00000200
#define USB_OTG_DIEPMSK_BIM			USB_OTG_DIEPMSK_BIM_Msk	//  BNA interrupt mask

//  Bit definition for USB_OTG_HPTXSTS register
#define USB_OTG_HPTXSTS_PTXFSAVL_Pos		(0U)
#define USB_OTG_HPTXSTS_PTXFSAVL_Msk		(0xFFFFU << USB_OTG_HPTXSTS_PTXFSAVL_Pos)	//  0x0000FFFF
#define USB_OTG_HPTXSTS_PTXFSAVL			USB_OTG_HPTXSTS_PTXFSAVL_Msk	//  Periodic transmit data FIFO space available
#define USB_OTG_HPTXSTS_PTXQSAV_Pos		(16U)
#define USB_OTG_HPTXSTS_PTXQSAV_Msk		(0xFFU << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00FF0000
#define USB_OTG_HPTXSTS_PTXQSAV			USB_OTG_HPTXSTS_PTXQSAV_Msk	//  Periodic transmit request queue space available
#define USB_OTG_HPTXSTS_PTXQSAV_0			(0x01U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00010000
#define USB_OTG_HPTXSTS_PTXQSAV_1			(0x02U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00020000
#define USB_OTG_HPTXSTS_PTXQSAV_2			(0x04U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00040000
#define USB_OTG_HPTXSTS_PTXQSAV_3			(0x08U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00080000
#define USB_OTG_HPTXSTS_PTXQSAV_4			(0x10U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00100000
#define USB_OTG_HPTXSTS_PTXQSAV_5			(0x20U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00200000
#define USB_OTG_HPTXSTS_PTXQSAV_6			(0x40U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00400000
#define USB_OTG_HPTXSTS_PTXQSAV_7			(0x80U << USB_OTG_HPTXSTS_PTXQSAV_Pos)	//  0x00800000

#define USB_OTG_HPTXSTS_PTXQTOP_Pos		(24U)
#define USB_OTG_HPTXSTS_PTXQTOP_Msk		(0xFFU << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0xFF000000
#define USB_OTG_HPTXSTS_PTXQTOP			USB_OTG_HPTXSTS_PTXQTOP_Msk	//  Top of the periodic transmit request queue
#define USB_OTG_HPTXSTS_PTXQTOP_0			(0x01U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x01000000
#define USB_OTG_HPTXSTS_PTXQTOP_1			(0x02U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x02000000
#define USB_OTG_HPTXSTS_PTXQTOP_2			(0x04U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x04000000
#define USB_OTG_HPTXSTS_PTXQTOP_3			(0x08U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x08000000
#define USB_OTG_HPTXSTS_PTXQTOP_4			(0x10U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x10000000
#define USB_OTG_HPTXSTS_PTXQTOP_5			(0x20U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x20000000
#define USB_OTG_HPTXSTS_PTXQTOP_6			(0x40U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x40000000
#define USB_OTG_HPTXSTS_PTXQTOP_7			(0x80U << USB_OTG_HPTXSTS_PTXQTOP_Pos)	//  0x80000000

//  Bit definition for USB_OTG_HAINT register
#define USB_OTG_HAINT_HAINT_Pos			(0U)
#define USB_OTG_HAINT_HAINT_Msk			(0xFFFFU << USB_OTG_HAINT_HAINT_Pos)	//  0x0000FFFF
#define USB_OTG_HAINT_HAINT			USB_OTG_HAINT_HAINT_Msk	//  Channel interrupts

//  Bit definition for USB_OTG_DOEPMSK register
#define USB_OTG_DOEPMSK_XFRCM_Pos			(0U)
#define USB_OTG_DOEPMSK_XFRCM_Msk			(0x1U << USB_OTG_DOEPMSK_XFRCM_Pos)	//  0x00000001
#define USB_OTG_DOEPMSK_XFRCM			USB_OTG_DOEPMSK_XFRCM_Msk	//  Transfer completed interrupt mask
#define USB_OTG_DOEPMSK_EPDM_Pos			(1U)
#define USB_OTG_DOEPMSK_EPDM_Msk			(0x1U << USB_OTG_DOEPMSK_EPDM_Pos)	//  0x00000002
#define USB_OTG_DOEPMSK_EPDM			USB_OTG_DOEPMSK_EPDM_Msk	//  Endpoint disabled interrupt mask
#define USB_OTG_DOEPMSK_STUPM_Pos			(3U)
#define USB_OTG_DOEPMSK_STUPM_Msk			(0x1U << USB_OTG_DOEPMSK_STUPM_Pos)	//  0x00000008
#define USB_OTG_DOEPMSK_STUPM			USB_OTG_DOEPMSK_STUPM_Msk	//  SETUP phase done mask
#define USB_OTG_DOEPMSK_OTEPDM_Pos		(4U)
#define USB_OTG_DOEPMSK_OTEPDM_Msk		(0x1U << USB_OTG_DOEPMSK_OTEPDM_Pos)	//  0x00000010
#define USB_OTG_DOEPMSK_OTEPDM			USB_OTG_DOEPMSK_OTEPDM_Msk	//  OUT token received when endpoint disabled mask
#define USB_OTG_DOEPMSK_B2BSTUP_Pos		(6U)
#define USB_OTG_DOEPMSK_B2BSTUP_Msk		(0x1U << USB_OTG_DOEPMSK_B2BSTUP_Pos)	//  0x00000040
#define USB_OTG_DOEPMSK_B2BSTUP			USB_OTG_DOEPMSK_B2BSTUP_Msk	//  Back-to-back SETUP packets received mask
#define USB_OTG_DOEPMSK_OPEM_Pos			(8U)
#define USB_OTG_DOEPMSK_OPEM_Msk			(0x1U << USB_OTG_DOEPMSK_OPEM_Pos)	//  0x00000100
#define USB_OTG_DOEPMSK_OPEM			USB_OTG_DOEPMSK_OPEM_Msk	//  OUT packet error mask
#define USB_OTG_DOEPMSK_BOIM_Pos			(9U)
#define USB_OTG_DOEPMSK_BOIM_Msk			(0x1U << USB_OTG_DOEPMSK_BOIM_Pos)	//  0x00000200
#define USB_OTG_DOEPMSK_BOIM			USB_OTG_DOEPMSK_BOIM_Msk	//  BNA interrupt mask

//  Bit definition for USB_OTG_GINTSTS register
#define USB_OTG_GINTSTS_CMOD_Pos			(0U)
#define USB_OTG_GINTSTS_CMOD_Msk			(0x1U << USB_OTG_GINTSTS_CMOD_Pos)	//  0x00000001
#define USB_OTG_GINTSTS_CMOD			USB_OTG_GINTSTS_CMOD_Msk	//  Current mode of operation
#define USB_OTG_GINTSTS_MMIS_Pos			(1U)
#define USB_OTG_GINTSTS_MMIS_Msk			(0x1U << USB_OTG_GINTSTS_MMIS_Pos)	//  0x00000002
#define USB_OTG_GINTSTS_MMIS			USB_OTG_GINTSTS_MMIS_Msk	//  Mode mismatch interrupt
#define USB_OTG_GINTSTS_OTGINT_Pos		(2U)
#define USB_OTG_GINTSTS_OTGINT_Msk		(0x1U << USB_OTG_GINTSTS_OTGINT_Pos)	//  0x00000004
#define USB_OTG_GINTSTS_OTGINT			USB_OTG_GINTSTS_OTGINT_Msk	//  OTG interrupt
#define USB_OTG_GINTSTS_SOF_Pos			(3U)
#define USB_OTG_GINTSTS_SOF_Msk			(0x1U << USB_OTG_GINTSTS_SOF_Pos)	//  0x00000008
#define USB_OTG_GINTSTS_SOF			USB_OTG_GINTSTS_SOF_Msk	//  Start of frame
#define USB_OTG_GINTSTS_RXFLVL_Pos		(4U)
#define USB_OTG_GINTSTS_RXFLVL_Msk		(0x1U << USB_OTG_GINTSTS_RXFLVL_Pos)	//  0x00000010
#define USB_OTG_GINTSTS_RXFLVL			USB_OTG_GINTSTS_RXFLVL_Msk	//  RxFIFO nonempty
#define USB_OTG_GINTSTS_NPTXFE_Pos		(5U)
#define USB_OTG_GINTSTS_NPTXFE_Msk		(0x1U << USB_OTG_GINTSTS_NPTXFE_Pos)	//  0x00000020
#define USB_OTG_GINTSTS_NPTXFE			USB_OTG_GINTSTS_NPTXFE_Msk	//  Nonperiodic TxFIFO empty
#define USB_OTG_GINTSTS_GINAKEFF_Pos		(6U)
#define USB_OTG_GINTSTS_GINAKEFF_Msk		(0x1U << USB_OTG_GINTSTS_GINAKEFF_Pos)	//  0x00000040
#define USB_OTG_GINTSTS_GINAKEFF			USB_OTG_GINTSTS_GINAKEFF_Msk	//  Global IN nonperiodic NAK effective
#define USB_OTG_GINTSTS_BOUTNAKEFF_Pos		(7U)
#define USB_OTG_GINTSTS_BOUTNAKEFF_Msk		(0x1U << USB_OTG_GINTSTS_BOUTNAKEFF_Pos)	//  0x00000080
#define USB_OTG_GINTSTS_BOUTNAKEFF		USB_OTG_GINTSTS_BOUTNAKEFF_Msk	//  Global OUT NAK effective
#define USB_OTG_GINTSTS_ESUSP_Pos			(10U)
#define USB_OTG_GINTSTS_ESUSP_Msk			(0x1U << USB_OTG_GINTSTS_ESUSP_Pos)	//  0x00000400
#define USB_OTG_GINTSTS_ESUSP			USB_OTG_GINTSTS_ESUSP_Msk	//  Early suspend
#define USB_OTG_GINTSTS_USBSUSP_Pos		(11U)
#define USB_OTG_GINTSTS_USBSUSP_Msk		(0x1U << USB_OTG_GINTSTS_USBSUSP_Pos)	//  0x00000800
#define USB_OTG_GINTSTS_USBSUSP			USB_OTG_GINTSTS_USBSUSP_Msk	//  USB suspend
#define USB_OTG_GINTSTS_USBRST_Pos		(12U)
#define USB_OTG_GINTSTS_USBRST_Msk		(0x1U << USB_OTG_GINTSTS_USBRST_Pos)	//  0x00001000
#define USB_OTG_GINTSTS_USBRST			USB_OTG_GINTSTS_USBRST_Msk	//  USB reset
#define USB_OTG_GINTSTS_ENUMDNE_Pos		(13U)
#define USB_OTG_GINTSTS_ENUMDNE_Msk		(0x1U << USB_OTG_GINTSTS_ENUMDNE_Pos)	//  0x00002000
#define USB_OTG_GINTSTS_ENUMDNE			USB_OTG_GINTSTS_ENUMDNE_Msk	//  Enumeration done
#define USB_OTG_GINTSTS_ISOODRP_Pos		(14U)
#define USB_OTG_GINTSTS_ISOODRP_Msk		(0x1U << USB_OTG_GINTSTS_ISOODRP_Pos)	//  0x00004000
#define USB_OTG_GINTSTS_ISOODRP			USB_OTG_GINTSTS_ISOODRP_Msk	//  Isochronous OUT packet dropped interrupt
#define USB_OTG_GINTSTS_EOPF_Pos			(15U)
#define USB_OTG_GINTSTS_EOPF_Msk			(0x1U << USB_OTG_GINTSTS_EOPF_Pos)	//  0x00008000
#define USB_OTG_GINTSTS_EOPF			USB_OTG_GINTSTS_EOPF_Msk	//  End of periodic frame interrupt
#define USB_OTG_GINTSTS_IEPINT_Pos		(18U)
#define USB_OTG_GINTSTS_IEPINT_Msk		(0x1U << USB_OTG_GINTSTS_IEPINT_Pos)	//  0x00040000
#define USB_OTG_GINTSTS_IEPINT			USB_OTG_GINTSTS_IEPINT_Msk	//  IN endpoint interrupt
#define USB_OTG_GINTSTS_OEPINT_Pos		(19U)
#define USB_OTG_GINTSTS_OEPINT_Msk		(0x1U << USB_OTG_GINTSTS_OEPINT_Pos)	//  0x00080000
#define USB_OTG_GINTSTS_OEPINT			USB_OTG_GINTSTS_OEPINT_Msk	//  OUT endpoint interrupt
#define USB_OTG_GINTSTS_IISOIXFR_Pos		(20U)
#define USB_OTG_GINTSTS_IISOIXFR_Msk		(0x1U << USB_OTG_GINTSTS_IISOIXFR_Pos)	//  0x00100000
#define USB_OTG_GINTSTS_IISOIXFR			USB_OTG_GINTSTS_IISOIXFR_Msk	//  Incomplete isochronous IN transfer
#define USB_OTG_GINTSTS_PXFR_INCOMPISOOUT_Pos	(21U)
#define USB_OTG_GINTSTS_PXFR_INCOMPISOOUT_Msk	(0x1U << USB_OTG_GINTSTS_PXFR_INCOMPISOOUT_Pos)	//  0x00200000
#define USB_OTG_GINTSTS_PXFR_INCOMPISOOUT		USB_OTG_GINTSTS_PXFR_INCOMPISOOUT_Msk	//  Incomplete periodic transfer
#define USB_OTG_GINTSTS_DATAFSUSP_Pos		(22U)
#define USB_OTG_GINTSTS_DATAFSUSP_Msk		(0x1U << USB_OTG_GINTSTS_DATAFSUSP_Pos)	//  0x00400000
#define USB_OTG_GINTSTS_DATAFSUSP			USB_OTG_GINTSTS_DATAFSUSP_Msk	//  Data fetch suspended
#define USB_OTG_GINTSTS_HPRTINT_Pos		(24U)
#define USB_OTG_GINTSTS_HPRTINT_Msk		(0x1U << USB_OTG_GINTSTS_HPRTINT_Pos)	//  0x01000000
#define USB_OTG_GINTSTS_HPRTINT			USB_OTG_GINTSTS_HPRTINT_Msk	//  Host port interrupt
#define USB_OTG_GINTSTS_HCINT_Pos			(25U)
#define USB_OTG_GINTSTS_HCINT_Msk			(0x1U << USB_OTG_GINTSTS_HCINT_Pos)	//  0x02000000
#define USB_OTG_GINTSTS_HCINT			USB_OTG_GINTSTS_HCINT_Msk	//  Host channels interrupt
#define USB_OTG_GINTSTS_PTXFE_Pos			(26U)
#define USB_OTG_GINTSTS_PTXFE_Msk			(0x1U << USB_OTG_GINTSTS_PTXFE_Pos)	//  0x04000000
#define USB_OTG_GINTSTS_PTXFE			USB_OTG_GINTSTS_PTXFE_Msk	//  Periodic TxFIFO empty
#define USB_OTG_GINTSTS_CIDSCHG_Pos		(28U)
#define USB_OTG_GINTSTS_CIDSCHG_Msk		(0x1U << USB_OTG_GINTSTS_CIDSCHG_Pos)	//  0x10000000
#define USB_OTG_GINTSTS_CIDSCHG			USB_OTG_GINTSTS_CIDSCHG_Msk	//  Connector ID status change
#define USB_OTG_GINTSTS_DISCINT_Pos		(29U)
#define USB_OTG_GINTSTS_DISCINT_Msk		(0x1U << USB_OTG_GINTSTS_DISCINT_Pos)	//  0x20000000
#define USB_OTG_GINTSTS_DISCINT			USB_OTG_GINTSTS_DISCINT_Msk	//  Disconnect detected interrupt
#define USB_OTG_GINTSTS_SRQINT_Pos		(30U)
#define USB_OTG_GINTSTS_SRQINT_Msk		(0x1U << USB_OTG_GINTSTS_SRQINT_Pos)	//  0x40000000
#define USB_OTG_GINTSTS_SRQINT			USB_OTG_GINTSTS_SRQINT_Msk	//  Session request/new session detected interrupt
#define USB_OTG_GINTSTS_WKUINT_Pos		(31U)
#define USB_OTG_GINTSTS_WKUINT_Msk		(0x1U << USB_OTG_GINTSTS_WKUINT_Pos)	//  0x80000000
#define USB_OTG_GINTSTS_WKUINT			USB_OTG_GINTSTS_WKUINT_Msk	//  Resume/remote wakeup detected interrupt

//  Bit definition for USB_OTG_GINTMSK register
#define USB_OTG_GINTMSK_MMISM_Pos			(1U)
#define USB_OTG_GINTMSK_MMISM_Msk			(0x1U << USB_OTG_GINTMSK_MMISM_Pos)	//  0x00000002
#define USB_OTG_GINTMSK_MMISM			USB_OTG_GINTMSK_MMISM_Msk	//  Mode mismatch interrupt mask
#define USB_OTG_GINTMSK_OTGINT_Pos		(2U)
#define USB_OTG_GINTMSK_OTGINT_Msk		(0x1U << USB_OTG_GINTMSK_OTGINT_Pos)	//  0x00000004
#define USB_OTG_GINTMSK_OTGINT			USB_OTG_GINTMSK_OTGINT_Msk	//  OTG interrupt mask
#define USB_OTG_GINTMSK_SOFM_Pos			(3U)
#define USB_OTG_GINTMSK_SOFM_Msk			(0x1U << USB_OTG_GINTMSK_SOFM_Pos)	//  0x00000008
#define USB_OTG_GINTMSK_SOFM			USB_OTG_GINTMSK_SOFM_Msk	//  Start of frame mask
#define USB_OTG_GINTMSK_RXFLVLM_Pos		(4U)
#define USB_OTG_GINTMSK_RXFLVLM_Msk		(0x1U << USB_OTG_GINTMSK_RXFLVLM_Pos)	//  0x00000010
#define USB_OTG_GINTMSK_RXFLVLM			USB_OTG_GINTMSK_RXFLVLM_Msk	//  Receive FIFO nonempty mask
#define USB_OTG_GINTMSK_NPTXFEM_Pos		(5U)
#define USB_OTG_GINTMSK_NPTXFEM_Msk		(0x1U << USB_OTG_GINTMSK_NPTXFEM_Pos)	//  0x00000020
#define USB_OTG_GINTMSK_NPTXFEM			USB_OTG_GINTMSK_NPTXFEM_Msk	//  Nonperiodic TxFIFO empty mask
#define USB_OTG_GINTMSK_GINAKEFFM_Pos		(6U)
#define USB_OTG_GINTMSK_GINAKEFFM_Msk		(0x1U << USB_OTG_GINTMSK_GINAKEFFM_Pos)	//  0x00000040
#define USB_OTG_GINTMSK_GINAKEFFM			USB_OTG_GINTMSK_GINAKEFFM_Msk	//  Global nonperiodic IN NAK effective mask
#define USB_OTG_GINTMSK_GONAKEFFM_Pos		(7U)
#define USB_OTG_GINTMSK_GONAKEFFM_Msk		(0x1U << USB_OTG_GINTMSK_GONAKEFFM_Pos)	//  0x00000080
#define USB_OTG_GINTMSK_GONAKEFFM			USB_OTG_GINTMSK_GONAKEFFM_Msk	//  Global OUT NAK effective mask
#define USB_OTG_GINTMSK_ESUSPM_Pos		(10U)
#define USB_OTG_GINTMSK_ESUSPM_Msk		(0x1U << USB_OTG_GINTMSK_ESUSPM_Pos)	//  0x00000400
#define USB_OTG_GINTMSK_ESUSPM			USB_OTG_GINTMSK_ESUSPM_Msk	//  Early suspend mask
#define USB_OTG_GINTMSK_USBSUSPM_Pos		(11U)
#define USB_OTG_GINTMSK_USBSUSPM_Msk		(0x1U << USB_OTG_GINTMSK_USBSUSPM_Pos)	//  0x00000800
#define USB_OTG_GINTMSK_USBSUSPM			USB_OTG_GINTMSK_USBSUSPM_Msk	//  USB suspend mask
#define USB_OTG_GINTMSK_USBRST_Pos		(12U)
#define USB_OTG_GINTMSK_USBRST_Msk		(0x1U << USB_OTG_GINTMSK_USBRST_Pos)	//  0x00001000
#define USB_OTG_GINTMSK_USBRST			USB_OTG_GINTMSK_USBRST_Msk	//  USB reset mask
#define USB_OTG_GINTMSK_ENUMDNEM_Pos		(13U)
#define USB_OTG_GINTMSK_ENUMDNEM_Msk		(0x1U << USB_OTG_GINTMSK_ENUMDNEM_Pos)	//  0x00002000
#define USB_OTG_GINTMSK_ENUMDNEM			USB_OTG_GINTMSK_ENUMDNEM_Msk	//  Enumeration done mask
#define USB_OTG_GINTMSK_ISOODRPM_Pos		(14U)
#define USB_OTG_GINTMSK_ISOODRPM_Msk		(0x1U << USB_OTG_GINTMSK_ISOODRPM_Pos)	//  0x00004000
#define USB_OTG_GINTMSK_ISOODRPM			USB_OTG_GINTMSK_ISOODRPM_Msk	//  Isochronous OUT packet dropped interrupt mask
#define USB_OTG_GINTMSK_EOPFM_Pos			(15U)
#define USB_OTG_GINTMSK_EOPFM_Msk			(0x1U << USB_OTG_GINTMSK_EOPFM_Pos)	//  0x00008000
#define USB_OTG_GINTMSK_EOPFM			USB_OTG_GINTMSK_EOPFM_Msk	//  End of periodic frame interrupt mask
#define USB_OTG_GINTMSK_EPMISM_Pos		(17U)
#define USB_OTG_GINTMSK_EPMISM_Msk		(0x1U << USB_OTG_GINTMSK_EPMISM_Pos)	//  0x00020000
#define USB_OTG_GINTMSK_EPMISM			USB_OTG_GINTMSK_EPMISM_Msk	//  Endpoint mismatch interrupt mask
#define USB_OTG_GINTMSK_IEPINT_Pos		(18U)
#define USB_OTG_GINTMSK_IEPINT_Msk		(0x1U << USB_OTG_GINTMSK_IEPINT_Pos)	//  0x00040000
#define USB_OTG_GINTMSK_IEPINT			USB_OTG_GINTMSK_IEPINT_Msk	//  IN endpoints interrupt mask
#define USB_OTG_GINTMSK_OEPINT_Pos		(19U)
#define USB_OTG_GINTMSK_OEPINT_Msk		(0x1U << USB_OTG_GINTMSK_OEPINT_Pos)	//  0x00080000
#define USB_OTG_GINTMSK_OEPINT			USB_OTG_GINTMSK_OEPINT_Msk	//  OUT endpoints interrupt mask
#define USB_OTG_GINTMSK_IISOIXFRM_Pos		(20U)
#define USB_OTG_GINTMSK_IISOIXFRM_Msk		(0x1U << USB_OTG_GINTMSK_IISOIXFRM_Pos)	//  0x00100000
#define USB_OTG_GINTMSK_IISOIXFRM			USB_OTG_GINTMSK_IISOIXFRM_Msk	//  Incomplete isochronous IN transfer mask
#define USB_OTG_GINTMSK_PXFRM_IISOOXFRM_Pos	(21U)
#define USB_OTG_GINTMSK_PXFRM_IISOOXFRM_Msk	(0x1U << USB_OTG_GINTMSK_PXFRM_IISOOXFRM_Pos)	//  0x00200000
#define USB_OTG_GINTMSK_PXFRM_IISOOXFRM		USB_OTG_GINTMSK_PXFRM_IISOOXFRM_Msk	//  Incomplete periodic transfer mask
#define USB_OTG_GINTMSK_FSUSPM_Pos		(22U)
#define USB_OTG_GINTMSK_FSUSPM_Msk		(0x1U << USB_OTG_GINTMSK_FSUSPM_Pos)	//  0x00400000
#define USB_OTG_GINTMSK_FSUSPM			USB_OTG_GINTMSK_FSUSPM_Msk	//  Data fetch suspended mask
#define USB_OTG_GINTMSK_PRTIM_Pos			(24U)
#define USB_OTG_GINTMSK_PRTIM_Msk			(0x1U << USB_OTG_GINTMSK_PRTIM_Pos)	//  0x01000000
#define USB_OTG_GINTMSK_PRTIM			USB_OTG_GINTMSK_PRTIM_Msk	//  Host port interrupt mask
#define USB_OTG_GINTMSK_HCIM_Pos			(25U)
#define USB_OTG_GINTMSK_HCIM_Msk			(0x1U << USB_OTG_GINTMSK_HCIM_Pos)	//  0x02000000
#define USB_OTG_GINTMSK_HCIM			USB_OTG_GINTMSK_HCIM_Msk	//  Host channels interrupt mask
#define USB_OTG_GINTMSK_PTXFEM_Pos		(26U)
#define USB_OTG_GINTMSK_PTXFEM_Msk		(0x1U << USB_OTG_GINTMSK_PTXFEM_Pos)	//  0x04000000
#define USB_OTG_GINTMSK_PTXFEM			USB_OTG_GINTMSK_PTXFEM_Msk	//  Periodic TxFIFO empty mask
#define USB_OTG_GINTMSK_CIDSCHGM_Pos		(28U)
#define USB_OTG_GINTMSK_CIDSCHGM_Msk		(0x1U << USB_OTG_GINTMSK_CIDSCHGM_Pos)	//  0x10000000
#define USB_OTG_GINTMSK_CIDSCHGM			USB_OTG_GINTMSK_CIDSCHGM_Msk	//  Connector ID status change mask
#define USB_OTG_GINTMSK_DISCINT_Pos		(29U)
#define USB_OTG_GINTMSK_DISCINT_Msk		(0x1U << USB_OTG_GINTMSK_DISCINT_Pos)	//  0x20000000
#define USB_OTG_GINTMSK_DISCINT			USB_OTG_GINTMSK_DISCINT_Msk	//  Disconnect detected interrupt mask
#define USB_OTG_GINTMSK_SRQIM_Pos			(30U)
#define USB_OTG_GINTMSK_SRQIM_Msk			(0x1U << USB_OTG_GINTMSK_SRQIM_Pos)	//  0x40000000
#define USB_OTG_GINTMSK_SRQIM			USB_OTG_GINTMSK_SRQIM_Msk	//  Session request/new session detected interrupt mask
#define USB_OTG_GINTMSK_WUIM_Pos			(31U)
#define USB_OTG_GINTMSK_WUIM_Msk			(0x1U << USB_OTG_GINTMSK_WUIM_Pos)	//  0x80000000
#define USB_OTG_GINTMSK_WUIM			USB_OTG_GINTMSK_WUIM_Msk	//  Resume/remote wakeup detected interrupt mask

//  Bit definition for USB_OTG_DAINT register
#define USB_OTG_DAINT_IEPINT_Pos			(0U)
#define USB_OTG_DAINT_IEPINT_Msk			(0xFFFFU << USB_OTG_DAINT_IEPINT_Pos)	//  0x0000FFFF
#define USB_OTG_DAINT_IEPINT			USB_OTG_DAINT_IEPINT_Msk	//  IN endpoint interrupt bits
#define USB_OTG_DAINT_OEPINT_Pos			(16U)
#define USB_OTG_DAINT_OEPINT_Msk			(0xFFFFU << USB_OTG_DAINT_OEPINT_Pos)	//  0xFFFF0000
#define USB_OTG_DAINT_OEPINT			USB_OTG_DAINT_OEPINT_Msk	//  OUT endpoint interrupt bits

//  Bit definition for USB_OTG_HAINTMSK register
#define USB_OTG_HAINTMSK_HAINTM_Pos		(0U)
#define USB_OTG_HAINTMSK_HAINTM_Msk		(0xFFFFU << USB_OTG_HAINTMSK_HAINTM_Pos)	//  0x0000FFFF
#define USB_OTG_HAINTMSK_HAINTM			USB_OTG_HAINTMSK_HAINTM_Msk	//  Channel interrupt mask

//  Bit definition for USB_OTG_GRXSTSP register
#define USB_OTG_GRXSTSP_EPNUM_Pos			(0U)
#define USB_OTG_GRXSTSP_EPNUM_Msk			(0xFU << USB_OTG_GRXSTSP_EPNUM_Pos)	//  0x0000000F
#define USB_OTG_GRXSTSP_EPNUM			USB_OTG_GRXSTSP_EPNUM_Msk	//  IN EP interrupt mask bits
#define USB_OTG_GRXSTSP_BCNT_Pos			(4U)
#define USB_OTG_GRXSTSP_BCNT_Msk			(0x7FFU << USB_OTG_GRXSTSP_BCNT_Pos)	//  0x00007FF0
#define USB_OTG_GRXSTSP_BCNT			USB_OTG_GRXSTSP_BCNT_Msk	//  OUT EP interrupt mask bits
#define USB_OTG_GRXSTSP_DPID_Pos			(15U)
#define USB_OTG_GRXSTSP_DPID_Msk			(0x3U << USB_OTG_GRXSTSP_DPID_Pos)	//  0x00018000
#define USB_OTG_GRXSTSP_DPID			USB_OTG_GRXSTSP_DPID_Msk	//  OUT EP interrupt mask bits
#define USB_OTG_GRXSTSP_PKTSTS_Pos		(17U)
#define USB_OTG_GRXSTSP_PKTSTS_Msk		(0xFU << USB_OTG_GRXSTSP_PKTSTS_Pos)	//  0x001E0000
#define USB_OTG_GRXSTSP_PKTSTS			USB_OTG_GRXSTSP_PKTSTS_Msk	//  OUT EP interrupt mask bits

//  Bit definition for USB_OTG_DAINTMSK register
#define USB_OTG_DAINTMSK_IEPM_Pos			(0U)
#define USB_OTG_DAINTMSK_IEPM_Msk			(0xFFFFU << USB_OTG_DAINTMSK_IEPM_Pos)	//  0x0000FFFF
#define USB_OTG_DAINTMSK_IEPM			USB_OTG_DAINTMSK_IEPM_Msk	//  IN EP interrupt mask bits
#define USB_OTG_DAINTMSK_OEPM_Pos			(16U)
#define USB_OTG_DAINTMSK_OEPM_Msk			(0xFFFFU << USB_OTG_DAINTMSK_OEPM_Pos)	//  0xFFFF0000
#define USB_OTG_DAINTMSK_OEPM			USB_OTG_DAINTMSK_OEPM_Msk	//  OUT EP interrupt mask bits

//  Bit definition for OTG register
#define USB_OTG_CHNUM_Pos			(0U)
#define USB_OTG_CHNUM_Msk			(0xFU << USB_OTG_CHNUM_Pos)	//  0x0000000F
#define USB_OTG_CHNUM			USB_OTG_CHNUM_Msk			// Channel number
#define USB_OTG_CHNUM_0			(0x1U << USB_OTG_CHNUM_Pos)	//  0x00000001
#define USB_OTG_CHNUM_1			(0x2U << USB_OTG_CHNUM_Pos)	//  0x00000002
#define USB_OTG_CHNUM_2			(0x4U << USB_OTG_CHNUM_Pos)	//  0x00000004
#define USB_OTG_CHNUM_3			(0x8U << USB_OTG_CHNUM_Pos)	//  0x00000008
#define USB_OTG_BCNT_Pos			(4U)
#define USB_OTG_BCNT_Msk			(0x7FFU << USB_OTG_BCNT_Pos)	//  0x00007FF0
#define USB_OTG_BCNT			USB_OTG_BCNT_Msk			// Byte count

#define USB_OTG_DPID_Pos			(15U)
#define USB_OTG_DPID_Msk			(0x3U << USB_OTG_DPID_Pos)	//  0x00018000
#define USB_OTG_DPID			USB_OTG_DPID_Msk			// Data PID
#define USB_OTG_DPID_0			(0x1U << USB_OTG_DPID_Pos)	//  0x00008000
#define USB_OTG_DPID_1			(0x2U << USB_OTG_DPID_Pos)	//  0x00010000

#define USB_OTG_PKTSTS_Pos			(17U)
#define USB_OTG_PKTSTS_Msk			(0xFU << USB_OTG_PKTSTS_Pos)	//  0x001E0000
#define USB_OTG_PKTSTS			USB_OTG_PKTSTS_Msk			// Packet status
#define USB_OTG_PKTSTS_0			(0x1U << USB_OTG_PKTSTS_Pos)	//  0x00020000
#define USB_OTG_PKTSTS_1			(0x2U << USB_OTG_PKTSTS_Pos)	//  0x00040000
#define USB_OTG_PKTSTS_2			(0x4U << USB_OTG_PKTSTS_Pos)	//  0x00080000
#define USB_OTG_PKTSTS_3			(0x8U << USB_OTG_PKTSTS_Pos)	//  0x00100000

#define USB_OTG_EPNUM_Pos			(0U)
#define USB_OTG_EPNUM_Msk			(0xFU << USB_OTG_EPNUM_Pos)	//  0x0000000F
#define USB_OTG_EPNUM			USB_OTG_EPNUM_Msk			// Endpoint number
#define USB_OTG_EPNUM_0			(0x1U << USB_OTG_EPNUM_Pos)	//  0x00000001
#define USB_OTG_EPNUM_1			(0x2U << USB_OTG_EPNUM_Pos)	//  0x00000002
#define USB_OTG_EPNUM_2			(0x4U << USB_OTG_EPNUM_Pos)	//  0x00000004
#define USB_OTG_EPNUM_3			(0x8U << USB_OTG_EPNUM_Pos)	//  0x00000008

#define USB_OTG_FRMNUM_Pos			(21U)
#define USB_OTG_FRMNUM_Msk			(0xFU << USB_OTG_FRMNUM_Pos)	//  0x01E00000
#define USB_OTG_FRMNUM			USB_OTG_FRMNUM_Msk			// Frame number
#define USB_OTG_FRMNUM_0			(0x1U << USB_OTG_FRMNUM_Pos)	//  0x00200000
#define USB_OTG_FRMNUM_1			(0x2U << USB_OTG_FRMNUM_Pos)	//  0x00400000
#define USB_OTG_FRMNUM_2			(0x4U << USB_OTG_FRMNUM_Pos)	//  0x00800000
#define USB_OTG_FRMNUM_3			(0x8U << USB_OTG_FRMNUM_Pos)	//  0x01000000

//  Bit definition for OTG register
#define USB_OTG_CHNUM_Pos			(0U)
#define USB_OTG_CHNUM_Msk			(0xFU << USB_OTG_CHNUM_Pos)	//  0x0000000F
#define USB_OTG_CHNUM			USB_OTG_CHNUM_Msk			// Channel number
#define USB_OTG_CHNUM_0			(0x1U << USB_OTG_CHNUM_Pos)	//  0x00000001
#define USB_OTG_CHNUM_1			(0x2U << USB_OTG_CHNUM_Pos)	//  0x00000002
#define USB_OTG_CHNUM_2			(0x4U << USB_OTG_CHNUM_Pos)	//  0x00000004
#define USB_OTG_CHNUM_3			(0x8U << USB_OTG_CHNUM_Pos)	//  0x00000008
#define USB_OTG_BCNT_Pos			(4U)
#define USB_OTG_BCNT_Msk			(0x7FFU << USB_OTG_BCNT_Pos)	//  0x00007FF0
#define USB_OTG_BCNT			USB_OTG_BCNT_Msk			// Byte count

#define USB_OTG_DPID_Pos			(15U)
#define USB_OTG_DPID_Msk			(0x3U << USB_OTG_DPID_Pos)	//  0x00018000
#define USB_OTG_DPID			USB_OTG_DPID_Msk			// Data PID
#define USB_OTG_DPID_0			(0x1U << USB_OTG_DPID_Pos)	//  0x00008000
#define USB_OTG_DPID_1			(0x2U << USB_OTG_DPID_Pos)	//  0x00010000

#define USB_OTG_PKTSTS_Pos			(17U)
#define USB_OTG_PKTSTS_Msk			(0xFU << USB_OTG_PKTSTS_Pos)	//  0x001E0000
#define USB_OTG_PKTSTS			USB_OTG_PKTSTS_Msk			// Packet status
#define USB_OTG_PKTSTS_0			(0x1U << USB_OTG_PKTSTS_Pos)	//  0x00020000
#define USB_OTG_PKTSTS_1			(0x2U << USB_OTG_PKTSTS_Pos)	//  0x00040000
#define USB_OTG_PKTSTS_2			(0x4U << USB_OTG_PKTSTS_Pos)	//  0x00080000
#define USB_OTG_PKTSTS_3			(0x8U << USB_OTG_PKTSTS_Pos)	//  0x00100000

#define USB_OTG_EPNUM_Pos			(0U)
#define USB_OTG_EPNUM_Msk			(0xFU << USB_OTG_EPNUM_Pos)	//  0x0000000F
#define USB_OTG_EPNUM			USB_OTG_EPNUM_Msk			// Endpoint number
#define USB_OTG_EPNUM_0			(0x1U << USB_OTG_EPNUM_Pos)	//  0x00000001
#define USB_OTG_EPNUM_1			(0x2U << USB_OTG_EPNUM_Pos)	//  0x00000002
#define USB_OTG_EPNUM_2			(0x4U << USB_OTG_EPNUM_Pos)	//  0x00000004
#define USB_OTG_EPNUM_3			(0x8U << USB_OTG_EPNUM_Pos)	//  0x00000008

#define USB_OTG_FRMNUM_Pos			(21U)
#define USB_OTG_FRMNUM_Msk			(0xFU << USB_OTG_FRMNUM_Pos)	//  0x01E00000
#define USB_OTG_FRMNUM			USB_OTG_FRMNUM_Msk			// Frame number
#define USB_OTG_FRMNUM_0			(0x1U << USB_OTG_FRMNUM_Pos)	//  0x00200000
#define USB_OTG_FRMNUM_1			(0x2U << USB_OTG_FRMNUM_Pos)	//  0x00400000
#define USB_OTG_FRMNUM_2			(0x4U << USB_OTG_FRMNUM_Pos)	//  0x00800000
#define USB_OTG_FRMNUM_3			(0x8U << USB_OTG_FRMNUM_Pos)	//  0x01000000

//  Bit definition for USB_OTG_GRXFSIZ register
#define USB_OTG_GRXFSIZ_RXFD_Pos			(0U)
#define USB_OTG_GRXFSIZ_RXFD_Msk			(0xFFFFU << USB_OTG_GRXFSIZ_RXFD_Pos)	//  0x0000FFFF
#define USB_OTG_GRXFSIZ_RXFD			USB_OTG_GRXFSIZ_RXFD_Msk	//  RxFIFO depth

//  Bit definition for USB_OTG_DVBUSDIS register
#define USB_OTG_DVBUSDIS_VBUSDT_Pos		(0U)
#define USB_OTG_DVBUSDIS_VBUSDT_Msk		(0xFFFFU << USB_OTG_DVBUSDIS_VBUSDT_Pos)	//  0x0000FFFF
#define USB_OTG_DVBUSDIS_VBUSDT			USB_OTG_DVBUSDIS_VBUSDT_Msk	//  Device VBUS discharge time

//  Bit definition for OTG register
#define USB_OTG_NPTXFSA_Pos			(0U)
#define USB_OTG_NPTXFSA_Msk			(0xFFFFU << USB_OTG_NPTXFSA_Pos)	//  0x0000FFFF
#define USB_OTG_NPTXFSA			USB_OTG_NPTXFSA_Msk			// Nonperiodic transmit RAM start address
#define USB_OTG_NPTXFD_Pos			(16U)
#define USB_OTG_NPTXFD_Msk			(0xFFFFU << USB_OTG_NPTXFD_Pos)	//  0xFFFF0000
#define USB_OTG_NPTXFD			USB_OTG_NPTXFD_Msk			// Nonperiodic TxFIFO depth
#define USB_OTG_TX0FSA_Pos			(0U)
#define USB_OTG_TX0FSA_Msk			(0xFFFFU << USB_OTG_TX0FSA_Pos)	//  0x0000FFFF
#define USB_OTG_TX0FSA			USB_OTG_TX0FSA_Msk			// Endpoint 0 transmit RAM start address
#define USB_OTG_TX0FD_Pos			(16U)
#define USB_OTG_TX0FD_Msk			(0xFFFFU << USB_OTG_TX0FD_Pos)	//  0xFFFF0000
#define USB_OTG_TX0FD			USB_OTG_TX0FD_Msk			// Endpoint 0 TxFIFO depth

//  Bit definition forUSB_OTG_DVBUSPULSE register
#define USB_OTG_DVBUSPULSE_DVBUSP_Pos		(0U)
#define USB_OTG_DVBUSPULSE_DVBUSP_Msk		(0xFFFU << USB_OTG_DVBUSPULSE_DVBUSP_Pos)	//  0x00000FFF
#define USB_OTG_DVBUSPULSE_DVBUSP			USB_OTG_DVBUSPULSE_DVBUSP_Msk	//  Device VBUS pulsing time

//  Bit definition for USB_OTG_GNPTXSTS register
#define USB_OTG_GNPTXSTS_NPTXFSAV_Pos		(0U)
#define USB_OTG_GNPTXSTS_NPTXFSAV_Msk		(0xFFFFU << USB_OTG_GNPTXSTS_NPTXFSAV_Pos)	//  0x0000FFFF
#define USB_OTG_GNPTXSTS_NPTXFSAV			USB_OTG_GNPTXSTS_NPTXFSAV_Msk	//  Nonperiodic TxFIFO space available

#define USB_OTG_GNPTXSTS_NPTQXSAV_Pos		(16U)
#define USB_OTG_GNPTXSTS_NPTQXSAV_Msk		(0xFFU << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00FF0000
#define USB_OTG_GNPTXSTS_NPTQXSAV			USB_OTG_GNPTXSTS_NPTQXSAV_Msk	//  Nonperiodic transmit request queue space available
#define USB_OTG_GNPTXSTS_NPTQXSAV_0		(0x01U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00010000
#define USB_OTG_GNPTXSTS_NPTQXSAV_1		(0x02U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00020000
#define USB_OTG_GNPTXSTS_NPTQXSAV_2		(0x04U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00040000
#define USB_OTG_GNPTXSTS_NPTQXSAV_3		(0x08U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00080000
#define USB_OTG_GNPTXSTS_NPTQXSAV_4		(0x10U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00100000
#define USB_OTG_GNPTXSTS_NPTQXSAV_5		(0x20U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00200000
#define USB_OTG_GNPTXSTS_NPTQXSAV_6		(0x40U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00400000
#define USB_OTG_GNPTXSTS_NPTQXSAV_7		(0x80U << USB_OTG_GNPTXSTS_NPTQXSAV_Pos)	//  0x00800000

#define USB_OTG_GNPTXSTS_NPTXQTOP_Pos		(24U)
#define USB_OTG_GNPTXSTS_NPTXQTOP_Msk		(0x7FU << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x7F000000
#define USB_OTG_GNPTXSTS_NPTXQTOP			USB_OTG_GNPTXSTS_NPTXQTOP_Msk	//  Top of the nonperiodic transmit request queue
#define USB_OTG_GNPTXSTS_NPTXQTOP_0		(0x01U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x01000000
#define USB_OTG_GNPTXSTS_NPTXQTOP_1		(0x02U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x02000000
#define USB_OTG_GNPTXSTS_NPTXQTOP_2		(0x04U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x04000000
#define USB_OTG_GNPTXSTS_NPTXQTOP_3		(0x08U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x08000000
#define USB_OTG_GNPTXSTS_NPTXQTOP_4		(0x10U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x10000000
#define USB_OTG_GNPTXSTS_NPTXQTOP_5		(0x20U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x20000000
#define USB_OTG_GNPTXSTS_NPTXQTOP_6		(0x40U << USB_OTG_GNPTXSTS_NPTXQTOP_Pos)	//  0x40000000

//  Bit definition for USB_OTG_DTHRCTL register
#define USB_OTG_DTHRCTL_NONISOTHREN_Pos		(0U)
#define USB_OTG_DTHRCTL_NONISOTHREN_Msk		(0x1U << USB_OTG_DTHRCTL_NONISOTHREN_Pos)	//  0x00000001
#define USB_OTG_DTHRCTL_NONISOTHREN		USB_OTG_DTHRCTL_NONISOTHREN_Msk	//  Nonisochronous IN endpoints threshold enable
#define USB_OTG_DTHRCTL_ISOTHREN_Pos		(1U)
#define USB_OTG_DTHRCTL_ISOTHREN_Msk		(0x1U << USB_OTG_DTHRCTL_ISOTHREN_Pos)	//  0x00000002
#define USB_OTG_DTHRCTL_ISOTHREN			USB_OTG_DTHRCTL_ISOTHREN_Msk	//  ISO IN endpoint threshold enable

#define USB_OTG_DTHRCTL_TXTHRLEN_Pos		(2U)
#define USB_OTG_DTHRCTL_TXTHRLEN_Msk		(0x1FFU << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x000007FC
#define USB_OTG_DTHRCTL_TXTHRLEN			USB_OTG_DTHRCTL_TXTHRLEN_Msk	//  Transmit threshold length
#define USB_OTG_DTHRCTL_TXTHRLEN_0		(0x001U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000004
#define USB_OTG_DTHRCTL_TXTHRLEN_1		(0x002U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000008
#define USB_OTG_DTHRCTL_TXTHRLEN_2		(0x004U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000010
#define USB_OTG_DTHRCTL_TXTHRLEN_3		(0x008U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000020
#define USB_OTG_DTHRCTL_TXTHRLEN_4		(0x010U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000040
#define USB_OTG_DTHRCTL_TXTHRLEN_5		(0x020U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000080
#define USB_OTG_DTHRCTL_TXTHRLEN_6		(0x040U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000100
#define USB_OTG_DTHRCTL_TXTHRLEN_7		(0x080U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000200
#define USB_OTG_DTHRCTL_TXTHRLEN_8		(0x100U << USB_OTG_DTHRCTL_TXTHRLEN_Pos)	//  0x00000400
#define USB_OTG_DTHRCTL_RXTHREN_Pos		(16U)
#define USB_OTG_DTHRCTL_RXTHREN_Msk		(0x1U << USB_OTG_DTHRCTL_RXTHREN_Pos)	//  0x00010000
#define USB_OTG_DTHRCTL_RXTHREN			USB_OTG_DTHRCTL_RXTHREN_Msk	//  Receive threshold enable

#define USB_OTG_DTHRCTL_RXTHRLEN_Pos		(17U)
#define USB_OTG_DTHRCTL_RXTHRLEN_Msk		(0x1FFU << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x03FE0000
#define USB_OTG_DTHRCTL_RXTHRLEN			USB_OTG_DTHRCTL_RXTHRLEN_Msk	//  Receive threshold length
#define USB_OTG_DTHRCTL_RXTHRLEN_0		(0x001U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00020000
#define USB_OTG_DTHRCTL_RXTHRLEN_1		(0x002U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00040000
#define USB_OTG_DTHRCTL_RXTHRLEN_2		(0x004U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00080000
#define USB_OTG_DTHRCTL_RXTHRLEN_3		(0x008U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00100000
#define USB_OTG_DTHRCTL_RXTHRLEN_4		(0x010U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00200000
#define USB_OTG_DTHRCTL_RXTHRLEN_5		(0x020U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00400000
#define USB_OTG_DTHRCTL_RXTHRLEN_6		(0x040U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x00800000
#define USB_OTG_DTHRCTL_RXTHRLEN_7		(0x080U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x01000000
#define USB_OTG_DTHRCTL_RXTHRLEN_8		(0x100U << USB_OTG_DTHRCTL_RXTHRLEN_Pos)	//  0x02000000
#define USB_OTG_DTHRCTL_ARPEN_Pos		(27U)
#define USB_OTG_DTHRCTL_ARPEN_Msk		(0x1U << USB_OTG_DTHRCTL_ARPEN_Pos)	//  0x08000000
#define USB_OTG_DTHRCTL_ARPEN			USB_OTG_DTHRCTL_ARPEN_Msk	//  Arbiter parking enable

//  Bit definition for USB_OTG_DIEPEMPMSK register
#define USB_OTG_DIEPEMPMSK_INEPTXFEM_Pos	(0U)
#define USB_OTG_DIEPEMPMSK_INEPTXFEM_Msk	(0xFFFFU << USB_OTG_DIEPEMPMSK_INEPTXFEM_Pos)	//  0x0000FFFF
#define USB_OTG_DIEPEMPMSK_INEPTXFEM		USB_OTG_DIEPEMPMSK_INEPTXFEM_Msk	//  IN EP Tx FIFO empty interrupt mask bits

//  Bit definition for USB_OTG_DEACHINT register
#define USB_OTG_DEACHINT_IEP1INT_Pos		(1U)
#define USB_OTG_DEACHINT_IEP1INT_Msk		(0x1U << USB_OTG_DEACHINT_IEP1INT_Pos)	//  0x00000002
#define USB_OTG_DEACHINT_IEP1INT		USB_OTG_DEACHINT_IEP1INT_Msk	//  IN endpoint 1interrupt bit
#define USB_OTG_DEACHINT_OEP1INT_Pos		(17U)
#define USB_OTG_DEACHINT_OEP1INT_Msk		(0x1U << USB_OTG_DEACHINT_OEP1INT_Pos)	//  0x00020000
#define USB_OTG_DEACHINT_OEP1INT		USB_OTG_DEACHINT_OEP1INT_Msk	//  OUT endpoint 1 interrupt bit

//  Bit definition for USB_OTG_GCCFG register
#define USB_OTG_GCCFG_PWRDWN_Pos			(16U)
#define USB_OTG_GCCFG_PWRDWN_Msk			(0x1U << USB_OTG_GCCFG_PWRDWN_Pos)	//  0x00010000
#define USB_OTG_GCCFG_PWRDWN			USB_OTG_GCCFG_PWRDWN_Msk	//  Power down
#define USB_OTG_GCCFG_I2CPADEN_Pos		(17U)
#define USB_OTG_GCCFG_I2CPADEN_Msk		(0x1U << USB_OTG_GCCFG_I2CPADEN_Pos)	//  0x00020000
#define USB_OTG_GCCFG_I2CPADEN			USB_OTG_GCCFG_I2CPADEN_Msk	// Enable I2C bus connection for the external I2C PHY interface
#define USB_OTG_GCCFG_VBUSASEN_Pos		(18U)
#define USB_OTG_GCCFG_VBUSASEN_Msk		(0x1U << USB_OTG_GCCFG_VBUSASEN_Pos)	//  0x00040000
#define USB_OTG_GCCFG_VBUSASEN			USB_OTG_GCCFG_VBUSASEN_Msk	//  Enable the VBUS sensing device
#define USB_OTG_GCCFG_VBUSBSEN_Pos		(19U)
#define USB_OTG_GCCFG_VBUSBSEN_Msk		(0x1U << USB_OTG_GCCFG_VBUSBSEN_Pos)	//  0x00080000
#define USB_OTG_GCCFG_VBUSBSEN			USB_OTG_GCCFG_VBUSBSEN_Msk	//  Enable the VBUS sensing device
#define USB_OTG_GCCFG_SOFOUTEN_Pos		(20U)
#define USB_OTG_GCCFG_SOFOUTEN_Msk		(0x1U << USB_OTG_GCCFG_SOFOUTEN_Pos)	//  0x00100000
#define USB_OTG_GCCFG_SOFOUTEN			USB_OTG_GCCFG_SOFOUTEN_Msk	//  SOF output enable
#define USB_OTG_GCCFG_NOVBUSSENS_Pos		(21U)
#define USB_OTG_GCCFG_NOVBUSSENS_Msk		(0x1U << USB_OTG_GCCFG_NOVBUSSENS_Pos)	//  0x00200000
#define USB_OTG_GCCFG_NOVBUSSENS			USB_OTG_GCCFG_NOVBUSSENS_Msk  // VBUS sensing disable option

//  Bit definition forUSB_OTG_DEACHINTMSK register
#define USB_OTG_DEACHINTMSK_IEP1INTM_Pos	(1U)
#define USB_OTG_DEACHINTMSK_IEP1INTM_Msk	(0x1U << USB_OTG_DEACHINTMSK_IEP1INTM_Pos)	//  0x00000002
#define USB_OTG_DEACHINTMSK_IEP1INTM		USB_OTG_DEACHINTMSK_IEP1INTM_Msk	//  IN Endpoint 1 interrupt mask bit
#define USB_OTG_DEACHINTMSK_OEP1INTM_Pos	(17U)
#define USB_OTG_DEACHINTMSK_OEP1INTM_Msk	(0x1U << USB_OTG_DEACHINTMSK_OEP1INTM_Pos)	//  0x00020000
#define USB_OTG_DEACHINTMSK_OEP1INTM		USB_OTG_DEACHINTMSK_OEP1INTM_Msk	//  OUT Endpoint 1 interrupt mask bit

//  Bit definition for USB_OTG_CID register
#define USB_OTG_CID_PRODUCT_ID_Pos		(0U)
#define USB_OTG_CID_PRODUCT_ID_Msk		(0xFFFFFFFFU << USB_OTG_CID_PRODUCT_ID_Pos)	//  0xFFFFFFFF
#define USB_OTG_CID_PRODUCT_ID			USB_OTG_CID_PRODUCT_ID_Msk	//  Product ID field

//  Bit definition for USB_OTG_DIEPEACHMSK1 register
#define USB_OTG_DIEPEACHMSK1_XFRCM_Pos		(0U)
#define USB_OTG_DIEPEACHMSK1_XFRCM_Msk		(0x1U << USB_OTG_DIEPEACHMSK1_XFRCM_Pos)	//  0x00000001
#define USB_OTG_DIEPEACHMSK1_XFRCM		USB_OTG_DIEPEACHMSK1_XFRCM_Msk	//  Transfer completed interrupt mask
#define USB_OTG_DIEPEACHMSK1_EPDM_Pos		(1U)
#define USB_OTG_DIEPEACHMSK1_EPDM_Msk		(0x1U << USB_OTG_DIEPEACHMSK1_EPDM_Pos)	//  0x00000002
#define USB_OTG_DIEPEACHMSK1_EPDM		USB_OTG_DIEPEACHMSK1_EPDM_Msk	//  Endpoint disabled interrupt mask
#define USB_OTG_DIEPEACHMSK1_TOM_Pos		(3U)
#define USB_OTG_DIEPEACHMSK1_TOM_Msk		(0x1U << USB_OTG_DIEPEACHMSK1_TOM_Pos)	//  0x00000008
#define USB_OTG_DIEPEACHMSK1_TOM		USB_OTG_DIEPEACHMSK1_TOM_Msk	//  Timeout condition mask (nonisochronous endpoints)
#define USB_OTG_DIEPEACHMSK1_ITTXFEMSK_Pos	(4U)
#define USB_OTG_DIEPEACHMSK1_ITTXFEMSK_Msk	(0x1U << USB_OTG_DIEPEACHMSK1_ITTXFEMSK_Pos)	//  0x00000010
#define USB_OTG_DIEPEACHMSK1_ITTXFEMSK		USB_OTG_DIEPEACHMSK1_ITTXFEMSK_Msk	//  IN token received when TxFIFO empty mask
#define USB_OTG_DIEPEACHMSK1_INEPNMM_Pos	(5U)
#define USB_OTG_DIEPEACHMSK1_INEPNMM_Msk	(0x1U << USB_OTG_DIEPEACHMSK1_INEPNMM_Pos)	//  0x00000020
#define USB_OTG_DIEPEACHMSK1_INEPNMM		USB_OTG_DIEPEACHMSK1_INEPNMM_Msk	//  IN token received with EP mismatch mask
#define USB_OTG_DIEPEACHMSK1_INEPNEM_Pos	(6U)
#define USB_OTG_DIEPEACHMSK1_INEPNEM_Msk	(0x1U << USB_OTG_DIEPEACHMSK1_INEPNEM_Pos)	//  0x00000040
#define USB_OTG_DIEPEACHMSK1_INEPNEM		USB_OTG_DIEPEACHMSK1_INEPNEM_Msk	//  IN endpoint NAK effective mask
#define USB_OTG_DIEPEACHMSK1_TXFURM_Pos		(8U)
#define USB_OTG_DIEPEACHMSK1_TXFURM_Msk		(0x1U << USB_OTG_DIEPEACHMSK1_TXFURM_Pos)	//  0x00000100
#define USB_OTG_DIEPEACHMSK1_TXFURM		USB_OTG_DIEPEACHMSK1_TXFURM_Msk	//  FIFO underrun mask
#define USB_OTG_DIEPEACHMSK1_BIM_Pos		(9U)
#define USB_OTG_DIEPEACHMSK1_BIM_Msk		(0x1U << USB_OTG_DIEPEACHMSK1_BIM_Pos)	//  0x00000200
#define USB_OTG_DIEPEACHMSK1_BIM		USB_OTG_DIEPEACHMSK1_BIM_Msk	//  BNA interrupt mask
#define USB_OTG_DIEPEACHMSK1_NAKM_Pos		(13U)
#define USB_OTG_DIEPEACHMSK1_NAKM_Msk		(0x1U << USB_OTG_DIEPEACHMSK1_NAKM_Pos)	//  0x00002000
#define USB_OTG_DIEPEACHMSK1_NAKM		USB_OTG_DIEPEACHMSK1_NAKM_Msk	//  NAK interrupt mask

//  Bit definition for USB_OTG_HPRT register
#define USB_OTG_HPRT_PCSTS_Pos			(0U)
#define USB_OTG_HPRT_PCSTS_Msk			(0x1U << USB_OTG_HPRT_PCSTS_Pos)	//  0x00000001
#define USB_OTG_HPRT_PCSTS			USB_OTG_HPRT_PCSTS_Msk			// Port connect status
#define USB_OTG_HPRT_PCDET_Pos			(1U)
#define USB_OTG_HPRT_PCDET_Msk			(0x1U << USB_OTG_HPRT_PCDET_Pos)	//  0x00000002
#define USB_OTG_HPRT_PCDET			USB_OTG_HPRT_PCDET_Msk			// Port connect detected
#define USB_OTG_HPRT_PENA_Pos			(2U)
#define USB_OTG_HPRT_PENA_Msk			(0x1U << USB_OTG_HPRT_PENA_Pos)	//  0x00000004
#define USB_OTG_HPRT_PENA			USB_OTG_HPRT_PENA_Msk			// Port enable
#define USB_OTG_HPRT_PENCHNG_Pos		(3U)
#define USB_OTG_HPRT_PENCHNG_Msk		(0x1U << USB_OTG_HPRT_PENCHNG_Pos)	//  0x00000008
#define USB_OTG_HPRT_PENCHNG			USB_OTG_HPRT_PENCHNG_Msk	//  Port enable/disable change
#define USB_OTG_HPRT_POCA_Pos			(4U)
#define USB_OTG_HPRT_POCA_Msk			(0x1U << USB_OTG_HPRT_POCA_Pos)	//  0x00000010
#define USB_OTG_HPRT_POCA			USB_OTG_HPRT_POCA_Msk			// Port overcurrent active
#define USB_OTG_HPRT_POCCHNG_Pos		(5U)
#define USB_OTG_HPRT_POCCHNG_Msk		(0x1U << USB_OTG_HPRT_POCCHNG_Pos)	//  0x00000020
#define USB_OTG_HPRT_POCCHNG			USB_OTG_HPRT_POCCHNG_Msk	//  Port overcurrent change
#define USB_OTG_HPRT_PRES_Pos			(6U)
#define USB_OTG_HPRT_PRES_Msk			(0x1U << USB_OTG_HPRT_PRES_Pos)	//  0x00000040
#define USB_OTG_HPRT_PRES			USB_OTG_HPRT_PRES_Msk			// Port resume
#define USB_OTG_HPRT_PSUSP_Pos			(7U)
#define USB_OTG_HPRT_PSUSP_Msk			(0x1U << USB_OTG_HPRT_PSUSP_Pos)	//  0x00000080
#define USB_OTG_HPRT_PSUSP			USB_OTG_HPRT_PSUSP_Msk			// Port suspend
#define USB_OTG_HPRT_PRST_Pos			(8U)
#define USB_OTG_HPRT_PRST_Msk			(0x1U << USB_OTG_HPRT_PRST_Pos)	//  0x00000100
#define USB_OTG_HPRT_PRST			USB_OTG_HPRT_PRST_Msk			// Port reset

#define USB_OTG_HPRT_PLSTS_Pos			(10U)
#define USB_OTG_HPRT_PLSTS_Msk			(0x3U << USB_OTG_HPRT_PLSTS_Pos)	//  0x00000C00
#define USB_OTG_HPRT_PLSTS			USB_OTG_HPRT_PLSTS_Msk			// Port line status
#define USB_OTG_HPRT_PLSTS_0			(0x1U << USB_OTG_HPRT_PLSTS_Pos)	//  0x00000400
#define USB_OTG_HPRT_PLSTS_1			(0x2U << USB_OTG_HPRT_PLSTS_Pos)	//  0x00000800
#define USB_OTG_HPRT_PPWR_Pos			(12U)
#define USB_OTG_HPRT_PPWR_Msk			(0x1U << USB_OTG_HPRT_PPWR_Pos)	//  0x00001000
#define USB_OTG_HPRT_PPWR			USB_OTG_HPRT_PPWR_Msk			// Port power

#define USB_OTG_HPRT_PTCTL_Pos			(13U)
#define USB_OTG_HPRT_PTCTL_Msk			(0xFU << USB_OTG_HPRT_PTCTL_Pos)	//  0x0001E000
#define USB_OTG_HPRT_PTCTL			USB_OTG_HPRT_PTCTL_Msk			// Port test control
#define USB_OTG_HPRT_PTCTL_0			(0x1U << USB_OTG_HPRT_PTCTL_Pos)	//  0x00002000
#define USB_OTG_HPRT_PTCTL_1			(0x2U << USB_OTG_HPRT_PTCTL_Pos)	//  0x00004000
#define USB_OTG_HPRT_PTCTL_2			(0x4U << USB_OTG_HPRT_PTCTL_Pos)	//  0x00008000
#define USB_OTG_HPRT_PTCTL_3			(0x8U << USB_OTG_HPRT_PTCTL_Pos)	//  0x00010000

#define USB_OTG_HPRT_PSPD_Pos			(17U)
#define USB_OTG_HPRT_PSPD_Msk			(0x3U << USB_OTG_HPRT_PSPD_Pos)	//  0x00060000
#define USB_OTG_HPRT_PSPD			USB_OTG_HPRT_PSPD_Msk			// Port speed
#define USB_OTG_HPRT_PSPD_0			(0x1U << USB_OTG_HPRT_PSPD_Pos)	//  0x00020000
#define USB_OTG_HPRT_PSPD_1			(0x2U << USB_OTG_HPRT_PSPD_Pos)	//  0x00040000

//  Bit definition for USB_OTG_DOEPEACHMSK1 register
#define USB_OTG_DOEPEACHMSK1_XFRCM_Pos		(0U)
#define USB_OTG_DOEPEACHMSK1_XFRCM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_XFRCM_Pos)	//  0x00000001
#define USB_OTG_DOEPEACHMSK1_XFRCM		USB_OTG_DOEPEACHMSK1_XFRCM_Msk	//  Transfer completed interrupt mask
#define USB_OTG_DOEPEACHMSK1_EPDM_Pos		(1U)
#define USB_OTG_DOEPEACHMSK1_EPDM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_EPDM_Pos)	//  0x00000002
#define USB_OTG_DOEPEACHMSK1_EPDM		USB_OTG_DOEPEACHMSK1_EPDM_Msk	//  Endpoint disabled interrupt mask
#define USB_OTG_DOEPEACHMSK1_TOM_Pos		(3U)
#define USB_OTG_DOEPEACHMSK1_TOM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_TOM_Pos)	//  0x00000008
#define USB_OTG_DOEPEACHMSK1_TOM		USB_OTG_DOEPEACHMSK1_TOM_Msk	//  Timeout condition mask
#define USB_OTG_DOEPEACHMSK1_ITTXFEMSK_Pos	(4U)
#define USB_OTG_DOEPEACHMSK1_ITTXFEMSK_Msk	(0x1U << USB_OTG_DOEPEACHMSK1_ITTXFEMSK_Pos)	//  0x00000010
#define USB_OTG_DOEPEACHMSK1_ITTXFEMSK		USB_OTG_DOEPEACHMSK1_ITTXFEMSK_Msk	//  IN token received when TxFIFO empty mask
#define USB_OTG_DOEPEACHMSK1_INEPNMM_Pos	(5U)
#define USB_OTG_DOEPEACHMSK1_INEPNMM_Msk	(0x1U << USB_OTG_DOEPEACHMSK1_INEPNMM_Pos)	//  0x00000020
#define USB_OTG_DOEPEACHMSK1_INEPNMM		USB_OTG_DOEPEACHMSK1_INEPNMM_Msk	//  IN token received with EP mismatch mask
#define USB_OTG_DOEPEACHMSK1_INEPNEM_Pos	(6U)
#define USB_OTG_DOEPEACHMSK1_INEPNEM_Msk	(0x1U << USB_OTG_DOEPEACHMSK1_INEPNEM_Pos)	//  0x00000040
#define USB_OTG_DOEPEACHMSK1_INEPNEM		USB_OTG_DOEPEACHMSK1_INEPNEM_Msk	//  IN endpoint NAK effective mask
#define USB_OTG_DOEPEACHMSK1_TXFURM_Pos		(8U)
#define USB_OTG_DOEPEACHMSK1_TXFURM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_TXFURM_Pos)	//  0x00000100
#define USB_OTG_DOEPEACHMSK1_TXFURM		USB_OTG_DOEPEACHMSK1_TXFURM_Msk	//  OUT packet error mask
#define USB_OTG_DOEPEACHMSK1_BIM_Pos		(9U)
#define USB_OTG_DOEPEACHMSK1_BIM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_BIM_Pos)	//  0x00000200
#define USB_OTG_DOEPEACHMSK1_BIM		USB_OTG_DOEPEACHMSK1_BIM_Msk	//  BNA interrupt mask
#define USB_OTG_DOEPEACHMSK1_BERRM_Pos		(12U)
#define USB_OTG_DOEPEACHMSK1_BERRM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_BERRM_Pos)	//  0x00001000
#define USB_OTG_DOEPEACHMSK1_BERRM		USB_OTG_DOEPEACHMSK1_BERRM_Msk	//  Bubble error interrupt mask
#define USB_OTG_DOEPEACHMSK1_NAKM_Pos		(13U)
#define USB_OTG_DOEPEACHMSK1_NAKM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_NAKM_Pos)	//  0x00002000
#define USB_OTG_DOEPEACHMSK1_NAKM		USB_OTG_DOEPEACHMSK1_NAKM_Msk	//  NAK interrupt mask
#define USB_OTG_DOEPEACHMSK1_NYETM_Pos		(14U)
#define USB_OTG_DOEPEACHMSK1_NYETM_Msk		(0x1U << USB_OTG_DOEPEACHMSK1_NYETM_Pos)	//  0x00004000
#define USB_OTG_DOEPEACHMSK1_NYETM		USB_OTG_DOEPEACHMSK1_NYETM_Msk	//  NYET interrupt mask

//  Bit definition for USB_OTG_HPTXFSIZ register
#define USB_OTG_HPTXFSIZ_PTXSA_Pos		(0U)
#define USB_OTG_HPTXFSIZ_PTXSA_Msk		(0xFFFFU << USB_OTG_HPTXFSIZ_PTXSA_Pos)	//  0x0000FFFF
#define USB_OTG_HPTXFSIZ_PTXSA			USB_OTG_HPTXFSIZ_PTXSA_Msk	//  Host periodic TxFIFO start address
#define USB_OTG_HPTXFSIZ_PTXFD_Pos		(16U)
#define USB_OTG_HPTXFSIZ_PTXFD_Msk		(0xFFFFU << USB_OTG_HPTXFSIZ_PTXFD_Pos)	//  0xFFFF0000
#define USB_OTG_HPTXFSIZ_PTXFD			USB_OTG_HPTXFSIZ_PTXFD_Msk	//  Host periodic TxFIFO depth

//  Bit definition for USB_OTG_DIEPCTL register
#define USB_OTG_DIEPCTL_MPSIZ_Pos		(0U)
#define USB_OTG_DIEPCTL_MPSIZ_Msk		(0x7FFU << USB_OTG_DIEPCTL_MPSIZ_Pos)	//  0x000007FF
#define USB_OTG_DIEPCTL_MPSIZ			USB_OTG_DIEPCTL_MPSIZ_Msk	//  Maximum packet size
#define USB_OTG_DIEPCTL_USBAEP_Pos		(15U)
#define USB_OTG_DIEPCTL_USBAEP_Msk		(0x1U << USB_OTG_DIEPCTL_USBAEP_Pos)	//  0x00008000
#define USB_OTG_DIEPCTL_USBAEP			USB_OTG_DIEPCTL_USBAEP_Msk	//  USB active endpoint
#define USB_OTG_DIEPCTL_EONUM_DPID_Pos		(16U)
#define USB_OTG_DIEPCTL_EONUM_DPID_Msk		(0x1U << USB_OTG_DIEPCTL_EONUM_DPID_Pos)	//  0x00010000
#define USB_OTG_DIEPCTL_EONUM_DPID		USB_OTG_DIEPCTL_EONUM_DPID_Msk	//  Even/odd frame
#define USB_OTG_DIEPCTL_NAKSTS_Pos		(17U)
#define USB_OTG_DIEPCTL_NAKSTS_Msk		(0x1U << USB_OTG_DIEPCTL_NAKSTS_Pos)	//  0x00020000
#define USB_OTG_DIEPCTL_NAKSTS			USB_OTG_DIEPCTL_NAKSTS_Msk	//  NAK status

#define USB_OTG_DIEPCTL_EPTYP_Pos		(18U)
#define USB_OTG_DIEPCTL_EPTYP_Msk		(0x3U << USB_OTG_DIEPCTL_EPTYP_Pos)	//  0x000C0000
#define USB_OTG_DIEPCTL_EPTYP			USB_OTG_DIEPCTL_EPTYP_Msk	//  Endpoint type
#define USB_OTG_DIEPCTL_EPTYP_0			(0x1U << USB_OTG_DIEPCTL_EPTYP_Pos)	//  0x00040000
#define USB_OTG_DIEPCTL_EPTYP_1			(0x2U << USB_OTG_DIEPCTL_EPTYP_Pos)	//  0x00080000
#define USB_OTG_DIEPCTL_STALL_Pos		(21U)
#define USB_OTG_DIEPCTL_STALL_Msk		(0x1U << USB_OTG_DIEPCTL_STALL_Pos)	//  0x00200000
#define USB_OTG_DIEPCTL_STALL			USB_OTG_DIEPCTL_STALL_Msk	//  STALL handshake

#define USB_OTG_DIEPCTL_TXFNUM_Pos		(22U)
#define USB_OTG_DIEPCTL_TXFNUM_Msk		(0xFU << USB_OTG_DIEPCTL_TXFNUM_Pos)	//  0x03C00000
#define USB_OTG_DIEPCTL_TXFNUM			USB_OTG_DIEPCTL_TXFNUM_Msk	//  TxFIFO number
#define USB_OTG_DIEPCTL_TXFNUM_0		(0x1U << USB_OTG_DIEPCTL_TXFNUM_Pos)	//  0x00400000
#define USB_OTG_DIEPCTL_TXFNUM_1		(0x2U << USB_OTG_DIEPCTL_TXFNUM_Pos)	//  0x00800000
#define USB_OTG_DIEPCTL_TXFNUM_2		(0x4U << USB_OTG_DIEPCTL_TXFNUM_Pos)	//  0x01000000
#define USB_OTG_DIEPCTL_TXFNUM_3		(0x8U << USB_OTG_DIEPCTL_TXFNUM_Pos)	//  0x02000000
#define USB_OTG_DIEPCTL_CNAK_Pos		(26U)
#define USB_OTG_DIEPCTL_CNAK_Msk		(0x1U << USB_OTG_DIEPCTL_CNAK_Pos)	//  0x04000000
#define USB_OTG_DIEPCTL_CNAK			USB_OTG_DIEPCTL_CNAK_Msk	//  Clear NAK
#define USB_OTG_DIEPCTL_SNAK_Pos		(27U)
#define USB_OTG_DIEPCTL_SNAK_Msk		(0x1U << USB_OTG_DIEPCTL_SNAK_Pos)	//  0x08000000
#define USB_OTG_DIEPCTL_SNAK			USB_OTG_DIEPCTL_SNAK_Msk	//  Set NAK
#define USB_OTG_DIEPCTL_SD0PID_SEVNFRM_Pos	(28U)
#define USB_OTG_DIEPCTL_SD0PID_SEVNFRM_Msk	(0x1U << USB_OTG_DIEPCTL_SD0PID_SEVNFRM_Pos)	//  0x10000000
#define USB_OTG_DIEPCTL_SD0PID_SEVNFRM		USB_OTG_DIEPCTL_SD0PID_SEVNFRM_Msk	//  Set DATA0 PID
#define USB_OTG_DIEPCTL_SODDFRM_Pos		(29U)
#define USB_OTG_DIEPCTL_SODDFRM_Msk		(0x1U << USB_OTG_DIEPCTL_SODDFRM_Pos)	//  0x20000000
#define USB_OTG_DIEPCTL_SODDFRM			USB_OTG_DIEPCTL_SODDFRM_Msk	//  Set odd frame
#define USB_OTG_DIEPCTL_EPDIS_Pos		(30U)
#define USB_OTG_DIEPCTL_EPDIS_Msk		(0x1U << USB_OTG_DIEPCTL_EPDIS_Pos)	//  0x40000000
#define USB_OTG_DIEPCTL_EPDIS			USB_OTG_DIEPCTL_EPDIS_Msk	//  Endpoint disable
#define USB_OTG_DIEPCTL_EPENA_Pos		(31U)
#define USB_OTG_DIEPCTL_EPENA_Msk		(0x1U << USB_OTG_DIEPCTL_EPENA_Pos)	//  0x80000000
#define USB_OTG_DIEPCTL_EPENA			USB_OTG_DIEPCTL_EPENA_Msk	//  Endpoint enable

//  Bit definition for USB_OTG_HCCHAR register
#define USB_OTG_HCCHAR_MPSIZ_Pos			(0U)
#define USB_OTG_HCCHAR_MPSIZ_Msk			(0x7FFU << USB_OTG_HCCHAR_MPSIZ_Pos)	//  0x000007FF
#define USB_OTG_HCCHAR_MPSIZ			USB_OTG_HCCHAR_MPSIZ_Msk	//  Maximum packet size

#define USB_OTG_HCCHAR_EPNUM_Pos			(11U)
#define USB_OTG_HCCHAR_EPNUM_Msk			(0xFU << USB_OTG_HCCHAR_EPNUM_Pos)	//  0x00007800
#define USB_OTG_HCCHAR_EPNUM			USB_OTG_HCCHAR_EPNUM_Msk	//  Endpoint number
#define USB_OTG_HCCHAR_EPNUM_0			(0x1U << USB_OTG_HCCHAR_EPNUM_Pos)	//  0x00000800
#define USB_OTG_HCCHAR_EPNUM_1			(0x2U << USB_OTG_HCCHAR_EPNUM_Pos)	//  0x00001000
#define USB_OTG_HCCHAR_EPNUM_2			(0x4U << USB_OTG_HCCHAR_EPNUM_Pos)	//  0x00002000
#define USB_OTG_HCCHAR_EPNUM_3			(0x8U << USB_OTG_HCCHAR_EPNUM_Pos)	//  0x00004000
#define USB_OTG_HCCHAR_EPDIR_Pos			(15U)
#define USB_OTG_HCCHAR_EPDIR_Msk			(0x1U << USB_OTG_HCCHAR_EPDIR_Pos)	//  0x00008000
#define USB_OTG_HCCHAR_EPDIR			USB_OTG_HCCHAR_EPDIR_Msk	//  Endpoint direction
#define USB_OTG_HCCHAR_LSDEV_Pos			(17U)
#define USB_OTG_HCCHAR_LSDEV_Msk			(0x1U << USB_OTG_HCCHAR_LSDEV_Pos)	//  0x00020000
#define USB_OTG_HCCHAR_LSDEV			USB_OTG_HCCHAR_LSDEV_Msk	//  Low-speed device

#define USB_OTG_HCCHAR_EPTYP_Pos			(18U)
#define USB_OTG_HCCHAR_EPTYP_Msk			(0x3U << USB_OTG_HCCHAR_EPTYP_Pos)	//  0x000C0000
#define USB_OTG_HCCHAR_EPTYP			USB_OTG_HCCHAR_EPTYP_Msk	//  Endpoint type
#define USB_OTG_HCCHAR_EPTYP_0			(0x1U << USB_OTG_HCCHAR_EPTYP_Pos)	//  0x00040000
#define USB_OTG_HCCHAR_EPTYP_1			(0x2U << USB_OTG_HCCHAR_EPTYP_Pos)	//  0x00080000

#define USB_OTG_HCCHAR_MC_Pos			(20U)
#define USB_OTG_HCCHAR_MC_Msk			(0x3U << USB_OTG_HCCHAR_MC_Pos)	//  0x00300000
#define USB_OTG_HCCHAR_MC			USB_OTG_HCCHAR_MC_Msk			// Multi Count (MC) / Error Count (EC)
#define USB_OTG_HCCHAR_MC_0			(0x1U << USB_OTG_HCCHAR_MC_Pos)	//  0x00100000
#define USB_OTG_HCCHAR_MC_1			(0x2U << USB_OTG_HCCHAR_MC_Pos)	//  0x00200000

#define USB_OTG_HCCHAR_DAD_Pos			(22U)
#define USB_OTG_HCCHAR_DAD_Msk			(0x7FU << USB_OTG_HCCHAR_DAD_Pos)	//  0x1FC00000
#define USB_OTG_HCCHAR_DAD			USB_OTG_HCCHAR_DAD_Msk			// Device address
#define USB_OTG_HCCHAR_DAD_0			(0x01U << USB_OTG_HCCHAR_DAD_Pos)	//  0x00400000
#define USB_OTG_HCCHAR_DAD_1			(0x02U << USB_OTG_HCCHAR_DAD_Pos)	//  0x00800000
#define USB_OTG_HCCHAR_DAD_2			(0x04U << USB_OTG_HCCHAR_DAD_Pos)	//  0x01000000
#define USB_OTG_HCCHAR_DAD_3			(0x08U << USB_OTG_HCCHAR_DAD_Pos)	//  0x02000000
#define USB_OTG_HCCHAR_DAD_4			(0x10U << USB_OTG_HCCHAR_DAD_Pos)	//  0x04000000
#define USB_OTG_HCCHAR_DAD_5			(0x20U << USB_OTG_HCCHAR_DAD_Pos)	//  0x08000000
#define USB_OTG_HCCHAR_DAD_6			(0x40U << USB_OTG_HCCHAR_DAD_Pos)	//  0x10000000
#define USB_OTG_HCCHAR_ODDFRM_Pos			(29U)
#define USB_OTG_HCCHAR_ODDFRM_Msk			(0x1U << USB_OTG_HCCHAR_ODDFRM_Pos)	//  0x20000000
#define USB_OTG_HCCHAR_ODDFRM			USB_OTG_HCCHAR_ODDFRM_Msk	//  Odd frame
#define USB_OTG_HCCHAR_CHDIS_Pos			(30U)
#define USB_OTG_HCCHAR_CHDIS_Msk			(0x1U << USB_OTG_HCCHAR_CHDIS_Pos)	//  0x40000000
#define USB_OTG_HCCHAR_CHDIS			USB_OTG_HCCHAR_CHDIS_Msk	//  Channel disable
#define USB_OTG_HCCHAR_CHENA_Pos			(31U)
#define USB_OTG_HCCHAR_CHENA_Msk			(0x1U << USB_OTG_HCCHAR_CHENA_Pos)	//  0x80000000
#define USB_OTG_HCCHAR_CHENA			USB_OTG_HCCHAR_CHENA_Msk	//  Channel enable

//  Bit definition for USB_OTG_HCSPLT register
#define USB_OTG_HCSPLT_PRTADDR_Pos		(0U)
#define USB_OTG_HCSPLT_PRTADDR_Msk		(0x7FU << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x0000007F
#define USB_OTG_HCSPLT_PRTADDR			USB_OTG_HCSPLT_PRTADDR_Msk	//  Port address
#define USB_OTG_HCSPLT_PRTADDR_0			(0x01U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000001
#define USB_OTG_HCSPLT_PRTADDR_1			(0x02U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000002
#define USB_OTG_HCSPLT_PRTADDR_2			(0x04U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000004
#define USB_OTG_HCSPLT_PRTADDR_3			(0x08U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000008
#define USB_OTG_HCSPLT_PRTADDR_4			(0x10U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000010
#define USB_OTG_HCSPLT_PRTADDR_5			(0x20U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000020
#define USB_OTG_HCSPLT_PRTADDR_6			(0x40U << USB_OTG_HCSPLT_PRTADDR_Pos)	//  0x00000040

#define USB_OTG_HCSPLT_HUBADDR_Pos		(7U)
#define USB_OTG_HCSPLT_HUBADDR_Msk		(0x7FU << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00003F80
#define USB_OTG_HCSPLT_HUBADDR			USB_OTG_HCSPLT_HUBADDR_Msk	//  Hub address
#define USB_OTG_HCSPLT_HUBADDR_0			(0x01U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00000080
#define USB_OTG_HCSPLT_HUBADDR_1			(0x02U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00000100
#define USB_OTG_HCSPLT_HUBADDR_2			(0x04U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00000200
#define USB_OTG_HCSPLT_HUBADDR_3			(0x08U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00000400
#define USB_OTG_HCSPLT_HUBADDR_4			(0x10U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00000800
#define USB_OTG_HCSPLT_HUBADDR_5			(0x20U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00001000
#define USB_OTG_HCSPLT_HUBADDR_6			(0x40U << USB_OTG_HCSPLT_HUBADDR_Pos)	//  0x00002000

#define USB_OTG_HCSPLT_XACTPOS_Pos		(14U)
#define USB_OTG_HCSPLT_XACTPOS_Msk		(0x3U << USB_OTG_HCSPLT_XACTPOS_Pos)	//  0x0000C000
#define USB_OTG_HCSPLT_XACTPOS			USB_OTG_HCSPLT_XACTPOS_Msk	//  XACTPOS
#define USB_OTG_HCSPLT_XACTPOS_0			(0x1U << USB_OTG_HCSPLT_XACTPOS_Pos)	//  0x00004000
#define USB_OTG_HCSPLT_XACTPOS_1			(0x2U << USB_OTG_HCSPLT_XACTPOS_Pos)	//  0x00008000
#define USB_OTG_HCSPLT_COMPLSPLT_Pos		(16U)
#define USB_OTG_HCSPLT_COMPLSPLT_Msk		(0x1U << USB_OTG_HCSPLT_COMPLSPLT_Pos)	//  0x00010000
#define USB_OTG_HCSPLT_COMPLSPLT			USB_OTG_HCSPLT_COMPLSPLT_Msk	//  Do complete split
#define USB_OTG_HCSPLT_SPLITEN_Pos		(31U)
#define USB_OTG_HCSPLT_SPLITEN_Msk		(0x1U << USB_OTG_HCSPLT_SPLITEN_Pos)	//  0x80000000
#define USB_OTG_HCSPLT_SPLITEN			USB_OTG_HCSPLT_SPLITEN_Msk	//  Split enable

//  Bit definition for USB_OTG_HCINT register
#define USB_OTG_HCINT_XFRC_Pos			(0U)
#define USB_OTG_HCINT_XFRC_Msk			(0x1U << USB_OTG_HCINT_XFRC_Pos)	//  0x00000001
#define USB_OTG_HCINT_XFRC			USB_OTG_HCINT_XFRC_Msk			// Transfer completed
#define USB_OTG_HCINT_CHH_Pos			(1U)
#define USB_OTG_HCINT_CHH_Msk			(0x1U << USB_OTG_HCINT_CHH_Pos)	//  0x00000002
#define USB_OTG_HCINT_CHH			USB_OTG_HCINT_CHH_Msk			// Channel halted
#define USB_OTG_HCINT_AHBERR_Pos			(2U)
#define USB_OTG_HCINT_AHBERR_Msk			(0x1U << USB_OTG_HCINT_AHBERR_Pos)	//  0x00000004
#define USB_OTG_HCINT_AHBERR			USB_OTG_HCINT_AHBERR_Msk	//  AHB error
#define USB_OTG_HCINT_STALL_Pos			(3U)
#define USB_OTG_HCINT_STALL_Msk			(0x1U << USB_OTG_HCINT_STALL_Pos)	//  0x00000008
#define USB_OTG_HCINT_STALL			USB_OTG_HCINT_STALL_Msk	//  STALL response received interrupt
#define USB_OTG_HCINT_NAK_Pos			(4U)
#define USB_OTG_HCINT_NAK_Msk			(0x1U << USB_OTG_HCINT_NAK_Pos)	//  0x00000010
#define USB_OTG_HCINT_NAK			USB_OTG_HCINT_NAK_Msk			// NAK response received interrupt
#define USB_OTG_HCINT_ACK_Pos			(5U)
#define USB_OTG_HCINT_ACK_Msk			(0x1U << USB_OTG_HCINT_ACK_Pos)	//  0x00000020
#define USB_OTG_HCINT_ACK			USB_OTG_HCINT_ACK_Msk			// ACK response received/transmitted interrupt
#define USB_OTG_HCINT_NYET_Pos			(6U)
#define USB_OTG_HCINT_NYET_Msk			(0x1U << USB_OTG_HCINT_NYET_Pos)	//  0x00000040
#define USB_OTG_HCINT_NYET			USB_OTG_HCINT_NYET_Msk			// Response received interrupt
#define USB_OTG_HCINT_TXERR_Pos			(7U)
#define USB_OTG_HCINT_TXERR_Msk			(0x1U << USB_OTG_HCINT_TXERR_Pos)	//  0x00000080
#define USB_OTG_HCINT_TXERR			USB_OTG_HCINT_TXERR_Msk	//  Transaction error
#define USB_OTG_HCINT_BBERR_Pos			(8U)
#define USB_OTG_HCINT_BBERR_Msk			(0x1U << USB_OTG_HCINT_BBERR_Pos)	//  0x00000100
#define USB_OTG_HCINT_BBERR			USB_OTG_HCINT_BBERR_Msk	//  Babble error
#define USB_OTG_HCINT_FRMOR_Pos			(9U)
#define USB_OTG_HCINT_FRMOR_Msk			(0x1U << USB_OTG_HCINT_FRMOR_Pos)	//  0x00000200
#define USB_OTG_HCINT_FRMOR			USB_OTG_HCINT_FRMOR_Msk	//  Frame overrun
#define USB_OTG_HCINT_DTERR_Pos			(10U)
#define USB_OTG_HCINT_DTERR_Msk			(0x1U << USB_OTG_HCINT_DTERR_Pos)	//  0x00000400
#define USB_OTG_HCINT_DTERR			USB_OTG_HCINT_DTERR_Msk	//  Data toggle error

//  Bit definition for USB_OTG_DIEPINT register
#define USB_OTG_DIEPINT_XFRC_Pos			(0U)
#define USB_OTG_DIEPINT_XFRC_Msk			(0x1U << USB_OTG_DIEPINT_XFRC_Pos)	//  0x00000001
#define USB_OTG_DIEPINT_XFRC			USB_OTG_DIEPINT_XFRC_Msk	//  Transfer completed interrupt
#define USB_OTG_DIEPINT_EPDISD_Pos		(1U)
#define USB_OTG_DIEPINT_EPDISD_Msk		(0x1U << USB_OTG_DIEPINT_EPDISD_Pos)	//  0x00000002
#define USB_OTG_DIEPINT_EPDISD			USB_OTG_DIEPINT_EPDISD_Msk	//  Endpoint disabled interrupt
#define USB_OTG_DIEPINT_TOC_Pos			(3U)
#define USB_OTG_DIEPINT_TOC_Msk			(0x1U << USB_OTG_DIEPINT_TOC_Pos)	//  0x00000008
#define USB_OTG_DIEPINT_TOC			USB_OTG_DIEPINT_TOC_Msk	//  Timeout condition
#define USB_OTG_DIEPINT_ITTXFE_Pos		(4U)
#define USB_OTG_DIEPINT_ITTXFE_Msk		(0x1U << USB_OTG_DIEPINT_ITTXFE_Pos)	//  0x00000010
#define USB_OTG_DIEPINT_ITTXFE			USB_OTG_DIEPINT_ITTXFE_Msk	//  IN token received when TxFIFO is empty
#define USB_OTG_DIEPINT_INEPNE_Pos		(6U)
#define USB_OTG_DIEPINT_INEPNE_Msk		(0x1U << USB_OTG_DIEPINT_INEPNE_Pos)	//  0x00000040
#define USB_OTG_DIEPINT_INEPNE			USB_OTG_DIEPINT_INEPNE_Msk	//  IN endpoint NAK effective
#define USB_OTG_DIEPINT_TXFE_Pos			(7U)
#define USB_OTG_DIEPINT_TXFE_Msk			(0x1U << USB_OTG_DIEPINT_TXFE_Pos)	//  0x00000080
#define USB_OTG_DIEPINT_TXFE			USB_OTG_DIEPINT_TXFE_Msk	//  Transmit FIFO empty
#define USB_OTG_DIEPINT_TXFIFOUDRN_Pos		(8U)
#define USB_OTG_DIEPINT_TXFIFOUDRN_Msk		(0x1U << USB_OTG_DIEPINT_TXFIFOUDRN_Pos)	//  0x00000100
#define USB_OTG_DIEPINT_TXFIFOUDRN		USB_OTG_DIEPINT_TXFIFOUDRN_Msk	//  Transmit Fifo Underrun
#define USB_OTG_DIEPINT_BNA_Pos			(9U)
#define USB_OTG_DIEPINT_BNA_Msk			(0x1U << USB_OTG_DIEPINT_BNA_Pos)	//  0x00000200
#define USB_OTG_DIEPINT_BNA			USB_OTG_DIEPINT_BNA_Msk	//  Buffer not available interrupt
#define USB_OTG_DIEPINT_PKTDRPSTS_Pos		(11U)
#define USB_OTG_DIEPINT_PKTDRPSTS_Msk		(0x1U << USB_OTG_DIEPINT_PKTDRPSTS_Pos)	//  0x00000800
#define USB_OTG_DIEPINT_PKTDRPSTS			USB_OTG_DIEPINT_PKTDRPSTS_Msk	//  Packet dropped status
#define USB_OTG_DIEPINT_BERR_Pos			(12U)
#define USB_OTG_DIEPINT_BERR_Msk			(0x1U << USB_OTG_DIEPINT_BERR_Pos)	//  0x00001000
#define USB_OTG_DIEPINT_BERR			USB_OTG_DIEPINT_BERR_Msk	//  Babble error interrupt
#define USB_OTG_DIEPINT_NAK_Pos			(13U)
#define USB_OTG_DIEPINT_NAK_Msk			(0x1U << USB_OTG_DIEPINT_NAK_Pos)	//  0x00002000
#define USB_OTG_DIEPINT_NAK			USB_OTG_DIEPINT_NAK_Msk	//  NAK interrupt

//  Bit definition forUSB_OTG_HCINTMSK register
#define USB_OTG_HCINTMSK_XFRCM_Pos		(0U)
#define USB_OTG_HCINTMSK_XFRCM_Msk		(0x1U << USB_OTG_HCINTMSK_XFRCM_Pos)	//  0x00000001
#define USB_OTG_HCINTMSK_XFRCM			USB_OTG_HCINTMSK_XFRCM_Msk	//  Transfer completed mask
#define USB_OTG_HCINTMSK_CHHM_Pos			(1U)
#define USB_OTG_HCINTMSK_CHHM_Msk			(0x1U << USB_OTG_HCINTMSK_CHHM_Pos)	//  0x00000002
#define USB_OTG_HCINTMSK_CHHM			USB_OTG_HCINTMSK_CHHM_Msk	//  Channel halted mask
#define USB_OTG_HCINTMSK_AHBERR_Pos		(2U)
#define USB_OTG_HCINTMSK_AHBERR_Msk		(0x1U << USB_OTG_HCINTMSK_AHBERR_Pos)	//  0x00000004
#define USB_OTG_HCINTMSK_AHBERR			USB_OTG_HCINTMSK_AHBERR_Msk	//  AHB error
#define USB_OTG_HCINTMSK_STALLM_Pos		(3U)
#define USB_OTG_HCINTMSK_STALLM_Msk		(0x1U << USB_OTG_HCINTMSK_STALLM_Pos)	//  0x00000008
#define USB_OTG_HCINTMSK_STALLM			USB_OTG_HCINTMSK_STALLM_Msk	//  STALL response received interrupt mask
#define USB_OTG_HCINTMSK_NAKM_Pos			(4U)
#define USB_OTG_HCINTMSK_NAKM_Msk			(0x1U << USB_OTG_HCINTMSK_NAKM_Pos)	//  0x00000010
#define USB_OTG_HCINTMSK_NAKM			USB_OTG_HCINTMSK_NAKM_Msk	//  NAK response received interrupt mask
#define USB_OTG_HCINTMSK_ACKM_Pos			(5U)
#define USB_OTG_HCINTMSK_ACKM_Msk			(0x1U << USB_OTG_HCINTMSK_ACKM_Pos)	//  0x00000020
#define USB_OTG_HCINTMSK_ACKM			USB_OTG_HCINTMSK_ACKM_Msk	//  ACK response received/transmitted interrupt mask
#define USB_OTG_HCINTMSK_NYET_Pos			(6U)
#define USB_OTG_HCINTMSK_NYET_Msk			(0x1U << USB_OTG_HCINTMSK_NYET_Pos)	//  0x00000040
#define USB_OTG_HCINTMSK_NYET			USB_OTG_HCINTMSK_NYET_Msk	//  response received interrupt mask
#define USB_OTG_HCINTMSK_TXERRM_Pos		(7U)
#define USB_OTG_HCINTMSK_TXERRM_Msk		(0x1U << USB_OTG_HCINTMSK_TXERRM_Pos)	//  0x00000080
#define USB_OTG_HCINTMSK_TXERRM			USB_OTG_HCINTMSK_TXERRM_Msk	//  Transaction error mask
#define USB_OTG_HCINTMSK_BBERRM_Pos		(8U)
#define USB_OTG_HCINTMSK_BBERRM_Msk		(0x1U << USB_OTG_HCINTMSK_BBERRM_Pos)	//  0x00000100
#define USB_OTG_HCINTMSK_BBERRM			USB_OTG_HCINTMSK_BBERRM_Msk	//  Babble error mask
#define USB_OTG_HCINTMSK_FRMORM_Pos		(9U)
#define USB_OTG_HCINTMSK_FRMORM_Msk		(0x1U << USB_OTG_HCINTMSK_FRMORM_Pos)	//  0x00000200
#define USB_OTG_HCINTMSK_FRMORM			USB_OTG_HCINTMSK_FRMORM_Msk	//  Frame overrun mask
#define USB_OTG_HCINTMSK_DTERRM_Pos		(10U)
#define USB_OTG_HCINTMSK_DTERRM_Msk		(0x1U << USB_OTG_HCINTMSK_DTERRM_Pos)	//  0x00000400
#define USB_OTG_HCINTMSK_DTERRM			USB_OTG_HCINTMSK_DTERRM_Msk	//  Data toggle error mask

//  Bit definition for USB_OTG_DIEPTSIZ register
#define USB_OTG_DIEPTSIZ_XFRSIZ_Pos		(0U)
#define USB_OTG_DIEPTSIZ_XFRSIZ_Msk		(0x7FFFFU << USB_OTG_DIEPTSIZ_XFRSIZ_Pos)	//  0x0007FFFF
#define USB_OTG_DIEPTSIZ_XFRSIZ			USB_OTG_DIEPTSIZ_XFRSIZ_Msk	//  Transfer size
#define USB_OTG_DIEPTSIZ_PKTCNT_Pos		(19U)
#define USB_OTG_DIEPTSIZ_PKTCNT_Msk		(0x3FFU << USB_OTG_DIEPTSIZ_PKTCNT_Pos)	//  0x1FF80000
#define USB_OTG_DIEPTSIZ_PKTCNT			USB_OTG_DIEPTSIZ_PKTCNT_Msk	//  Packet count
#define USB_OTG_DIEPTSIZ_MULCNT_Pos		(29U)
#define USB_OTG_DIEPTSIZ_MULCNT_Msk		(0x3U << USB_OTG_DIEPTSIZ_MULCNT_Pos)	//  0x60000000
#define USB_OTG_DIEPTSIZ_MULCNT			USB_OTG_DIEPTSIZ_MULCNT_Msk	//  Packet count
//  Bit definition for USB_OTG_HCTSIZ register
#define USB_OTG_HCTSIZ_XFRSIZ_Pos			(0U)
#define USB_OTG_HCTSIZ_XFRSIZ_Msk			(0x7FFFFU << USB_OTG_HCTSIZ_XFRSIZ_Pos)	//  0x0007FFFF
#define USB_OTG_HCTSIZ_XFRSIZ			USB_OTG_HCTSIZ_XFRSIZ_Msk	//  Transfer size
#define USB_OTG_HCTSIZ_PKTCNT_Pos			(19U)
#define USB_OTG_HCTSIZ_PKTCNT_Msk			(0x3FFU << USB_OTG_HCTSIZ_PKTCNT_Pos)	//  0x1FF80000
#define USB_OTG_HCTSIZ_PKTCNT			USB_OTG_HCTSIZ_PKTCNT_Msk	//  Packet count
#define USB_OTG_HCTSIZ_DOPING_Pos			(31U)
#define USB_OTG_HCTSIZ_DOPING_Msk			(0x1U << USB_OTG_HCTSIZ_DOPING_Pos)	//  0x80000000
#define USB_OTG_HCTSIZ_DOPING			USB_OTG_HCTSIZ_DOPING_Msk	//  Do PING
#define USB_OTG_HCTSIZ_DPID_Pos			(29U)
#define USB_OTG_HCTSIZ_DPID_Msk			(0x3U << USB_OTG_HCTSIZ_DPID_Pos)	//  0x60000000
#define USB_OTG_HCTSIZ_DPID			USB_OTG_HCTSIZ_DPID_Msk	//  Data PID
#define USB_OTG_HCTSIZ_DPID_0			(0x1U << USB_OTG_HCTSIZ_DPID_Pos)	//  0x20000000
#define USB_OTG_HCTSIZ_DPID_1			(0x2U << USB_OTG_HCTSIZ_DPID_Pos)	//  0x40000000

//  Bit definition for USB_OTG_DIEPDMA register
#define USB_OTG_DIEPDMA_DMAADDR_Pos		(0U)
#define USB_OTG_DIEPDMA_DMAADDR_Msk		(0xFFFFFFFFU << USB_OTG_DIEPDMA_DMAADDR_Pos)	//  0xFFFFFFFF
#define USB_OTG_DIEPDMA_DMAADDR			USB_OTG_DIEPDMA_DMAADDR_Msk	//  DMA address

//  Bit definition for USB_OTG_HCDMA register
#define USB_OTG_HCDMA_DMAADDR_Pos			(0U)
#define USB_OTG_HCDMA_DMAADDR_Msk			(0xFFFFFFFFU << USB_OTG_HCDMA_DMAADDR_Pos)	//  0xFFFFFFFF
#define USB_OTG_HCDMA_DMAADDR			USB_OTG_HCDMA_DMAADDR_Msk	//  DMA address

//  Bit definition for USB_OTG_DTXFSTS register
#define USB_OTG_DTXFSTS_INEPTFSAV_Pos		(0U)
#define USB_OTG_DTXFSTS_INEPTFSAV_Msk		(0xFFFFU << USB_OTG_DTXFSTS_INEPTFSAV_Pos)	//  0x0000FFFF
#define USB_OTG_DTXFSTS_INEPTFSAV			USB_OTG_DTXFSTS_INEPTFSAV_Msk	//  IN endpoint TxFIFO space available

//  Bit definition for USB_OTG_DIEPTXF register
#define USB_OTG_DIEPTXF_INEPTXSA_Pos		(0U)
#define USB_OTG_DIEPTXF_INEPTXSA_Msk		(0xFFFFU << USB_OTG_DIEPTXF_INEPTXSA_Pos)	//  0x0000FFFF
#define USB_OTG_DIEPTXF_INEPTXSA			USB_OTG_DIEPTXF_INEPTXSA_Msk	//  IN endpoint FIFOx transmit RAM start address
#define USB_OTG_DIEPTXF_INEPTXFD_Pos		(16U)
#define USB_OTG_DIEPTXF_INEPTXFD_Msk		(0xFFFFU << USB_OTG_DIEPTXF_INEPTXFD_Pos)	//  0xFFFF0000
#define USB_OTG_DIEPTXF_INEPTXFD			USB_OTG_DIEPTXF_INEPTXFD_Msk	//  IN endpoint TxFIFO depth

//  Bit definition for USB_OTG_DOEPCTL register
#define USB_OTG_DOEPCTL_MPSIZ_Pos			(0U)
#define USB_OTG_DOEPCTL_MPSIZ_Msk			(0x7FFU << USB_OTG_DOEPCTL_MPSIZ_Pos)	//  0x000007FF
#define USB_OTG_DOEPCTL_MPSIZ			USB_OTG_DOEPCTL_MPSIZ_Msk	// Maximum packet size Bit 1
#define USB_OTG_DOEPCTL_USBAEP_Pos		(15U)
#define USB_OTG_DOEPCTL_USBAEP_Msk		(0x1U << USB_OTG_DOEPCTL_USBAEP_Pos)	//  0x00008000
#define USB_OTG_DOEPCTL_USBAEP			USB_OTG_DOEPCTL_USBAEP_Msk	//  USB active endpoint
#define USB_OTG_DOEPCTL_NAKSTS_Pos		(17U)
#define USB_OTG_DOEPCTL_NAKSTS_Msk		(0x1U << USB_OTG_DOEPCTL_NAKSTS_Pos)	//  0x00020000
#define USB_OTG_DOEPCTL_NAKSTS			USB_OTG_DOEPCTL_NAKSTS_Msk	//  NAK status
#define USB_OTG_DOEPCTL_SD0PID_SEVNFRM_Pos	(28U)
#define USB_OTG_DOEPCTL_SD0PID_SEVNFRM_Msk	(0x1U << USB_OTG_DOEPCTL_SD0PID_SEVNFRM_Pos)	//  0x10000000
#define USB_OTG_DOEPCTL_SD0PID_SEVNFRM		USB_OTG_DOEPCTL_SD0PID_SEVNFRM_Msk	//  Set DATA0 PID
#define USB_OTG_DOEPCTL_SODDFRM_Pos		(29U)
#define USB_OTG_DOEPCTL_SODDFRM_Msk		(0x1U << USB_OTG_DOEPCTL_SODDFRM_Pos)	//  0x20000000
#define USB_OTG_DOEPCTL_SODDFRM			USB_OTG_DOEPCTL_SODDFRM_Msk	//  Set odd frame
#define USB_OTG_DOEPCTL_EPTYP_Pos			(18U)
#define USB_OTG_DOEPCTL_EPTYP_Msk			(0x3U << USB_OTG_DOEPCTL_EPTYP_Pos)	//  0x000C0000
#define USB_OTG_DOEPCTL_EPTYP			USB_OTG_DOEPCTL_EPTYP_Msk	//  Endpoint type
#define USB_OTG_DOEPCTL_EPTYP_0			(0x1U << USB_OTG_DOEPCTL_EPTYP_Pos)	//  0x00040000
#define USB_OTG_DOEPCTL_EPTYP_1			(0x2U << USB_OTG_DOEPCTL_EPTYP_Pos)	//  0x00080000
#define USB_OTG_DOEPCTL_SNPM_Pos			(20U)
#define USB_OTG_DOEPCTL_SNPM_Msk			(0x1U << USB_OTG_DOEPCTL_SNPM_Pos)	//  0x00100000
#define USB_OTG_DOEPCTL_SNPM			USB_OTG_DOEPCTL_SNPM_Msk	//  Snoop mode
#define USB_OTG_DOEPCTL_STALL_Pos			(21U)
#define USB_OTG_DOEPCTL_STALL_Msk			(0x1U << USB_OTG_DOEPCTL_STALL_Pos)	//  0x00200000
#define USB_OTG_DOEPCTL_STALL			USB_OTG_DOEPCTL_STALL_Msk	//  STALL handshake
#define USB_OTG_DOEPCTL_CNAK_Pos			(26U)
#define USB_OTG_DOEPCTL_CNAK_Msk			(0x1U << USB_OTG_DOEPCTL_CNAK_Pos)	//  0x04000000
#define USB_OTG_DOEPCTL_CNAK			USB_OTG_DOEPCTL_CNAK_Msk	//  Clear NAK
#define USB_OTG_DOEPCTL_SNAK_Pos			(27U)
#define USB_OTG_DOEPCTL_SNAK_Msk			(0x1U << USB_OTG_DOEPCTL_SNAK_Pos)	//  0x08000000
#define USB_OTG_DOEPCTL_SNAK			USB_OTG_DOEPCTL_SNAK_Msk	//  Set NAK
#define USB_OTG_DOEPCTL_EPDIS_Pos			(30U)
#define USB_OTG_DOEPCTL_EPDIS_Msk			(0x1U << USB_OTG_DOEPCTL_EPDIS_Pos)	//  0x40000000
#define USB_OTG_DOEPCTL_EPDIS			USB_OTG_DOEPCTL_EPDIS_Msk	//  Endpoint disable
#define USB_OTG_DOEPCTL_EPENA_Pos			(31U)
#define USB_OTG_DOEPCTL_EPENA_Msk			(0x1U << USB_OTG_DOEPCTL_EPENA_Pos)	//  0x80000000
#define USB_OTG_DOEPCTL_EPENA			USB_OTG_DOEPCTL_EPENA_Msk	//  Endpoint enable

//  Bit definition for USB_OTG_DOEPINT register
#define USB_OTG_DOEPINT_XFRC_Pos			(0U)
#define USB_OTG_DOEPINT_XFRC_Msk			(0x1U << USB_OTG_DOEPINT_XFRC_Pos)	//  0x00000001
#define USB_OTG_DOEPINT_XFRC			USB_OTG_DOEPINT_XFRC_Msk	//  Transfer completed interrupt
#define USB_OTG_DOEPINT_EPDISD_Pos		(1U)
#define USB_OTG_DOEPINT_EPDISD_Msk		(0x1U << USB_OTG_DOEPINT_EPDISD_Pos)	//  0x00000002
#define USB_OTG_DOEPINT_EPDISD			USB_OTG_DOEPINT_EPDISD_Msk	//  Endpoint disabled interrupt
#define USB_OTG_DOEPINT_STUP_Pos			(3U)
#define USB_OTG_DOEPINT_STUP_Msk			(0x1U << USB_OTG_DOEPINT_STUP_Pos)	//  0x00000008
#define USB_OTG_DOEPINT_STUP			USB_OTG_DOEPINT_STUP_Msk	//  SETUP phase done
#define USB_OTG_DOEPINT_OTEPDIS_Pos		(4U)
#define USB_OTG_DOEPINT_OTEPDIS_Msk		(0x1U << USB_OTG_DOEPINT_OTEPDIS_Pos)	//  0x00000010
#define USB_OTG_DOEPINT_OTEPDIS			USB_OTG_DOEPINT_OTEPDIS_Msk	//  OUT token received when endpoint disabled
#define USB_OTG_DOEPINT_B2BSTUP_Pos		(6U)
#define USB_OTG_DOEPINT_B2BSTUP_Msk		(0x1U << USB_OTG_DOEPINT_B2BSTUP_Pos)	//  0x00000040
#define USB_OTG_DOEPINT_B2BSTUP			USB_OTG_DOEPINT_B2BSTUP_Msk	//  Back-to-back SETUP packets received
#define USB_OTG_DOEPINT_NYET_Pos			(14U)
#define USB_OTG_DOEPINT_NYET_Msk			(0x1U << USB_OTG_DOEPINT_NYET_Pos)	//  0x00004000
#define USB_OTG_DOEPINT_NYET			USB_OTG_DOEPINT_NYET_Msk	//  NYET interrupt

//  Bit definition for USB_OTG_DOEPTSIZ register

#define USB_OTG_DOEPTSIZ_XFRSIZ_Pos		(0U)
#define USB_OTG_DOEPTSIZ_XFRSIZ_Msk		(0x7FFFFU << USB_OTG_DOEPTSIZ_XFRSIZ_Pos)	//  0x0007FFFF
#define USB_OTG_DOEPTSIZ_XFRSIZ			USB_OTG_DOEPTSIZ_XFRSIZ_Msk	//  Transfer size
#define USB_OTG_DOEPTSIZ_PKTCNT_Pos		(19U)
#define USB_OTG_DOEPTSIZ_PKTCNT_Msk		(0x3FFU << USB_OTG_DOEPTSIZ_PKTCNT_Pos)	//  0x1FF80000
#define USB_OTG_DOEPTSIZ_PKTCNT			USB_OTG_DOEPTSIZ_PKTCNT_Msk	//  Packet count

#define USB_OTG_DOEPTSIZ_STUPCNT_Pos		(29U)
#define USB_OTG_DOEPTSIZ_STUPCNT_Msk		(0x3U << USB_OTG_DOEPTSIZ_STUPCNT_Pos)	//  0x60000000
#define USB_OTG_DOEPTSIZ_STUPCNT			USB_OTG_DOEPTSIZ_STUPCNT_Msk	//  SETUP packet count
#define USB_OTG_DOEPTSIZ_STUPCNT_0		(0x1U << USB_OTG_DOEPTSIZ_STUPCNT_Pos)	//  0x20000000
#define USB_OTG_DOEPTSIZ_STUPCNT_1		(0x2U << USB_OTG_DOEPTSIZ_STUPCNT_Pos)	//  0x40000000

//  Bit definition for PCGCCTL register
#define USB_OTG_PCGCCTL_STOPCLK_Pos		(0U)
#define USB_OTG_PCGCCTL_STOPCLK_Msk		(0x1U << USB_OTG_PCGCCTL_STOPCLK_Pos)	//  0x00000001
#define USB_OTG_PCGCCTL_STOPCLK			USB_OTG_PCGCCTL_STOPCLK_Msk	//  SETUP packet count
#define USB_OTG_PCGCCTL_GATECLK_Pos		(1U)
#define USB_OTG_PCGCCTL_GATECLK_Msk		(0x1U << USB_OTG_PCGCCTL_GATECLK_Pos)	//  0x00000002
#define USB_OTG_PCGCCTL_GATECLK			USB_OTG_PCGCCTL_GATECLK_Msk	// Bit 0
#define USB_OTG_PCGCCTL_PHYSUSP_Pos		(4U)
#define USB_OTG_PCGCCTL_PHYSUSP_Msk		(0x1U << USB_OTG_PCGCCTL_PHYSUSP_Pos)	//  0x00000010
#define USB_OTG_PCGCCTL_PHYSUSP			USB_OTG_PCGCCTL_PHYSUSP_Msk	// Bit 1

// Exported_macros

// ADC Instances
#define IS_ADC_ALL_INSTANCE(INSTANCE) ((INSTANCE) == ADC1)
// CRC Instances
#define IS_CRC_ALL_INSTANCE(INSTANCE) ((INSTANCE) == CRC)

// DMA Instances
#define IS_DMA_STREAM_ALL_INSTANCE(INSTANCE) (((INSTANCE) == DMA1_Stream0) || \
			((INSTANCE) == DMA1_Stream1) || \
			((INSTANCE) == DMA1_Stream2) || \
			((INSTANCE) == DMA1_Stream3) || \
			((INSTANCE) == DMA1_Stream4) || \
			((INSTANCE) == DMA1_Stream5) || \
			((INSTANCE) == DMA1_Stream6) || \
			((INSTANCE) == DMA1_Stream7) || \
			((INSTANCE) == DMA2_Stream0) || \
			((INSTANCE) == DMA2_Stream1) || \
			((INSTANCE) == DMA2_Stream2) || \
			((INSTANCE) == DMA2_Stream3) || \
			((INSTANCE) == DMA2_Stream4) || \
			((INSTANCE) == DMA2_Stream5) || \
			((INSTANCE) == DMA2_Stream6) || \
			((INSTANCE) == DMA2_Stream7))

// GPIO Instances
#define IS_GPIO_ALL_INSTANCE(INSTANCE) (((INSTANCE) == GPIOA) || \
			((INSTANCE) == GPIOB) || \
			((INSTANCE) == GPIOC) || \
			((INSTANCE) == GPIOD) || \
			((INSTANCE) == GPIOE) || \
			((INSTANCE) == GPIOH))

// I2C Instances
#define IS_I2C_ALL_INSTANCE(INSTANCE) (((INSTANCE) == I2C1) || \
			((INSTANCE) == I2C2) || \
			((INSTANCE) == I2C3))

// SMBUS Instances
#define IS_SMBUS_ALL_INSTANCE		IS_I2C_ALL_INSTANCE

// I2S Instances
#define IS_I2S_ALL_INSTANCE(INSTANCE)  (((INSTANCE) == SPI2) || \
			((INSTANCE) == SPI3))

// I2S Extended Instances
#define IS_I2S_ALL_INSTANCE_EXT(INSTANCE) (((INSTANCE) == I2S2ext)|| \
			((INSTANCE) == I2S3ext))


// RTC Instances
#define IS_RTC_ALL_INSTANCE(INSTANCE)  ((INSTANCE) == RTC)


// SPI Instances
#define IS_SPI_ALL_INSTANCE(INSTANCE) (((INSTANCE) == SPI1) || \
			((INSTANCE) == SPI2) || \
			((INSTANCE) == SPI3) || \
			((INSTANCE) == SPI4))


// TIM Instances : All supported instances
#define IS_TIM_INSTANCE(INSTANCE) (((INSTANCE) == TIM1)	|| \
			((INSTANCE) == TIM2)	|| \
			((INSTANCE) == TIM3)	|| \
			((INSTANCE) == TIM4)	|| \
			((INSTANCE) == TIM5)	|| \
			((INSTANCE) == TIM9)	|| \
			((INSTANCE) == TIM10)  || \
			((INSTANCE) == TIM11))


// TIM Instances : at least 1 capture/compare channel
#define IS_TIM_CC1_INSTANCE(INSTANCE)	(((INSTANCE) == TIM1)  || \
			((INSTANCE) == TIM2)  || \
			((INSTANCE) == TIM3)  || \
			((INSTANCE) == TIM4)  || \
			((INSTANCE) == TIM5)  || \
			((INSTANCE) == TIM9)  || \
			((INSTANCE) == TIM10) || \
			((INSTANCE) == TIM11))

// TIM Instances : at least 2 capture/compare channels
#define IS_TIM_CC2_INSTANCE(INSTANCE) (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5) || \
			((INSTANCE) == TIM9))

// TIM Instances : at least 3 capture/compare channels
#define IS_TIM_CC3_INSTANCE(INSTANCE)	(((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : at least 4 capture/compare channels
#define IS_TIM_CC4_INSTANCE(INSTANCE) (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : Advanced-control timers
#define IS_TIM_ADVANCED_INSTANCE(INSTANCE) ((INSTANCE) == TIM1)

// TIM Instances : Timer input XOR function
#define IS_TIM_XOR_INSTANCE(INSTANCE)	(((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : DMA requests generation (UDE)
#define IS_TIM_DMA_INSTANCE(INSTANCE) (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : DMA requests generation (CCxDE)
#define IS_TIM_DMA_CC_INSTANCE(INSTANCE) (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : DMA requests generation (COMDE)
#define IS_TIM_CCDMA_INSTANCE(INSTANCE)  (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : DMA burst feature
#define IS_TIM_DMABURST_INSTANCE(INSTANCE)  (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : master mode available (TIMx_CR2.MMS available)
#define IS_TIM_MASTER_INSTANCE(INSTANCE) (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5) || \
			((INSTANCE) == TIM9))

// TIM Instances : Slave mode available (TIMx_SMCR available)
#define IS_TIM_SLAVE_INSTANCE(INSTANCE) (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5) || \
			((INSTANCE) == TIM9))

// TIM Instances : 32 bit Counter
#define IS_TIM_32B_COUNTER_INSTANCE(INSTANCE)(((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM5))

// TIM Instances : external trigger input availabe
#define IS_TIM_ETR_INSTANCE(INSTANCE)  (((INSTANCE) == TIM1) || \
			((INSTANCE) == TIM2) || \
			((INSTANCE) == TIM3) || \
			((INSTANCE) == TIM4) || \
			((INSTANCE) == TIM5))

// TIM Instances : remapping capability
#define IS_TIM_REMAP_INSTANCE(INSTANCE) (((INSTANCE) == TIM2)  || \
			((INSTANCE) == TIM5)  || \
			((INSTANCE) == TIM11))

// TIM Instances : output(s) available
#define IS_TIM_CCX_INSTANCE(INSTANCE, CHANNEL) \
	((((INSTANCE) == TIM1) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2) ||		\
	((CHANNEL) == TIM_CHANNEL_3) ||		\
	((CHANNEL) == TIM_CHANNEL_4)))		\
	||			\
	(((INSTANCE) == TIM2) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2) ||		\
	((CHANNEL) == TIM_CHANNEL_3) ||		\
	((CHANNEL) == TIM_CHANNEL_4)))		\
	||			\
	(((INSTANCE) == TIM3) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2) ||		\
	((CHANNEL) == TIM_CHANNEL_3) ||		\
	((CHANNEL) == TIM_CHANNEL_4)))		\
	||			\
	(((INSTANCE) == TIM4) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2) ||		\
	((CHANNEL) == TIM_CHANNEL_3) ||		\
	((CHANNEL) == TIM_CHANNEL_4)))		\
	||			\
	(((INSTANCE) == TIM5) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2) ||		\
	((CHANNEL) == TIM_CHANNEL_3) ||		\
	((CHANNEL) == TIM_CHANNEL_4)))		\
	||			\
	(((INSTANCE) == TIM9) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2)))		\
	||			\
	(((INSTANCE) == TIM10) &&			\
	(((CHANNEL) == TIM_CHANNEL_1)))		\
	||			\
	(((INSTANCE) == TIM11) &&			\
	(((CHANNEL) == TIM_CHANNEL_1))))

// TIM Instances : complementary output(s) available
#define IS_TIM_CCXN_INSTANCE(INSTANCE, CHANNEL) \
	((((INSTANCE) == TIM1) &&			\
	(((CHANNEL) == TIM_CHANNEL_1) ||		\
	((CHANNEL) == TIM_CHANNEL_2) ||		\
	((CHANNEL) == TIM_CHANNEL_3))))

// USART Instances : Synchronous mode
#define IS_USART_INSTANCE(INSTANCE) (((INSTANCE) == USART1) || \
			((INSTANCE) == USART2) || \
			((INSTANCE) == USART6))

// UART Instances : Asynchronous mode
#define IS_UART_INSTANCE(INSTANCE) (((INSTANCE) == USART1) || \
			((INSTANCE) == USART2) || \
			((INSTANCE) == USART6))

// UART Instances : Hardware Flow control
#define IS_UART_HWFLOW_INSTANCE(INSTANCE) (((INSTANCE) == USART1) || \
			((INSTANCE) == USART2) || \
			((INSTANCE) == USART6))

// UART Instances : Smart card mode
#define IS_SMARTCARD_INSTANCE(INSTANCE) (((INSTANCE) == USART1) || \
			((INSTANCE) == USART2) || \
			((INSTANCE) == USART6))

// UART Instances : IRDA mode
#define IS_IRDA_INSTANCE(INSTANCE) (((INSTANCE) == USART1) || \
			((INSTANCE) == USART2) || \
			((INSTANCE) == USART6))

// PCD Instances
#define IS_PCD_ALL_INSTANCE(INSTANCE) (((INSTANCE) == USB_OTG_FS))

// HCD Instances
#define IS_HCD_ALL_INSTANCE(INSTANCE) (((INSTANCE) == USB_OTG_FS))

// SDIO Instances
#define IS_SDIO_ALL_INSTANCE(INSTANCE) ((INSTANCE) == SDIO)

// IWDG Instances
#define IS_IWDG_ALL_INSTANCE(INSTANCE)  ((INSTANCE) == IWDG)

// WWDG Instances
#define IS_WWDG_ALL_INSTANCE(INSTANCE)  ((INSTANCE) == WWDG)

// USB Exported Constants
#define USB_OTG_FS_HOST_MAX_CHANNEL_NBR	8U
#define USB_OTG_FS_MAX_IN_ENDPOINTS	4U	// Including EP0
#define USB_OTG_FS_MAX_OUT_ENDPOINTS	4U	// Including EP0
#define USB_OTG_FS_TOTAL_FIFO_SIZE	1280U	// in Bytes


#define RCC_MAX_FREQUENCY		84000000U		// Max frequency of family in Hz
#define RCC_MAX_FREQUENCY_SCALE3	60000000U		// Maximum frequency for system clock at power scale3, in Hz
#define RCC_MAX_FREQUENCY_SCALE2	RCC_MAX_FREQUENCY	//  Maximum frequency for system clock at power scale2, in Hz
#define RCC_PLLVCO_OUTPUT_MIN		192000000U	//  Frequency min for PLLVCO output, in Hz
#define RCC_PLLVCO_INPUT_MIN		950000U		//  Frequency min for PLLVCO input, in Hz
#define RCC_PLLVCO_INPUT_MAX		2100000U	//  Frequency max for PLLVCO input, in Hz
#define RCC_PLLVCO_OUTPUT_MAX		432000000U	//  Frequency max for PLLVCO output, in Hz

#define RCC_PLLN_MIN_VALUE		192U
#define RCC_PLLN_MAX_VALUE		432U

#define FLASH_SCALE2_LATENCY1_FREQ	30000000U	//  HCLK frequency to set FLASH latency 1 in power scale 2
#define FLASH_SCALE2_LATENCY2_FREQ	60000000U	//  HCLK frequency to set FLASH latency 2 in power scale 2

#define FLASH_SCALE3_LATENCY1_FREQ	30000000U	//  HCLK frequency to set FLASH latency 1 in power scale 3
#define FLASH_SCALE3_LATENCY2_FREQ	60000000U	//  HCLK frequency to set FLASH latency 2 in power scale 3

#ifdef __cplusplus
}
#endif
Detected encoding: UTF-80