nt9856x/code/hdal/drivers/k_driver/include/comm/hwpower.h
2023-03-28 15:07:53 +08:00

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