rt-thread/bsp/airm2m/air105/libraries/HAL_Driver/Inc/air105.h

2088 lines
98 KiB
C

/*
* Copyright (c) 2022 OpenLuat & AirM2M
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of
* this software and associated documentation files (the "Software"), to deal in
* the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef __AIR105_H__
#define __AIR105_H__
#ifdef __cplusplus
extern "C" {
#endif
/* ToDo: replace '<Device>' with your device name; add your doxyGen comment */
/** @addtogroup <Device>_Definitions <Device> Definitions
This file defines all structures and symbols for <Device>:
- registers and bitfields
- peripheral base address
- peripheral ID
- Peripheral definitions
@{
*/
/******************************************************************************/
/* Processor and Core Peripherals */
/******************************************************************************/
/** @addtogroup <Device>_CMSIS Device CMSIS Definitions
Configuration of the Cortex-M# Processor and Core Peripherals
@{
*/
/*
* ==========================================================================
* ---------- Interrupt Number Definition -----------------------------------
* ==========================================================================
*/
typedef enum IRQn
{
/****** Cortex-M# Processor Exceptions Numbers ***************************************************/
/* ToDo: use this Cortex interrupt numbers if your device is a CORTEX-M3 / Cortex-M4 device */
NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt */
MemoryManagement_IRQn = -12, /*!< 4 Memory Management Interrupt */
BusFault_IRQn = -11, /*!< 5 Bus Fault Interrupt */
UsageFault_IRQn = -10, /*!< 6 Usage Fault Interrupt */
SVCall_IRQn = -5, /*!< 11 SV Call Interrupt */
DebugMonitor_IRQn = -4, /*!< 12 Debug Monitor Interrupt */
PendSV_IRQn = -2, /*!< 14 Pend SV Interrupt */
SysTick_IRQn = -1, /*!< 15 System Tick Interrupt */
/****** Device Specific Interrupt Numbers ********************************************************/
/* ToDo: add here your device specific external interrupt numbers
according the interrupt handlers defined in startup_Device.s
eg.: Interrupt for Timer#1 TIM1_IRQHandler -> TIM1_IRQn */
DMA_IRQn = 0,
USB_IRQn = 1,
USBDMA_IRQn = 2,
LCD_IRQn = 3,
SCI0_IRQn = 4,
UART0_IRQn = 5,
UART1_IRQn = 6,
SPI0_IRQn = 7,
CRYPT0_IRQn = 8,
TIM0_0_IRQn = 9,
TIM0_1_IRQn = 10,
TIM0_2_IRQn = 11,
TIM0_3_IRQn = 12,
EXTI0_IRQn = 13,
EXTI1_IRQn = 14,
EXTI2_IRQn = 15,
RTC_IRQn = 16,
SENSOR_IRQn = 17,
TRNG_IRQn = 18,
ADC0_IRQn = 19,
SSC_IRQn = 20,
TIM0_4_IRQn = 21,
TIM0_5_IRQn = 22,
KBD_IRQn = 23,
MSR_IRQn = 24,
EXTI3_IRQn = 25,
SPI1_IRQn = 26,
SPI2_IRQn = 27,
SCI2_IRQn = 29,
UART2_IRQn = 32,
UART3_IRQn = 33,
QSPI_IRQn = 35,
I2C0_IRQn = 36,
EXTI4_IRQn = 37,
EXTI5_IRQn = 38,
TIM0_6_IRQn = 39,
TIM0_7_IRQn = 40,
DCMI_IRQn = 42,
QR_IRQn = 46,
GPU_IRQn = 47,
AWD_IRQn = 49,
DAC_IRQn = 50,
SPI5_IRQn = 51
} IRQn_Type;
/*
* ==========================================================================
* ----------- Processor and Core Peripheral Section ------------------------
* ==========================================================================
*/
/* Configuration of the Cortex-M# Processor and Core Peripherals */
/* ToDo: set the defines according your Device */
/* ToDo: define the correct core revision
__CM0_REV if your device is a CORTEX-M0 device
__CM3_REV if your device is a CORTEX-M3 device
__CM4_REV if your device is a CORTEX-M4 device */
//#define __CM3_REV 0x0201 /*!< Core Revision r2p1 */
//#define __CM3_REV 0x0200 /*!< Core Revision r2p0 */
#define __CM4_REV 0x0001 /*!< Core Revision r2p0 */
#define __NVIC_PRIO_BITS 3 /*!< Number of Bits used for Priority Levels */
#define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
#define __MPU_PRESENT 1 /*!< MPU present or not */
/* ToDo: define __FPU_PRESENT if your devise is a CORTEX-M4 */
#define __FPU_PRESENT 1 /*!< FPU present or not */
/*@}*/ /* end of group <Device>_CMSIS */
/* ToDo: include the correct core_cm#.h file
core_cm0.h if your device is a CORTEX-M0 device
core_cm3.h if your device is a CORTEX-M3 device
core_cm4.h if your device is a CORTEX-M4 device */
#include "core_cm4.h" /* Cortex-M# processor and core peripherals */
/* ToDo: include your system_<Device>.h file
replace '<Device>' with your device name */
#include "system_air105.h" /* <Device> System include file */
/******************************************************************************/
/* Device Specific Peripheral registers structures */
/******************************************************************************/
/** @addtogroup <Device>_Peripherals <Device> Peripherals
<Device> Device Specific Peripheral registers structures
@{
*/
#if defined ( __CC_ARM )
#pragma anon_unions
#endif
#include <stdint.h>
/** @addtogroup Exported_types
* @{
*/
typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;
typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
typedef enum {FALSE = 0, TRUE = !FALSE} Boolean;
typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
/* ToDo: add here your device specific peripheral access structure typedefs
following is an example for a timer */
#define BIT0 (0x00000001U)
#define BIT1 (0x00000002U)
#define BIT2 (0x00000004U)
#define BIT3 (0x00000008U)
#define BIT4 (0x00000010U)
#define BIT5 (0x00000020U)
#define BIT6 (0x00000040U)
#define BIT7 (0x00000080U)
#define BIT8 (0x00000100U)
#define BIT9 (0x00000200U)
#define BIT10 (0x00000400U)
#define BIT11 (0x00000800U)
#define BIT12 (0x00001000U)
#define BIT13 (0x00002000U)
#define BIT14 (0x00004000U)
#define BIT15 (0x00008000U)
#define BIT16 (0x00010000U)
#define BIT17 (0x00020000U)
#define BIT18 (0x00040000U)
#define BIT19 (0x00080000U)
#define BIT20 (0x00100000U)
#define BIT21 (0x00200000U)
#define BIT22 (0x00400000U)
#define BIT23 (0x00800000U)
#define BIT24 (0x01000000U)
#define BIT25 (0x02000000U)
#define BIT26 (0x04000000U)
#define BIT27 (0x08000000U)
#define BIT28 (0x10000000U)
#define BIT29 (0x20000000U)
#define BIT30 (0x40000000U)
#define BIT31 (0x80000000U)
#define BIT(n) (1UL << (n))
typedef struct
{
__IO uint32_t FREQ_SEL;
__IO uint32_t CG_CTRL1;
__IO uint32_t CG_CTRL2;
__O uint32_t SOFT_RST1;
__O uint32_t SOFT_RST2;
__IO uint32_t LOCK_R;
__IO uint32_t PHER_CTRL;
__I uint32_t SYS_RSVD[(0x2C-0x1C) >> 2];
__I uint32_t HCLK_1MS_VAL;
__I uint32_t PCLK_1MS_VAL;
__IO uint32_t ANA_CTRL;
__IO uint32_t DMA_CHAN;
__IO uint32_t SCI0_GLF;
__IO uint32_t SW_RSV1;
__IO uint32_t SW_RSV2;
__IO uint32_t CARD_RSVD;
__IO uint32_t LDO25_CR;
__IO uint32_t DMA_CHAN1;
__I uint32_t SYS_RSVD2[(0x100-0x54) >> 2];
__IO uint32_t MSR_CR1;
__IO uint32_t MSR_CR2;
__IO uint32_t USBPHY_CR1;
__IO uint32_t USBPHY_CR2;
__IO uint32_t USBPHY_CR3;
__IO uint32_t ISO7816_CR;
__IO uint32_t LDO_CR;
__IO uint32_t CHG_CSR;
__I uint32_t SYS_RSVD3[(0x204-0x120) >> 2];
__IO uint32_t RSVD_POR;
__I uint32_t SYS_RSVD4[(0x3EC-0x208) >> 2];
__IO uint32_t PM2_WK_FLAG;
__IO uint32_t CALIB_CSR;
__IO uint32_t DBG_CR;
__IO uint32_t CHIP_ID;
} SYSCTRL_TypeDef;
typedef struct
{
union
{
__I uint32_t RBR;
__O uint32_t THR;
__IO uint32_t DLL;
} OFFSET_0;
union
{
__IO uint32_t DLH;
__IO uint32_t IER;
} OFFSET_4;
union
{
__I uint32_t IIR;
__O uint32_t FCR;
} OFFSET_8;
__IO uint32_t LCR;
__IO uint32_t MCR;
__I uint32_t LSR;
__I uint32_t MSR;
__IO uint32_t SCR;
__IO uint32_t LPDLL;
__IO uint32_t LPDLH;
__I uint32_t RES0[2];
union
{
__I uint32_t SRBR[16];
__O uint32_t STHR[16];
} OFFSET_48;
__IO uint32_t FAR;
__I uint32_t TFR;
__O uint32_t RFW;
__I uint32_t USR;
__I uint32_t TFL;
__I uint32_t RFL;
__O uint32_t SRR;
__IO uint32_t SRTS;
__IO uint32_t SBCR;
__IO uint32_t SDMAM;
__IO uint32_t SFE;
__IO uint32_t SRT;
__IO uint32_t STET;
__IO uint32_t HTX;
__O uint32_t DMASA;
__I uint32_t RES1[18];
__I uint32_t CPR;
__I uint32_t UCV;
__I uint32_t CTR;
} UART_TypeDef;
typedef struct
{
__IO uint16_t CTRLR0;
uint16_t RESERVED0;
__IO uint16_t CTRLR1;
uint16_t RESERVED1;
__IO uint32_t SSIENR;
__IO uint32_t MWCR;
__IO uint32_t SER;
__IO uint32_t BAUDR;
__IO uint32_t TXFTLR;
__IO uint32_t RXFTLR;
__I uint32_t TXFLR;
__I uint32_t RXFLR;
__I uint32_t SR;
__IO uint32_t IMR;
__I uint32_t ISR;
__I uint32_t RISR;
__I uint32_t TXOICR;
__I uint32_t RXOICR;
__I uint32_t RXUICR;
__I uint32_t MSTICR;
__IO uint32_t ICR;
__IO uint32_t DMACR;
__IO uint32_t DMATDLR;
__IO uint32_t DMARDLR;
__I uint32_t IDR;
__I uint32_t SSI_COMP_VERSION;
__IO uint32_t DR;
__IO uint32_t DR_Array[35];
__IO uint32_t RX_SAMPLE_DLY;
} SPI_TypeDef;
typedef struct
{
__IO uint32_t FCU_CMD;
__O uint32_t ADDRES;
__IO uint32_t BYTE_NUM;
__O uint32_t WR_FIFO;
__I uint32_t RD_FIFO;
__IO uint32_t DEVICE_PARA;
__IO uint32_t REG_WDATA;
__O uint32_t REG_RDATA;
__IO uint32_t INT_MASK;
__IO uint32_t INT_UMASK;
__IO uint32_t INT_MASK_STATUS;
__IO uint32_t INT_STATUS;
__IO uint32_t INT_RAWSTATUS;
__IO uint32_t INT_CLEAR;
__IO uint32_t CACHE_INTF_CMD;
__IO uint32_t DMA_CNTL;
__IO uint32_t FIFO_CNTL;
} QSPI_TypeDef;
typedef struct
{
__IO uint32_t CACHE_I0;
__IO uint32_t CACHE_I1;
__IO uint32_t CACHE_I2;
__IO uint32_t CACHE_I3;
__IO uint32_t CACHE_K0;
__IO uint32_t CACHE_K1;
__IO uint32_t CACHE_K2;
__IO uint32_t CACHE_K3;
__IO uint32_t CACHE_CS;
__IO uint32_t CACHE_REF;
__I uint32_t CACHE_RSVD0[(0x40-0x28) >> 2];
__IO uint32_t CACHE_CONFIG;
__I uint32_t CACHE_RSVD1[(0x74-0x44) >> 2];
__IO uint32_t CACHE_SADDR;
__IO uint32_t CACHE_EADDR;
} CACHE_TypeDef;
typedef struct
{
__IO uint32_t CR0; /*!< HSPIM Control register0 */
__IO uint32_t FLCR; /*!< HSPIM Flow Control register */
__IO uint32_t FLSR; /*!< HSPIM Flow Status register */
__IO uint32_t FCR; /*!< HSPIM FIFO Control register */
__I uint32_t RDR; /*!< HSPIM Read Data register */
__O uint32_t WDR; /*!< HSPIM Write Data register */
__I uint32_t SR; /*!< HSPIM Status register */
__IO uint32_t CR1; /*!< HSPIM Control register1 */
__IO uint32_t FSR; /*!< HSPIM FIFO Status register */
__IO uint32_t DCR; /*!< HSPIM DMA Control register */
__I uint32_t TISR; /*!< HSPIM TX Interrput Status register */
__I uint32_t RISR; /*!< HSPIM RX Interrput Status register */
}HSPIM_TypeDef;
typedef struct
{
__IO uint32_t SMU_CTRL;
__IO uint32_t FPM_CTRL;
__O uint32_t INTR_STAT;
__IO uint32_t INTR_CTRL;
__IO uint32_t RESERVED1[12];
__IO uint32_t SMU_OP1;
__IO uint32_t SMU_OP2;
__O uint32_t SMU_RES;
__IO uint32_t RESERVED2[13];
__IO float MATRIX1_00;
__IO float MATRIX1_01;
__IO float MATRIX1_02;
__IO float MATRIX1_10;
__IO float MATRIX1_11;
__IO float MATRIX1_12;
__IO float MATRIX1_20;
__IO float MATRIX1_21;
__IO float MATRIX1_22;
__IO uint32_t RESERVED3[7];
__IO float MATRIX2_00;
__IO float MATRIX2_01;
__IO float MATRIX2_02;
__IO uint32_t RESERVED4[13];
__IO uint32_t TABLE1_LEN;
__IO uint32_t TABLE2_LEN;
__IO uint32_t ACC;
__IO uint32_t POSITION;
__IO uint32_t VAL3;
__IO uint32_t RESERVED5[443];
__IO uint32_t TABLE1_RAM;
__IO uint32_t RESERVED6[255];
__IO uint32_t TABLE2_RAM;
__IO uint32_t RESERVED7[63];
}QRCODE_TypeDef;
typedef struct
{
__IO uint32_t WDT_CR;
__IO uint32_t RESERVED0;
__I uint32_t WDT_CCVR;
__O uint32_t WDT_CRR;
__I uint32_t WDT_STAT;
__I uint32_t WDT_EOI;
__I uint32_t RESERVED1;
__IO uint32_t WDT_RLD;
__I uint32_t RESERVED[53];
__I uint32_t WDT_COMP_PARAMS_1;
__I uint32_t WDT_COMP_VERSION;
__I uint32_t WDT_COMP_TYPE;
} WDT_TypeDef;
typedef struct
{
__IO uint32_t CRC_CSR;
__O uint32_t CRC_INI;
union
{
__I uint32_t DOUT;
__O uint8_t DIN;
} CRC_DATA;
} CRC_TypeDef;
typedef struct
{
__IO uint32_t LoadCount;
__I uint32_t CurrentValue;
__IO uint32_t ControlReg;
__IO uint32_t EOI;
__I uint32_t IntStatus;
} TIM_TypeDef;
#define TIM_NUM 8
typedef struct
{
TIM_TypeDef TIM[TIM_NUM];
__I uint32_t TIM_IntStatus;
__I uint32_t TIM_EOI;
__I uint32_t TIM_RawIntStatus;
__I uint32_t TIM_Comp;
__IO uint32_t TIM_ReloadCount[TIM_NUM];
} TIM_Module_TypeDef;
typedef struct
{
__IO uint32_t ADC_CR1;
__I uint32_t ADC_SR;
__IO uint32_t ADC_FIFO;
__I uint32_t ADC_DATA;
__I uint32_t ADC_FIFO_FL;
__IO uint32_t ADC_FIFO_THR;
__IO uint32_t ADC_CR2;
} ADC_TypeDef;
typedef struct
{
__IO uint32_t DAC_CR1;
__IO uint32_t DAC_DATA;
__IO uint32_t DAC_TIMER;
__I uint32_t DAC_FIFO_FL;
__IO uint32_t DAC_FIFO_THR;
} DAC_TypeDef;
typedef struct
{
__IO uint32_t AWD_CR1;
__IO uint32_t AWD_CR2;
__I uint32_t AWD_SR;
} AWD_TypeDef;
typedef struct
{
__IO uint32_t IODR;
__IO uint32_t BSRR;
__IO uint32_t OEN;
__IO uint32_t PUE;
} GPIO_TypeDef;
typedef struct
{
__IO uint32_t INTP_TYPE;
__IO uint32_t INTP_STA;
} GPIO_INTP_TypeDef;
#define GPIO_GROUP_NUM 6
typedef struct
{
GPIO_TypeDef GPIO[GPIO_GROUP_NUM];
__I uint32_t RSVD0[(0x114 - 0x060)>>2];
__I uint32_t INTP[GPIO_GROUP_NUM];
__I uint32_t RSVD1[(0x180 - 0x12C)>>2];
__IO uint32_t ALT[GPIO_GROUP_NUM];
__I uint32_t RSVD2[(0x200 - 0x198)>>2];
__IO uint32_t SYS_CR1;
__I uint32_t RSVD3[(0x220 - 0x204)>>2];
__IO uint32_t WAKE_TYPE_EN;
__IO uint32_t WAKE_P0_EN;
__IO uint32_t WAKE_P1_EN;
__IO uint32_t WAKE_P2_EN;
__IO uint32_t WAKE_P3_EN;
__I uint32_t RSVD5[(0x800 - 0x234)>>2];
GPIO_INTP_TypeDef INTP_TYPE_STA[GPIO_GROUP_NUM];
} GPIO_MODULE_TypeDef;
typedef struct
{
__IO uint32_t FLAG[(0x0174 - 0x00164) >> 2];
} FLAG_TypeDef;
#define BPK_KEY_NUM 16
typedef struct
{
__IO uint32_t KEY[BPK_KEY_NUM];
__I uint32_t BPK_RSVD0[(0x80-0x40)>>2];
__IO uint32_t BPK_RDY;
__IO uint32_t BPK_CLR;
__IO uint32_t BPK_LRA;
__IO uint32_t BPK_LWA;
__I uint32_t BPK_RSVD1;
__IO uint32_t BPK_LR;
__IO uint32_t BPK_SCR;
__IO uint32_t BPK_POWER;
__IO uint32_t RTC_CS;
__IO uint32_t RTC_REF;
__IO uint32_t RTC_ARM;
__I uint32_t RTC_TIM;
__O uint32_t RTC_INTCLR;
__IO uint32_t OSC32K_CR;
__IO uint32_t RTC_ATTA_TIM;
__IO uint32_t BPK_RR;
__IO uint32_t SEN_EXT_TYPE;
__IO uint32_t SEN_EXT_CFG;
__IO uint32_t SEN_SOFT_EN;
__IO uint32_t SEN_STATE;
__IO uint32_t SEN_BRIDGE;
__IO uint32_t SEN_SOFT_ATTACK;
__IO uint32_t SEN_SOFT_LOCK;
__IO uint32_t SEN_ATTACK_CNT;
__IO uint32_t SEN_ATTACK_TYP;
__IO uint32_t SEN_VG_DETECT;
__IO uint32_t SEN_RNG_INI;
__IO uint32_t RESERVED3[(0x0104 - 0x00EC) >> 2];
__IO uint32_t SEN_EN[19];
__IO uint32_t SEN_EXTS_START;
__IO uint32_t SEN_LOCK;
__IO uint32_t SEN_ANA0;
__IO uint32_t SEN_ANA1;
__IO uint32_t SEN_ATTCLR;
FLAG_TypeDef SEN_FLAG;
__IO uint32_t SEN_DEBUG;
__I uint32_t BPU_RSVD4[(0x200- 0x178) >> 2];
__IO uint32_t BPK_RAM[(0x600-0x200) >> 2];
} BPU_TypeDef;
typedef struct
{
__IO uint32_t KEY[BPK_KEY_NUM];
__I uint32_t BPK_RSVD0[(0x80-0x40) >> 2];
__IO uint32_t BPK_RDY;
__IO uint32_t BPK_CLR;
__IO uint32_t BPK_LRA;
__IO uint32_t BPK_LWA;
__I uint32_t BPK_RSVD1;
__IO uint32_t BPK_LR;
__IO uint32_t BPK_SCR;
__IO uint32_t BPK_POWER;
} BPK_TypeDef;
typedef struct
{
__IO uint32_t RTC_CS;
__IO uint32_t RTC_REF;
__IO uint32_t RTC_ARM;
__I uint32_t RTC_TIM;
__O uint32_t RTC_INTCLR;
__IO uint32_t OSC32K_CR;
__IO uint32_t RTC_ATTA_TIM;
} RTC_TypeDef;
#define EXT_SENSOR_NUM 8
#define INNER_SENSOR_NUM 7
typedef struct
{
__IO uint32_t BPK_RR;
__IO uint32_t SEN_EXT_TYPE;
__IO uint32_t SEN_EXT_CFG;
__IO uint32_t SEN_SOFT_EN;
__IO uint32_t SEN_STATE;
__IO uint32_t SEN_BRIDGE;
__IO uint32_t SEN_SOFT_ATTACK;
__IO uint32_t SEN_SOFT_LOCK;
__IO uint32_t SEN_ATTACK_CNT;
__IO uint32_t SEN_ATTACK_TYP;
__IO uint32_t SEN_VG_DETECT;
__IO uint32_t SEN_RNG_INI;
__IO uint32_t RESERVED3[(0x0104-0x00EC) >> 2];
__IO uint32_t SEN_EN[19];
__IO uint32_t SEN_EXTS_START;
__IO uint32_t SEN_LOCK;
__IO uint32_t SEN_ANA0;
__IO uint32_t SEN_ANA1;
__IO uint32_t SEN_ATTCLR;
FLAG_TypeDef SEN_FLAG;
__IO uint32_t SEN_DEBUG;
__I uint32_t RESERVED4[(0x200- 0x178) >> 2];
__IO uint32_t BPK_RAM[(0x600-0x200) >> 2];
} SEN_TypeDef;
typedef struct
{
__IO uint32_t RNG_CSR;
__IO uint32_t RNG_DATA[1];
__I uint32_t RES;
__IO uint32_t RNG_ANA;
__IO uint32_t RNG_PN;
__IO uint32_t RNG_INDEX;
} TRNG_TypeDef;
typedef struct
{
__IO uint32_t IC_CON;
__IO uint32_t IC_TAR;
__IO uint32_t IC_SAR;
__IO uint32_t IC_HS_MADDR;
__IO uint32_t IC_DATA_CMD;
__IO uint32_t IC_SS_SCL_HCNT;
__IO uint32_t IC_SS_SCL_LCNT;
__IO uint32_t IC_FS_SCL_HCNT;
__IO uint32_t IC_FS_SCL_LCNT;
__IO uint32_t IC_HS_SCL_HCNT;
__IO uint32_t IC_HS_SCL_LCNT;
__I uint32_t IC_INTR_STAT;
__IO uint32_t IC_INTR_MASK;
__I uint32_t IC_RAW_INTR_STAT;
__IO uint32_t IC_RX_TL;
__IO uint32_t IC_TX_TL;
__I uint32_t IC_CLR_INTR;
__I uint32_t IC_CLR_RX_UNDER;
__I uint32_t IC_CLR_RX_OVER;
__I uint32_t IC_CLR_TX_OVER;
__I uint32_t IC_CLR_RD_REQ;
__I uint32_t IC_CLR_TX_ABRT;
__I uint32_t IC_CLR_RX_DONE;
__I uint32_t IC_CLR_ACTIVITY;
__I uint32_t IC_CLR_STOP_DET;
__I uint32_t IC_CLR_START_DET;
__I uint32_t IC_CLR_GEN_CALL;
__IO uint32_t IC_ENABLE;
__I uint32_t IC_STATUS;
__I uint32_t IC_TXFLR;
__I uint32_t IC_RXFLR;
__IO uint32_t IC_SDA_HOLD;
__I uint32_t IC_TX_ABRT_SOURCE;
__IO uint32_t IC_SLV_DATA_NACK_ONLY;
__IO uint32_t IC_DMA_CR;
__IO uint32_t IC_DMA_TDLR;
__IO uint32_t IC_DMA_RDLR;
__IO uint32_t IC_SDA_SETUP;
__IO uint32_t IC_ACK_GENERAL_CALL;
__I uint32_t IC_ENABLE_STATUS;
__IO uint32_t IC_FS_SPKLEN;
__IO uint32_t IC_HS_SPKLEN;
} I2C_TypeDef;
typedef struct
{
__IO uint32_t KCU_CTRL0;
__IO uint32_t KCU_CTRL1;
__I uint32_t KCU_STATUS;
__I uint32_t KCU_EVENT;
__IO uint32_t KCU_RNG;
} KCU_TypeDef;
typedef struct
{
__IO uint32_t SAR_L;
__IO uint32_t SAR_H;
__IO uint32_t DAR_L;
__IO uint32_t DAR_H;
__IO uint32_t LLP_L;
__IO uint32_t LLP_H;
__IO uint32_t CTL_L;
__IO uint32_t CTL_H;
__IO uint32_t SSTAT_L;
__IO uint32_t SSTAT_H;
__IO uint32_t DSTAT_L;
__IO uint32_t DSTAT_H;
__IO uint32_t SSTATAR_L;
__IO uint32_t SSTATAR_H;
__IO uint32_t DSTATAR_L;
__IO uint32_t DSTATAR_H;
__IO uint32_t CFG_L;
__IO uint32_t CFG_H;
__IO uint32_t SGR_L;
__IO uint32_t SGR_H;
__IO uint32_t DSR_L;
__IO uint32_t DSR_H;
} DMA_TypeDef;
typedef struct
{
DMA_TypeDef DMA_Channel[8];
__I uint32_t RawTfr_L;
__I uint32_t RawTfr_H;
__I uint32_t RawBlock_L;
__I uint32_t RawBlock_H;
__I uint32_t RawSrcTran_L;
__I uint32_t RawSrcTran_H;
__I uint32_t RawDstTran_L;
__I uint32_t RawDstTran_H;
__I uint32_t RawErr_L;
__I uint32_t RawErr_H;
__I uint32_t StatusTfr_L;
__I uint32_t StatusTfr_H;
__I uint32_t StatusBlock_L;
__I uint32_t StatusBlock_H;
__I uint32_t StatusSrcTran_L;
__I uint32_t StatusSrcTran_H;
__I uint32_t StatusDstTran_L;
__I uint32_t StatusDstTran_H;
__I uint32_t StatusErr_L;
__I uint32_t StatusErr_H;
__IO uint32_t MaskTfr_L;
__IO uint32_t MaskTfr_H;
__IO uint32_t MaskBlock_L;
__IO uint32_t MaskBlock_H;
__IO uint32_t MaskSrcTran_L;
__IO uint32_t MaskSrcTran_H;
__IO uint32_t MaskDstTran_L;
__IO uint32_t MaskDstTran_H;
__IO uint32_t MaskErr_L;
__IO uint32_t MaskErr_H;
__O uint32_t ClearTfr_L;
__O uint32_t ClearTfr_H;
__O uint32_t ClearBlock_L;
__O uint32_t ClearBlock_H;
__O uint32_t ClearSrcTran_L;
__O uint32_t ClearSrcTran_H;
__O uint32_t ClearDstTran_L;
__O uint32_t ClearDstTran_H;
__O uint32_t ClearErr_L;
__O uint32_t ClearErr_H;
__I uint32_t StatusInt_L;
__I uint32_t StatusInt_H;
__IO uint32_t ReqSrcReg_L;
__IO uint32_t ReqSrcReg_H;
__IO uint32_t ReqDstReg_L;
__IO uint32_t ReqDstReg_H;
__IO uint32_t SglReqSrcReg_L;
__IO uint32_t SglReqSrcReg_H;
__IO uint32_t SglReqDstReg_L;
__IO uint32_t SglReqDstReg_H;
__IO uint32_t LstSrcReg_L;
__IO uint32_t LstSrcReg_H;
__IO uint32_t LstDstReg_L;
__IO uint32_t LstDstReg_H;
__IO uint32_t DmaCfgReg_L;
__IO uint32_t DmaCfgReg_H;
__IO uint32_t ChEnReg_L;
__IO uint32_t ChEnReg_H;
__I uint32_t DmaIdReg_L;
__I uint32_t DmaIdReg_H;
__IO uint32_t DmaTestReg_L;
__IO uint32_t DmaTestReg_H;
__IO uint32_t RESERVED2[4];
__I uint32_t DMA_COMP_PARAMS_6_L;
__I uint32_t DMA_COMP_PARAMS_6_H;
__I uint32_t DMA_COMP_PARAMS_5_L;
__I uint32_t DMA_COMP_PARAMS_5_H;
__I uint32_t DMA_COMP_PARAMS_4_L;
__I uint32_t DMA_COMP_PARAMS_4_H;
__I uint32_t DMA_COMP_PARAMS_3_L;
__I uint32_t DMA_COMP_PARAMS_3_H;
__I uint32_t DMA_COMP_PARAMS_2_L;
__I uint32_t DMA_COMP_PARAMS_2_H;
__I uint32_t DMA_COMP_PARAMS_1_L;
__I uint32_t DMA_COMP_PARAMS_1_H;
__I uint32_t DMA_Component_ID_Register_L;
__I uint32_t DMA_Component_ID_Register_H;
} DMA_MODULE_TypeDef;
typedef struct
{
__IO uint32_t lcdi_ctrl;
__IO uint32_t lcdi_cycle;
__IO uint32_t lcdi_status;
__IO uint32_t lcdi_data;
__IO uint32_t lcdi_fifolevel;
__IO uint32_t lcdi_fifothr;
} LCD_TypeDef;
typedef struct
{
__IO uint32_t SCI_DATA;
__IO uint32_t SCI_CR0;
__IO uint32_t SCI_CR1;
__IO uint32_t SCI_CR2;
__IO uint32_t SCI_IER;
__IO uint32_t SCI_RETRY;
__IO uint32_t SCI_TIDE;
__IO uint32_t SCI_TXCOUNT;
__IO uint32_t SCI_RXCOUNT;
__I uint32_t SCI_FR;
__IO uint32_t SCI_RXTIME;
__IO uint32_t SCI_ISTAT;
__IO uint32_t SCI_STABLE;
__IO uint32_t SCI_ATIME;
__IO uint32_t SCI_DTIME;
__IO uint32_t SCI_ATRSTIME;
__IO uint32_t SCI_ATRDTIME;
__IO uint32_t SCI_BLKTIME;
__IO uint32_t SCI_CHTIME;
__IO uint32_t SCI_CLKICC;
__IO uint32_t SCI_BAUD;
__IO uint32_t SCI_VALUE;
__IO uint32_t SCI_CHGUARD;
__IO uint32_t SCI_BLKGUARD;
__IO uint32_t SCI_SYNCCR;
__IO uint32_t SCI_SYNCDATA;
__IO uint32_t SCI_RAWSTAT;
__IO uint32_t SCI_IIR;
__I uint32_t SCI_RES1[4];
__I uint32_t SCI_RES2[32];
} SCI_TypeDef;
/**
* @brief DCMI&IMG COP
*/
typedef struct
{
__IO uint32_t CR; /*!< DCMI control register 1, Address offset: 0x00 */
__IO uint32_t SR; /*!< DCMI status register, Address offset: 0x04 */
__IO uint32_t RISR; /*!< DCMI raw interrupt status register, Address offset: 0x08 */
__IO uint32_t IER; /*!< DCMI interrupt enable register, Address offset: 0x0C */
__IO uint32_t MISR; /*!< DCMI masked interrupt status register, Address offset: 0x10 */
__IO uint32_t ICR; /*!< DCMI interrupt clear register, Address offset: 0x14 */
__IO uint32_t RESERVED1[2];
__IO uint32_t CWSTRTR; /*!< DCMI crop window start, Address offset: 0x20 */
__IO uint32_t CWSIZER; /*!< DCMI crop window size, Address offset: 0x24 */
__IO uint32_t DR; /*!< DCMI data register, Address offset: 0x28 */
} DCMI_TypeDef;
typedef struct
{
__IO uint32_t RESERVED[(0x2000-0x0000)/4];
__IO uint32_t CFG;
__IO uint32_t CS;
__IO uint32_t PROT;
__IO uint32_t ADDR;
__IO uint32_t PDATA;
__IO uint32_t RO;
__IO uint32_t ROL;
__IO uint32_t RSVD;
__IO uint32_t TIM;
__IO uint32_t TIM_EN;
} OTP_TypeDef;
typedef struct
{
__IO uint32_t RESERVED0[(0x0008-0x0000) >> 2];
__IO uint32_t SSC_CR3;
__O uint32_t RESERVED1[(0x0104-0x000C) >> 2];
__IO uint32_t SSC_SR;
__IO uint32_t SSC_SR_CLR;
__IO uint32_t SSC_ACK;
__O uint32_t RESERVED2[(0x0184-0x0110) >> 2];
__IO uint32_t DATARAM_SCR;
__O uint32_t RESERVED3[(0x01FC-0x0188) >> 2];
__IO uint32_t BPU_RWC;
__O uint32_t RESERVED4[(0x03EC-0x0200) >> 2];
__IO uint32_t MAIN_SEN_LOCK;
__IO uint32_t MAIN_SEN_EN;
} SSC_TypeDef;
typedef struct
{
__IO uint32_t TST_JTAG;
__IO uint32_t TST_ROM;
__IO uint32_t TST_FLASH;
} MH_SMCU_TST_TypeDef;
#if defined ( __CC_ARM )
#pragma no_anon_unions
#endif
/*@}*/ /* end of group <Device>_Peripherals */
/******************************************************************************/
/* Peripheral memory map */
/******************************************************************************/
/* ToDo: add here your device peripherals base addresses
following is an example for timer */
/** @addtogroup <Device>_MemoryMap <Device> Memory Mapping
@{
*/
/* Peripheral and SRAM base address */
#define AIR105_FLASH_BASE (0x01000000UL) /*!< (FLASH ) Base Address */
#define AIR105_SRAM_BASE (0x20000000UL) /*!< (SRAM ) Base Address */
#define AIR105_PERIPH_BASE (0x40000000UL) /*!< (Peripheral) Base Address */
#define AIR105_SRAM_SIZE (0xA0000)
#define AIR105_OTP_BASE (0x40008000UL)
#define AIR105_OTP_SIZE (1UL << 13)
/* Peripheral memory map */
#define AIR105_AHB_BASE (AIR105_PERIPH_BASE)
#define AIR105_APB0_BASE (AIR105_PERIPH_BASE + 0x10000)
#define AIR105_APB1_BASE (AIR105_PERIPH_BASE + 0x20000)
#define AIR105_APB2_BASE (AIR105_PERIPH_BASE + 0x30000)
#define AIR105_APB3_BASE (AIR105_PERIPH_BASE + 0x40000)
#define SSC_BASE (AIR105_AHB_BASE + 0x0000)
#define TST_BASE (AIR105_AHB_BASE + 0x03F4)
#define DMA_BASE (AIR105_AHB_BASE + 0x0800)
#define USB_BASE (AIR105_AHB_BASE + 0x0C00)
#define LCD_BASE (AIR105_AHB_BASE + 0x1000)
#define OTP_BASE (AIR105_AHB_BASE + 0x8000)
#define DCMI_BASE (AIR105_AHB_BASE + 0x60000)
#define CACHE_BASE (AIR105_AHB_BASE + 0x80000)
#define QRCODE_BASE (AIR105_AHB_BASE + 0x90000)
#define GPU_BASE (AIR105_AHB_BASE + 0xA1000)
#define QSPI_BASE (AIR105_AHB_BASE + 0xA2000)
#define HSPI_BASE (AIR105_AHB_BASE + 0xA3000)
#define SCI0_BASE (AIR105_APB0_BASE)
#define CRC_BASE (AIR105_APB0_BASE + 0x2000)
#define TIMM0_BASE (AIR105_APB0_BASE + 0x3000)
#define ADC_BASE (AIR105_APB0_BASE + 0x4000)
#define DAC_BASE (AIR105_APB0_BASE + 0x4100)
#define AWD_BASE (AIR105_APB0_BASE + 0x4200)
#define SCI2_BASE (AIR105_APB0_BASE + 0x5000)
#define UART0_BASE (AIR105_APB0_BASE + 0x6000)
#define UART1_BASE (AIR105_APB0_BASE + 0x7000)
#define SPIM1_BASE (AIR105_APB0_BASE + 0x8000)
#define SPIM2_BASE (AIR105_APB0_BASE + 0x9000)
#define SPIM0_BASE (AIR105_APB0_BASE + 0xA000)
#define SPIS0_BASE (AIR105_APB0_BASE + 0xB000)
#define WDG_BASE (AIR105_APB0_BASE + 0xC000)
#define GPIO_BASE (AIR105_APB0_BASE + 0xD000)
#define TRNG_BASE (AIR105_APB0_BASE + 0xE000)
#define SYSCTRL_BASE (AIR105_APB0_BASE + 0xF000)
#define MSR_BASE (AIR105_APB1_BASE)
#define BPU_BASE (AIR105_APB2_BASE)
#define UART2_BASE (AIR105_APB3_BASE + 0x4000)
#define UART3_BASE (AIR105_APB3_BASE + 0x5000)
#define KEYBOARD_BASE (AIR105_APB3_BASE + 0x8000)
#define I2C0_BASE (AIR105_APB3_BASE + 0x9000)
#define HSPIM_BASE (AIR105_AHB_BASE + 0xA3020)
/*@}*/ /* end of group <Device>_MemoryMap */
/******************************************************************************/
/* Peripheral declaration */
/******************************************************************************/
/* ToDo: add here your device peripherals pointer definitions
following is an example for timer */
/** @addtogroup <Device>_PeripheralDecl <Device> Peripheral Declaration
@{
*/
#define SYSCTRL ((SYSCTRL_TypeDef *) SYSCTRL_BASE)
#define UART0 ((UART_TypeDef *) UART0_BASE)
#define UART1 ((UART_TypeDef *) UART1_BASE)
#define UART2 ((UART_TypeDef *) UART2_BASE)
#define UART3 ((UART_TypeDef *) UART3_BASE)
#define SPIM0 ((SPI_TypeDef *) SPIM0_BASE)
#define SPIM1 ((SPI_TypeDef *) SPIM1_BASE)
#define SPIM2 ((SPI_TypeDef *) SPIM2_BASE)
#define SPIS0 ((SPI_TypeDef *) SPIS0_BASE)
#define QSPI ((QSPI_TypeDef *) QSPI_BASE)
#define HSPIM ((HSPIM_TypeDef *) HSPIM_BASE)
#define CACHE ((CACHE_TypeDef *)CACHE_BASE)
#define QRCODE ((QRCODE_TypeDef *)QRCODE_BASE)
#define GPU ((GPU_TypeDef *)GPU_BASE)
#define SCI0 ((SCI_TypeDef *) SCI0_BASE)
#define SCI2 ((SCI_TypeDef *) SCI2_BASE)
#define TIMM0 ((TIM_Module_TypeDef *)TIMM0_BASE)
#define ADC0 ((ADC_TypeDef *)ADC_BASE)
#define DAC ((DAC_TypeDef *)DAC_BASE)
#define AWD ((AWD_TypeDef *)AWD_BASE)
#define TRNG ((TRNG_TypeDef *)TRNG_BASE)
#define LCD ((LCD_TypeDef *)LCD_BASE)
#define KCU ((KCU_TypeDef *)KEYBOARD_BASE)
#define CRC ((CRC_TypeDef *)CRC_BASE)
#define OTP ((OTP_TypeDef *)OTP_BASE)
#define I2C0 ((I2C_TypeDef *)I2C0_BASE)
#define DMA ((DMA_MODULE_TypeDef *)DMA_BASE)
#define DMA_Channel_0 ((DMA_TypeDef *)DMA_BASE)
#define DMA_Channel_1 ((DMA_TypeDef *)(DMA_BASE + 0x58))
#define DMA_Channel_2 ((DMA_TypeDef *)(DMA_BASE + 0x58*2))
#define DMA_Channel_3 ((DMA_TypeDef *)(DMA_BASE + 0x58*3))
#define DMA_Channel_4 ((DMA_TypeDef *)(DMA_BASE + 0x58*4))
#define DMA_Channel_5 ((DMA_TypeDef *)(DMA_BASE + 0x58*5))
#define DMA_Channel_6 ((DMA_TypeDef *)(DMA_BASE + 0x58*6))
#define DMA_Channel_7 ((DMA_TypeDef *)(DMA_BASE + 0x58*7))
#define GPIO ((GPIO_MODULE_TypeDef *)GPIO_BASE)
#define GPIOA ((GPIO_TypeDef *)GPIO_BASE)
#define GPIOB ((GPIO_TypeDef *)(GPIO_BASE + 0x0010))
#define GPIOC ((GPIO_TypeDef *)(GPIO_BASE + 0x0020))
#define GPIOD ((GPIO_TypeDef *)(GPIO_BASE + 0x0030))
#define GPIOE ((GPIO_TypeDef *)(GPIO_BASE + 0x0040))
#define GPIOF ((GPIO_TypeDef *)(GPIO_BASE + 0x0050))
#define GPIO_GROUP ((GPIO_TypeDef *)GPIO_BASE)
#define GPIO_ALT_GROUP ((__IO uint32_t *)(GPIO_BASE + 0x180))
#define GPIO_WKEN_TYPE_EN ((__IO uint32_t *)(GPIO_BASE + 0x220))
#define GPIO_WKEN_P0_EN ((__IO uint32_t *)(GPIO_BASE + 0x224))
#define GPIO_WKEN_P1_EN ((__IO uint32_t *)(GPIO_BASE + 0x228))
#define GPIO_WKEN_P2_EN ((__IO uint32_t *)(GPIO_BASE + 0x22C))
#define WDT ((WDT_TypeDef *)WDG_BASE)
#define SSC ((SSC_TypeDef *)SSC_BASE)
#define TST ((MH_SMCU_TST_TypeDef *)TST_BASE)
#define DCMI ((DCMI_TypeDef *)DCMI_BASE)
#define BPU ((BPU_TypeDef *)BPU_BASE)
#define BPK ((BPK_TypeDef *)BPU_BASE)
#define RTC ((RTC_TypeDef *)(BPU_BASE + 0xA0))
#define SENSOR ((SEN_TypeDef *)(BPU_BASE + 0xBC))
#define SEN_FLAG ((FLAG_TypeDef*)(BPU_BASE + 0x164))
/** @addtogroup Exported_constants
* @{
*/
/** @addtogroup Peripheral_Registers_Bits_Definition
* @{
*/
/******************************************************************************/
/* Peripheral Registers_Bits_Definition */
/******************************************************************************/
/******************************************************************************/
/* */
/* System Control Unit */
/* */
/******************************************************************************/
/******************* Bit definition for FREQ_SEL register *******************/
#define SYSCTRL_FREQ_SEL_XTAL_Pos (16)
#define SYSCTRL_FREQ_SEL_XTAL_Mask (0x1F << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_108Mhz (0x08 << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_120Mhz (0x09 << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_132Mhz (0x0a << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_144Mhz (0x0b << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_156Mhz (0x0c << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_168Mhz (0x0d << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_180Mhz (0x0e << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_192Mhz (0x0f << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_XTAL_204Mhz (0x10 << SYSCTRL_FREQ_SEL_XTAL_Pos)
#define SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Pos (12)
#define SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Mask (0x01 << SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Pos)
#define SYSCTRL_FREQ_SEL_CLOCK_SOURCE_EXT (0x00 << SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Pos)
#define SYSCTRL_FREQ_SEL_CLOCK_SOURCE_INC (0x01 << SYSCTRL_FREQ_SEL_CLOCK_SOURCE_Pos)
#define SYSCTRL_FREQ_SEL_PLL_DIV_Pos (8)
#define SYSCTRL_FREQ_SEL_PLL_DIV_Mask (0x03 << SYSCTRL_FREQ_SEL_PLL_DIV_Pos)
#define SYSCTRL_FREQ_SEL_PLL_DIV_1_0 (0x00 << SYSCTRL_FREQ_SEL_PLL_DIV_Pos)
#define SYSCTRL_FREQ_SEL_PLL_DIV_1_2 (0x01 << SYSCTRL_FREQ_SEL_PLL_DIV_Pos)
#define SYSCTRL_FREQ_SEL_PLL_DIV_1_4 (0x02 << SYSCTRL_FREQ_SEL_PLL_DIV_Pos)
#define SYSCTRL_FREQ_SEL_HCLK_DIV_Pos (4)
#define SYSCTRL_FREQ_SEL_HCLK_DIV_Mask (0x01 << SYSCTRL_FREQ_SEL_HCLK_DIV_Pos)
#define SYSCTRL_FREQ_SEL_HCLK_DIV_1_0 (0x00 << SYSCTRL_FREQ_SEL_HCLK_DIV_Pos)
#define SYSCTRL_FREQ_SEL_HCLK_DIV_1_2 (0x01 << SYSCTRL_FREQ_SEL_HCLK_DIV_Pos)
#define SYSCTRL_FREQ_SEL_PCLK_DIV_Pos (0)
#define SYSCTRL_FREQ_SEL_PCLK_DIV_Mask (0x01 << SYSCTRL_FREQ_SEL_PCLK_DIV_Pos)
#define SYSCTRL_FREQ_SEL_PCLK_DIV_1_2 (0x00 << SYSCTRL_FREQ_SEL_PCLK_DIV_Pos)
#define SYSCTRL_FREQ_SEL_PCLK_DIV_1_4 (0x01 << SYSCTRL_FREQ_SEL_PCLK_DIV_Pos)
/******************* Bit definition for CG_CTRL2 register *******************/
#define SYSCTRL_AHBPeriph_DMA ((uint32_t)0x20000000)
#define SYSCTRL_AHBPeriph_USB ((uint32_t)0x10000000)
#define SYSCTRL_AHBPeriph_QR ((uint32_t)0x00000020)
#define SYSCTRL_AHBPeriph_OTP ((uint32_t)0x00000008)
#define SYSCTRL_AHBPeriph_GPU ((uint32_t)0x00000004)
#define SYSCTRL_AHBPeriph_LCD ((uint32_t)0x00000002)
#define SYSCTRL_AHBPeriph_CRYPT ((uint32_t)0x00000001)
#define SYSCTRL_AHBPeriph_ALL ((uint32_t)0x3000002F)
#define IS_SYSCTRL_AHB_PERIPH(PERIPH) ((((PERIPH) & ~SYSCTRL_AHBPeriph_ALL) == 0x00) && ((PERIPH) != 0x00))
/******************* Bit definition for CG_CTRL1 register *******************/
#define SYSCTRL_APBPeriph_TRNG ((uint32_t)0x80000000)
#define SYSCTRL_APBPeriph_ADC ((uint32_t)0x40000000)
#define SYSCTRL_APBPeriph_CRC ((uint32_t)0x20000000)
#define SYSCTRL_APBPeriph_KBD ((uint32_t)0x08000000)
#define SYSCTRL_APBPeriph_BPU ((uint32_t)0x04000000)
#define SYSCTRL_APBPeriph_DCMIS ((uint32_t)0x00800000)
#define SYSCTRL_APBPeriph_TIMM0 ((uint32_t)0x00200000)
#define SYSCTRL_APBPeriph_GPIO ((uint32_t)0x00100000)
#define SYSCTRL_APBPeriph_I2C0 ((uint32_t)0x00040000)
#define SYSCTRL_APBPeriph_SCI2 ((uint32_t)0x00010000)
#define SYSCTRL_APBPeriph_SCI0 ((uint32_t)0x00004000)
#define SYSCTRL_APBPeriph_HSPI ((uint32_t)0x00002000)
#define SYSCTRL_APBPeriph_SPI2 ((uint32_t)0x00000400)
#define SYSCTRL_APBPeriph_SPI1 ((uint32_t)0x00000200)
#define SYSCTRL_APBPeriph_SPI0 ((uint32_t)0x00000100)
#define SYSCTRL_APBPeriph_UART3 ((uint32_t)0x00000008)
#define SYSCTRL_APBPeriph_UART2 ((uint32_t)0x00000004)
#define SYSCTRL_APBPeriph_UART1 ((uint32_t)0x00000002)
#define SYSCTRL_APBPeriph_UART0 ((uint32_t)0x00000001)
#define SYSCTRL_APBPeriph_ALL ((uint32_t)0xECB5670F)
#define IS_SYSCTRL_APB_PERIPH(PERIPH) ((((PERIPH) & ~SYSCTRL_APBPeriph_ALL) == 0x00) && ((PERIPH) != 0x00))
/******************* Bit definition for SOFT_RST2 register *******************/
#define SYSCTRL_GLB_RESET ((uint32_t)0x80000000)
#define SYSCTRL_CM3_RESET ((uint32_t)0x40000000)
#define SYSCTRL_DMA_RESET ((uint32_t)0x20000000)
#define SYSCTRL_USB_RESET ((uint32_t)0x10000000)
#define SYSCTRL_QR_RESET ((uint32_t)0x00000020)
#define SYSCTRL_OTP_RESET ((uint32_t)0x00000008)
#define SYSCTRL_GPU_RESET ((uint32_t)0x00000004)
#define SYSCTRL_LCD_RESET ((uint32_t)0x00000002)
#define SYSCTRL_CRYPT_RESET ((uint32_t)0x00000001)
#define SYSCTRL_AHBPeriph_RESET_ALL ((uint32_t)0xF000002F)
#define IS_SYSCTRL_AHB_PERIPH_RESET(PERIPH) ((((PERIPH) & ~SYSCTRL_AHBPeriph_RESET_ALL) == 0x00) && ((PERIPH) != 0x00))
/******************* Bit definition for PHER_CTRL register *******************/
#define SYSCTRL_PHER_CTRL_SPI0_SLV_EN ((uint32_t)0x01000000) /* 0:MASTER 1:SLAVE */
#define SYSCTRL_PHER_CTRL_SCI2_VCCEN_INV ((uint32_t)0x00400000)
#define SYSCTRL_PHER_CTRL_SCI0_VCCEN_INV ((uint32_t)0x00100000)
#define SYSCTRL_PHER_CTRL_SCI2_CDET_INV ((uint32_t)0x00040000)
#define SYSCTRL_PHER_CTRL_SCI0_CDET_INV ((uint32_t)0x00010000)
/******************* Bit definition for DMA_CHAN REGISTER ********************/
#define SYSCTRL_PHER_CTRL_DMA_CH0_IF_Pos (0)
#define SYSCTRL_PHER_CTRL_DMA_CH0_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH0_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH1_IF_Pos (8)
#define SYSCTRL_PHER_CTRL_DMA_CH1_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH1_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH2_IF_Pos (16)
#define SYSCTRL_PHER_CTRL_DMA_CH2_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH2_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH3_IF_Pos (24)
#define SYSCTRL_PHER_CTRL_DMA_CH3_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH3_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH4_IF_Pos (0)
#define SYSCTRL_PHER_CTRL_DMA_CH4_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH4_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH5_IF_Pos (8)
#define SYSCTRL_PHER_CTRL_DMA_CH5_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH5_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH6_IF_Pos (16)
#define SYSCTRL_PHER_CTRL_DMA_CH6_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH6_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CH7_IF_Pos (24)
#define SYSCTRL_PHER_CTRL_DMA_CH7_IF_Mask (0x3FU<<SYSCTRL_PHER_CTRL_DMA_CH7_IF_Pos)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_DCMI_TX (0x00)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_LCD (0x01)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART0_TX (0x02)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART0_RX (0x03)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART1_TX (0x04)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART1_RX (0x05)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_DAC (0x06)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_SPI0_TX (0x0A)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_SPI0_RX (0x0B)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_SPI1_TX (0x0C)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_SPI1_RX (0x0D)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_SPI2_TX (0x0E)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_SPI2_RX (0x0F)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART2_TX (0x14)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART2_RX (0x15)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART3_TX (0x16)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_UART3_RX (0x17)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_I2C_TX (0x18)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_I2C_RX (0x19)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_QSPI_TX (0x1A)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_HSPI_RX (0x20)
#define SYSCTRL_PHER_CTRL_DMA_CHx_IF_HSPI_TX (0x21)
/******************************************************************************/
/* */
/* Universal Asynchronous Receiver Transmitter */
/* */
/******************************************************************************/
/******************* Bit definition for UART_RBR register *******************/
#define UART_RBR_RBR ((uint32_t)0x01FF) /*!< Data value */
/******************* Bit definition for UART_THR register *******************/
#define UART_THR_THR ((uint32_t)0x01FF) /*!< Data value */
/******************* Bit definition for UART_DLH register *******************/
#define UART_DLH_DLH ((uint32_t)0x0FF)
/******************* Bit definition for UART_DLL register *******************/
#define UART_DLL_DLL ((uint32_t)0x0FF)
/******************* Bit definition for UART_IER register *******************/
#define UART_IER_ERBFI ((uint32_t)0x0001)
#define UART_IER_ETBEI ((uint32_t)0x0002)
#define UART_IER_ELSI ((uint32_t)0x0004)
#define UART_IER_EDSSI ((uint32_t)0x0008)
#define UART_IER_PTIME ((uint32_t)0x0080)
/******************* Bit definition for UART_IIR register *******************/
#define UART_IIR_IID ((uint32_t)0x0007)
#define UART_IIR_IID_0 ((uint32_t)0x0001)
#define UART_IIR_IID_1 ((uint32_t)0x0002)
#define UART_IIR_IID_2 ((uint32_t)0x0004)
#define UART_IIR_IID_3 ((uint32_t)0x0008)
#define UART_IIR_FIFOSE ((uint32_t)0x0060)
#define UART_IIR_FIFOSE_0 ((uint32_t)0x0020)
#define UART_IIR_FIFOSE_1 ((uint32_t)0x0040)
/******************* Bit definition for UART_FCR register *******************/
#define UART_FCR_FIFOE ((uint32_t)0x0001)
#define UART_FCR_RFIFOR ((uint32_t)0x0002)
#define UART_FCR_XFIFOR ((uint32_t)0x0004)
#define UART_FCR_DMAM ((uint32_t)0x0008)
#define UART_FCR_TET ((uint32_t)0x0030)
#define UART_FCR_TET_0 ((uint32_t)0x0010)
#define UART_FCR_TET_1 ((uint32_t)0x0020)
#define UART_FCR_RCVER ((uint32_t)0x00C0)
#define UART_FCR_RCVER_0 ((uint32_t)0x0040)
#define UART_FCR_RCVER_1 ((uint32_t)0x0080)
/******************* Bit definition for UART_LCR register *******************/
#define UART_LCR_DLS ((uint32_t)0x0003)
#define UART_LCR_DLS_0 ((uint32_t)0x0001)
#define UART_LCR_DLS_1 ((uint32_t)0x0002)
#define UART_LCR_STOP ((uint32_t)0x0004)
#define UART_LCR_PEN ((uint32_t)0x0008)
#define UART_LCR_EPS ((uint32_t)0x0010)
#define UART_LCR_SP ((uint32_t)0x0020)
#define UART_LCR_BC ((uint32_t)0x0040)
#define UART_LCR_DLAB ((uint32_t)0x0080)
/******************* Bit definition for UART_MCR register *******************/
#define UART_MCR_DTR ((uint32_t)0x0001)
#define UART_MCR_RTS ((uint32_t)0x0002)
#define UART_MCR_OUT1 ((uint32_t)0x0004)
#define UART_MCR_OUT2 ((uint32_t)0x0008)
#define UART_MCR_LB ((uint32_t)0x0010)
#define UART_MCR_AFCE ((uint32_t)0x0020)
#define UART_MCR_SIRE ((uint32_t)0x0040)
/******************* Bit definition for UART_LSR register *******************/
#define UART_LSR_DR ((uint32_t)0x0001)
#define UART_LSR_OE ((uint32_t)0x0002)
#define UART_LSR_PE ((uint32_t)0x0004)
#define UART_LSR_FE ((uint32_t)0x0008)
#define UART_LSR_BI ((uint32_t)0x0010)
#define UART_LSR_THRE ((uint32_t)0x0020)
#define UART_LSR_TEMT ((uint32_t)0x0040)
#define UART_LSR_PFE ((uint32_t)0x0080)
/******************* Bit definition for UART_MSR register *******************/
#define UART_MSR_DCTS ((uint32_t)0x0001)
#define UART_MSR_DDSR ((uint32_t)0x0002)
#define UART_MSR_TERI ((uint32_t)0x0004)
#define UART_MSR_DDCD ((uint32_t)0x0008)
#define UART_MSR_CTS ((uint32_t)0x0010)
#define UART_MSR_DSR ((uint32_t)0x0020)
#define UART_MSR_RI ((uint32_t)0x0040)
#define UART_MSR_DCD ((uint32_t)0x0080)
/******************* Bit definition for UART_SRBR register *******************/
#define UART_SRBR_SRBR ((uint32_t)0x01FF) /*!< Data value */
/******************* Bit definition for UART_STHR register *******************/
#define UART_STHR_STHR ((uint32_t)0x01FF) /*!< Data value */
/******************* Bit definition for UART_FAR register *******************/
#define UART_FAR_FAR ((uint32_t)0x0001)
/******************* Bit definition for UART_TFR register *******************/
#define UART_TFR_TFR ((uint32_t)0x00FF)
/******************* Bit definition for UART_RFW register *******************/
#define UART_RFW_RFWD ((uint32_t)0x00FF)
#define UART_RFW_RFPE ((uint32_t)0x0100)
#define UART_RFW_RFFE ((uint32_t)0x0200)
/******************* Bit definition for UART_USR register *******************/
#define UART_USR_BUSY ((uint32_t)0x0001)
#define UART_USR_TFNF ((uint32_t)0x0002)
#define UART_USR_TFE ((uint32_t)0x0004)
#define UART_USR_RFNE ((uint32_t)0x0008)
#define UART_USR_RFF ((uint32_t)0x0010)
/******************* Bit definition for UART_TFL register *******************/
#define UART_TFL_TFL ((uint32_t)0x000F)
/******************* Bit definition for UART_RFL register *******************/
#define UART_RFL_RFL ((uint32_t)0x000F)
/******************* Bit definition for UART_SRR register *******************/
#define UART_SRR_UR ((uint32_t)0x0001)
#define UART_SRR_RFR ((uint32_t)0x0002)
#define UART_SRR_XFR ((uint32_t)0x0004)
/******************* Bit definition for UART_SRR register *******************/
#define UART_SRR_UR ((uint32_t)0x0001)
/******************* Bit definition for UART_SRTS register *******************/
#define UART_SRTS_SRTS ((uint32_t)0x0001)
/******************* Bit definition for UART_SBCR register *******************/
#define UART_SBCR_SBCR ((uint32_t)0x0001)
/******************* Bit definition for UART_SDMAM register *******************/
#define UART_SDMAM_SDMAM ((uint32_t)0x0001)
/******************* Bit definition for UART_SFE register *******************/
#define UART_SFE_SFE ((uint32_t)0x0001)
/******************* Bit definition for UART_SRT register *******************/
#define UART_SRT_SRT ((uint32_t)0x0003)
#define UART_SRT_SRT_0 ((uint32_t)0x0001)
#define UART_SRT_SRT_1 ((uint32_t)0x0002)
/******************* Bit definition for UART_STET register *******************/
#define UART_STET_STET ((uint32_t)0x0003)
#define UART_STET_STET_0 ((uint32_t)0x0001)
#define UART_STET_STET_1 ((uint32_t)0x0002)
/******************* Bit definition for UART_HTX register *******************/
#define UART_HTX_HTX ((uint32_t)0x0001)
/******************* Bit definition for UART_DMASA register *******************/
#define UART_DMASA_DMASA ((uint32_t)0x0001)
/******************************************************************************/
/* */
/* General Purpose and Alternate Function I/O */
/* */
/******************************************************************************/
/*!<****************** Bit definition for GPIO_IODR register *******************/
#define DEEP_SLEEP_WKUP_EN_SENSOR (BIT14)
#define DEEP_SLEEP_WKUP_EN_MSR (BIT13)
#define DEEP_SLEEP_WKUP_EN_RTC (BIT12)
#define DEEP_SLEEP_WKUP_EN_KBD (BIT11)
#define DEEP_SLEEP_WKUP_EN_GPIO (BIT0)
/******************************************************************************/
/* */
/* Serial Peripheral Interface */
/* */
/******************************************************************************/
/***************** Bit definition for SPI_CTRLR0 register *******************/
#define SPI_CTRLR0_DFS ((uint32_t)0x000F)
#define SPI_CTRLR0_DFS_0 ((uint32_t)0x0001)
#define SPI_CTRLR0_DFS_1 ((uint32_t)0x0002)
#define SPI_CTRLR0_DFS_2 ((uint32_t)0x0004)
#define SPI_CTRLR0_DFS_3 ((uint32_t)0x0008)
#define SPI_CTRLR0_FRF ((uint32_t)0x0030)
#define SPI_CTRLR0_FRF_0 ((uint32_t)0x0010)
#define SPI_CTRLR0_FRF_1 ((uint32_t)0x0020)
#define SPI_CTRLR0_SCPH ((uint32_t)0x0040)
#define SPI_CTRLR0_SCPOL ((uint32_t)0x0080)
#define SPI_CTRLR0_TMOD ((uint32_t)0x0300)
#define SPI_CTRLR0_TMOD_0 ((uint32_t)0x0100)
#define SPI_CTRLR0_TMOD_1 ((uint32_t)0x0200)
#define SPI_CTRLR0_SLV_OE ((uint32_t)0x0400)
#define SPI_CTRLR0_SRL ((uint32_t)0x0800)
#define SPI_CTRLR0_CFS ((uint32_t)0xF000)
/***************** Bit definition for SPI_CTRLR1 register *******************/
#define SPI_CTRLR0_NDF ((uint32_t)0xFFFF)
/***************** Bit definition for SPI_SSIENR register *******************/
#define SPI_SSIENR_SSIENR ((uint32_t)0x0001)
/***************** Bit definition for SPI_MWCR register *********************/
#define SPI_MWCR_MWMOD ((uint32_t)0x0001)
#define SPI_MWCR_MDD ((uint32_t)0x0002)
#define SPI_MWCR_MHS ((uint32_t)0x0004)
/***************** Bit definition for SPI_SER register **********************/
#define SPI_SER_SER ((uint32_t)0x000F)
#define SPI_SER_0 ((uint32_t)0x0001)
#define SPI_SER_1 ((uint32_t)0x0002)
#define SPI_SER_2 ((uint32_t)0x0004)
#define SPI_SER_3 ((uint32_t)0x0008)
/***************** Bit definition for SPI_BAUDR register ********************/
#define SPI_BAUDR_BAUDR ((uint32_t)0xFFFF)
/***************** Bit definition for SPI_TXFTLR register *******************/
#define SPI_TXFTLR_TFT ((uint32_t)0x000F)
/***************** Bit definition for SPI_RXFTLR register *******************/
#define SPI_RXFTLR_RFT ((uint32_t)0x000F)
/***************** Bit definition for SPI_TXFLR register ********************/
#define SPI_TXFLR_TXTFL ((uint32_t)0x001F)
/***************** Bit definition for SPI_RXFLR register ********************/
#define SPI_RXFLR_RXTFL ((uint32_t)0x001F)
/***************** Bit definition for SPI_SR register ***********************/
#define SPI_SR_BUSY ((uint32_t)0x0001)
#define SPI_SR_TFNF ((uint32_t)0x0002)
#define SPI_SR_TFE ((uint32_t)0x0004)
#define SPI_SR_RFNE ((uint32_t)0x0008)
#define SPI_SR_RFF ((uint32_t)0x0010)
#define SPI_SR_TXE ((uint32_t)0x0020)
#define SPI_SR_DCOL ((uint32_t)0x0040)
/***************** Bit definition for SPI_IMR register **********************/
#define SPI_IMR_TXEIM ((uint32_t)0x0001)
#define SPI_IMR_TXOIM ((uint32_t)0x0002)
#define SPI_IMR_RXUIM ((uint32_t)0x0004)
#define SPI_IMR_RXOIM ((uint32_t)0x0008)
#define SPI_IMR_RXFIM ((uint32_t)0x0010)
#define SPI_IMR_MSTIM ((uint32_t)0x0020)
/***************** Bit definition for SPI_ISR register **********************/
#define SPI_ISR_TXEIS ((uint32_t)0x0001)
#define SPI_ISR_TXOIS ((uint32_t)0x0002)
#define SPI_ISR_RXUIS ((uint32_t)0x0004)
#define SPI_ISR_RXOIS ((uint32_t)0x0008)
#define SPI_ISR_RXFIS ((uint32_t)0x0010)
#define SPI_ISR_MSTIS ((uint32_t)0x0020)
/***************** Bit definition for SPI_RISR register *********************/
#define SPI_RISR_TXEIR ((uint32_t)0x0001)
#define SPI_RISR_TXOIR ((uint32_t)0x0002)
#define SPI_RISR_RXUIR ((uint32_t)0x0004)
#define SPI_RISR_RXOIR ((uint32_t)0x0008)
#define SPI_RISR_RXFIR ((uint32_t)0x0010)
#define SPI_RISR_MSTIR ((uint32_t)0x0020)
/***************** Bit definition for SPI_TXOICR register *******************/
#define SPI_TXOICR_TXOICR ((uint32_t)0x0001)
/***************** Bit definition for SPI_RXOICR register *******************/
#define SPI_RXOICR_RXOICR ((uint32_t)0x0001)
/***************** Bit definition for SPI_RXUICR register *******************/
#define SPI_RXUICR_RXUICR ((uint32_t)0x0001)
/***************** Bit definition for SPI_MSTICR register *******************/
#define SPI_MSTICR_MSTICR ((uint32_t)0x0001)
/***************** Bit definition for SPI_DMACR register ********************/
#define SPI_DMACR_RDMAE ((uint32_t)0x0001)
#define SPI_DMACR_TDMAE ((uint32_t)0x0002)
/***************** Bit definition for SPI_DMATDLR register ******************/
#define SPI_DMATDLR_DMATDLR ((uint32_t)0x000F)
/***************** Bit definition for SPI_DMARDLR register ******************/
#define SPI_DMATDLR_DMARDLR ((uint32_t)0x000F)
/***************** Bit definition for SPI_DMARDLR register ******************/
#define SPI_DMATDLR_DMARDLR ((uint32_t)0x000F)
/***************** Bit definition for SPI_DR register ***********************/
#define SPI_DR_DR ((uint32_t)0xFFFF)
/************** Bit definition for SPI_RX_SAMPLE_DLY register ***************/
#define SPI_RX_SAMPLE_DLY ((uint32_t)0xFFFF)
/******************************************************************************/
/* */
/* Inter-integrated Circuit Interface */
/* */
/******************************************************************************/
/******************* Bit definition for IC_CON register *********************/
#define I2C_IC_CON_MASTER_MODE ((uint32_t)0x0001)
#define I2C_IC_CON_SPEED ((uint32_t)0x0006)
#define I2C_IC_CON_SPEED_0 ((uint32_t)0x0002)
#define I2C_IC_CON_SPEED_1 ((uint32_t)0x0004)
#define I2C_IC_CON_10BITADDR_SLAVE ((uint32_t)0x0008)
#define I2C_IC_CON_10BITADDR_MASTER ((uint32_t)0x0010)
#define I2C_IC_CON_RESTART_EN ((uint32_t)0x0020)
#define I2C_IC_CON_SLAVE_DISABLE ((uint32_t)0x0040)
/******************* Bit definition for IC_TAR register *********************/
#define I2C_IC_TAR_TAR ((uint32_t)0x03FF)
#define I2C_IC_TAR_GC_OR_START ((uint32_t)0x0400)
#define I2C_IC_TAR_SPECIAL ((uint32_t)0x0800)
#define I2C_IC_TAR_10BITADDR_MASTER ((uint32_t)0x1000)
/******************* Bit definition for IC_SAR register *********************/
#define I2C_IC_SAR_SAR ((uint32_t)0x03FF)
/******************* Bit definition for IC_HS_MADDR register ****************/
#define I2C_IC_HS_MADDR_MAR ((uint32_t)0x0007)
#define I2C_IC_HS_MADDR_MAR_0 ((uint32_t)0x0001)
#define I2C_IC_HS_MADDR_MAR_1 ((uint32_t)0x0002)
#define I2C_IC_HS_MADDR_MAR_2 ((uint32_t)0x0004)
/******************* Bit definition for IC_DATA_CMD register ****************/
#define I2C_IC_DATA_CMD_DAT ((uint32_t)0x00FF)
#define I2C_IC_DATA_CMD_CMD ((uint32_t)0x0100)
#define I2C_IC_DATA_CMD_STOP ((uint32_t)0x0200)
#define I2C_IC_DATA_CMD_RESTART ((uint32_t)0x0400)
/******************* Bit definition for IC_SS_SCL_HCNT register *************/
#define I2C_IC_SS_SCL_HCNT_HCNT ((uint32_t)0xFFFF)
/******************* Bit definition for IC_SS_SCL_LCNT register *************/
#define I2C_IC_SS_SCL_LCNT_LCNT ((uint32_t)0xFFFF)
/******************* Bit definition for IC_FS_SCL_HCNT register *************/
#define I2C_IC_FS_SCL_HCNT_HCNT ((uint32_t)0xFFFF)
/******************* Bit definition for IC_FS_SCL_LCNT register *************/
#define I2C_IC_FS_SCL_LCNT_LCNT ((uint32_t)0xFFFF)
/******************* Bit definition for IC_HS_SCL_HCNT register *************/
#define I2C_IC_HS_SCL_HCNT_HCNT ((uint32_t)0xFFFF)
/******************* Bit definition for IC_HS_SCL_LCNT register *************/
#define I2C_IC_HS_SCL_LCNT_LCNT ((uint32_t)0xFFFF)
/******************* Bit definition for IC_INTR_STAT register ***************/
#define I2C_IC_INTR_STAT_R_RX_UNDER ((uint32_t)0x0001)
#define I2C_IC_INTR_STAT_R_RX_OVER ((uint32_t)0x0002)
#define I2C_IC_INTR_STAT_R_RX_FULL ((uint32_t)0x0004)
#define I2C_IC_INTR_STAT_R_TX_OVER ((uint32_t)0x0008)
#define I2C_IC_INTR_STAT_R_TX_EMPTY ((uint32_t)0x0010)
#define I2C_IC_INTR_STAT_R_RD_REQ ((uint32_t)0x0020)
#define I2C_IC_INTR_STAT_R_TX_ABRT ((uint32_t)0x0040)
#define I2C_IC_INTR_STAT_R_RX_DONE ((uint32_t)0x0080)
#define I2C_IC_INTR_STAT_R_ACTIVITY ((uint32_t)0x0100)
#define I2C_IC_INTR_STAT_R_STOP_DET ((uint32_t)0x0200)
#define I2C_IC_INTR_STAT_R_START_DET ((uint32_t)0x0400)
#define I2C_IC_INTR_STAT_R_GEN_CALL ((uint32_t)0x0800)
/******************* Bit definition for IC_INTR_MASK register ***************/
#define I2C_IC_INTR_MASK_M_RX_UNDER ((uint32_t)0x0001)
#define I2C_IC_INTR_MASK_M_RX_OVER ((uint32_t)0x0002)
#define I2C_IC_INTR_MASK_M_RX_FULL ((uint32_t)0x0004)
#define I2C_IC_INTR_MASK_M_TX_OVER ((uint32_t)0x0008)
#define I2C_IC_INTR_MASK_M_TX_EMPTY ((uint32_t)0x0010)
#define I2C_IC_INTR_MASK_M_RD_REQ ((uint32_t)0x0020)
#define I2C_IC_INTR_MASK_M_TX_ABRT ((uint32_t)0x0040)
#define I2C_IC_INTR_MASK_M_RX_DONE ((uint32_t)0x0080)
#define I2C_IC_INTR_MASK_M_ACTIVITY ((uint32_t)0x0100)
#define I2C_IC_INTR_MASK_M_STOP_DET ((uint32_t)0x0200)
#define I2C_IC_INTR_MASK_M_START_DET ((uint32_t)0x0400)
#define I2C_IC_INTR_MASK_M_GEN_CALL ((uint32_t)0x0800)
/******************* Bit definition for IC_RAW_INTR_STAT register ***********/
#define I2C_IC_RAW_INTR_STAT_RX_UNDER ((uint32_t)0x0001)
#define I2C_IC_RAW_INTR_STAT_RX_OVER ((uint32_t)0x0002)
#define I2C_IC_RAW_INTR_STAT_RX_FULL ((uint32_t)0x0004)
#define I2C_IC_RAW_INTR_STAT_TX_OVER ((uint32_t)0x0008)
#define I2C_IC_RAW_INTR_STAT_TX_EMPTY ((uint32_t)0x0010)
#define I2C_IC_RAW_INTR_STAT_RD_REQ ((uint32_t)0x0020)
#define I2C_IC_RAW_INTR_STAT_TX_ABRT ((uint32_t)0x0040)
#define I2C_IC_RAW_INTR_STAT_RX_DONE ((uint32_t)0x0080)
#define I2C_IC_RAW_INTR_STAT_ACTIVITY ((uint32_t)0x0100)
#define I2C_IC_RAW_INTR_STAT_STOP_DET ((uint32_t)0x0200)
#define I2C_IC_RAW_INTR_STAT_START_DET ((uint32_t)0x0400)
#define I2C_IC_RAW_INTR_STAT_GEN_CALL ((uint32_t)0x0800)
/******************* Bit definition for IC_RX_TL register *******************/
#define I2C_IC_RX_TL_TL ((uint32_t)0x00FF)
/******************* Bit definition for IC_TX_TL register *******************/
#define I2C_IC_TX_TL_TL ((uint32_t)0x00FF)
/******************* Bit definition for IC_CLR_INTR register ****************/
#define I2C_IC_CLR_INTR ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_RX_UNDER register ************/
#define I2C_IC_CLR_RX_UNDER ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_RX_OVER register *************/
#define I2C_IC_CLR_RX_OVER ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_TX_OVER register *************/
#define I2C_IC_CLR_TX_OVER ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_RD_REQ register **************/
#define I2C_IC_CLR_RD_REQ ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_TX_ABRT register *************/
#define I2C_IC_CLR_TX_ABRT ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_RX_DONE register *************/
#define I2C_IC_CLR_RX_DONE ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_ACTIVITY register ************/
#define I2C_IC_CLR_ACTIVITY ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_STOP_DET register ************/
#define I2C_IC_CLR_STOP_DET ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_START_DET register ***********/
#define I2C_IC_CLR_START_DET ((uint32_t)0x0001)
/******************* Bit definition for IC_CLR_GEN_CALL register ************/
#define I2C_IC_CLR_GEN_CALL ((uint32_t)0x0001)
/******************* Bit definition for IC_ENABLE register *****************/
#define I2C_IC_ENABLE_ENABLE ((uint32_t)0x0001)
#define I2C_IC_ENABLE_ABORT ((uint32_t)0x0002)
/******************* Bit definition for IC_STATUS register *****************/
#define I2C_IC_STATUS_ACTIVITY ((uint32_t)0x0001)
#define I2C_IC_STATUS_TFNF ((uint32_t)0x0002)
#define I2C_IC_STATUS_TFE ((uint32_t)0x0004)
#define I2C_IC_STATUS_RFNE ((uint32_t)0x0008)
#define I2C_IC_STATUS_RFF ((uint32_t)0x0010)
#define I2C_IC_STATUS_MST_ACTIVITY ((uint32_t)0x0020)
#define I2C_IC_STATUS_SLV_ACTIVITY ((uint32_t)0x0040)
/******************* Bit definition for IC_TXFLR register ******************/
#define I2C_IC_TXFLR_TXFLR (8)
/******************* Bit definition for IC_RXFLR register ******************/
#define I2C_IC_RXFLR_RXFLR (8)
/******************* Bit definition for IC_SDA_HOLD register ***************/
#define I2C_IC_SDA_HOLD ((uint32_t)0xFFFF)
/******************* Bit definition for IC_TX_ABRT_SOURCE register *********/
#define I2C_IC_TX_ABRT_SOURCE_7B_ADDR_NOACK ((uint32_t)0x00000001)
#define I2C_IC_TX_ABRT_SOURCE_10ADDR1_NOACK ((uint32_t)0x00000002)
#define I2C_IC_TX_ABRT_SOURCE_10ADDR2_NOACK ((uint32_t)0x00000004)
#define I2C_IC_TX_ABRT_SOURCE_TXDATA_NOACK ((uint32_t)0x00000008)
#define I2C_IC_TX_ABRT_SOURCE_GCALL_NOACK ((uint32_t)0x00000010)
#define I2C_IC_TX_ABRT_SOURCE_GCALL_READ ((uint32_t)0x00000020)
#define I2C_IC_TX_ABRT_SOURCE_HS_ACKDET ((uint32_t)0x00000040)
#define I2C_IC_TX_ABRT_SOURCE_SBYTE_ACKDET ((uint32_t)0x00000080)
#define I2C_IC_TX_ABRT_SOURCE_HS_NORSTRT ((uint32_t)0x00000100)
#define I2C_IC_TX_ABRT_SOURCE_SBYTE_NORSTRT ((uint32_t)0x00000200)
#define I2C_IC_TX_ABRT_SOURCE_10B_RD_NORSTRT ((uint32_t)0x00000400)
#define I2C_IC_TX_ABRT_SOURCE_MASTER_DIS ((uint32_t)0x00000800)
#define I2C_IC_TX_ABRT_SOURCE_LOST ((uint32_t)0x00001000)
#define I2C_IC_TX_ABRT_SOURCE_SLVFLUSH_TXFIFO ((uint32_t)0x00002000)
#define I2C_IC_TX_ABRT_SOURCE_SLV_ARBLOST ((uint32_t)0x00004000)
#define I2C_IC_TX_ABRT_SOURCE_SLVRD_INTX ((uint32_t)0x00008000)
#define I2C_IC_TX_ABRT_SOURCE_USER_ABRT ((uint32_t)0x00010000)
#define I2C_IC_TX_ABRT_SOURCE_TX_FLUSH_CNT ((uint32_t)0xFF000000)
/******************* Bit definition for IC_SLV_DATA_NACK_ONLY register *****/
#define I2C_IC_SLV_DATA_NACK_ONLY ((uint32_t)0x0001)
/******************* Bit definition for IC_DMA_TDLR register ***************/
#define I2C_IC_DMA_TDLR_TDLR ((uint32_t)0x000F)
/******************* Bit definition for IC_DMA_RDLR register ***************/
#define I2C_IC_DMA_TDLR_TDLR ((uint32_t)0x000F)
/******************* Bit definition for IC_SDA_SETUP register **************/
#define I2C_IC_SDA_SETUP ((uint32_t)0x00FF)
/******************* Bit definition for IC_ACK_GENERAL_CALL register *******/
#define I2C_IC_ACK_GENERAL_CALL ((uint32_t)0x0001)
/******************* Bit definition for IC_ENABLE_STATUS register **********/
#define I2C_IC_ENABLE_STATUS_IC_EN ((uint32_t)0x0001)
#define I2C_IC_ENABLE_STATUS_SLV_RX_ABORTED ((uint32_t)0x0001)
#define I2C_IC_ENABLE_STATUS_SLV_FIFO_FILLED_AND_FLUSHED ((uint32_t)0x0001)
/******************* Bit definition for IC_FS_SPKLEN register **************/
#define I2C_IC_FS_SPKLEN_SPKLEN ((uint32_t)0x00FF)
/******************* Bit definition for IC_HS_SPKLEN register **************/
#define I2C_IC_HS_SPKLEN_SPKLEN ((uint32_t)0x00FF)
/******************* Bit definition for IC_COMP_PARAM_1 register ***********/
#define I2C_IC_COMP_PARAM_1_APB_DATA_WIDTH ((uint32_t)0x0003)
#define I2C_IC_COMP_PARAM_1_APB_DATA_WIDTH_0 ((uint32_t)0x0001)
#define I2C_IC_COMP_PARAM_1_APB_DATA_WIDTH_1 ((uint32_t)0x0002)
#define I2C_IC_COMP_PARAM_1_MAX_SPEED_MODE ((uint32_t)0x000C)
#define I2C_IC_COMP_PARAM_1_MAX_SPEED_MODE_0 ((uint32_t)0x0004)
#define I2C_IC_COMP_PARAM_1_MAX_SPEED_MODE_1 ((uint32_t)0x0008)
#define I2C_IC_COMP_PARAM_1_HC_COUNT_VALUES ((uint32_t)0x0010)
#define I2C_IC_COMP_PARAM_1_INTR_IO ((uint32_t)0x0020)
#define I2C_IC_COMP_PARAM_1_HAS_DMA ((uint32_t)0x0040)
#define I2C_IC_COMP_PARAM_1_ADD_ENCODED_PARAMS ((uint32_t)0x0080)
#define I2C_IC_COMP_PARAM_1_RX_BUFFER_DEPTH ((uint32_t)0x0000FF00)
#define I2C_IC_COMP_PARAM_1_TX_BUFFER_DEPTH ((uint32_t)0x00FF0000)
/******************* Bit definition for IC_COMP_VERSION register ***********/
#define I2C_IC_COMP_VERSION ((uint32_t)0xFFFFFFFF)
/******************* Bit definition for IC_COMP_TYPE register **************/
#define I2C_IC_COMP_TYPE ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* */
/* Backup Register Unit Block */
/* */
/******************************************************************************/
/******************* Bit definition for BPK_RDY register ********************/
#define BPK_RDY_POR ((uint32_t)0x0002)
#define BPK_RDY_READY ((uint32_t)0x0001)
/******************* Bit definition for BPK_RR register *********************/
#define BPK_RR_RESET ((uint32_t)0x0001)
/******************* Bit definition for BPK_LR register *********************/
#define BPK_LR_LOCK_SELF ((uint32_t)0x0001)
#define BPK_LR_LOCK_RESET ((uint32_t)0x0002)
#define BPK_LR_LOCK_KEYWRITE ((uint32_t)0x0004)
#define BPK_LR_LOCK_KEYREAD ((uint32_t)0x0008)
#define BPK_LR_LOCK_KEYCLEAR ((uint32_t)0x0010)
#define BPK_LR_LOCK_SCRAMBER ((uint32_t)0x0020)
#define BPK_LR_LOCK_ALL ((uint32_t)0x003F)
/******************************************************************************/
/* */
/* RTC Unit Block */
/* */
/******************************************************************************/
/******************* Bit definition for RTC_CS register *********************/
#define RTC_CS_ALARM_IT ((uint32_t)0x01)
#define RTC_CS_LOCK_TIM ((uint32_t)0x02)
#define RTC_CS_ALARM_EN ((uint32_t)0x04)
#define RTC_CS_READY ((uint32_t)0x08)
#define RTC_CS_CLR ((uint32_t)0x10)
/******************************************************************************/
/* */
/* Keyboard Control Unit Block */
/* */
/******************************************************************************/
/***************** Bit definition for KCU_CTRL0 register ********************/
#define KCU_PORT_0 ((uint32_t)0x0001)
#define KCU_PORT_1 ((uint32_t)0x0002)
#define KCU_PORT_2 ((uint32_t)0x0004)
#define KCU_PORT_3 ((uint32_t)0x0008)
#define KCU_PORT_4 ((uint32_t)0x0010)
#define KCU_PORT_5 ((uint32_t)0x0020)
#define KCU_PORT_6 ((uint32_t)0x0040)
#define KCU_PORT_7 ((uint32_t)0x0080)
#define KCU_PORT_8 ((uint32_t)0x0100)
#define KCU_PORT_ALL_Mask ((uint32_t)0x001F)
#define KCU_DEBOUNCETIMELEVEL_0 ((uint32_t)0x0000)
#define KCU_DEBOUNCETIMELEVEL_1 ((uint32_t)0x0001)
#define KCU_DEBOUNCETIMELEVEL_2 ((uint32_t)0x0002)
#define KCU_DEBOUNCETIMELEVEL_3 ((uint32_t)0x0003)
#define KCU_DEBOUNCETIMELEVEL_4 ((uint32_t)0x0004)
#define KCU_DEBOUNCETIMELEVEL_5 ((uint32_t)0x0005)
#define KCU_DEBOUNCETIMELEVEL_6 ((uint32_t)0x0006)
#define KCU_DEBOUNCETIMELEVEL_7 ((uint32_t)0x0007)
#define KCU_DEBOUNCETIMELEVEL_POS (9)
/***************** Bit definition for KCU_CTRL1 register ********************/
#define KCU_CTRL1_KBD_EN ((uint32_t)0x0001)
#define KCU_CTRL1_PUSH_IT ((uint32_t)0x0002)
#define KCU_CTRL1_RELEASE_IT ((uint32_t)0x0004)
#define KCU_CTRL1_OVERRUN_IT ((uint32_t)0x0008)
#define KCU_CTRL1_KCU_RUNING ((uint32_t)0x80000000)
/***************** Bit definition for KCU_STATUS register *******************/
#define KCU_STATUS_IT ((uint32_t)0x0001)
#define KCU_STATUS_OVERRUN_IT ((uint32_t)0x0002)
#define KCU_STATUS_PUSH_IT ((uint32_t)0x0004)
#define KCU_STATUS_RELEASE_IT ((uint32_t)0x0008)
#define KCU_STATUS_EVENT_0_PUSH ((uint32_t)0x0010)
#define KCU_STATUS_EVENT_0_NEW ((uint32_t)0x0020)
#define KCU_STATUS_EVENT_1_PUSH ((uint32_t)0x0040)
#define KCU_STATUS_EVENT_1_NEW ((uint32_t)0x0080)
#define KCU_STATUS_EVENT_2_PUSH ((uint32_t)0x0100)
#define KCU_STATUS_EVENT_2_NEW ((uint32_t)0x0200)
#define KCU_STATUS_EVENT_3_PUSH ((uint32_t)0x0400)
#define KCU_STATUS_EVENT_3_NEW ((uint32_t)0x0800)
/***************** Bit definition for KCU_EVENT register ********************/
#define KCU_EVENT_EVENT_0_INPUT_NUM ((uint32_t)0x0000000F)
#define KCU_EVENT_EVENT_0_OUTPUT_NUM ((uint32_t)0x000000F0)
#define KCU_EVENT_EVENT_1_INPUT_NUM ((uint32_t)0x00000F00)
#define KCU_EVENT_EVENT_1_OUTPUT_NUM ((uint32_t)0x0000F000)
#define KCU_EVENT_EVENT_2_INPUT_NUM ((uint32_t)0x000F0000)
#define KCU_EVENT_EVENT_2_OUTPUT_NUM ((uint32_t)0x00F00000)
#define KCU_EVENT_EVENT_3_INPUT_NUM ((uint32_t)0x0F000000)
#define KCU_EVENT_EVENT_3_OUTPUT_NUM ((uint32_t)0xF0000000)
/******************************************************************************/
/* */
/* Timer Control Unit Block */
/* */
/******************************************************************************/
/********** Bit definition for TIMER_CONTROL_REG register *******************/
#define TIMER_CONTROL_REG_TIMER_ENABLE (0x0001U)
#define TIMER_CONTROL_REG_TIMER_MODE (0x0002U)
#define TIMER_CONTROL_REG_TIMER_INTERRUPT (0x0004U)
#define TIMER_CONTROL_REG_TIMER_PWM (0x0008U)
#define TIMER_CONTROL_REG_PWM_SINGLE_PULSE (0x0010U)
#define TIMER_CONTROL_REG_PWM_RELOAD_SINGLE_PULSE (0x0020U)
/***************** Bit definition for IntStatus register ********************/
#define TIMER_INT_STATUS_INTERRUPT (0x0001U)
/******************************************************************************/
/* */
/* WDT Control Unit Block */
/* */
/******************************************************************************/
/***************** Bit definition for WDT_CR register ***********************/
#define WDT_CR_WDT_EN ((uint32_t)0x0001)
#define WDT_CR_RMOD ((uint32_t)0x0002)
/***************** Bit definition for WDT_CCVR register *********************/
#define WDT_CCVR_CCVR ((uint32_t)0xFFFFFFFF)
/***************** Bit definition for WDT_CRR register **********************/
#define WDT_CRR_CRR ((uint32_t)0x00FF)
/***************** Bit definition for WDT_STAT register *********************/
#define WDT_STAT_INT ((uint32_t)0x0001)
/***************** Bit definition for WDT_EOI register **********************/
#define WDT_EOI_EOI ((uint32_t)0x0001)
/***************** Bit definition for WDT_RLD register **********************/
#define WDT_RLD_RLD ((uint32_t)0xFFFFFFFF)
/******************************************************************************/
/* */
/* RNG Control Unit Block */
/* */
/******************************************************************************/
/************ bit definition for TRNG RNG_INDEX REGISTER ************/
#define RNG_FIFO_INDEX_Mask BIT(31)
/************ bit definition for TRNG RNG_CSR REGISTER ************/
#define TRNG_RNG_CSR_INTP_EN_Mask ((uint32_t)0x0010)
#define TRNG_RNG_CSR_ATTACK_TRNG0_Mask ((uint32_t)0x0004)
#define TRNG_RNG_CSR_S128_TRNG0_Mask ((uint32_t)0x0001)
/************ bit definition for TRNG RNG_AMA REGISTER ************/
#define TRNG_RNG_AMA_ANA_OUT_TRNG0_Mask ((uint32_t)0x10000000)
#define TRNG_RNG_AMA_PD_TRNG0_Mask ((uint32_t)0x00001000)
#define TRNG_RNG_AMA_PD_TRNG1_Mask ((uint32_t)0x00002000)
#define TRNG_RNG_AMA_PD_TRNG2_Mask ((uint32_t)0x00004000)
#define TRNG_RNG_AMA_PD_TRNG3_Mask ((uint32_t)0x00008000)
#define TRNG_RNG_AMA_PD_ALL_Mask ((uint32_t)0x0000F000)
/******************************************************************************/
/* */
/* DCMI */
/* */
/******************************************************************************/
/************** Bit definition for DCMI SYSCTRL DBG_CR register *************/
#define DCMI_DBG_CR_INPUTSEL ((uint32_t)0x00002000)
/******************** Bits definition for DCMI_CR register ******************/
#define DCMI_CR_CAPTURE ((uint32_t)0x00000001)
#define DCMI_CR_CM ((uint32_t)0x00000002)
#define DCMI_CR_CROP ((uint32_t)0x00000004)
#define DCMI_CR_JPEG ((uint32_t)0x00000008)
#define DCMI_CR_ESS ((uint32_t)0x00000010)
#define DCMI_CR_PCKPOL ((uint32_t)0x00000020)
#define DCMI_CR_HSPOL ((uint32_t)0x00000040)
#define DCMI_CR_VSPOL ((uint32_t)0x00000080)
#define DCMI_CR_FCRC_0 ((uint32_t)0x00000100)
#define DCMI_CR_FCRC_1 ((uint32_t)0x00000200)
#define DCMI_CR_EDM_0 ((uint32_t)0x00000400)
#define DCMI_CR_EDM_1 ((uint32_t)0x00000800)
#define DCMI_CR_CRE ((uint32_t)0x00001000)
#define DCMI_CR_ENABLE ((uint32_t)0x00004000)
#define DCMI_CR_BSM_0 ((uint32_t)0x00010000)
#define DCMI_CR_BSM_1 ((uint32_t)0x00020000)
#define DCMI_CR_OEBS ((uint32_t)0x00040000)
#define DCMI_CR_LSM ((uint32_t)0x00080000)
#define DCMI_CR_OELS ((uint32_t)0x00100000)
#define DCMI_CR_DMAS ((uint32_t)0xE0000000)
/******************** Bits definition for DCMI_SR register ******************/
#define DCMI_SR_HSYNC ((uint32_t)0x00000001)
#define DCMI_SR_VSYNC ((uint32_t)0x00000002)
#define DCMI_SR_FNE ((uint32_t)0x00000004)
/******************** Bits definition for DCMI_RISR register ****************/
#define DCMI_RISR_FRAME_RIS ((uint32_t)0x00000001)
#define DCMI_RISR_OVF_RIS ((uint32_t)0x00000002)
#define DCMI_RISR_ERR_RIS ((uint32_t)0x00000004)
#define DCMI_RISR_VSYNC_RIS ((uint32_t)0x00000008)
#define DCMI_RISR_LINE_RIS ((uint32_t)0x00000010)
/******************** Bits definition for DCMI_IER register *****************/
#define DCMI_IER_FRAME_IE ((uint32_t)0x00000001)
#define DCMI_IER_OVF_IE ((uint32_t)0x00000002)
#define DCMI_IER_ERR_IE ((uint32_t)0x00000004)
#define DCMI_IER_VSYNC_IE ((uint32_t)0x00000008)
#define DCMI_IER_LINE_IE ((uint32_t)0x00000010)
/******************** Bits definition for DCMI_MISR register ****************/
#define DCMI_MISR_FRAME_MIS ((uint32_t)0x00000001)
#define DCMI_MISR_OVF_MIS ((uint32_t)0x00000002)
#define DCMI_MISR_ERR_MIS ((uint32_t)0x00000004)
#define DCMI_MISR_VSYNC_MIS ((uint32_t)0x00000008)
#define DCMI_MISR_LINE_MIS ((uint32_t)0x00000010)
/******************** Bits definition for DCMI_ICR register *****************/
#define DCMI_ICR_FRAME_ISC ((uint32_t)0x00000001)
#define DCMI_ICR_OVF_ISC ((uint32_t)0x00000002)
#define DCMI_ICR_ERR_ISC ((uint32_t)0x00000004)
#define DCMI_ICR_VSYNC_ISC ((uint32_t)0x00000008)
#define DCMI_ICR_LINE_ISC ((uint32_t)0x00000010)
/****************** Bit definition for QUADSPI_FCU_CMD register ******************/
#define QUADSPI_FCU_CMD_CODE ((uint32_t)0xFF000000U)
#define QUADSPI_FCU_CMD_BUS_MODE ((uint32_t)0x00000300U)
#define QUADSPI_FCU_CMD_CMD_FORMAT ((uint32_t)0x000000F0U)
#define QUADSPI_FCU_CMD_DONE ((uint32_t)0x00000008U)
#define QUADSPI_FCU_CMD_BUSY ((uint32_t)0x00000004U)
#define QUADSPI_FCU_CMD_ACCESS_ACK ((uint32_t)0x00000002U)
#define QUADSPI_FCU_CMD_ACCESS_REQ ((uint32_t)0x00000001U)
#define QUADSPI_ADDRESS_ADR ((uint32_t)0xFFFFFF00U)
#define QUADSPI_ADDRESS_M8 ((uint32_t)0x000000FFU)
#define QUADSPI_BYTE_NUM_WR_BYTE ((uint32_t)0x00001FFFU)
#define QUADSPI_BYTE_NUM_RD_BYTE ((uint32_t)0x1FFF0000U)
#define QUADSPI_WR_FIFO_WR_DATA ((uint32_t)0xFFFFFFFFU)
#define QUADSPI_RD_FIFO_RD_DATA ((uint32_t)0xFFFFFFFFU)
#define QUADSPI_DEVICE_PARA_SAMPLE_DLY ((uint32_t)0x00008000U)
#define QUADSPI_DEVICE_PARA_SAMPLE_PHA ((uint32_t)0x00004000U)
#define QUADSPI_DEVICE_PARA_PROTOCOL ((uint32_t)0x00000300U)
#define QUADSPI_DEVICE_PARA_DUMMY_CYCLE ((uint32_t)0x000000F0U)
#define QUADSPI_DEVICE_PARA_FLASH_READY ((uint32_t)0x00000008U)
#define QUADSPI_DEVICE_PARA_FREQ_SEL ((uint32_t)0x00000003U)
#define QUADSPI_REG_WDATA ((uint32_t)0xFFFFFFFFU)
#define QUADSPI_REG_RDATA ((uint32_t)0xFFFFFFFFU)
#define QUADSPI_INT_MASK_TFDM ((uint32_t)0x00000040U)
#define QUADSPI_INT_MASK_RFDM ((uint32_t)0x00000020U)
#define QUADSPI_INT_MASK_TFOM ((uint32_t)0x00000010U)
#define QUADSPI_INT_MASK_TFUM ((uint32_t)0x00000008U)
#define QUADSPI_INT_MASK_RFOM ((uint32_t)0x00000004U)
#define QUADSPI_INT_MASK_RFUM ((uint32_t)0x00000002U)
#define QUADSPI_INT_MASK_DONE_IM ((uint32_t)0x00000001U)
#define QUADSPI_INT_UMSAK_TFDU ((uint32_t)0x00000040U)
#define QUADSPI_INT_UMSAK_RFDU ((uint32_t)0x00000020U)
#define QUADSPI_INT_UMSAK_TFOU ((uint32_t)0x00000010U)
#define QUADSPI_INT_UMSAK_TFUU ((uint32_t)0x00000008U)
#define QUADSPI_INT_UMSAK_RFOU ((uint32_t)0x00000004U)
#define QUADSPI_INT_UMSAK_RFUU ((uint32_t)0x00000002U)
#define QUADSPI_INT_UMSAK_DONE_IU ((uint32_t)0x00000001U)
#define QUADSPI_INT_MASK_STATUS_TFDM ((uint32_t)0x00000040U)
#define QUADSPI_INT_MASK_STATUS_RFDM ((uint32_t)0x00000020U)
#define QUADSPI_INT_MASK_STATUS_TFOM ((uint32_t)0x00000010U)
#define QUADSPI_INT_MASK_STATUS_TFUM ((uint32_t)0x00000008U)
#define QUADSPI_INT_MASK_STATUS_RFOM ((uint32_t)0x00000004U)
#define QUADSPI_INT_MASK_STATUS_RFUM ((uint32_t)0x00000002U)
#define QUADSPI_INT_MASK_STATUS_DONE_IM ((uint32_t)0x00000001U)
#define QUADSPI_INT_STATUS_TFDS ((uint32_t)0x00000040U)
#define QUADSPI_INT_STATUS_RFDS ((uint32_t)0x00000020U)
#define QUADSPI_INT_STATUS_TFOS ((uint32_t)0x00000010U)
#define QUADSPI_INT_STATUS_TFUS ((uint32_t)0x00000008U)
#define QUADSPI_INT_STATUS_RFOS ((uint32_t)0x00000004U)
#define QUADSPI_INT_STATUS_RFUS ((uint32_t)0x00000002U)
#define QUADSPI_INT_STATUS_DONE_IS ((uint32_t)0x00000001U)
#define QUADSPI_INT_RAWSTATUS_TFDR ((uint32_t)0x00000040U)
#define QUADSPI_INT_RAWSTATUS_RFDR ((uint32_t)0x00000020U)
#define QUADSPI_INT_RAWSTATUS_TFOR ((uint32_t)0x00000010U)
#define QUADSPI_INT_RAWSTATUS_TFUR ((uint32_t)0x00000008U)
#define QUADSPI_INT_RAWSTATUS_RFOR ((uint32_t)0x00000004U)
#define QUADSPI_INT_RAWSTATUS_RFUR ((uint32_t)0x00000002U)
#define QUADSPI_INT_RAWSTATUS_DONE_IR ((uint32_t)0x00000001U)
#define QUADSPI_INT_CLEAR_CTFD ((uint32_t)0x00000040U)
#define QUADSPI_INT_CLEAR_CRFD ((uint32_t)0x00000020U)
#define QUADSPI_INT_CLEAR_CTFO ((uint32_t)0x00000010U)
#define QUADSPI_INT_CLEAR_CTFU ((uint32_t)0x00000008U)
#define QUADSPI_INT_CLEAR_CRFO ((uint32_t)0x00000004U)
#define QUADSPI_INT_CLEAR_CRFU ((uint32_t)0x00000002U)
#define QUADSPI_INT_CLEAR_DONE ((uint32_t)0x00000001U)
#define QUADSPI_CACHE_INTF_CMD_RELDS ((uint32_t)0xFF000000U)
#define QUADSPI_CACHE_INTF_CMD_DS ((uint32_t)0x00FF0000U)
#define QUADSPI_CACHE_INTF_CMD_RD_BUS_MODE ((uint32_t)0x00003000U)
#define QUADSPI_CACHE_INTF_CMD_RD_FORMAT ((uint32_t)0x00000F00U)
#define QUADSPI_CACHE_INTF_CMD_RDCMD ((uint32_t)0x000000FFU)
#define QUADSPI_DMA_CNTL_TX_EN ((uint32_t)0x00000001U)
#define QUADSPI_FIFO_CNTL_TFFH ((uint32_t)0x80000000U)
#define QUADSPI_FIFO_CNTL_TFE ((uint32_t)0x00200000U)
#define QUADSPI_FIFO_CNTL_TFFL ((uint32_t)0x00100000U)
#define QUADSPI_FIFO_CNTL_TFL ((uint32_t)0x000F0000U)
#define QUADSPI_FIFO_CNTL_RFFH ((uint32_t)0x00008000U)
#define QUADSPI_FIFO_CNTL_RFE ((uint32_t)0x00000020U)
#define QUADSPI_FIFO_CNTL_RFFL ((uint32_t)0x00000010U)
#define QUADSPI_FIFO_CNTL_RFL ((uint32_t)0x0000000FU)
#define AIR105_READ_REG8(reg) (*(__IO uint8_t *) reg)
#define AIR105_READ_REG16(reg) (*(__IO uint16_t *) reg)
#define AIR105_READ_REG32(reg) (*(__IO uint32_t *) reg)
#define AIR105_WRITE_REG8(reg, value) (*(__IO uint8_t *) reg = value)
#define AIR105_WRITE_REG16(reg, value) (*(__IO uint16_t *) reg = value)
#define AIR105_WRITE_REG32(reg, value) (*(__IO uint32_t *) reg = value)
#define AIR105_MODIFY_REG8(reg, clear_mask, set_mask) \
AIR105_WRITE_REG8(reg, (((AIR105_READ_REG8(reg)) & ~clear_mask) | set_mask))
#define AIR105_MODIFY_REG16(reg, clear_mask, set_mask) \
AIR105_WRITE_REG16(reg, (((AIR105_READ_REG16(reg)) & ~clear_mask) | set_mask))
#define AIR105_MODIFY_REG32(reg, clear_mask, set_mask) \
AIR105_WRITE_REG32(reg, (((AIR105_READ_REG32(reg)) & ~clear_mask) | set_mask))
#include "air105_conf.h"
#ifdef __cplusplus
}
#endif
#endif /* AIR105_H */