sdk-ameba-v4.0b-gcc/component/soc/realtek/8711b/fwlib/include/rtl8710b_backup_reg.h
Tautvydas Belgeras 60a7afcc83 initial commit
2018-06-05 16:16:17 +03:00

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****/