96 lines
2.5 KiB
C
96 lines
2.5 KiB
C
/**
|
|
HW power utility.
|
|
|
|
HW power utility.
|
|
|
|
@file HwPower.h
|
|
@ingroup mIUtilHWPower
|
|
@note Nothing.
|
|
|
|
Copyright Novatek Microelectronics Corp. 2014. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _HWPOWER_H
|
|
#define _HWPOWER_H
|
|
|
|
#if defined(__FREERTOS) // only support on freertos
|
|
|
|
/**
|
|
@addtogroup mIUtilHWPower
|
|
*/
|
|
//@{
|
|
|
|
|
|
#define POWER_STATE_SRC 0 ///< power on source (POWER_ID_XXX)
|
|
#define POWER_STATE_FIRST 1 ///< power on first time (power lost)
|
|
|
|
/**
|
|
Check state
|
|
|
|
Check state on power on
|
|
|
|
@param[in] stateID state index.
|
|
|
|
@return value.
|
|
|
|
EX:
|
|
hwpower_get_poweron_state(POWER_STATE_SRC);
|
|
hwpower_get_poweron_state(POWER_STATE_FIRST);
|
|
*/
|
|
UINT32 hwpower_get_poweron_state(UINT32 stateID);
|
|
|
|
#define POWER_ID_PSW1 0 ///< power switch 1, power off timer
|
|
#define POWER_ID_PSW2 1 ///< power switch 2
|
|
#define POWER_ID_PSW3 2 ///< power switch 3
|
|
#define POWER_ID_PSW4 3 ///< power switch 4
|
|
#define POWER_ID_HWRT 4 ///< h/w reset timer (power alarm timer)
|
|
#define POWER_ID_SWRT 5 ///< s/w reset timer (watch dog timer)
|
|
|
|
/**
|
|
Get power key
|
|
|
|
Get power key
|
|
|
|
@param[in] pwrID power index.
|
|
|
|
@return value.
|
|
|
|
EX:
|
|
hwpower_get_power_key(POWER_ID_PSW1);
|
|
hwpower_get_power_key(POWER_ID_PSW2);
|
|
hwpower_get_power_key(POWER_ID_PSW3);
|
|
hwpower_get_power_key(POWER_ID_PSW4);
|
|
hwpower_get_power_key(POWER_ID_HWRT);
|
|
hwpower_get_power_key(POWER_ID_SWRT);
|
|
*/
|
|
UINT32 hwpower_get_power_key(UINT32 pwrID);
|
|
|
|
/**
|
|
Set power key
|
|
|
|
Set power key
|
|
|
|
@param[in] pwrID power index.
|
|
@param[in] value value.
|
|
|
|
EX:
|
|
hwpower_set_power_key(POWER_ID_PSW1, 0xf0); //keep power on - clear power off timer
|
|
hwpower_set_power_key(POWER_ID_PSW1, 0xff); //power off NOW
|
|
hwpower_set_power_key(POWER_ID_HWRT, 0); //disable h/w reset timer
|
|
hwpower_set_power_key(POWER_ID_HWRT, 1); //enable h/w reset timer
|
|
hwpower_set_power_key(POWER_ID_HWRT, 0xf0); //keep power on - clear h/w reset timer
|
|
hwpower_set_power_key(POWER_ID_HWRT, 0xff); //h/w reset NOW
|
|
hwpower_set_power_key(POWER_ID_SWRT, 0); //disable s/w reset timer
|
|
hwpower_set_power_key(POWER_ID_SWRT, 1); //enable s/w reset timer
|
|
hwpower_set_power_key(POWER_ID_SWRT, 0xf0); //keep power on - clear s/w reset timer
|
|
hwpower_set_power_key(POWER_ID_SWRT, 0xff); //s/w reset NOW
|
|
*/
|
|
void hwpower_set_power_key(UINT32 pwrID, UINT32 value);
|
|
|
|
|
|
//@}
|
|
|
|
#endif
|
|
#endif //_HWPOWER_H
|
|
|