Struct to hold the application interface.
The application is expected to fill the structure with pointers to functions that use the onboard circuitry to accomplish tasks such as source/sink power turn ON/OFF. All the functions in this structure must be non-blocking and take minimum execution time.
Data Fields | |
void(* | app_event_handler )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_en_pdstack_app_evt_t evt, const void *dat) |
App event handler callback. More... | |
void(* | psrc_set_voltage )(struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t volt_mV) |
Set power source voltage in mV units. More... | |
void(* | psrc_set_current )(struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t cur_10mA) |
Sets power source current in 10 mA units. More... | |
void(* | psrc_enable )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_pwr_ready_cbk_t pwr_ready_handler) |
Enable the power supply. More... | |
void(* | psrc_disable )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_pwr_ready_cbk_t pwr_ready_handler) |
Disable the power supply. More... | |
bool(* | vconn_enable )(struct cy_stc_pdstack_context *ptrPdStackContext, uint8_t channel) |
Turn VCONN supply ON. More... | |
void(* | vconn_disable )(struct cy_stc_pdstack_context *ptrPdStackContext, uint8_t channel) |
Turn VCONN supply OFF. More... | |
bool(* | vconn_is_present )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Check whether the VConn supply is ON. More... | |
bool(* | vbus_is_present )(struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t volt, int8_t per) |
Check whether VBus voltage is within the expected range. More... | |
void(* | vbus_discharge_on )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Turn ON the VBUS discharge circuit. More... | |
void(* | vbus_discharge_off )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Turn OFF the VBUS discharge circuit. More... | |
void(* | psnk_set_voltage )(struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t volt_mV) |
Sets power sink voltage in mV units. More... | |
void(* | psnk_set_current )(struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t cur_10mA) |
Sets power sink current in 10 mA units. More... | |
void(* | psnk_enable )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Enables power sink-related circuitry. More... | |
void(* | psnk_disable )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_sink_discharge_off_cbk_t snk_discharge_off_handler) |
Disables power sink-related circuitry. More... | |
void(* | eval_src_cap )(struct cy_stc_pdstack_context *ptrPdStackContext, const cy_stc_pdstack_pd_packet_t *srcCap, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Evaluates received source caps and provides the RDO to be used to negotiate the contract. More... | |
void(* | eval_rdo )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pd_pd_do_t rdo, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Evaluates sink request message. More... | |
void(* | eval_dr_swap )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handles DR swap request received by the port. More... | |
void(* | eval_pr_swap )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handles pr swap request received by the port. More... | |
void(* | eval_vconn_swap )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handles VCONN swap request received by the port. More... | |
void(* | eval_vdm )(struct cy_stc_pdstack_context *ptrPdStackContext, const cy_stc_pdstack_pd_packet_t *vdm, cy_pdstack_vdm_resp_cbk_t vdm_resp_handler) |
Handle VDMs (all structured/unstructured VDMs need to be handled) received by the port. More... | |
void(* | eval_fr_swap )(struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handle FR swap request received by the specified port. More... | |
uint16_t(* | vbus_get_value )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Gets the current VBUS value in mV from the application. More... | |
uint32_t(* | psrc_get_voltage )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Gets the expected VBUS value in mV from the application. More... | |
bool(* | send_src_info )(struct cy_stc_pdstack_context *ptrPdStackContext) |
Function to decide whether to send source info. More... | |
void(* cy_stc_pdstack_app_cbk_t::app_event_handler) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_en_pdstack_app_evt_t evt, const void *dat) |
App event handler callback.
void(* cy_stc_pdstack_app_cbk_t::psrc_set_voltage) (struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t volt_mV) |
Set power source voltage in mV units.
void(* cy_stc_pdstack_app_cbk_t::psrc_set_current) (struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t cur_10mA) |
Sets power source current in 10 mA units.
void(* cy_stc_pdstack_app_cbk_t::psrc_enable) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_pwr_ready_cbk_t pwr_ready_handler) |
Enable the power supply.
The pwr_ready_handler, if not NULL, must be called when the power supply is ready.
void(* cy_stc_pdstack_app_cbk_t::psrc_disable) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_pwr_ready_cbk_t pwr_ready_handler) |
Disable the power supply.
The pwr_ready_handler, if not NULL, must be called when the power supply has been discharged to Vsafe0V.
bool(* cy_stc_pdstack_app_cbk_t::vconn_enable) (struct cy_stc_pdstack_context *ptrPdStackContext, uint8_t channel) |
Turn VCONN supply ON.
Return true if VCONN was turned ON.
void(* cy_stc_pdstack_app_cbk_t::vconn_disable) (struct cy_stc_pdstack_context *ptrPdStackContext, uint8_t channel) |
Turn VCONN supply OFF.
bool(* cy_stc_pdstack_app_cbk_t::vconn_is_present) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Check whether the VConn supply is ON.
bool(* cy_stc_pdstack_app_cbk_t::vbus_is_present) (struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t volt, int8_t per) |
Check whether VBus voltage is within the expected range.
void(* cy_stc_pdstack_app_cbk_t::vbus_discharge_on) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Turn ON the VBUS discharge circuit.
void(* cy_stc_pdstack_app_cbk_t::vbus_discharge_off) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Turn OFF the VBUS discharge circuit.
void(* cy_stc_pdstack_app_cbk_t::psnk_set_voltage) (struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t volt_mV) |
Sets power sink voltage in mV units.
void(* cy_stc_pdstack_app_cbk_t::psnk_set_current) (struct cy_stc_pdstack_context *ptrPdStackContext, uint16_t cur_10mA) |
Sets power sink current in 10 mA units.
void(* cy_stc_pdstack_app_cbk_t::psnk_enable) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Enables power sink-related circuitry.
void(* cy_stc_pdstack_app_cbk_t::psnk_disable) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_sink_discharge_off_cbk_t snk_discharge_off_handler) |
Disables power sink-related circuitry.
void(* cy_stc_pdstack_app_cbk_t::eval_src_cap) (struct cy_stc_pdstack_context *ptrPdStackContext, const cy_stc_pdstack_pd_packet_t *srcCap, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Evaluates received source caps and provides the RDO to be used to negotiate the contract.
void(* cy_stc_pdstack_app_cbk_t::eval_rdo) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pd_pd_do_t rdo, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Evaluates sink request message.
void(* cy_stc_pdstack_app_cbk_t::eval_dr_swap) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handles DR swap request received by the port.
void(* cy_stc_pdstack_app_cbk_t::eval_pr_swap) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handles pr swap request received by the port.
void(* cy_stc_pdstack_app_cbk_t::eval_vconn_swap) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handles VCONN swap request received by the port.
void(* cy_stc_pdstack_app_cbk_t::eval_vdm) (struct cy_stc_pdstack_context *ptrPdStackContext, const cy_stc_pdstack_pd_packet_t *vdm, cy_pdstack_vdm_resp_cbk_t vdm_resp_handler) |
Handle VDMs (all structured/unstructured VDMs need to be handled) received by the port.
void(* cy_stc_pdstack_app_cbk_t::eval_fr_swap) (struct cy_stc_pdstack_context *ptrPdStackContext, cy_pdstack_app_resp_cbk_t app_resp_handler) |
Handle FR swap request received by the specified port.
uint16_t(* cy_stc_pdstack_app_cbk_t::vbus_get_value) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Gets the current VBUS value in mV from the application.
uint32_t(* cy_stc_pdstack_app_cbk_t::psrc_get_voltage) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Gets the expected VBUS value in mV from the application.
This is to include any additional compensation done for drops.
bool(* cy_stc_pdstack_app_cbk_t::send_src_info) (struct cy_stc_pdstack_context *ptrPdStackContext) |
Function to decide whether to send source info.