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.

239 lines
5.2 KiB

4 months ago
/**
******************************************************************************
* @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