78 lines
2.7 KiB
C
78 lines
2.7 KiB
C
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
****************************************************************************/
|
|
#ifndef IOT_PLC_PM_API_H
|
|
#define IOT_PLC_PM_API_H
|
|
|
|
#include "os_types_api.h"
|
|
#include "iot_config_api.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* define the message send to callback */
|
|
/* all power collapsed */
|
|
#define IOT_PLC_PM_MSG_POWER_COLLAPSED 1
|
|
/* phase power collapsed */
|
|
#define IOT_PLC_PM_MSG_PHASE_COLLAPSED 2
|
|
/* module pulled out */
|
|
#define IOT_PLC_PM_MSG_MODULE_PULL_OUT 3
|
|
/* all power supply returns to normal after collapsed */
|
|
#define IOT_PLC_PM_MSG_POWER_RECOVERED 4
|
|
|
|
/* @brief the power listener callback function format
|
|
* @param message: power message to be sent to the callback,
|
|
* see IOT_PLC_PM_MSG_XXX.
|
|
* @param data: data of each message. different message may have different
|
|
* meaning.
|
|
* IOT_PLC_PM_MSG_POWER_COLLAPSED - not used.
|
|
* IOT_PLC_PM_MSG_PHASE_COLLAPSED - bit 0 mark if phase A power
|
|
* collapsed. bit 1 mark if phase B power collapsed. bit 2 mark
|
|
* if phase C power collapsed.
|
|
*/
|
|
typedef void (*iot_plc_pm_listener_func_t)(uint32_t message, uint32_t data);
|
|
|
|
/* @brief register power listener callback function
|
|
* @param exe_func: the callback function for power message listening
|
|
* @return
|
|
* ERR_FAIL -- operation failed.
|
|
* ERR_INVAL -- operation invalid.
|
|
* ERR_OK -- operation successful.
|
|
*/
|
|
uint32_t iot_plc_pm_register_listener(iot_plc_pm_listener_func_t exe_func);
|
|
|
|
/**
|
|
* @brief check power management sub system.
|
|
* @retval: ERR_OK -- power management sub system support.
|
|
* @retval: otherwise -- not supported, see ERR_XXX.
|
|
*/
|
|
uint32_t iot_plc_pm_power_check(void);
|
|
|
|
/**
|
|
* @brief trigger trigger power off process
|
|
*/
|
|
void iot_plc_pm_trig_power_off(void);
|
|
|
|
/* @brief set power recover policy
|
|
* @param policy: 1 - not restart, 0 - restart.
|
|
*/
|
|
void iot_plc_pm_set_power_recover_policy(uint32_t policy);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* IOT_PLC_PM_API_H */
|
|
|