You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

288 lines
6.3 KiB

/*
* Copyright (c) Hisilicon Technologies Co., Ltd. 2019-2021. All rights reserved.
* Description: pmoc api code for application
*/
#define LOG_MODULE_ID SOC_ID_PM
#define LOG_UNF_TRACE 0
#define LOG_FUNC_TRACE 0
#include "uapi_pmoc.h"
#include "mpi_pmoc_ext.h"
#include "soc_log.h"
td_s32 uapi_pmoc_init(td_void)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_init();
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_init, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_deinit(td_void)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_deinit();
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_deinit, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_suspend_param(uapi_pmoc_wakeup_src source, td_bool enable,
uapi_pmoc_suspend_param *param)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_suspend_param((ext_pmoc_wakeup_src)source, enable, (ext_pmoc_suspend_param *)param);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_suspend_param, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_get_suspend_param(uapi_pmoc_wakeup_src source, td_bool *enable,
uapi_pmoc_suspend_param *param)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_get_suspend_param((ext_pmoc_wakeup_src)source, enable, (ext_pmoc_suspend_param *)param);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_get_suspend_param, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_wakeup_type(uapi_pmoc_wakeup_type wakeup_type)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_wakeup_type((ext_pmoc_wakeup_type)wakeup_type);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_wakeup_type, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_enter_standby(uapi_pmoc_wakeup_src *wakeup_src)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_enter_standby((ext_pmoc_wakeup_src *)wakeup_src);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_enter_standby, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_get_wakeup_attr(uapi_pmoc_wakeup_attr *attr)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_get_wakeup_attr((ext_pmoc_wakeup_attr *)attr);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_get_wakeup_attr, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_get_standby_period(td_u32 *standby_period)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_get_standby_period(standby_period);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_get_standby_period, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_enter_active_standby(uapi_pmoc_active_standby_modle model)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_enter_active_standby((ext_pmoc_active_standby_modle)model);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_enter_active_standby, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_quit_active_standby(td_void)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_quit_active_standby();
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_quit_active_standby, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_standby_display_param(uapi_pmoc_display_param *display_param)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_standby_display_param((ext_pmoc_display_param *)display_param);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_standby_display_param, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_gpio_power_off(uapi_pmoc_poweroff_gpio_param *param)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_gpio_power_off((ext_pmoc_poweroff_gpio_param *)param);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_gpio_power_off, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_breath_led(td_u8 group, td_u8 bit, td_u32 led_breath_cycle)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_breath_led(group, bit, led_breath_cycle);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_breath_led, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_standby_led(td_u8 group, td_u8 bit, td_u8 level)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_standby_led(group, bit, level);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_standby_led, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_set_mcu_msg(td_u32 msg_index, td_u32 value)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_set_mcu_msg(msg_index, value);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_set_mcu_msg, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_get_mcu_msg(td_u32 msg_index, td_u32 *value)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_get_mcu_msg(msg_index, value);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_get_mcu_msg, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}
td_s32 uapi_pmoc_get_chip_temperature(uapi_pmoc_chip_temperature *chip_temprature)
{
td_s32 ret;
soc_dbg_func_enter();
ret = ext_mpi_pmoc_get_chip_temperature((ext_mpi_pmoc_chip_temperature *)chip_temprature);
if (ret != TD_SUCCESS) {
soc_err_print_call_fun_err(ext_mpi_pmoc_get_chip_temperature, ret);
return ret;
}
soc_dbg_func_exit();
return TD_SUCCESS;
}