13#ifndef ZEPHYR_INCLUDE_USBC_H_
14#define ZEPHYR_INCLUDE_USBC_H_
46#define FIXED_5V_100MA_RDO 0x1100280a
149typedef int (*policy_cb_get_snk_cap_t)(
const struct device *dev,
152typedef void (*policy_cb_set_src_cap_t)(
const struct device *dev,
155typedef bool (*policy_cb_check_t)(
const struct device *dev,
157typedef bool (*policy_cb_wait_notify_t)(
const struct device *dev,
159typedef void (*policy_cb_notify_t)(
const struct device *dev,
162typedef bool (*policy_cb_is_snk_at_default_t)(
const struct device *dev);
238 const policy_cb_check_t cb);
248 const policy_cb_notify_t cb);
258 const policy_cb_wait_notify_t cb);
267 const policy_cb_get_snk_cap_t cb);
277 const policy_cb_set_src_cap_t cb);
286 const policy_cb_get_rdo_t cb);
296 const policy_cb_is_snk_at_default_t cb);
int usbc_start(const struct device *dev)
Start the USB-C Subsystem.
usbc_policy_request_t
Device Policy Manager requests.
Definition: usbc.h:51
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_policy_notify_t
Device Policy Manager notifications.
Definition: usbc.h:77
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_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_vconn_discharge_cb(const struct device *dev, const tcpc_vconn_discharge_cb_t cb)
Set the callback used to discharge VCONN.
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_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:137
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_get_snk_cap(const struct device *dev, const policy_cb_get_snk_cap_t cb)
Set the callback used to get the Sink Capabilities.
usbc_policy_check_t
Device Policy Manager checks.
Definition: usbc.h:121
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
Definition: usbc.h:59
@ REQUEST_PE_DR_SWAP
Definition: usbc.h:62
@ REQUEST_NOP
Definition: usbc.h:53
@ REQUEST_PE_HARD_RESET_SEND
Definition: usbc.h:64
@ REQUEST_TC_DISABLED
Definition: usbc.h:55
@ REQUEST_TC_ERROR_RECOVERY
Definition: usbc.h:57
@ REQUEST_PE_GET_SRC_CAPS
Definition: usbc.h:71
@ REQUEST_PE_SOFT_RESET_SEND
Definition: usbc.h:66
@ SOURCE_CAPABILITIES_RECEIVED
Definition: usbc.h:115
@ POWER_CHANGE_0A0
Definition: usbc.h:105
@ POWER_CHANGE_1A5
Definition: usbc.h:109
@ POWER_CHANGE_3A0
Definition: usbc.h:111
@ TRANSITION_PS
Definition: usbc.h:95
@ POWER_CHANGE_DEF
Definition: usbc.h:107
@ DATA_ROLE_IS_UFP
Definition: usbc.h:87
@ MSG_ACCEPT_RECEIVED
Definition: usbc.h:79
@ MSG_REJECTED_RECEIVED
Definition: usbc.h:81
@ DATA_ROLE_IS_DFP
Definition: usbc.h:89
@ PROTOCOL_ERROR
Definition: usbc.h:99
@ SNK_TRANSITION_TO_DEFAULT
Definition: usbc.h:101
@ MSG_DISCARDED
Definition: usbc.h:83
@ MSG_NOT_SUPPORTED_RECEIVED
Definition: usbc.h:85
@ HARD_RESET_RECEIVED
Definition: usbc.h:103
@ SENDER_RESPONSE_TIMEOUT
Definition: usbc.h:113
@ PORT_PARTNER_NOT_RESPONSIVE
Definition: usbc.h:97
@ PD_CONNECTED
Definition: usbc.h:91
@ NOT_PD_CONNECTED
Definition: usbc.h:93
@ WAIT_SINK_REQUEST
Definition: usbc.h:139
@ WAIT_POWER_ROLE_SWAP
Definition: usbc.h:141
@ WAIT_VCONN_SWAP
Definition: usbc.h:145
@ WAIT_DATA_ROLE_SWAP
Definition: usbc.h:143
@ CHECK_POWER_ROLE_SWAP
Definition: usbc.h:123
@ CHECK_SNK_AT_DEFAULT_LEVEL
Definition: usbc.h:129
@ CHECK_VCONN_CONTROL
Definition: usbc.h:131
@ CHECK_DATA_ROLE_SWAP_TO_UFP
Definition: usbc.h:127
@ CHECK_DATA_ROLE_SWAP_TO_DFP
Definition: usbc.h:125
int(* tcpc_vconn_discharge_cb_t)(const struct device *dev, enum tc_cc_polarity pol, bool enable)
Definition: usbc_tcpc.h:121
int(* tcpc_vconn_control_cb_t)(const struct device *dev, enum tc_cc_polarity pol, bool enable)
Definition: usbc_tcpc.h:119
#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:378
USBC Type-C Port Controller device APIs.