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