mirror of
https://github.com/taubel/sdk-ameba-v4.0b-gcc.git
synced 2026-07-06 19:35:44 +00:00
142 lines
5.2 KiB
C
142 lines
5.2 KiB
C
/**
|
|
******************************************************************************
|
|
* @file rtl8710b_backup_reg.h
|
|
* @author
|
|
* @version V1.0.0
|
|
* @date 2016-05-17
|
|
* @brief This file provides firmware functions to manage the 16bytes backup registers
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* This module is a confidential and proprietary property of RealTek and
|
|
* possession or use of this module requires written permission of RealTek.
|
|
*
|
|
* Copyright(c) 2016, Realtek Semiconductor Corporation. All rights reserved.
|
|
******************************************************************************
|
|
*/
|
|
|
|
#ifndef _RTL8710B_BACKUP_REG_H_
|
|
#define _RTL8710B_BACKUP_REG_H_
|
|
|
|
/** @addtogroup AmebaZ_Platform
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup BKUP_REG
|
|
* @brief BKUP_REG driver modules
|
|
* @{
|
|
*/
|
|
|
|
/** @addtogroup BKUP_REG
|
|
* @verbatim
|
|
*****************************************************************************************
|
|
* Introduction
|
|
*****************************************************************************************
|
|
* backup register size:
|
|
* -16bytes (4 dwords)
|
|
*
|
|
* usage:
|
|
* - user can use this registers to save some data before reset happens
|
|
*
|
|
* backup register can not be reset by following functions:
|
|
* - cpu reset
|
|
* - system reset
|
|
* - soc sleep mode
|
|
* - soc deep standby mode
|
|
*
|
|
* backup register will be reset by following functions:
|
|
* - soc deep sleep mode
|
|
* - soc power down reset
|
|
* - soc power off
|
|
*
|
|
* system defined bits (other bits are reserved for user):
|
|
* - dword0[0]: watchdog reset or system reset (distinguish from BIT(5) by Software)
|
|
* - dword0[1]: BOR2 HW temp bit
|
|
* - dword0[2]: SW reserved
|
|
* - dword0[3]: this is SW set bit before reboot, for uart download
|
|
* - dword0[4]: this is SW set bit before reboot, for uart download debug
|
|
* - dword0[5]: this is SW set bit before reboot, for distinguish watchdog and system reset
|
|
* - dword0[6]: BOR2 HW temp bit
|
|
* - dword0[7]: 1: enable bor2 detection; 0: disable
|
|
*
|
|
*****************************************************************************************
|
|
* how to use
|
|
*****************************************************************************************
|
|
* BKUP_Write: write a dword backup register
|
|
* BKUP_Read: read a dword backup register
|
|
* BKUP_Set: set 1 to some bits of backup register
|
|
* BKUP_Clear: set 0 to some bits of backup register
|
|
*****************************************************************************************
|
|
* @endverbatim
|
|
*/
|
|
|
|
/* Exported constants --------------------------------------------------------*/
|
|
|
|
/** @defgroup BKUP_REG_Exported_Constants BKUP_REG Exported Constants
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup BKUP_REG_Idx_definitions
|
|
* @{
|
|
*/
|
|
#define BKUP_REG0 ((u32)0x00000000) /*!< bit0~bit5 is defined by system, other bits can be used by user */
|
|
#define BKUP_REG1 ((u32)0x00000001) /*!< all bits can be used by user */
|
|
#define BKUP_REG2 ((u32)0x00000002) /*!< all bits can be used by user */
|
|
#define BKUP_REG3 ((u32)0x00000003) /*!< all bits can be used by user */
|
|
#define IS_BKUP_REG(IDX) (((IDX) == BKUP_REG0) || \
|
|
((IDX) == BKUP_REG1) ||\
|
|
((IDX) == BKUP_REG2) ||\
|
|
((IDX) == BKUP_REG3))
|
|
/**
|
|
* @}
|
|
*/
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
/** @defgroup BKUP_REG_Exported_Functions BKUP_REG Exported Functions
|
|
* @{
|
|
*/
|
|
_LONG_CALL_ void BKUP_Write(u32 DwordIdx, u32 WriteVal);
|
|
_LONG_CALL_ u32 BKUP_Read(u32 DwordIdx);
|
|
_LONG_CALL_ void BKUP_Set(u32 DwordIdx, u32 BitMask);
|
|
_LONG_CALL_ void BKUP_Clear(u32 DwordIdx, u32 BitMask);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Registers Definitions --------------------------------------------------------*/
|
|
/**************************************************************************//**
|
|
* @defgroup BKUP_REG_Register_Definitions BKUP_REG Register Definitions
|
|
* @{
|
|
*****************************************************************************/
|
|
|
|
/**************************************************************************//**
|
|
* @defgroup BKUP_REG_WDORD0
|
|
* @{
|
|
*****************************************************************************/
|
|
#define BIT_SYS_BOR_DETECION BIT(7) /*!< 1: enable bor2 detection; 0: disable */
|
|
#define BIT_BOR2_RESET_TEMP BIT(6) /*!< BOR2 HW temp bit */
|
|
#define BIT_SYS_RESET_HAPPEN BIT(5) /*!< this is SW set bit before reboot, for distinguish watchdog and system reset */
|
|
#define BIT_UARTBURN_DEBUG BIT(4) /*!< this is SW set bit before reboot, for uart download debug */
|
|
#define BIT_UARTBURN_BOOT BIT(3) /*!< this is SW set bit before reboot, for uart download */
|
|
#define BIT_RTC_RESTORE BIT(2) /*!< this is SW set bit after rtc init */
|
|
#define BIT_BOR2_RESET_HAPPEN BIT(1) /*!< BOR2 (brown out reset) happen */
|
|
#define BIT_CPU_RESET_HAPPEN BIT(0) /*!< watchdog reset or system reset (distinguish from BIT(5) by Software) */
|
|
|
|
#define BIT_RTC_BACKUP ((u32)0x0000FF00) /*!< used to backup rtc year before reset */
|
|
|
|
/** @} */
|
|
/** @} */
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#endif //_RTL8710B_BACKUP_REG_H_
|
|
/******************* (C) COPYRIGHT 2016 Realtek Semiconductor *****END OF FILE****/
|