13#ifndef ZEPHYR_INCLUDE_USBC_H_
14#define ZEPHYR_INCLUDE_USBC_H_
48#define FIXED_5V_100MA_RDO 0x1100280a
void usbc_bypass_next_sleep(const struct device *dev)
int usbc_start(const struct device *dev)
Start the USB-C Subsystem.
usbc_policy_request_t
Device Policy Manager requests.
Definition usbc.h:53
int usbc_request(const struct device *dev, const enum usbc_policy_request_t req)
Make a request of the USB-C Subsystem.
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.
usbc_snk_req_reply_t
Device Policy Manager's response to a Sink Request.
Definition usbc.h:169
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.
usbc_policy_notify_t
Device Policy Manager notifications.
Definition usbc.h:89
void usbc_set_policy_cb_check(const struct device *dev, const policy_cb_check_t cb)
Set the callback used to check a policy.
int usbc_suspend(const struct device *dev)
Suspend the USB-C Subsystem.
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_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_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_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_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_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_dpm_data(const struct device *dev, void *dpm_data)
Set pointer to Device Policy Manager (DPM) data.
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_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_get_dpm_data(const struct device *dev)
Get pointer to Device Policy Manager (DPM) data.
usbc_policy_wait_t
Device Policy Manager Wait message notifications.
Definition usbc.h:155
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_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_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_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_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.
usbc_policy_check_t
Device Policy Manager checks.
Definition usbc.h:137
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.
@ REQUEST_TC_END
End of Type-C requests.
Definition usbc.h:61
@ REQUEST_PE_DR_SWAP
Request Policy Engine layer to perform a Data Role Swap.
Definition usbc.h:64
@ REQUEST_NOP
No request.
Definition usbc.h:55
@ REQUEST_PE_HARD_RESET_SEND
Request Policy Engine layer to send a hard reset.
Definition usbc.h:66
@ REQUEST_TC_DISABLED
Request Type-C layer to transition to Disabled State.
Definition usbc.h:57
@ REQUEST_TC_ERROR_RECOVERY
Request Type-C layer to transition to Error Recovery State.
Definition usbc.h:59
@ REQUEST_PE_GET_SRC_CAPS
Request Policy Engine layer to get Source Capabilities from port partner.
Definition usbc.h:73
@ REQUEST_PE_SOFT_RESET_SEND
Request Policy Engine layer to send a soft reset.
Definition usbc.h:68
@ REQUEST_GET_SNK_CAPS
Request Policy Engine to get Sink Capabilities from port partner.
Definition usbc.h:78
@ REQUEST_PE_GOTO_MIN
Request Policy Engine to request the port partner to source minimum power.
Definition usbc.h:83
@ SNK_REQUEST_REJECT
The sink port partner's request can not be met.
Definition usbc.h:173
@ SNK_REQUEST_VALID
The sink port partner's request can be met.
Definition usbc.h:171
@ SNK_REQUEST_WAIT
The sink port partner's request can be met at a later time.
Definition usbc.h:175
@ SOURCE_CAPABILITIES_RECEIVED
Source Capabilities Received.
Definition usbc.h:131
@ POWER_CHANGE_0A0
Sink SubPower state at 0V.
Definition usbc.h:121
@ POWER_CHANGE_1A5
Sink SubPower state a 5V / 1.5A.
Definition usbc.h:125
@ POWER_CHANGE_3A0
Sink SubPower state a 5V / 3A.
Definition usbc.h:127
@ TRANSITION_PS
Transition the Power Supply.
Definition usbc.h:111
@ POWER_CHANGE_DEF
Sink SubPower state a 5V / 500mA.
Definition usbc.h:123
@ DATA_ROLE_IS_UFP
Data Role has been set to Upstream Facing Port (UFP).
Definition usbc.h:99
@ MSG_ACCEPT_RECEIVED
Power Delivery Accept message was received.
Definition usbc.h:91
@ MSG_REJECTED_RECEIVED
Power Delivery Reject message was received.
Definition usbc.h:93
@ POWER_ROLE_IS_SOURCE
Power Role has been set to Source.
Definition usbc.h:103
@ DATA_ROLE_IS_DFP
Data Role has been set to Downstream Facing Port (DFP).
Definition usbc.h:101
@ PROTOCOL_ERROR
Protocol Error occurred.
Definition usbc.h:115
@ SNK_TRANSITION_TO_DEFAULT
Transition the Sink to default.
Definition usbc.h:117
@ MSG_DISCARDED
Power Delivery discarded the message being transmitted.
Definition usbc.h:95
@ MSG_NOT_SUPPORTED_RECEIVED
Power Delivery Not Supported message was received.
Definition usbc.h:97
@ HARD_RESET_RECEIVED
Hard Reset Received.
Definition usbc.h:119
@ SENDER_RESPONSE_TIMEOUT
Sender Response Timeout.
Definition usbc.h:129
@ PORT_PARTNER_NOT_RESPONSIVE
Port partner is not responsive.
Definition usbc.h:113
@ PD_CONNECTED
A PD Explicit Contract is in place.
Definition usbc.h:107
@ NOT_PD_CONNECTED
No PD Explicit Contract is in place.
Definition usbc.h:109
@ POWER_ROLE_IS_SINK
Power Role has been set to Sink.
Definition usbc.h:105
@ WAIT_SINK_REQUEST
The port partner is unable to meet the sink request at this time.
Definition usbc.h:157
@ WAIT_POWER_ROLE_SWAP
The port partner is unable to do a Power Role Swap at this time.
Definition usbc.h:159
@ WAIT_VCONN_SWAP
The port partner is unable to do a VCONN Swap at this time.
Definition usbc.h:163
@ WAIT_DATA_ROLE_SWAP
The port partner is unable to do a Data Role Swap at this time.
Definition usbc.h:161
@ CHECK_POWER_ROLE_SWAP
Check if Power Role Swap is allowed.
Definition usbc.h:139
@ CHECK_SNK_AT_DEFAULT_LEVEL
Check if Sink is at default level.
Definition usbc.h:145
@ CHECK_SRC_PS_AT_DEFAULT_LEVEL
Check if Source Power Supply is at default level.
Definition usbc.h:149
@ CHECK_VCONN_CONTROL
Check if should control VCONN.
Definition usbc.h:147
@ CHECK_DATA_ROLE_SWAP_TO_UFP
Check if Data Role Swap to UFP is allowed.
Definition usbc.h:143
@ CHECK_DATA_ROLE_SWAP_TO_DFP
Check if Data Role Swap to DFP is allowed.
Definition usbc.h:141
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.
Definition usbc.h:247
bool(* policy_cb_check_t)(const struct device *dev, const enum usbc_policy_check_t policy_check)
Callback type used to check a policy.
Definition usbc.h:208
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.
Definition usbc.h:229
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.
Definition usbc.h:198
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.
Definition usbc.h:189
uint32_t(* policy_cb_get_rdo_t)(const struct device *dev)
Callback type used to get the Request Data Object (RDO).
Definition usbc.h:238
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.
Definition usbc.h:219
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.
Definition usbc.h:290
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.
Definition usbc.h:262
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.
Definition usbc.h:300
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.
Definition usbc.h:320
int(* policy_cb_src_en_t)(const struct device *dev, bool en)
Callback type used to enable VBUS.
Definition usbc.h:328
bool(* policy_cb_is_ps_ready_t)(const struct device *dev)
Callback type used to check if Source Power Supply is ready.
Definition usbc.h:281
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.
Definition usbc.h:310
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.
Definition usbc.h:272
int(* tcpc_vconn_control_cb_t)(const struct device *tcpc_dev, const struct device *usbc_dev, enum tc_cc_polarity pol, bool enable)
Callback type for VCONN control.
Definition usbc_tcpc.h:134
int(* tcpc_vconn_discharge_cb_t)(const struct device *tcpc_dev, const struct device *usbc_dev, enum tc_cc_polarity pol, bool enable)
Callback type for discharging VCONN.
Definition usbc_tcpc.h:148
tc_rp_value
Pull-Up resistor values.
Definition usbc_tc.h:354
#define bool
Definition stdbool.h:13
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
Runtime device structure (in ROM) per driver instance.
Definition device.h:513
USBC Type-C Port Controller device APIs.