mirror of https://github.com/ARMmbed/mbed-os.git
957 lines
80 KiB
C
957 lines
80 KiB
C
/****************************************************************************
|
|
*
|
|
* Copyright 2020 Samsung Electronics All Rights Reserved.
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
* either express or implied. See the License for the specific
|
|
* language governing permissions and limitations under the License.
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef __S1SBP6A_H
|
|
#define __S1SBP6A_H
|
|
|
|
typedef enum IRQn {
|
|
/* ------------------- Cortex-M4 Processor Exceptions Numbers ------------------- */
|
|
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 */
|
|
|
|
/* --------------------- S5JS100 Specific Interrupt Numbers ---------------- */
|
|
BOR_IRQn = 0, /*!< Brown Out Reset Interrupt */
|
|
UARTR0_IRQn = 1, /*!< UART 0 Interrupt */
|
|
UARTR1_IRQn = 2, /*!< UART 1 Interrupt */
|
|
UARTR2_IRQn = 3, /*!< UART 2 Interrupt */
|
|
SPI0_IRQn = 4, /*!< SPI 0 Interrupt */
|
|
SPI1_IRQn = 5, /*!< SPI 1 Interrupt */
|
|
SPI2_IRQn = 6, /*!< SPI 2 Interrupt */
|
|
SPI3_IRQn = 7, /*!< SPI 3 Interrupt */
|
|
SPI4_IRQn = 8, /*!< SPI 4 Interrupt */
|
|
I2C0_IRQn = 9, /*!< I2C 0 Interrupt */
|
|
I2C1_IRQn = 10, /*!< I2C 1 Interrupt */
|
|
I2C2_IRQn = 11, /*!< I2C 2 Interrupt */
|
|
I2C3_IRQn = 12, /*!< I2C 3 Interrupt */
|
|
I2C4_IRQn = 13, /*!< I2C 4 Interrupt */
|
|
TIMER0_IRQn = 14, /*!< TIMER 0 Interrupt */
|
|
TIMER1_IRQn = 15, /*!< TIMER 1 Interrupt */
|
|
TIMER2_IRQn = 16, /*!< TIMER 2 Interrupt */
|
|
TIMER3_IRQn = 17, /*!< TIMER 3 Interrupt */
|
|
TIMER4_IRQn = 18, /*!< TIMER 4 Interrupt */
|
|
TIMER5_IRQn = 19, /*!< TIMER 5 Interrupt */
|
|
TIMER6_IRQn = 20, /*!< TIMER 6 Interrupt */
|
|
PWM_TIMER_IRQn = 21, /*!< PWM TIMER Interrupt */
|
|
DUAL_TIMER_IRQn = 22, /*!< Dual Timer Interrupt */
|
|
AFECON_IRQn = 23, /*!< Analog Front End Control Interrupt */
|
|
SRC_IRQn = 24, /*!< Sample Rate Converter Interrupt */
|
|
DMA_ERROR_IRQn = 25, /*!< DMA Error Interrupt */
|
|
FLASH_IRQn = 26, /*!< FLASH Interrupt */
|
|
RTC0_IRQn = 27, /*!< Real-Time Counter 0 Interrupt */
|
|
RTC1_IRQn = 28, /*!< Real-Time Counter 1 Interrupt */
|
|
RTC2_IRQn = 29, /*!< Real-Time Counter 2 Interrupt */
|
|
FPU_IRQn = 30, /*!< Floating-point Processing Unit Interrupt */
|
|
SRP0_IRQn = 31, /*!< SRP 0 Interrupt */
|
|
SRP1_IRQn = 32, /*!< SRP 1 Interrupt */
|
|
DELAY_MON_IRQn = 33, /*!< Delay Monitor Interrupt */
|
|
AES_IRQn = 34, /*!< AES Interrupt */
|
|
EXT_WAKEUP_IRQn = 35, /*!< External Wakeup Interrupt */
|
|
DMA0_IRQn = 36, /*!< DMA Channel 0 Done Interrupt */
|
|
DMA1_IRQn = 37, /*!< DMA Channel 1 Done Interrupt */
|
|
DMA2_IRQn = 38, /*!< DMA Channel 2 Done Interrupt */
|
|
DMA3_IRQn = 39, /*!< DMA Channel 3 Done Interrupt */
|
|
DMA4_IRQn = 40, /*!< DMA Channel 4 Done Interrupt */
|
|
DMA5_IRQn = 41, /*!< DMA Channel 5 Done Interrupt */
|
|
DMA6_IRQn = 42, /*!< DMA Channel 6 Done Interrupt */
|
|
DMA7_IRQn = 43, /*!< DMA Channel 7 Done Interrupt */
|
|
DMA8_IRQn = 44, /*!< DMA Channel 8 Done Interrupt */
|
|
DMA9_IRQn = 45, /*!< DMA Channel 9 Done Interrupt */
|
|
DMA10_IRQn = 46, /*!< DMA Channel 10 Done Interrupt */
|
|
DMA11_IRQn = 47, /*!< DMA Channel 11 Done Interrupt */
|
|
DMA12_IRQn = 48, /*!< DMA Channel 12 Done Interrupt */
|
|
DMA13_IRQn = 49, /*!< DMA Channel 13 Done Interrupt */
|
|
DMA14_IRQn = 50, /*!< DMA Channel 14 Done Interrupt */
|
|
DMA15_IRQn = 51, /*!< DMA Channel 15 Done Interrupt */
|
|
DMA16_IRQn = 52, /*!< DMA Channel 16 Done Interrupt */
|
|
DMA17_IRQn = 53, /*!< DMA Channel 17 Done Interrupt */
|
|
DMA18_IRQn = 54, /*!< DMA Channel 18 Done Interrupt */
|
|
DMA19_IRQn = 55, /*!< DMA Channel 19 Done Interrupt */
|
|
DMA20_IRQn = 56, /*!< DMA Channel 20 Done Interrupt */
|
|
DMA21_IRQn = 57, /*!< DMA Channel 21 Done Interrupt */
|
|
DMA22_IRQn = 58, /*!< DMA Channel 22 Done Interrupt */
|
|
DMA23_IRQn = 59, /*!< DMA Channel 23 Done Interrupt */
|
|
DMA24_IRQn = 60, /*!< DMA Channel 24 Done Interrupt */
|
|
DMA25_IRQn = 61, /*!< DMA Channel 25 Done Interrupt */
|
|
DMA26_IRQn = 62, /*!< DMA Channel 26 Done Interrupt */
|
|
DMA27_IRQn = 63, /*!< DMA Channel 27 Done Interrupt */
|
|
DMA28_IRQn = 64, /*!< DMA Channel 28 Done Interrupt */
|
|
DMA29_IRQn = 65, /*!< DMA Channel 29 Done Interrupt */
|
|
DMA30_IRQn = 66, /*!< DMA Channel 30 Done Interrupt */
|
|
DMA31_IRQn = 67, /*!< DMA Channel 31 Done Interrupt */
|
|
PORT0_ALL_IRQn = 68, /*!< Port 0 Combined Interrupt */
|
|
PORT1_ALL_IRQn = 69, /*!< Port 1 Combined Interrupt */
|
|
PORT2_ALL_IRQn = 70, /*!< Port 2 Combined Interrupt */
|
|
PORT0_0_IRQn = 71, /*!< All P0 I/O pins can be used as interrupt source. */
|
|
PORT0_1_IRQn = 72, /*!< There are 16 pins in total */
|
|
PORT0_2_IRQn = 73,
|
|
PORT0_3_IRQn = 74,
|
|
PORT0_4_IRQn = 75,
|
|
PORT0_5_IRQn = 76,
|
|
PORT0_6_IRQn = 77,
|
|
PORT0_7_IRQn = 78,
|
|
PORT0_8_IRQn = 79,
|
|
PORT0_9_IRQn = 80,
|
|
PORT0_10_IRQn = 81,
|
|
PORT0_11_IRQn = 82,
|
|
PORT0_12_IRQn = 83,
|
|
PORT0_13_IRQn = 84,
|
|
PORT0_14_IRQn = 85,
|
|
PORT0_15_IRQn = 86,
|
|
PORT1_0_IRQn = 87, /*!< All P1 I/O pins can be used as interrupt source. */
|
|
PORT1_1_IRQn = 88, /*!< There are 16 pins in total */
|
|
PORT1_2_IRQn = 89,
|
|
PORT1_3_IRQn = 90,
|
|
PORT1_4_IRQn = 91,
|
|
PORT1_5_IRQn = 92,
|
|
PORT1_6_IRQn = 93,
|
|
PORT1_7_IRQn = 94,
|
|
PORT1_8_IRQn = 95,
|
|
PORT1_9_IRQn = 96,
|
|
PORT1_10_IRQn = 97,
|
|
PORT1_11_IRQn = 98,
|
|
PORT1_12_IRQn = 99,
|
|
PORT1_13_IRQn = 100,
|
|
PORT1_14_IRQn = 101,
|
|
PORT1_15_IRQn = 102,
|
|
PORT2_0_IRQn = 103, /*!< All P2 I/O pins can be used as interrupt source. */
|
|
PORT2_1_IRQn = 104, /*!< There are 16 pins in total */
|
|
PORT2_2_IRQn = 105,
|
|
PORT2_3_IRQn = 106,
|
|
PORT2_4_IRQn = 107,
|
|
PORT2_5_IRQn = 108,
|
|
PORT2_6_IRQn = 109,
|
|
PORT2_7_IRQn = 110,
|
|
PORT2_8_IRQn = 111,
|
|
PORT2_9_IRQn = 112,
|
|
PORT2_10_IRQn = 113,
|
|
PORT2_11_IRQn = 114,
|
|
PORT2_12_IRQn = 115,
|
|
PORT2_13_IRQn = 116,
|
|
PORT2_14_IRQn = 117,
|
|
PORT2_15_IRQn = 118,
|
|
NUM_OF_IRQn = 119 /* Number of IRQs */
|
|
} IRQn_Type;
|
|
|
|
/*
|
|
* ==========================================================================
|
|
* ----------- Processor and Core Peripheral Section ------------------------
|
|
* ==========================================================================
|
|
*/
|
|
|
|
/* Configuration of the Cortex-M4 Processor and Core Peripherals */
|
|
#define __CM4_REV 0x0001U /*!< Core Revision r0p1 */
|
|
#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 */
|
|
#define __FPU_PRESENT 1 /*!< FPU present or not */
|
|
|
|
#include <core_cm4.h> /* Cortex-M4 processor and core peripherals */
|
|
#include "system_s1sbp6a.h" /* S1SBP6A System include file */
|
|
|
|
/******************************************************************************/
|
|
/* Device Specific Peripheral registers structures */
|
|
/******************************************************************************/
|
|
|
|
#if defined ( __CC_ARM )
|
|
#pragma anon_unions
|
|
#endif
|
|
|
|
/*---------- Timer (TIMER) ---------------------------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t CTRL; /*!< Offset: 0x000 Control Register */
|
|
__IOM uint32_t VALUE; /*!< Offset: 0x004 Current Value Register */
|
|
__IOM uint32_t RELOAD; /*!< Offset: 0x008 Reload Value Register */
|
|
union {
|
|
__IM uint32_t INTSTAT; /*!< Offset: 0x00C Interrupt Status Register */
|
|
__OM uint32_t INTCLR; /*!< Offset: 0x00C Interrupt Clear Register */
|
|
};
|
|
} BP_TIMER_TypeDef;
|
|
|
|
/*---------- PWM Timer (PWM_TIMER) -------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t CTRL; /*!< Offset: 0x000 Control Register */
|
|
__IOM uint32_t VALUE; /*!< Offset: 0x004 Current Value Register */
|
|
__IOM uint32_t RELOAD; /*!< Offset: 0x008 Reload Value Register */
|
|
union {
|
|
__IM uint32_t INTSTAT; /*!< Offset: 0x00C Interrupt Status Register */
|
|
__OM uint32_t INTCLR; /*!< Offset: 0x00C Interrupt Clear Register */
|
|
};
|
|
uint32_t RESERVED[764];
|
|
__IOM uint32_t PWM_CTRL; /*!< Offset: 0xC00 PWM Control Register */
|
|
__IOM uint32_t PWM_PULSE; /*!< Offset: 0xC04 PWM Pulse Set Register */
|
|
} BP_PWM_TIMER_TypeDef;
|
|
|
|
/*---------- Dual Input Timer (DUAL_TIMER) -----------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t LOAD; /*!< Offset: 0x000 Timer Load Value Register */
|
|
__IM uint32_t VALUE; /*!< Offset: 0x004 Timer Current Value Register */
|
|
__IOM uint32_t CTRL; /*!< Offset: 0x008 Timer Control Register */
|
|
__OM uint32_t INTCLR; /*!< Offset: 0x00C Timer Interrupt Clear Register */
|
|
__IM uint32_t RIS; /*!< Offset: 0x010 Timer Raw Interrupt Status Register */
|
|
__IM uint32_t MIS; /*!< Offset: 0x014 Timer Masked Interrupt Status Register */
|
|
__IOM uint32_t BGLOAD; /*!< Offset: 0x018 Timer Background Load Register */
|
|
} BP_DUAL_TIMER_TypeDef;
|
|
/*@}*/ /* end of group BP_DUAL_TIMER */
|
|
|
|
/*---------- Watchdog (WATCHDOG) ---------------------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t LOAD; /*!< Offset: 0x000 Load Register */
|
|
__IM uint32_t VALUE; /*!< Offset: 0x004 Value Register */
|
|
__IOM uint32_t CTRL; /*!< Offset: 0x008 Control Register */
|
|
__OM uint32_t INTCLR; /*!< Offset: 0x00C Clear Interrupt Register */
|
|
__IM uint32_t RIS; /*!< Offset: 0x010 Raw Interrupt Status Register */
|
|
__IM uint32_t MIS; /*!< Offset: 0x014 Masked Interrupt Status Register */
|
|
uint32_t RESERVED[762];
|
|
__IOM uint32_t LOCK; /*!< Offset: 0xC00 Lock Register */
|
|
} BP_WATCHDOG_TypeDef;
|
|
|
|
/*---------- Universal Asynchronous Receiver Transmitter (UART) --------------*/
|
|
typedef struct {
|
|
__IOM uint32_t ULCON; /*!< Offset: 0x000 Line Control Register */
|
|
__IOM uint32_t UCON; /*!< Offset: 0x004 Control Register */
|
|
__IOM uint32_t UFCON; /*!< Offset: 0x008 FIFO Control Register */
|
|
__IOM uint32_t UMCON; /*!< Offset: 0x00C AFC Control Register */
|
|
__IOM uint32_t UTRSTAT; /*!< Offset: 0x010 Tx/Rx Status Register */
|
|
__IM uint32_t UERSTAT; /*!< Offset: 0x014 Rx Error Register */
|
|
__IM uint32_t UFSTAT; /*!< Offset: 0x018 FIFO Status Register */
|
|
uint32_t RESERVED;
|
|
__OM uint32_t UTXH; /*!< Offset: 0x020 Transmit Data Register */
|
|
__IM uint32_t URXH; /*!< Offset: 0x024 Receive Data Register */
|
|
__IOM uint32_t UBRDIV; /*!< Offset: 0x028 Baud Rate Division Value Register */
|
|
__IOM uint32_t UFRACVAL; /*!< Offset: 0x02C Baud Rate Fractional Part Value Register */
|
|
__IOM uint32_t UINTP; /*!< Offset: 0x030 Interrupt Pending Register */
|
|
__IM uint32_t UINTS; /*!< Offset: 0x034 Interrupt Source Register */
|
|
__IOM uint32_t UINTM; /*!< Offset: 0x038 Interrupt Mask Register */
|
|
} BP_UART_TypeDef;
|
|
|
|
/*---------- Serial Peripheral Interface (SPI) -------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t CR0; /*!< Offset: 0x000 Control Register 0 */
|
|
__IOM uint32_t CR1; /*!< Offset: 0x004 Control Register 1 */
|
|
__IOM uint32_t DR; /*!< Offset: 0x008 Data Register */
|
|
__IM uint32_t SR; /*!< Offset: 0x00C Status Register */
|
|
__IOM uint32_t CPSR; /*!< Offset: 0x010 Clock Pre-scale Register */
|
|
__IOM uint32_t IMSC; /*!< Offset: 0x014 Interrupt Mask Set and Clear Register */
|
|
__IM uint32_t RIS; /*!< Offset: 0x018 Raw Interrupt Status Register */
|
|
__IM uint32_t MIS; /*!< Offset: 0x01C Masked Interrupt Status Register */
|
|
__OM uint32_t ICR; /*!< Offset: 0x020 Interrupt Clear Register */
|
|
__IOM uint32_t DMACR; /*!< Offset: 0x024 DMA Control Register */
|
|
} BP_SPI_TypeDef;
|
|
|
|
|
|
/*---------- Inter-Integrated Circuit (I2C) ----------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t CTL; /*!< Offset: 0x000 Control register */
|
|
__OM uint32_t FIFO_CTL; /*!< Offset: 0x004 FIFO Control Register */
|
|
__IOM uint32_t TRAILING_CTL; /*!< Offset: 0x008 Trailing Bytes Control Register */
|
|
uint32_t RESERVED1[5];
|
|
__IOM uint32_t INT_EN; /*!< Offset: 0x020 Interrupt Enable Register */
|
|
__IOM uint32_t INT_STAT; /*!< Offset: 0x024 Interrupt Status Register */
|
|
uint32_t RESERVED2[2];
|
|
__IM uint32_t FIFO_STAT; /*!< Offset: 0x030 FIFO Status Register */
|
|
__OM uint32_t TXDATA; /*!< Offset: 0x034 Transmit Data Buffer Register */
|
|
__IM uint32_t RXDATA; /*!< Offset: 0x038 Received Data Buffer Register */
|
|
uint32_t RESERVED3;
|
|
__IOM uint32_t CONF; /*!< Offset: 0x040 Configuration Register */
|
|
__IOM uint32_t AUTO_CONF; /*!< Offset: 0x044 Configuration Register for Auto Mode */
|
|
__IOM uint32_t TIMEOUT; /*!< Offset: 0x048 Time Out Register for I2C Master */
|
|
__IOM uint32_t MANUAL_CMD; /*!< Offset: 0x04C Command Register for Manual Mode */
|
|
__IM uint32_t TRANS_STATUS; /*!< Offset: 0x050 Transfer Status Register */
|
|
__IOM uint32_t TIMING_HS1; /*!< Offset: 0x054 Timing Register1 for High Speed Mode */
|
|
__IOM uint32_t TIMING_HS2; /*!< Offset: 0x058 Timing Register2 for High Speed Mode */
|
|
__IOM uint32_t TIMING_HS3; /*!< Offset: 0x05C Timing Register3 for High Speed Mode */
|
|
__IOM uint32_t TIMING_FS1; /*!< Offset: 0x060 Timing Register1 for Fast Speed Mode */
|
|
__IOM uint32_t TIMING_FS2; /*!< Offset: 0x064 Timing Register2 for Fast Speed Mode */
|
|
__IOM uint32_t TIMING_FS3; /*!< Offset: 0x068 Timing Register3 for Fast Speed Mode */
|
|
__IOM uint32_t TIMING_SLA; /*!< Offset: 0x06C Data Hold Timing Register for I2C Slave */
|
|
__IOM uint32_t ADDR; /*!< Offset: 0x070 Address Register */
|
|
} BP_I2C_TypeDef;
|
|
|
|
/*---------- Delay Monitor ---------------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t CFG; /*!< Offset: 0x000 Configuration Register */
|
|
__IOM uint32_t CHAINSEL_MCU; /*!< Offset: 0x004 Chain Selection Register for MCU */
|
|
__IOM uint32_t CHAINSEL_SRP; /*!< Offset: 0x008 Chain Selection Register for SRP */
|
|
__IOM uint32_t CHAINMASK_MCU; /*!< Offset: 0x00C Chain Selection Mask Register for MCU */
|
|
__IOM uint32_t CHAINMASK_SRP; /*!< Offset: 0x010 Chain Selection Mask Register for SRP */
|
|
__IM uint32_t DMONQ_MCU; /*!< Offset: 0x014 Flip-Flop Output Register for MCU */
|
|
__IM uint32_t DMONQ_SRP; /*!< Offset: 0x018 Flip-Flop Output Register for SRP */
|
|
__IM uint32_t DMONCNT_L; /*!< Offset: 0x01C Violation Counter Lower Register */
|
|
__IM uint32_t DMONCNT_H; /*!< Offset: 0x020 Violation Counter Higher Register */
|
|
} BP_DELAY_MON_TypeDef;
|
|
|
|
/*---------- Real Time Clock -------------------------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t PMU_KA_DLY_CON0; /*!< Offset: 0x000 PMU_KA_DLY_CON0 */
|
|
__IOM uint32_t PMU_KA_DLY_CON1; /*!< Offset: 0x004 PMU_KA_DLY_CON1 */
|
|
__IOM uint32_t PMU_KA_LDO_CTRL; /*!< Offset: 0x008 PMU_KA_LDO_CTRL */
|
|
__IM uint32_t PMU_KA_LDO_POR_STATUS; /*!< Offset: 0x00C PMU_KA_LDO_POR_STATUS */
|
|
__IOM uint32_t PMU_KA_MANUAL_CTRL; /*!< Offset: 0x010 PMU_KA_MANUAL_CTRL */
|
|
__IOM uint32_t KA_AFEISO_CTRL; /*!< Offset: 0x014 KA_AFEISO_CTRL */
|
|
__IM uint32_t KA_SYSTEM_ON; /*!< Offset: 0x018 KA_SYSTEM_ON */
|
|
uint32_t RESERVED;
|
|
__IOM uint32_t CALENDAR_MODE; /*!< Offset: 0x020 CALENDAR_MODE */
|
|
__IOM uint32_t GEN_COUNT_CLR; /*!< Offset: 0x024 GEN_COUNT_CLR */
|
|
__IOM uint32_t LOAD_COUNT_SIG; /*!< Offset: 0x028 LOAD_COUNT_SIG */
|
|
struct {
|
|
__IO uint32_t SEC; /*!< Offset: 0x02C LOAD_COUNT_VALUE0 */
|
|
__IO uint32_t MIN; /*!< Offset: 0x030 LOAD_COUNT_VALUE1 */
|
|
__IO uint32_t HOUR; /*!< Offset: 0x034 LOAD_COUNT_VALUE2 */
|
|
__IO uint32_t DAY; /*!< Offset: 0x038 LOAD_COUNT_VALUE3 */
|
|
__IO uint32_t MON; /*!< Offset: 0x03C LOAD_COUNT_VALUE4 */
|
|
__IO uint32_t YEAR; /*!< Offset: 0x040 LOAD_COUNT_VALUE5 */
|
|
} BCD_W;
|
|
struct {
|
|
__IO uint32_t SEC; /*!< Offset: 0x044 CALENDAR_COUNT_VALUE0 */
|
|
__IO uint32_t MIN; /*!< Offset: 0x048 CALENDAR_COUNT_VALUE1 */
|
|
__IO uint32_t HOUR; /*!< Offset: 0x04C CALENDAR_COUNT_VALUE2 */
|
|
__IO uint32_t DAY; /*!< Offset: 0x050 CALENDAR_COUNT_VALUE3 */
|
|
__IO uint32_t MON; /*!< Offset: 0x054 CALENDAR_COUNT_VALUE4 */
|
|
__IO uint32_t YEAR; /*!< Offset: 0x058 CALENDAR_COUNT_VALUE5 */
|
|
} BCD_R;
|
|
__IOM uint32_t CALENDAR_TIME_STAMP; /*!< Offset: 0x05C CALENDAR_TIME_STAMP */
|
|
__IOM uint32_t INT_ENABLE_CPU; /*!< Offset: 0x060 INT_ENABLE_CPU */
|
|
__IOM uint32_t INT_CLEAR_CPU; /*!< Offset: 0x064 INT_CLEAR_CPU */
|
|
__IOM uint32_t RESERVED1;
|
|
__IOM uint32_t SYNC_INT_TIME0; /*!< Offset: 0x06C SYNC_INT_TIME0 */
|
|
__IOM uint32_t SYNC_INT_TIME1; /*!< Offset: 0x070 SYNC_INT_TIME1 */
|
|
__IM uint32_t INT_STATUS_CPU; /*!< Offset: 0x074 INT_STATUS_CPU */
|
|
__IOM uint32_t ALARM_ENABLE; /*!< Offset: 0x078 ALARM_ENABLE */
|
|
__IOM uint32_t ALARM_COUNT_VALUE0; /*!< Offset: 0x07C ALARM_COUNT_VALUE0 */
|
|
__IOM uint32_t ALARM_COUNT_VALUE1; /*!< Offset: 0x080 ALARM_COUNT_VALUE1 */
|
|
__IOM uint32_t ALARM_COUNT_VALUE2; /*!< Offset: 0x084 ALARM_COUNT_VALUE2 */
|
|
__IOM uint32_t ALARM_COUNT_VALUE3; /*!< Offset: 0x088 ALARM_COUNT_VALUE3 */
|
|
__IOM uint32_t ALARM_COUNT_VALUE4; /*!< Offset: 0x08C ALARM_COUNT_VALUE4 */
|
|
__IOM uint32_t ALARM_COUNT_VALUE5; /*!< Offset: 0x090 ALARM_COUNT_VALUE5 */
|
|
__IM uint32_t GENERAL_COUNT0; /*!< Offset: 0x094 GENERAL_COUNT0 */
|
|
__IM uint32_t GENERAL_COUNT1; /*!< Offset: 0x098 GENERAL_COUNT1 */
|
|
__IOM uint32_t STOP_COUNT_ENABLE; /*!< Offset: 0x09C STOP_COUNT_ENABLE */
|
|
__IOM uint32_t STOP_COUNT_CLEAR; /*!< Offset: 0x0A0 STOP_COUNT_CLEAR */
|
|
__IM uint32_t STOP_COUNT_TIME_STAMP0; /*!< Offset: 0x0A4 STOP_COUNT_TIME_STAMP0 */
|
|
__IM uint32_t STOP_COUNT_TIME_STAMP1; /*!< Offset: 0x0A8 STOP_COUNT_TIME_STAMP1 */
|
|
__IM uint32_t STOP_COUNT_TIME_STAMP2; /*!< Offset: 0x0AC STOP_COUNT_TIME_STAMP2 */
|
|
__IM uint32_t STOP_COUNT_TIME_STAMP3; /*!< Offset: 0x0B0 STOP_COUNT_TIME_STAMP3 */
|
|
__IOM uint32_t AUTO_COUNT_CLR; /*!< Offset: 0x0B4 AUTO_COUNT_CLR */
|
|
__IOM uint32_t STOP_COUNT_LOAD0; /*!< Offset: 0x0B8 STOP_COUNT_LOAD0 */
|
|
__IOM uint32_t STOP_COUNT_LOAD1; /*!< Offset: 0x0BC STOP_COUNT_LOAD1 */
|
|
__IOM uint32_t STOP_COUNT_LOAD2; /*!< Offset: 0x0C0 STOP_COUNT_LOAD2 */
|
|
__IOM uint32_t STOP_COUNT_LOAD3; /*!< Offset: 0x0C4 STOP_COUNT_LOAD3 */
|
|
__IOM uint32_t GENERAL_COUNT_SNAP_SHOT; /*!< Offset: 0x0C8 GENERAL_COUNT_SNAP_SHOT_COMMAND */
|
|
__IOM uint32_t STOP_COUNT_SNAP_SHOT; /*!< Offset: 0x0CC STOP_COUNT_SNAP_SHOT_COMMAND */
|
|
__IOM uint32_t PWMCTRL; /*!< Offset: 0x0D0 PWMCTRL */
|
|
__IOM uint32_t PWM_PULSE0; /*!< Offset: 0x0D4 PWM_PULSE0 */
|
|
__IOM uint32_t PWM_PULSE1; /*!< Offset: 0x0D8 PWM_PULSE1 */
|
|
__IOM uint32_t PWM_PULSE2; /*!< Offset: 0x0DC PWM_PULSE2 */
|
|
__IOM uint32_t PWM_PULSE3; /*!< Offset: 0x0E0 PWM_PULSE3 */
|
|
__IM uint32_t KA_BOR_INT; /*!< Offset: 0x0E4 KA_BOR_INT */
|
|
__IOM uint32_t KA_BOR_INT_CLEAR; /*!< Offset: 0x0E8 KA_BOR_INT_CLEAR */
|
|
__IOM uint32_t KA_DLY_EN; /*!< Offset: 0x0EC KA_DLY_EN */
|
|
__IOM uint32_t KA_32K_XTAL_CON; /*!< Offset: 0x0F0 KA_32K_XTAL_CON */
|
|
__IOM uint32_t KA_IOPWR_CTRL; /*!< Offset: 0x0F4 KA_IOPWR_CTRL */
|
|
__IOM uint32_t RTC_CLK_MUX; /*!< Offset: 0x0F8 RTC_CLK_MUX */
|
|
__IOM uint32_t KA_PM_IV_EN; /*!< Offset: 0x0FC KA_PM_IV_EN */
|
|
} BP_RTC_TypeDef;
|
|
|
|
/*---------- Analog Front End Top Control ------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t AFE_CLK_CTRL; /*!< Offset: 0x000 AFE_CLK_CTRL */
|
|
__IOM uint32_t AFE_RST_CTRL; /*!< Offset: 0x004 AFE_RST_CTRL */
|
|
__IOM uint32_t GPIO_TMUX_SEL; /*!< Offset: 0x008 GPIO_TMUX_SEL */
|
|
__IOM uint32_t GP_DAC0; /*!< Offset: 0x00C GP_DAC0 */
|
|
__IOM uint32_t GP_DAC1; /*!< Offset: 0x010 GP_DAC1 */
|
|
__IOM uint32_t GP_ADC0; /*!< Offset: 0x014 GP_ADC0 */
|
|
__IOM uint32_t GP_ADC1; /*!< Offset: 0x018 GP_ADC1 */
|
|
__IOM uint32_t REF_CTRL; /*!< Offset: 0x01C REF_CTRL */
|
|
__IOM uint32_t REGULATOR_CTRL0; /*!< Offset: 0x020 REGULATOR_CTRL0 */
|
|
__IOM uint32_t REGULATOR_CTRL1; /*!< Offset: 0x024 REGULATOR_CTRL1 */
|
|
uint32_t RESERVED1[4];
|
|
__IOM uint32_t TMPX; /*!< Offset: 0x038 TMPX */
|
|
uint32_t RESERVED2;
|
|
__IOM uint32_t V11_RESERVED0; /*!< Offset: 0x040 V11_RESERVED0 */
|
|
__IOM uint32_t V11_RESERVED1; /*!< Offset: 0x044 V11_RESERVED1 */
|
|
__IOM uint32_t V11_RESERVED2; /*!< Offset: 0x048 V11_RESERVED2 */
|
|
__IOM uint32_t V11_RESERVED3; /*!< Offset: 0x04C V11_RESERVED3 */
|
|
__IOM uint32_t V3_RESERVED0; /*!< Offset: 0x050 V3_RESERVED0 */
|
|
__IOM uint32_t V3_RESERVED1; /*!< Offset: 0x054 V3_RESERVED1 */
|
|
__IOM uint32_t TRIM_SELB; /*!< Offset: 0x058 TRIM_SELB */
|
|
__IOM uint32_t FM_SEL; /*!< Offset: 0x05C FM_SEL */
|
|
} BP_AFE_TOP_TypeDef;
|
|
|
|
|
|
/*---------- Analog Front End ADC FIFO Control ---------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t FIFO_INTR_MASK; /*!< Offset: 0x000 FIFO_INTR_MASK */
|
|
__IOM uint32_t FIFO_SW_RESET; /*!< Offset: 0x004 FIFO_SW_RESET */
|
|
__IOM uint32_t FIFO_DMA_SIZE0; /*!< Offset: 0x008 FIFO_DMA_SIZE0 */
|
|
__IOM uint32_t FIFO_READY_SIZE0; /*!< Offset: 0x00C FIFO_READY_SIZE0 */
|
|
__IOM uint32_t FIFO_ENABLE; /*!< Offset: 0x010 FIFO_ENABLE */
|
|
__IOM uint32_t FIFO_DMA_ENABLE; /*!< Offset: 0x014 FIFO_DMA_ENABLE */
|
|
__IOM uint32_t FIFO_INT_CLEAR; /*!< Offset: 0x018 FIFO_INT_CLEAR */
|
|
__IM uint32_t FIFO0_READ_DATA; /*!< Offset: 0x01C FIFO0_READ_DATA */
|
|
__IM uint32_t FIFO1_READ_DATA; /*!< Offset: 0x020 FIFO1_READ_DATA */
|
|
__IM uint32_t FIFO2_READ_DATA; /*!< Offset: 0x024 FIFO2_READ_DATA */
|
|
__IM uint32_t FIFO3_READ_DATA; /*!< Offset: 0x028 FIFO3_READ_DATA */
|
|
__IM uint32_t FIFO4_READ_DATA; /*!< Offset: 0x02C FIFO4_READ_DATA */
|
|
__IM uint32_t FIFO5_READ_DATA; /*!< Offset: 0x030 FIFO5_READ_DATA */
|
|
__IM uint32_t FIFO6_READ_DATA; /*!< Offset: 0x034 FIFO6_READ_DATA */
|
|
__IM uint32_t FIFO7_READ_DATA; /*!< Offset: 0x038 FIFO7_READ_DATA */
|
|
__IM uint32_t FIFO8_READ_DATA; /*!< Offset: 0x03C FIFO8_READ_DATA */
|
|
uint32_t RESERVED;
|
|
__IM uint32_t FIFO_DATA_CNT_SAR; /*!< Offset: 0x044 FIFO_DATA_SAR */
|
|
__IM uint32_t FIFO_DATA_CNT_IDC; /*!< Offset: 0x048 FIFO_DATA_IDC */
|
|
__IM uint32_t FIFO_STATUS; /*!< Offset: 0x04C FIFO_STATUS */
|
|
__IOM uint32_t FIFO_RCLK_MANUAL_CG_EN; /*!< Offset: 0x050 FIFO_RCLK_MANUAL_CG_EN */
|
|
__IOM uint32_t FIFO_RCLK_MANUAL_CG; /*!< Offset: 0x054 FIFO_RCLK_MANUAL_CG */
|
|
__IOM uint32_t FIFO_DMA_SIZE1; /*!< Offset: 0x058 FIFO_DMA_SIZE1 */
|
|
__IOM uint32_t FIFO_READY_SIZE1; /*!< Offset: 0x05C FIFO_READY_SIZE1 */
|
|
__IM uint32_t FIFO_DATA_CNT_SDC; /*!< Offset: 0x060 FIFO_DATA_SDC */
|
|
__IM uint32_t FIFO_INT_STATUS; /*!< Offset: 0x064 FIFO_INT_STATUS */
|
|
} BP_ADC_FIFO_TypeDef;
|
|
|
|
|
|
/*---------- Analog Front End ADC Control ------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t SAR_SEL; /*!< Offset: 0x000 SAR_SEL */
|
|
__IOM uint32_t DC_COMPEN_ADC0; /*!< Offset: 0x004 DC_COMPEN_ADC0 */
|
|
__IOM uint32_t DC_COMPEN_ADC1; /*!< Offset: 0x008 DC_COMPEN_ADC1 */
|
|
__IOM uint32_t DC_COMPEN_ADC2; /*!< Offset: 0x00C DC_COMPEN_ADC2 */
|
|
uint32_t RESERVED1[3];
|
|
__IM uint32_t SAR_ADC0_CH0_DATA; /*!< Offset: 0x01C SAR_ADC0_CH0_DATA */
|
|
__IM uint32_t SAR_ADC0_CH1_DATA; /*!< Offset: 0x020 SAR_ADC0_CH1_DATA */
|
|
__IM uint32_t SAR_ADC1_CH0_DATA; /*!< Offset: 0x024 SAR_ADC1_CH0_DATA */
|
|
__IM uint32_t SAR_ADC1_CH1_DATA; /*!< Offset: 0x028 SAR_ADC1_CH1_DATA */
|
|
__IM uint32_t SAR_ADC2_CH0_DATA; /*!< Offset: 0x02C SAR_ADC2_CH0_DATA */
|
|
__IM uint32_t SAR_ADC2_CH1_DATA; /*!< Offset: 0x030 SAR_ADC2_CH1_DATA */
|
|
__IM uint32_t SD_ADC0_DATA; /*!< Offset: 0x034 SD_ADC0_DATA */
|
|
__IM uint32_t SD_ADC1_DATA; /*!< Offset: 0x038 SD_ADC1_DATA */
|
|
__IM uint32_t SD_ADC2_DATA; /*!< Offset: 0x03C SD_ADC2_DATA */
|
|
uint32_t RESERVED2;
|
|
__IOM uint32_t SAR_ADC_CON; /*!< Offset: 0x044 SAR_ADC_CON */
|
|
__IOM uint32_t SAR_ADC_CTRL; /*!< Offset: 0x048 SAR_ADC_CTRL */
|
|
} BP_ADC_CON_TypeDef;
|
|
|
|
/*---------- Analog Front End SDADC Control ----------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t SDADC_CTRL1; /*!< Offset: 0x000 SDADC_CTRL1 */
|
|
__IOM uint32_t SDADC_CTRL2; /*!< Offset: 0x004 SDADC_CTRL2 */
|
|
__IOM uint32_t SDADC_CTRL3; /*!< Offset: 0x008 SDADC_CTRL3 */
|
|
__IOM uint32_t RESERVED;
|
|
__IOM uint32_t GPADC_TEST_MODE_CTRL; /*!< Offset: 0x010 GPADC_TEST_MODE_CTRL */
|
|
__IOM uint32_t GPADC_LDO_CTRL; /*!< Offset: 0x014 GPADC_LDO_CTRL */
|
|
} BP_SDADC_CON_TypeDef;
|
|
|
|
/*---------- Analog Front End ECG --------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t ECG_EN; /*!< Offset: 0x000 ECG_EN */
|
|
__IOM uint32_t ECG_GAIN; /*!< Offset: 0x004 ECG_GAIN */
|
|
__IOM uint32_t ECG_BW; /*!< Offset: 0x008 ECG_BW */
|
|
__IOM uint32_t ECG_SET; /*!< Offset: 0x00C ECG_SET */
|
|
__IOM uint32_t ECG_INIT; /*!< Offset: 0x010 ECG_INIT */
|
|
__IOM uint32_t ECG_HPF; /*!< Offset: 0x014 ECG_HPF */
|
|
__IOM uint32_t ECG_CONT; /*!< Offset: 0x018 ECG_CONT */
|
|
} BP_AFE_ECG_TypeDef;
|
|
|
|
/*---------- Analog Front End PPG --------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t PPG_GLOBALEN; /*!< Offset: 0x000 PPG_GLOBALEN */
|
|
__IOM uint32_t PPG0_FUNCEN; /*!< Offset: 0x004 PPG0_FUNCEN */
|
|
__IOM uint32_t PPG0_TIA; /*!< Offset: 0x008 PPG0_TIA */
|
|
__IOM uint32_t PPG0_IDC; /*!< Offset: 0x00C PPG0_IDC */
|
|
__IOM uint32_t PPG0_PRT; /*!< Offset: 0x010 PPG0_PRT */
|
|
__IOM uint32_t PPG0_LEDONT; /*!< Offset: 0x014 PPG0_LEDONT */
|
|
__IOM uint32_t PPG0_CONVT; /*!< Offset: 0x018 PPG0_CONVT */
|
|
__IOM uint32_t PPG0_IDCRSTT; /*!< Offset: 0x01C PPG0_IDCRSTT */
|
|
__IOM uint32_t PPG0_AFESETT; /*!< Offset: 0x020 PPG0_AFESETT */
|
|
__IOM uint32_t PPG0_PDNTCTRL; /*!< Offset: 0x024 PPG0_PDNTCTRL */
|
|
__IOM uint32_t PPG0_LEDTSCTRL; /*!< Offset: 0x028 PPG0_LEDTSCTRL */
|
|
__IOM uint32_t PPG0_LEDTSCDAC; /*!< Offset: 0x02C PPG0_LEDTSCDAC */
|
|
__IOM uint32_t PPG0_DCCCTRL; /*!< Offset: 0x030 PPG0_DCCCTRL */
|
|
uint32_t RESERVED1[4];
|
|
__IOM uint32_t PPG1_FUNCEN; /*!< Offset: 0x044 PPG1_FUNCEN */
|
|
__IOM uint32_t PPG1_TIA; /*!< Offset: 0x048 PPG1_TIA */
|
|
__IOM uint32_t PPG1_IDC; /*!< Offset: 0x04C PPG1_IDC */
|
|
__IOM uint32_t PPG1_PRT; /*!< Offset: 0x050 PPG1_PRT */
|
|
uint32_t RESERVED2;
|
|
__IOM uint32_t PPG1_CONVT; /*!< Offset: 0x058 PPG1_CONVT */
|
|
__IOM uint32_t PPG1_IDCRSTT; /*!< Offset: 0x05C PPG1_IDCRSTT */
|
|
__IOM uint32_t PPG1_AFESETT; /*!< Offset: 0x060 PPG1_AFESETT */
|
|
__IOM uint32_t PPG1_PDNTCTRL; /*!< Offset: 0x064 PPG1_PDNTCTRL */
|
|
uint32_t RESERVED3[2];
|
|
__IOM uint32_t PPG1_DCCCTRL; /*!< Offset: 0x070 PPG1_DCCCTRL */
|
|
uint32_t RESERVED4[3];
|
|
__IOM uint32_t PPG_GENERAL; /*!< Offset: 0x080 PPG_GENERAL */
|
|
__IOM uint32_t PPG_AGCLEVEL0; /*!< Offset: 0x084 PPG_AGCLEVEL0 */
|
|
__IOM uint32_t PPG_AGCLEVEL1; /*!< Offset: 0x088 PPG_AGCLEVEL1 */
|
|
__IOM uint32_t PPG_AGCLEVEL2; /*!< Offset: 0x08C PPG_AGCLEVEL2 */
|
|
__IOM uint32_t PPG_AGCTIME; /*!< Offset: 0x090 PPG_AGCTIME */
|
|
__IOM uint32_t PPG_AGCSTEP; /*!< Offset: 0x094 PPG_AGCSTEP */
|
|
__IM uint32_t PPG_AGCSTATUS_TS0; /*!< Offset: 0x098 PPG_AGCSTATUS_TS0 */
|
|
__IM uint32_t PPG_AGCDCAVG_TS0; /*!< Offset: 0x09C PPG_AGCDCAVG_TS0 */
|
|
__IM uint32_t PPG_AGCSTATUS_TS1; /*!< Offset: 0x0A0 PPG_AGCSTATUS_TS1 */
|
|
__IM uint32_t PPG_AGCDCAVG_TS1; /*!< Offset: 0x0A4 PPG_AGCDCAVG_TS1 */
|
|
__IM uint32_t PPG_AGCSTATUS_TS2; /*!< Offset: 0x0A8 PPG_AGCSTATUS_TS2 */
|
|
__IM uint32_t PPG_AGCDCAVG_TS2; /*!< Offset: 0x0AC PPG_AGCDCAVG_TS2 */
|
|
__IM uint32_t PPG_AGCSTATUS_TS3; /*!< Offset: 0x0B0 PPG_AGCSTATUS_TS3 */
|
|
__IM uint32_t PPG_AGCDCAVG_TS3; /*!< Offset: 0x0B4 PPG_AGCDCAVG_TS3 */
|
|
__IOM uint32_t PPG_MANUAL_TEST; /*!< Offset: 0x0B8 PPG_MANUAL_TEST */
|
|
uint32_t RESERVED5;
|
|
__IOM uint32_t LED_FUNCEN; /*!< Offset: 0x0C0 LED_FUNCEN */
|
|
__IOM uint32_t LED_TRIM; /*!< Offset: 0x0C4 LED_TRIM */
|
|
__IOM uint32_t LED_CDAC0; /*!< Offset: 0x0C8 LED_CDAC0 */
|
|
__IOM uint32_t LED_CDAC1; /*!< Offset: 0x0CC LED_CDAC1 */
|
|
__IOM uint32_t LED_CDAC2; /*!< Offset: 0x0D0 LED_CDAC2 */
|
|
__IOM uint32_t LED_CDAC3; /*!< Offset: 0x0D4 LED_CDAC3 */
|
|
} BP_AFE_PPG_TypeDef;
|
|
|
|
/*---------- Analog Front End BIA --------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t BIA_TX_FIL; /*!< Offset: 0x000 BIA_TX_FIL */
|
|
__IOM uint32_t BIA_TX_FREQ; /*!< Offset: 0x004 BIA_TX_FREQ */
|
|
__IOM uint32_t BIA_TX_AMPL; /*!< Offset: 0x008 BIA_TX_AMPL */
|
|
__IOM uint32_t BIA_TX_CUR; /*!< Offset: 0x00C BIA_TX_CUR */
|
|
__IOM uint32_t BIA_TX_SW; /*!< Offset: 0x010 BIA_TX_SW */
|
|
__IOM uint32_t BIA_RX_INPUT; /*!< Offset: 0x014 BIA_RX_INPUT */
|
|
__IOM uint32_t BIA_RX_AMP1; /*!< Offset: 0x018 BIA_RX_AMP1 */
|
|
__IOM uint32_t BIA_RX_AMP2; /*!< Offset: 0x01C BIA_RX_AMP2 */
|
|
__IOM uint32_t BIA_RX_FIL; /*!< Offset: 0x020 BIA_RX_FIL */
|
|
__IOM uint32_t BIA_RX_AMP3; /*!< Offset: 0x024 BIA_RX_AMP3 */
|
|
__IOM uint32_t BIA_RX_COMP; /*!< Offset: 0x028 BIA_RX_COMP */
|
|
__IOM uint32_t BIA_TMUX1; /*!< Offset: 0x02C BIA_TMUX1 */
|
|
__IOM uint32_t BIA_TMUX2; /*!< Offset: 0x030 BIA_TMUX2 */
|
|
__IOM uint32_t BIA_TMUX3; /*!< Offset: 0x034 BIA_TMUX3 */
|
|
__IOM uint32_t BIA_DCTRL1; /*!< Offset: 0x038 BIA_DCTRL1 */
|
|
__IOM uint32_t BIA_IQ_GEN; /*!< Offset: 0x03C BIA_IQ_GEN */
|
|
__IOM uint32_t BIA_DCTRL3; /*!< Offset: 0x040 BIA_DCTRL3 */
|
|
uint32_t RESERVED;
|
|
__IOM uint32_t BIA_TRX_EN; /*!< Offset: 0x048 BIA_TRX_EN */
|
|
__IOM uint32_t BIA_GSR_MODE; /*!< Offset: 0x04C BIA_GSR_MODE */
|
|
__IOM uint32_t BIA_CURRENT_CTRL; /*!< Offset: 0x050 BIA_CURRENT_CTRL */
|
|
__IOM uint32_t BIA_IMP_CTRL; /*!< Offset: 0x054 BIA_IMP_CTRL */
|
|
__IOM uint32_t BIA_HPF_EN; /*!< Offset: 0x058 BIA_HPF_EN */
|
|
__IOM uint32_t BIA_TESTMUX_EN; /*!< Offset: 0x05C BIA_TESTMUX_EN */
|
|
} BP_AFE_BIA_TypeDef;
|
|
|
|
/*---------- Analog Front End GSR --------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t CTRL; /*!< Offset: 0x000 GSR HW Control Register 0 */
|
|
__IOM uint32_t SW_CTRL; /*!< Offset: 0x004 GSR SW Control Register 1 */
|
|
__IOM uint32_t FIT3PCTRL; /*!< Offset: 0x008 GSR External register fitting Register */
|
|
__IOM uint32_t FIT3NCTRL; /*!< Offset: 0x00C GSR External register fitting Register */
|
|
//__IOM uint32_t FIT1PCTRL; /*!< Offset: 0x010 GSR External register fitting Register */
|
|
//__IOM uint32_t FIT1NCTRL; /*!< Offset: 0x014 GSR External register fitting Register */
|
|
} BP_AFE_GSR_TypeDef;
|
|
|
|
/*------------- PL230 uDMA (uDMA) --------------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IM uint32_t DMA_STATUS; /*!< Offset: 0x000 DMA Status Register */
|
|
__OM uint32_t DMA_CFG; /*!< Offset: 0x004 DMA Configuration Register */
|
|
__IOM uint32_t CTRL_BASE_PTR; /*!< Offset: 0x008 Channel Control Data Base Pointer Register */
|
|
__IM uint32_t ALT_CTRL_BASE_PTR; /*!< Offset: 0x00C Channel Alternate Control Data Base Pointer Register */
|
|
__IM uint32_t DMA_WAITONREQ_STATUS; /*!< Offset: 0x010 Channel Wait On Request Status Register */
|
|
__OM uint32_t CHNL_SW_REQUEST; /*!< Offset: 0x014 Channel Software Request Register */
|
|
__IOM uint32_t CHNL_USEBURST_SET; /*!< Offset: 0x018 Channel UseBurst Set Register */
|
|
__OM uint32_t CHNL_USEBURST_CLR; /*!< Offset: 0x01C Channel UseBurst Clear Register */
|
|
__IOM uint32_t CHNL_REQ_MASK_SET; /*!< Offset: 0x020 Channel Request Mask Set Register */
|
|
__OM uint32_t CHNL_REQ_MASK_CLR; /*!< Offset: 0x024 Channel Request Mask Clear Register */
|
|
__IOM uint32_t CHNL_ENABLE_SET; /*!< Offset: 0x028 Channel Enable Set Register */
|
|
__OM uint32_t CHNL_ENABLE_CLR; /*!< Offset: 0x02C Channel Enable Clear Register */
|
|
__IOM uint32_t CHNL_PRI_ALT_SET; /*!< Offset: 0x030 Channel Primary-Alternate Set Register */
|
|
__OM uint32_t CHNL_PRI_ALT_CLR; /*!< Offset: 0x034 Channel Primary-Alternate Clear Register */
|
|
__IOM uint32_t CHNL_PRIORITY_SET; /*!< Offset: 0x038 Channel Priority Set Register */
|
|
__OM uint32_t CHNL_PRIORITY_CLR; /*!< Offset: 0x03C Channel Priority Clear Register */
|
|
uint32_t RESERVED1[3];
|
|
__IOM uint32_t ERR_CLR; /*!< Offset: 0x04C Bus Error Clear Register */
|
|
__IOM uint32_t DMA_MUX; /*!< Offset: 0x050 DMA Channel Mux Within I2C and SPI Peripherals */
|
|
__IOM uint32_t DMA_NOT_MUX; /*!< Offset: 0x054 DMA Channel Not Muxed Within I2C and SPI Peripherals */
|
|
__IOM uint32_t DMA_REQ_GATE; /*!< Offset: 0x058 DMA Request Gating Enable Register */
|
|
} BP_DMA_TypeDef;
|
|
|
|
/*---------- System Control (SYSCON) -----------------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t PMU_SYSCON_CTRL; /*!< Offset: 0x000 PMU_SYSCON_CTRL */
|
|
__IOM uint32_t PMU_SYSCON_DLY_CTRL; /*!< Offset: 0x004 PMU_SYSCON_DLY_CTRL */
|
|
__IOM uint32_t PMU_MCU_DLY_CTRL; /*!< Offset: 0x008 PMU_MCU_DLY_CTRL */
|
|
__IOM uint32_t PMU_SYSCON_DLY_EN; /*!< Offset: 0x00C PMU_SYSCON_DLY_EN */
|
|
__IOM uint32_t RESERVED1;
|
|
__IOM uint32_t PMU_SYSCON_FAST_BOOT; /*!< Offset: 0x014 PMU_SYSCON_FAST_BOOT */
|
|
uint32_t RESERVED2[58];
|
|
__IOM uint32_t MCU_CLK_CTRL; /*!< Offset: 0x100 MCU_CLK_CTRL */
|
|
__IOM uint32_t MCU_CLK_GATE; /*!< Offset: 0x104 MCU_CLK_GATE */
|
|
uint32_t RESERVED3[2];
|
|
__IOM uint32_t PERI_CLK_CTRL; /*!< Offset: 0x110 PERI_CLK_CTRL */
|
|
__IOM uint32_t PERI_CLK_GATE; /*!< Offset: 0x114 PERI_CLK_GATE */
|
|
__IOM uint32_t PERI_CLK_MUX; /*!< Offset: 0x118 PERI_CLK_MUX */
|
|
uint32_t RESERVED4;
|
|
__IOM uint32_t AFE_CLK_CTRL; /*!< Offset: 0x120 AFE_CLK_CTRL */
|
|
uint32_t RESERVED8[55];
|
|
__IOM uint32_t PMU_SYSCON_PD_CTRL; /*!< Offset: 0x200 PMU_SYSCON_PD_CTRL */
|
|
__IM uint32_t PMU_SYSCON_PD_STATUS; /*!< Offset: 0x204 PMU_SYSCON_PD_STATUS */
|
|
__IOM uint32_t PMU_SYSCON_RET_CTRL; /*!< Offset: 0x208 PMU_SYSCON_RET_CTRL */
|
|
__IOM uint32_t SYSCON_FLASH_MODE; /*!< Offset: 0x20C SYSCON_FLASH_MODE */
|
|
uint32_t RESERVED9[124];
|
|
__IOM uint32_t IOCFG_GENERAL; /*!< Offset: 0x400 SYSCON_IOCFGG */
|
|
__IOM uint32_t IOCFG[14]; /*!< Offset: 0x404 SYSCON_IOCFG */
|
|
uint32_t RESERVED10[113];
|
|
__IOM uint32_t PLL_CTRL0; /*!< Offset: 0x600 PLL_CTRL0 */
|
|
__IOM uint32_t PLL_CTRL1; /*!< Offset: 0x604 PLL_CTRL1 */
|
|
__IM uint32_t PLL_STATUS; /*!< Offset: 0x608 PLL_STATUS */
|
|
__IOM uint32_t HSOSC_CTRL; /*!< Offset: 0x60C HSOSC_CTRL */
|
|
__IOM uint32_t LSOSC_CTRL; /*!< Offset: 0x610 LSOSC_CTRL */
|
|
uint32_t RESERVED11[123];
|
|
__IOM uint32_t SRP_IRQEVE; /*!< Offset: 0x800 SRP_IRQEVE */
|
|
__IM uint32_t SRP_STATUS; /*!< Offset: 0x804 SRP_STATUS */
|
|
uint32_t RESERVED12[62];
|
|
__IOM uint32_t SYSCON_IO; /*!< Offset: 0x900 SYSCON_IO */
|
|
__IM uint32_t SYSCON_WAKEUP_STATUS; /*!< Offset: 0x904 SYSCON_WAKEUP_STATUS */
|
|
__IOM uint32_t SYSCON_WAKEUP_STATUS_CLEAR; /*!< Offset: 0x908 SYSCON_WAKEUP_STATUS_CLEAR */
|
|
__IM uint32_t QSPI_MONITOR1; /*!< Offset: 0x90C QSPI_MONITOR1 */
|
|
__IM uint32_t QSPI_MONITOR2; /*!< Offset: 0x910 QSPI_MONITOR2 */
|
|
__IOM uint32_t KA_ACCESS; /*!< Offset: 0x914 KA_ACCESS */
|
|
} BP_SYSCON_TypeDef;
|
|
|
|
/*---------- Sample Rate Converter (SRC) -------------------------------------*/
|
|
|
|
typedef struct {
|
|
__OM uint32_t CTRL; /*!< Offset: 0x000 Control Register */
|
|
__IOM uint32_t CFG; /*!< Offset: 0x004 Configuration Register */
|
|
__IM uint32_t STAT; /*!< Offset: 0x008 Status Register */
|
|
__IOM uint32_t fSTART; /*!< Offset: 0x00C Start Position(float) Register */
|
|
__IOM uint32_t fINC; /*!< Offset: 0x010 Increment Value(float) Register */
|
|
__IOM uint32_t PB_PTR; /*!< Offset: 0x014 Preceding Buffer Pointer Register */
|
|
__IOM uint32_t PB_SIZE; /*!< Offset: 0x018 Preceding Buffer Size Register */
|
|
__IOM uint32_t SB_PTR; /*!< Offset: 0x01C Sample Buffer Pointer Register */
|
|
__IOM uint32_t SB_SIZE; /*!< Offset: 0x020 Sample Buffer Size Register */
|
|
__IOM uint32_t CB_PTR; /*!< Offset: 0x024 Coefficient Buffer Pointer Register */
|
|
__IOM uint32_t CB_SIZE; /*!< Offset: 0x028 Coefficient Buffer Size Register */
|
|
__IOM uint32_t RB_PTR; /*!< Offset: 0x02C Result Buffer Pointer Register */
|
|
__IOM uint32_t RB_SIZE; /*!< Offset: 0x030 Result Buffer Size Register */
|
|
__IOM uint32_t IN_SH; /*!< Offset: 0x034 Shift(in) Register */
|
|
__IOM uint32_t OUT_SH; /*!< Offset: 0x038 Shift(out) Register */
|
|
__IOM uint32_t INT; /*!< Offset: 0x03C SRC Interrupt Register */
|
|
} BP_SRC_TypeDef;
|
|
|
|
/*---------- General Purpose Input Output (GPIO) -----------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t DATA; /*!< Offset: 0x000 DATA Register */
|
|
__IOM uint32_t DATAOUT; /*!< Offset: 0x004 Data Output Latch Register */
|
|
uint32_t RESERVED1[2];
|
|
__IOM uint32_t OUTENSET; /*!< Offset: 0x010 Output Enable Set Register */
|
|
__IOM uint32_t OUTENCLR; /*!< Offset: 0x014 Output Enable Clear Register */
|
|
__IOM uint32_t ALTFUNCSET; /*!< Offset: 0x018 Alternate Function Set Register */
|
|
__IOM uint32_t ALTFUNCCLR; /*!< Offset: 0x01C Alternate Function Clear Register */
|
|
__IOM uint32_t INTENSET; /*!< Offset: 0x020 Interrupt Enable Set Register */
|
|
__IOM uint32_t INTENCLR; /*!< Offset: 0x024 Interrupt Enable Clear Register */
|
|
__IOM uint32_t INTTYPESET; /*!< Offset: 0x028 Interrupt Type Set Register */
|
|
__IOM uint32_t INTTYPECLR; /*!< Offset: 0x02C Interrupt Type Clear Register */
|
|
__IOM uint32_t INTPOLSET; /*!< Offset: 0x030 Interrupt Polarity Set Register */
|
|
__IOM uint32_t INTPOLCLR; /*!< Offset: 0x034 Interrupt Polarity Clear Register */
|
|
union {
|
|
__IM uint32_t INTSTAT; /*!< Offset: 0x038 Interrupt Status Register */
|
|
__OM uint32_t INTCLR; /*!< Offset: 0x038 Interrupt Clear Register */
|
|
};
|
|
__IOM uint32_t ALTFUNCSEL; /*!< Offset: 0x03C Alternate Function Set Register */
|
|
uint32_t RESERVED2[240];
|
|
__IOM uint32_t LB_MASKED[256]; /*!< Offset: 0x400 - 0x7FC Lower byte Masked Access Register */
|
|
__IOM uint32_t UB_MASKED[256]; /*!< Offset: 0x800 - 0xBFC Upper byte Masked Access Register */
|
|
} BP_GPIO_TypeDef;
|
|
|
|
/*---------- Advanced Encryption Standard (AES) ------------------------------*/
|
|
/** @addtogroup BP_AES S1SBP6A Advanced Encryption Standard
|
|
@{
|
|
*/
|
|
typedef struct {
|
|
__IOM uint32_t AESCON; /*!< Offset: 0x000 AES Control */
|
|
__IOM uint32_t AESSTATUS; /*!< Offset: 0x004 AES Status */
|
|
uint32_t RESERVED1[2];
|
|
__IOM uint32_t AESINDATA1; /*!< Offset: 0x010 AES Input Data[31:0] */
|
|
__IOM uint32_t AESINDATA2; /*!< Offset: 0x014 AES Input Data[63:32] */
|
|
__IOM uint32_t AESINDATA3; /*!< Offset: 0x018 AES Input Data[95:64] */
|
|
__IOM uint32_t AESINDATA4; /*!< Offset: 0x01C AES Input Data[127:96] */
|
|
__IM uint32_t AESOUTDATA1; /*!< Offset: 0x020 AES Output Data[31:0] */
|
|
__IM uint32_t AESOUTDATA2; /*!< Offset: 0x024 AES Output Data[63:32] */
|
|
__IM uint32_t AESOUTDATA3; /*!< Offset: 0x028 AES Output Data[95:64] */
|
|
__IM uint32_t AESOUTDATA4; /*!< Offset: 0x02C AES Output Data[127:96] */
|
|
uint32_t RESERVED2[8];
|
|
__IOM uint32_t AESIV1; /*!< Offset: 0x050 AES IV[31:0] */
|
|
__IOM uint32_t AESIV2; /*!< Offset: 0x054 AES IV[63:32] */
|
|
__IOM uint32_t AESIV3; /*!< Offset: 0x058 AES IV[95:64] */
|
|
__IOM uint32_t AESIV4; /*!< Offset: 0x05C AES IV[127:96] */
|
|
uint32_t RESERVED3[8];
|
|
__OM uint32_t AESKEY1; /*!< Offset: 0x080 AES KEY[31:0] */
|
|
__OM uint32_t AESKEY2; /*!< Offset: 0x084 AES KEY[63:32] */
|
|
__OM uint32_t AESKEY3; /*!< Offset: 0x088 AES KEY[95:64] */
|
|
__OM uint32_t AESKEY4; /*!< Offset: 0x08C AES KEY[127:96] */
|
|
__OM uint32_t AESKEY5; /*!< Offset: 0x090 AES KEY[159:128] */
|
|
__OM uint32_t AESKEY6; /*!< Offset: 0x094 AES KEY[191:160] */
|
|
__OM uint32_t AESKEY7; /*!< Offset: 0x098 AES KEY[223:192] */
|
|
__OM uint32_t AESKEY8; /*!< Offset: 0x09C AES KEY[255:224] */
|
|
} BP_AES_TypeDef;
|
|
|
|
/*---------- True Random Number Generator (DTRNG) ----------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t CLKDIV; /*!< Offset: 0x000 DTRNG Clock Divider */
|
|
__IOM uint32_t CTRL; /*!< Offset: 0x004 DTRNG Control */
|
|
__IOM uint32_t POST_CTRL; /*!< Offset: 0x008 DTRNG Post Processor Control */
|
|
__IOM uint32_t FIFO_CTRL; /*!< Offset: 0x00C DTRNG FIFO Control */
|
|
__IOM uint32_t FIFO_0; /*!< Offset: 0x010 DTRNG FIFO */
|
|
} BP_DTRNG_TypeDef;
|
|
|
|
/*------------- Flash Control (FLASH) ----------------------------------------*/
|
|
|
|
typedef struct {
|
|
__IOM uint32_t FRWCON0; /*!< Offset: 0x000 Flash R/W Control Register */
|
|
__IOM uint32_t FSHSTAT; /*!< Offset: 0x004 Flash Status Register */
|
|
uint32_t RESERVED1[2];
|
|
__IOM uint32_t PROTCON; /*!< Offset: 0x010 Protection Control Register */
|
|
__IM uint32_t PROTMON; /*!< Offset: 0x014 Protection Monitoring Register */
|
|
uint32_t RESERVED2[2];
|
|
__IOM uint32_t DCYCRDCON; /*!< Offset: 0x020 DCYCREAD Control Register */
|
|
uint32_t RESERVED3[3];
|
|
__IOM uint32_t LDTCON; /*!< Offset: 0x030 LDTCON Register for Test Mode Only */
|
|
__IOM uint32_t FSHCON0; /*!< Offset: 0x034 Flash Test Register #1 */
|
|
__IOM uint32_t FECCCON; /*!< Offset: 0x038 Flash Test Register #2 */
|
|
__IM uint32_t FECCFADR; /*!< Offset: 0x03C ECC Fault Address */
|
|
__IOM uint32_t DCT0; /*!< Offset: 0x040 DCT0 Option Register */
|
|
__IOM uint32_t DCT1; /*!< Offset: 0x044 DCT1 Option Register */
|
|
uint32_t RESERVED4[2];
|
|
__IOM uint32_t LDT0; /*!< Offset: 0x050 LDT0 Option Register */
|
|
__IOM uint32_t LDT1; /*!< Offset: 0x054 LDT1 Option Register */
|
|
__IOM uint32_t LDT2; /*!< Offset: 0x058 LDT2 Option Register */
|
|
__IOM uint32_t LDT3; /*!< Offset: 0x05C LDT3 Option Register */
|
|
__IM uint32_t MODE; /*!< Offset: 0x060 MODECELL Option Register */
|
|
__IM uint32_t CPA0; /*!< Offset: 0x064 CPA0 Option Register */
|
|
__IM uint32_t BPU; /*!< Offset: 0x068 BPU Option Register */
|
|
uint32_t RESERVED5[9];
|
|
__IOM uint32_t RED0; /*!< Offset: 0x090 RED0 Option Register */
|
|
__IOM uint32_t RED0_MBIT; /*!< Offset: 0x094 RED0 User Mode Register */
|
|
__IOM uint32_t RED1; /*!< Offset: 0x098 RED1 Option Register */
|
|
__IOM uint32_t RED1_MBIT; /*!< Offset: 0x09C RED1 User Mode Register */
|
|
__IOM uint32_t RED2; /*!< Offset: 0x0A0 RED2 Option Register */
|
|
__IOM uint32_t RED2_MBIT; /*!< Offset: 0x0A4 RED2 User Mode Register */
|
|
__IOM uint32_t RED3; /*!< Offset: 0x0A8 RED3 Option Register */
|
|
__IOM uint32_t RED3_MBIT; /*!< Offset: 0x0AC RED3 User Mode Register */
|
|
} BP_FLASH_TypeDef;
|
|
|
|
/*------------- System Control (SYSCTRL) -------------------------------------*/
|
|
typedef struct {
|
|
uint32_t RESERVED1;
|
|
__IOM uint32_t PMUCTRL; /*!< Offset: 0x004 Control PMU feature of system */
|
|
__IOM uint32_t RESETOP; /*!< Offset: 0x008 Determine reset function at LOCKUP state */
|
|
uint32_t RESERVED2;
|
|
__IOM uint32_t RSTINFO; /*!< Offset: 0x010 Reset information of system */
|
|
} BP_SYSCTRL_TypeDef;
|
|
|
|
/*------------- Serial Flash Control (SFLASH) --------------------------------------*/
|
|
typedef struct {
|
|
__IOM uint32_t CALL; /*!< Offset: 0x000 Call Register */
|
|
__IOM uint32_t SFCON0; /*!< Offset: 0x004 Control Register */
|
|
__IOM uint32_t ARM_MODE; /*!< Offset: 0x008 ARM Mode Register */
|
|
__IOM uint32_t THUMB_MODE; /*!< Offset: 0x00C Thumb Mode Register */
|
|
__IOM uint32_t ERASE_ADDRESS; /*!< Offset: 0x010 Erase Address Register */
|
|
__IOM uint32_t PROT_ADDRESS; /*!< Offset: 0x014 Protect Address Register */
|
|
uint32_t RESERVED0;
|
|
__IOM uint32_t CMD0; /*!< Offset: 0x01C Command 0 Register */
|
|
__IOM uint32_t CMD1; /*!< Offset: 0x020 Command 1 Register */
|
|
__IOM uint32_t CMD2; /*!< Offset: 0x024 Command 2 Register */
|
|
__IOM uint32_t CMD3; /*!< Offset: 0x028 Command 3 Register */
|
|
__IOM uint32_t CMD4; /*!< Offset: 0x02C Command 4 Register */
|
|
uint32_t RESERVED1[19];
|
|
__IOM uint32_t CMD5; /*!< Offset: 0x07C (R/W) SFLASH Command 5 Register */
|
|
} BP_SFLASH_TypeDef;
|
|
|
|
/*----- Samsung Reconfigurable Processor Special Function Register (SlimSRP) -----*/
|
|
|
|
typedef struct {
|
|
__IM uint32_t PROC_ID; /*!< Offset: 0x0000 Processor ID */
|
|
uint32_t RESERVED1[63];
|
|
__IM uint32_t PROC_STAT; /*!< Offset: 0x0100 Processor Status */
|
|
__OM uint32_t PROC_PAUSE; /*!< Offset: 0x0104 Processor Pause */
|
|
uint32_t RESERVED2[961];
|
|
__IOM uint32_t TCM_INIT; /*!< Offset: 0x100C TCM_INIT */
|
|
__IOM uint32_t SRP_INTR; /*!< Offset: 0x1010 SRP_INTR */
|
|
__IOM uint32_t SRP_RESULT; /*!< Offset: 0x1014 SRP_RESULT */
|
|
__IOM uint32_t SRP_PARAM0; /*!< Offset: 0x1018 SRP_PARAM0 */
|
|
__IOM uint32_t SRP_PARAM1; /*!< Offset: 0x101C SRP_PARAM1 */
|
|
__IOM uint32_t SRP_PARAM2; /*!< Offset: 0x1020 SRP_PARAM2 */
|
|
__IOM uint32_t SRP_PARAM3; /*!< Offset: 0x1024 SRP_PARAM3 */
|
|
uint32_t RESERVED3[5110];
|
|
__IOM uint32_t CNT_CFG; /*!< Offset: 0x6000 CNT_CFG */
|
|
uint32_t RESERVED4[3];
|
|
__IOM uint32_t CNT_FR_L; /*!< Offset: 0x6010 CNT_FR_L */
|
|
__IOM uint32_t CNT_FR_H; /*!< Offset: 0x6014 CNT_FR_H */
|
|
__IOM uint32_t CNT_ST_L; /*!< Offset: 0x6018 CNT_ST_L */
|
|
__IOM uint32_t CNT_ST_H; /*!< Offset: 0x601C CNT_ST_H */
|
|
uint32_t RESERVED5[1016];
|
|
__IM uint32_t SRP_PC; /*!< Offset: 0x7000 SRP_PC */
|
|
} BP_SRP_TypeDef;
|
|
|
|
|
|
#if defined ( __CC_ARM )
|
|
#pragma no_anon_unions
|
|
#endif
|
|
|
|
/******************************************************************************/
|
|
/* Peripheral memory map */
|
|
/******************************************************************************/
|
|
|
|
/* Peripheral, Flash, Serial Flash and SRAM base address */
|
|
#define BP_FLASH_BASE (0x00000000UL) /*!< (Flash ) Base Address */
|
|
#define BP_SRAM_BASE (0x20000000UL) /*!< (SRAM ) Base Address */
|
|
#define BP_APB_BASE (0x40000000UL) /*!< (APB ) Base Address */
|
|
#define BP_AHB_BASE (0x40020000UL) /*!< (AHB ) Base Address */
|
|
#define BP_SFLASH_BASE (0x60000000UL) /*!< (Serial Flash ) Base Address */
|
|
#define BP_SRP_DSPM_BASE (0x80000000UL) /*!< (SRP DSPM ) Base Address */
|
|
#define BP_SRP_TDM_BASE (0x80070000UL) /*!< (SRP TCM ) Base Address */
|
|
|
|
/* Peripheral memory map */
|
|
#define BP_TIMER0_BASE (BP_APB_BASE + 0x00000UL) /*!< (Timer0 ) Base Address */
|
|
#define BP_TIMER1_BASE (BP_APB_BASE + 0x01000UL) /*!< (Timer1 ) Base Address */
|
|
#define BP_TIMER2_BASE (BP_APB_BASE + 0x02000UL) /*!< (Timer2 ) Base Address */
|
|
#define BP_TIMER3_BASE (BP_APB_BASE + 0x03000UL) /*!< (Timer3 ) Base Address */
|
|
#define BP_TIMER4_BASE (BP_APB_BASE + 0x04000UL) /*!< (Timer4 ) Base Address */
|
|
#define BP_TIMER5_BASE (BP_APB_BASE + 0x05000UL) /*!< (Timer5 ) Base Address */
|
|
#define BP_TIMER6_BASE (BP_APB_BASE + 0x06000UL) /*!< (Timer6 ) Base Address */
|
|
#define BP_TIMER7_BASE (BP_APB_BASE + 0x07000UL) /*!< (Timer7 ) Base Address */
|
|
#define BP_PWM_TIMER_BASE (BP_APB_BASE + 0x07000UL) /*!< (PWM Timer ) Base Address */
|
|
#define BP_DUAL_TIMER0_BASE (BP_APB_BASE + 0x08000UL) /*!< (Dual Timer0 ) Base Address */
|
|
#define BP_DUAL_TIMER1_BASE (BP_APB_BASE + 0x08020UL) /*!< (Dual Timer1 ) Base Address */
|
|
#define BP_WATCHDOG_BASE (BP_APB_BASE + 0x09000UL) /*!< (Watchdog Timer ) Base Address */
|
|
#define BP_UART0_BASE (BP_APB_BASE + 0x0A000UL) /*!< (UART0 ) Base Address */
|
|
#define BP_UART1_BASE (BP_APB_BASE + 0x0B000UL) /*!< (UART1 ) Base Address */
|
|
#define BP_UART2_BASE (BP_APB_BASE + 0x0C000UL) /*!< (UART2 ) Base Address */
|
|
#define BP_SPI0_BASE (BP_APB_BASE + 0x0D000UL) /*!< (SPI0 ) Base Address */
|
|
#define BP_SPI1_BASE (BP_APB_BASE + 0x0E000UL) /*!< (SPI1 ) Base Address */
|
|
#define BP_SPI2_BASE (BP_APB_BASE + 0x0F000UL) /*!< (SPI2 ) Base Address */
|
|
#define BP_SPI3_BASE (BP_APB_BASE + 0x10000UL) /*!< (SPI3 ) Base Address */
|
|
#define BP_SPI4_BASE (BP_APB_BASE + 0x11000UL) /*!< (SPI4 ) Base Address */
|
|
#define BP_I2C0_BASE (BP_APB_BASE + 0x12000UL) /*!< (I2C0 ) Base Address */
|
|
#define BP_I2C1_BASE (BP_APB_BASE + 0x13000UL) /*!< (I2C1 ) Base Address */
|
|
#define BP_I2C2_BASE (BP_APB_BASE + 0x14000UL) /*!< (I2C2 ) Base Address */
|
|
#define BP_I2C3_BASE (BP_APB_BASE + 0x15000UL) /*!< (I2C3 ) Base Address */
|
|
#define BP_I2C4_BASE (BP_APB_BASE + 0x16000UL) /*!< (I2C4 ) Base Address */
|
|
#define BP_DELAY_MON_BASE (BP_APB_BASE + 0x17000UL) /*!< (Delay Monitor ) Base Address */
|
|
#define BP_RTC_BASE (BP_APB_BASE + 0x19000UL) /*!< (Real-Time Counter ) Base Address */
|
|
#define BP_AFE_BASE (BP_APB_BASE + 0x1A000UL) /*!< (AFE TOP ) Base Address */
|
|
#define BP_DMA_BASE (BP_APB_BASE + 0x1B000UL) /*!< (DMA ) Base Address */
|
|
#define BP_SYSCON_BASE (BP_APB_BASE + 0x1C000UL) /*!< (System Control ) Base Address */
|
|
#define BP_SRC_BASE (BP_APB_BASE + 0x1D000UL) /*!< (Sample Rate Converter ) Base Address */
|
|
#define BP_GPIO0_BASE (BP_AHB_BASE + 0x00000UL) /*!< (GPIO0 ) Base Address */
|
|
#define BP_GPIO1_BASE (BP_AHB_BASE + 0x01000UL) /*!< (GPIO1 ) Base Address */
|
|
#define BP_GPIO2_BASE (BP_AHB_BASE + 0x02000UL) /*!< (GPIO2 ) Base Address */
|
|
#define BP_AES_BASE (BP_AHB_BASE + 0x03000UL) /*!< (AES ) Base Address */
|
|
#define BP_DTRNG_BASE (BP_AHB_BASE + 0x04000UL) /*!< (DTRNG ) Base Address */
|
|
#define BP_FLASH_CTRL_BASE (BP_AHB_BASE + 0x05000UL) /*!< (Flash Controller ) Base Address */
|
|
#define BP_SYSCTRL_BASE (BP_AHB_BASE + 0x0F000UL) /*!< (System Controller ) Base Address */
|
|
#define BP_SFLASH_CTRL_BASE (0x70000000UL) /*!< (Serial Flash Controller) Base Address */
|
|
#define BP_SRP_SFR_BASE (0x80078000UL) /*!< (SRP SFR ) Base Address */
|
|
|
|
#define BP_AFE_TOP_BASE (BP_AFE_BASE + 0x000UL) /*!< (AFE TOP ) Base Address */
|
|
#define BP_AFE_ECG_BASE (BP_AFE_BASE + 0x100UL) /*!< (AFE ECG ) Base Address */
|
|
#define BP_AFE_PPG_BASE (BP_AFE_BASE + 0x200UL) /*!< (AFE PPG ) Base Address */
|
|
#define BP_AFE_BIA_BASE (BP_AFE_BASE + 0x300UL) /*!< (AFE BIA ) Base Address */
|
|
#define BP_AFE_GSR_BASE (BP_AFE_BASE + 0x400UL) /*!< (AFE GSR ) Base Address */
|
|
#define BP_ADC_FIFO_BASE (BP_AFE_BASE + 0x500UL) /*!< (ADC_FIFO ) Base Address */
|
|
#define BP_ADC_CON_BASE (BP_AFE_BASE + 0x600UL) /*!< (ADC_CON ) Base Address */
|
|
#define BP_SDADC_CON_BASE (BP_AFE_BASE + 0x700UL) /*!< (SDADC_CON ) Base Address */
|
|
|
|
/******************************************************************************/
|
|
/* Peripheral declaration */
|
|
/******************************************************************************/
|
|
|
|
#define BP_TIMER0 ((BP_TIMER_TypeDef *) BP_TIMER0_BASE)
|
|
#define BP_TIMER1 ((BP_TIMER_TypeDef *) BP_TIMER1_BASE)
|
|
#define BP_TIMER2 ((BP_TIMER_TypeDef *) BP_TIMER2_BASE)
|
|
#define BP_TIMER3 ((BP_TIMER_TypeDef *) BP_TIMER3_BASE)
|
|
#define BP_TIMER4 ((BP_TIMER_TypeDef *) BP_TIMER4_BASE)
|
|
#define BP_TIMER5 ((BP_TIMER_TypeDef *) BP_TIMER5_BASE)
|
|
#define BP_TIMER6 ((BP_TIMER_TypeDef *) BP_TIMER6_BASE)
|
|
#define BP_TIMER7 ((BP_TIMER_TypeDef *) BP_TIMER7_BASE)
|
|
#define BP_PWM_TIMER ((BP_PWM_TIMER_TypeDef *) BP_PWM_TIMER_BASE)
|
|
#define BP_DUAL_TIMER0 ((BP_DUAL_TIMER_TypeDef *) BP_DUAL_TIMER0_BASE)
|
|
#define BP_DUAL_TIMER1 ((BP_DUAL_TIMER_TypeDef *) BP_DUAL_TIMER1_BASE)
|
|
#define BP_WATCHDOG ((BP_WATCHDOG_TypeDef *) BP_WATCHDOG_BASE)
|
|
#define BP_UART0 ((BP_UART_TypeDef *) BP_UART0_BASE)
|
|
#define BP_UART1 ((BP_UART_TypeDef *) BP_UART1_BASE)
|
|
#define BP_UART2 ((BP_UART_TypeDef *) BP_UART2_BASE)
|
|
#define BP_SPI0 ((BP_SPI_TypeDef *) BP_SPI0_BASE)
|
|
#define BP_SPI1 ((BP_SPI_TypeDef *) BP_SPI1_BASE)
|
|
#define BP_SPI2 ((BP_SPI_TypeDef *) BP_SPI2_BASE)
|
|
#define BP_SPI3 ((BP_SPI_TypeDef *) BP_SPI3_BASE)
|
|
#define BP_SPI4 ((BP_SPI_TypeDef *) BP_SPI4_BASE)
|
|
#define BP_I2C0 ((BP_I2C_TypeDef *) BP_I2C0_BASE)
|
|
#define BP_I2C1 ((BP_I2C_TypeDef *) BP_I2C1_BASE)
|
|
#define BP_I2C2 ((BP_I2C_TypeDef *) BP_I2C2_BASE)
|
|
#define BP_I2C3 ((BP_I2C_TypeDef *) BP_I2C3_BASE)
|
|
#define BP_I2C4 ((BP_I2C_TypeDef *) BP_I2C4_BASE)
|
|
#define BP_DELAY_MON ((BP_DELAY_MON_TypeDef *) BP_DELAY_MON_BASE)
|
|
#define BP_RTC ((BP_RTC_TypeDef *) BP_RTC_BASE)
|
|
#define BP_AFE_TOP ((BP_AFE_TOP_TypeDef *) BP_AFE_TOP_BASE)
|
|
#define BP_AFE_ECG ((BP_AFE_ECG_TypeDef *) BP_AFE_ECG_BASE)
|
|
#define BP_AFE_PPG ((BP_AFE_PPG_TypeDef *) BP_AFE_PPG_BASE)
|
|
#define BP_AFE_BIA ((BP_AFE_BIA_TypeDef *) BP_AFE_BIA_BASE)
|
|
#define BP_AFE_GSR ((BP_AFE_GSR_TypeDef *) BP_AFE_GSR_BASE)
|
|
#define BP_ADC_FIFO ((BP_ADC_FIFO_TypeDef *) BP_ADC_FIFO_BASE)
|
|
#define BP_ADC_CON ((BP_ADC_CON_TypeDef *) BP_ADC_CON_BASE)
|
|
#define BP_SDADC_CON ((BP_SDADC_CON_TypeDef *) BP_SDADC_CON_BASE)
|
|
#define BP_DMA ((BP_DMA_TypeDef *) BP_DMA_BASE)
|
|
#define BP_SYSCON ((BP_SYSCON_TypeDef *) BP_SYSCON_BASE)
|
|
#define BP_SRC ((BP_SRC_TypeDef *) BP_SRC_BASE)
|
|
#define BP_GPIO0 ((BP_GPIO_TypeDef *) BP_GPIO0_BASE)
|
|
#define BP_GPIO1 ((BP_GPIO_TypeDef *) BP_GPIO1_BASE)
|
|
#define BP_GPIO2 ((BP_GPIO_TypeDef *) BP_GPIO2_BASE)
|
|
#define BP_AES ((BP_AES_TypeDef *) BP_AES_BASE)
|
|
#define BP_DTRNG ((BP_DTRNG_TypeDef *) BP_DTRNG_BASE)
|
|
#define BP_FLASH ((BP_FLASH_TypeDef *) BP_FLASH_CTRL_BASE)
|
|
#define BP_SYSCTRL ((BP_SYSCTRL_TypeDef *) BP_SYSCTRL_BASE)
|
|
#define BP_SFLASH ((BP_SFLASH_TypeDef *) BP_SFLASH_CTRL_BASE)
|
|
#define BP_SRP ((BP_SRP_TypeDef *) BP_SRP_SFR_BASE)
|
|
|
|
#define BP_SFLASH_ADDR_CMD ((uint8_t *) BP_SFLASH_CTRL_BASE + 0x59UL)
|
|
#define BP_SFALSH_SECTOR_ERASE ((uint8_t *) BP_SFLASH_CTRL_BASE + 0x5EUL)
|
|
#define BP_SFALSH_MODE ((uint8_t *) BP_SFLASH_CTRL_BASE + 0x74UL)
|
|
#define BP_SFALSH_RDID ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xACUL)
|
|
#define BP_SFALSH_BLOCK_ERASE ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xBEUL)
|
|
#define BP_SFALSH_CHIP_ERASE ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xCEUL)
|
|
#define BP_SFALSH_RDSR ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xDCUL)
|
|
#define BP_SFLASH_WRDI ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xDDUL)
|
|
#define BP_SFALSH_WRSR ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xDEUL)
|
|
#define BP_SFALSH_WREN ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xEEUL)
|
|
#define BP_SFALSH_PROT_DIS ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xF0UL)
|
|
#define BP_SFALSH_PROT_EN ((uint8_t *) BP_SFLASH_CTRL_BASE + 0xF1UL)
|
|
|
|
#endif /* __S1SBP6A_H */
|