67 lines
2.2 KiB
C
67 lines
2.2 KiB
C
/*----------------------------------------------------------------------------
|
|
* Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved.
|
|
*
|
|
* Description: common_pm_port.c
|
|
*
|
|
* Author: luziquan@ss-tjd.com
|
|
*
|
|
* Create: 2024-05-29
|
|
*--------------------------------------------------------------------------*/
|
|
|
|
#include "common_pm_port.h"
|
|
#include "common_pm.h"
|
|
#include "gpio.h"
|
|
#include "pinctrl.h"
|
|
#include "sys_config.h"
|
|
|
|
// clang-format off
|
|
#define ENABLE_PRINT_INFO 1
|
|
#if ENABLE_PRINT_INFO
|
|
#define static_print_info(...) sys_pm_log_i(__VA_ARGS__) // 一般信息打印宏控制
|
|
#define static_print_warn(...) sys_pm_log_w(__VA_ARGS__) // 警告信息打印一般常开
|
|
#define static_print_error(...) sys_pm_log_e(__VA_ARGS__) // 错误信息打印一般常开
|
|
#else
|
|
#define static_print_info(...)
|
|
#define static_print_warn(...)
|
|
#define static_print_error(...)
|
|
#endif
|
|
// clang-format on
|
|
|
|
void power_manager_gpio_init(void)
|
|
{
|
|
uapi_gpio_init();
|
|
uapi_pin_set_mode(MASTER_DCDC_GPIO_PIN, (pin_mode_t)HAL_PIO_FUNC_GPIO);
|
|
uapi_gpio_set_dir(MASTER_DCDC_GPIO_PIN, GPIO_DIRECTION_OUTPUT);
|
|
uapi_gpio_set_val(MASTER_DCDC_GPIO_PIN, GPIO_LEVEL_HIGH);
|
|
}
|
|
|
|
uint8_t power_manager_gpio_set_dir(uint32_t gpio_pin, uint8_t dir)
|
|
{
|
|
// static_print_info("power_manager_gpio_set_dir gpio_pin %d, dir %d", gpio_pin, dir);
|
|
uint32_t ret = 0;
|
|
ret = uapi_gpio_set_dir(gpio_pin, dir);
|
|
if (ret != 0) {
|
|
static_print_error("power_manager_gpio_set_dir failed 0x%x", ret);
|
|
return GPIO_DIRECTION_INPUT;
|
|
}
|
|
return dir;
|
|
}
|
|
|
|
uint8_t power_manager_gpio_set(uint32_t gpio_pin, uint8_t value)
|
|
{
|
|
// static_print_info("power_manager_gpio_set gpio_pin %d, value %d", gpio_pin, value);
|
|
uint32_t ret = 0;
|
|
ret = uapi_gpio_set_val(gpio_pin, value);
|
|
if (ret != 0) {
|
|
static_print_error("power_manager_gpio_set %d value %d failed 0x%x", gpio_pin, value, ret);
|
|
if (value == GPIO_LEVEL_LOW)
|
|
return GPIO_LEVEL_HIGH;
|
|
else
|
|
return GPIO_LEVEL_LOW;
|
|
}
|
|
return value;
|
|
}
|
|
|
|
uint8_t power_manager_gpio_get(uint32_t gpio_pin) { return uapi_gpio_get_val(gpio_pin); }
|
|
|