Zephyr API Documentation  3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
usbc.h File Reference

USB-C Device APIs. More...

Go to the source code of this file.

Macros

#define FIXED_5V_100MA_RDO   0x1100280a
 This Request Data Object (RDO) value can be returned from the policy_cb_get_rdo if 5V@100mA with the following options are sufficient for the Sink to operate.
 

Typedefs

typedef int(* policy_cb_get_snk_cap_t) (const struct device *dev, uint32_t **pdos, int *num_pdos)
 Callback type used to get the Sink Capabilities.
 
typedef void(* policy_cb_set_src_cap_t) (const struct device *dev, const uint32_t *pdos, const int num_pdos)
 Callback type used to report the received Port Partner's Source Capabilities.
 
typedef bool(* policy_cb_check_t) (const struct device *dev, const enum usbc_policy_check_t policy_check)
 Callback type used to check a policy.
 
typedef bool(* policy_cb_wait_notify_t) (const struct device *dev, const enum usbc_policy_wait_t wait_notify)
 Callback type used to notify Device Policy Manager of WAIT message reception.
 
typedef void(* policy_cb_notify_t) (const struct device *dev, const enum usbc_policy_notify_t policy_notify)
 Callback type used to notify Device Policy Manager of a policy change.
 
typedef uint32_t(* policy_cb_get_rdo_t) (const struct device *dev)
 Callback type used to get the Request Data Object (RDO)
 
typedef bool(* policy_cb_is_snk_at_default_t) (const struct device *dev)
 Callback type used to check if the sink power supply is at the default level.
 
typedef int(* policy_cb_get_src_caps_t) (const struct device *dev, const uint32_t **pdos, uint32_t *num_pdos)
 Callback type used to get the Source Capabilities from the Device Policy Manager.
 
typedef enum usbc_snk_req_reply_t(* policy_cb_check_sink_request_t) (const struct device *dev, const uint32_t request_msg)
 Callback type used to check if Sink request is valid.
 
typedef bool(* policy_cb_is_ps_ready_t) (const struct device *dev)
 Callback type used to check if Source Power Supply is ready.
 
typedef bool(* policy_cb_present_contract_is_valid_t) (const struct device *dev, const uint32_t present_contract)
 Callback type used to check if present Contract is still valid.
 
typedef bool(* policy_cb_change_src_caps_t) (const struct device *dev)
 Callback type used to request that a different set of Source Caps be sent to the Sink.
 
typedef void(* policy_cb_set_port_partner_snk_cap_t) (const struct device *dev, const uint32_t *pdos, const int num_pdos)
 Callback type used to report the Capabilities received from a Sink Port Partner.
 
typedef int(* policy_cb_get_src_rp_t) (const struct device *dev, enum tc_rp_value *rp)
 Callback type used to get the Rp value that should be placed on the CC lines.
 
typedef int(* policy_cb_src_en_t) (const struct device *dev, bool en)
 Callback type used to enable VBUS.
 

Enumerations

enum  usbc_policy_request_t {
  REQUEST_NOP , REQUEST_TC_DISABLED , REQUEST_TC_ERROR_RECOVERY , REQUEST_TC_END ,
  REQUEST_PE_DR_SWAP , REQUEST_PE_HARD_RESET_SEND , REQUEST_PE_SOFT_RESET_SEND , REQUEST_PE_GET_SRC_CAPS ,
  REQUEST_GET_SNK_CAPS , REQUEST_PE_GOTO_MIN
}
 Device Policy Manager requests. More...
 
enum  usbc_policy_notify_t {
  MSG_ACCEPT_RECEIVED , MSG_REJECTED_RECEIVED , MSG_DISCARDED , MSG_NOT_SUPPORTED_RECEIVED ,
  DATA_ROLE_IS_UFP , DATA_ROLE_IS_DFP , PD_CONNECTED , NOT_PD_CONNECTED ,
  TRANSITION_PS , PORT_PARTNER_NOT_RESPONSIVE , PROTOCOL_ERROR , SNK_TRANSITION_TO_DEFAULT ,
  HARD_RESET_RECEIVED , POWER_CHANGE_0A0 , POWER_CHANGE_DEF , POWER_CHANGE_1A5 ,
  POWER_CHANGE_3A0 , SENDER_RESPONSE_TIMEOUT , SOURCE_CAPABILITIES_RECEIVED
}
 Device Policy Manager notifications. More...
 
enum  usbc_policy_check_t {
  CHECK_POWER_ROLE_SWAP , CHECK_DATA_ROLE_SWAP_TO_DFP , CHECK_DATA_ROLE_SWAP_TO_UFP , CHECK_SNK_AT_DEFAULT_LEVEL ,
  CHECK_VCONN_CONTROL , CHECK_SRC_PS_AT_DEFAULT_LEVEL
}
 Device Policy Manager checks. More...
 
enum  usbc_policy_wait_t { WAIT_SINK_REQUEST , WAIT_POWER_ROLE_SWAP , WAIT_DATA_ROLE_SWAP , WAIT_VCONN_SWAP }
 Device Policy Manager Wait message notifications. More...
 
enum  usbc_snk_req_reply_t { SNK_REQUEST_VALID , SNK_REQUEST_REJECT , SNK_REQUEST_WAIT }
 Device Policy Manager's response to a Sink Request. More...
 

Functions

int usbc_start (const struct device *dev)
 Start the USB-C Subsystem.
 
int usbc_suspend (const struct device *dev)
 Suspend the USB-C Subsystem.
 
int usbc_request (const struct device *dev, const enum usbc_policy_request_t req)
 Make a request of the USB-C Subsystem.
 
void usbc_bypass_next_sleep (const struct device *dev)
 
void usbc_set_dpm_data (const struct device *dev, void *dpm_data)
 Set pointer to Device Policy Manager (DPM) data.
 
void * usbc_get_dpm_data (const struct device *dev)
 Get pointer to Device Policy Manager (DPM) data.
 
void usbc_set_vconn_control_cb (const struct device *dev, const tcpc_vconn_control_cb_t cb)
 Set the callback used to set VCONN control.
 
void usbc_set_vconn_discharge_cb (const struct device *dev, const tcpc_vconn_discharge_cb_t cb)
 Set the callback used to discharge VCONN.
 
void usbc_set_policy_cb_check (const struct device *dev, const policy_cb_check_t cb)
 Set the callback used to check a policy.
 
void usbc_set_policy_cb_notify (const struct device *dev, const policy_cb_notify_t cb)
 Set the callback used to notify Device Policy Manager of a policy change.
 
void usbc_set_policy_cb_wait_notify (const struct device *dev, const policy_cb_wait_notify_t cb)
 Set the callback used to notify Device Policy Manager of WAIT message reception.
 
void usbc_set_policy_cb_get_snk_cap (const struct device *dev, const policy_cb_get_snk_cap_t cb)
 Set the callback used to get the Sink Capabilities.
 
void usbc_set_policy_cb_set_src_cap (const struct device *dev, const policy_cb_set_src_cap_t cb)
 Set the callback used to store the received Port Partner's Source Capabilities.
 
void usbc_set_policy_cb_get_rdo (const struct device *dev, const policy_cb_get_rdo_t cb)
 Set the callback used to get the Request Data Object (RDO)
 
void usbc_set_policy_cb_is_snk_at_default (const struct device *dev, const policy_cb_is_snk_at_default_t cb)
 Set the callback used to check if the sink power supply is at the default level.
 
void usbc_set_policy_cb_get_src_rp (const struct device *dev, const policy_cb_get_src_rp_t cb)
 Set the callback used to get the Rp value that should be placed on the CC lines.
 
void usbc_set_policy_cb_src_en (const struct device *dev, const policy_cb_src_en_t cb)
 Set the callback used to enable VBUS.
 
void usbc_set_policy_cb_get_src_caps (const struct device *dev, const policy_cb_get_src_caps_t cb)
 Set the callback used to get the Source Capabilities from the Device Policy Manager.
 
void usbc_set_policy_cb_check_sink_request (const struct device *dev, const policy_cb_check_sink_request_t cb)
 Set the callback used to check if Sink request is valid.
 
void usbc_set_policy_cb_is_ps_ready (const struct device *dev, const policy_cb_is_ps_ready_t cb)
 Set the callback used to check if Source Power Supply is ready.
 
void usbc_set_policy_cb_present_contract_is_valid (const struct device *dev, const policy_cb_present_contract_is_valid_t cb)
 Set the callback to check if present Contract is still valid.
 
void usbc_set_policy_cb_change_src_caps (const struct device *dev, const policy_cb_change_src_caps_t cb)
 Set the callback used to request that a different set of Source Caps be sent to the Sink.
 
void usbc_set_policy_cb_set_port_partner_snk_cap (const struct device *dev, const policy_cb_set_port_partner_snk_cap_t cb)
 Set the callback used to store the Capabilities received from a Sink Port Partner.
 

Detailed Description

USB-C Device APIs.

This file contains the USB-C Device APIs.