/*---------------------------------------------------------------------------- * 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); }