/** ****************************************************************************** * @copyright Copyright (C), 2016-2022, ConvenientPower. Co., Ltd. * @file task_pd_pe_epr.h * @version 1.0 * @author qing.cheng * @date 2023-03-18 * @brief Header file of TASK_PD_EPR_H module. ****************************************************************************** */ #ifndef _TASK_PD_PE_EPR_H_ #define _TASK_PD_PE_EPR_H_ #include "core_comm.h" #include "drv_comm.h" #include "pd_app.h" #include "task_pd_pe_define.h" #include "drv_pd_phy.h" #define PD_EPRMDO_SIZE 4 #define PD_EPRMD_ACT_ENTER 0x01 #define PD_EPRMD_ACT_ENTER_ACK 0x02 #define PD_EPRMD_ACT_ENTER_SUCC 0x03 #define PD_EPRMD_ACT_ENTER_FAILED 0x04 #define PD_EPRMD_ACT_EXIT 0x05 #define PD_ERPMD_ENTER_FAILED_UNKNWON 0x00 #define PD_ERPMD_ENTER_FAILED_CABLE 0x01 #define PD_ERPMD_ENTER_FAILED_SOURCE_VCONN 0x02 #define PD_ERPMD_ENTER_FAILED_RDO 0x03 #define PD_ERPMD_ENTER_FAILED_UNABLE_NOW 0x04 #define PD_ERPMD_ENTER_FAILED_PDO 0x05 #define PD_EPR_CABLE_MODE_50V_5A_BIT_SET 0x20440 #pragma anon_unions typedef union { uint32_t data32; uint8_t byte[PD_EPRMDO_SIZE]; struct { uint8_t reserved0; uint8_t reserved1; uint8_t data; uint8_t action; }; } pd_eprmdo_u; #define PD_ECDB_SIZE 2 #define PD_ECDB_TYPE_EPR_GET_SOURCE_CAP 1 #define PD_ECDB_TYPE_EPR_GET_SINK_CAP 2 #define PD_ECDB_TYPE_EPR_KEEP_ALIVE 3 #define PD_ECDB_TYPE_EPR_KEEP_ALIVE_ACK 4 typedef union { uint8_t byte[PD_ECDB_SIZE]; struct { uint8_t type; uint8_t data; }; } pd_ecdb_u; /* * @brief pd_prl_epr_req_msg * @param port * @param pd_param * @note * @retval */ void pd_prl_epr_req_msg(uint8_t port, pd_param_s* pd_param); /* * @brief pd_src_epr_mode_msg_assemble * @param port * @param pd_param * @note * @retval NULL */ void pd_src_epr_mode_msg_assemble(uint8_t port, pd_eprmdo_u *epr_mode, pd_param_s* pd_param); /* * @brief PE_SRC_Evaluate_EPR_Mode_Entry_callback * @param port * @param pd_param * @note * @retval */ void PE_SRC_Evaluate_EPR_Mode_Entry_callback(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_Evaluate_EPR_Mode_Entry_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_Evaluate_EPR_Mode_Entry_action(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Entry_Ack_callback * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Entry_Ack_callback(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Entry_Ack_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Entry_Ack_action(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Discover_Cable_callback * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Discover_Cable_callback(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Discover_Cable_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Discover_Cable_action(uint8_t port, pd_param_s* pd_param); /* * @brief pd_epr_cable_check * @param port * @param pd_param * @note * @retval */ bool pd_epr_cable_check(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Evaluate_Cable_EPR_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Evaluate_Cable_EPR_action(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Entry_Succeeded_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Entry_Succeeded_action(uint8_t port, pd_param_s* pd_param); /* * @brief pd_src_epr_enter_failed_assemble * @param port * @param pd_param * @note * @retval */ void pd_src_epr_enter_failed_assemble(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Entry_Failed_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Entry_Failed_action(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_Send_EPR_Mode_Exit_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_Send_EPR_Mode_Exit_action(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Mode_Exit_Received_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Mode_Exit_Received_action(uint8_t port, pd_param_s* pd_param); /* * @brief pd_epr_keepalive_ack_assemble * @param port * @param pd_param * @note * @retval */ void pd_epr_keepalive_ack_assemble(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_EPR_Keep_Alive_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_EPR_Keep_Alive_action(uint8_t port, pd_param_s* pd_param); /* * @brief PE_SRC_Give_EPR_Source_Cap_action * @param port * @param pd_param * @note * @retval */ void PE_SRC_Give_EPR_Source_Cap_action(uint8_t port, pd_param_s* pd_param); /* * @brief pd_epr_src_cap_msg_assemble * @param port * @param pd_param * @note * @retval */ void pd_epr_src_cap_msg_assemble(uint8_t port, pd_param_s* pd_param); #endif