40#define TU_LOG_USBC(...) TU_LOG(USBC_DEBUG, __VA_ARGS__)
69bool tuc_init(uint8_t rhport, uint32_t port_type) {
85 TU_LOG_USBC(
"USBC init on port %u\r\n", rhport);
88 TU_ASSERT(
tcd_init(rhport, port_type));
115 if (
header->n_data_obj == 0) {
119 uint8_t
const* p_end =
_rx_buf +
event.xfer_complete.xferred_bytes;
163 uint16_t
const n_data_obj =
header->n_data_obj;
164 if (n_data_obj > 0) {
208 for (uint8_t p = 0; p < TUP_TYPEC_RHPORTS_NUM; p++) {
static TU_ATTR_ALWAYS_INLINE osal_queue_t osal_queue_create(osal_queue_def_t *qdef)
QueueHandle_t osal_queue_t
static TU_ATTR_ALWAYS_INLINE bool osal_queue_send(osal_queue_t qhdl, void const *data, bool in_isr)
static TU_ATTR_ALWAYS_INLINE bool osal_queue_receive(osal_queue_t qhdl, void *data, uint32_t msec)
struct TU_ATTR_PACKED pd_header_t
static void * memcpy(void *dst, const void *src, size_t n)
AUDIO Channel Cluster Descriptor (4.1)
struct TU_ATTR_PACKED::@670::TU_ATTR_PACKED xfer_complete
struct TU_ATTR_PACKED::@670::@672 cc_changed
void tcd_int_disable(uint8_t rhport)
static uint8_t const * _rx_buf
bool tcd_init(uint8_t rhport, uint32_t port_type)
bool tcd_msg_receive(uint8_t rhport, uint8_t *buffer, uint16_t total_bytes)
void tcd_int_enable(uint8_t rhport)
bool tcd_msg_send(uint8_t rhport, uint8_t const *buffer, uint16_t total_bytes)
bool tuc_msg_request(uint8_t rhport, void const *rdo)
static uint8_t _rx_buf[64] TU_ATTR_ALIGNED(4)
bool tuc_init(uint8_t rhport, uint32_t port_type)
tu_static osal_queue_t _usbc_q
bool usbc_msg_send(uint8_t rhport, pd_header_t const *header, void const *data)
bool tuc_inited(uint8_t rhport)
static bool _port_inited[TUP_TYPEC_RHPORTS_NUM]
OSAL_QUEUE_DEF(usbc_int_set, _usbc_qdef, CFG_TUC_TASK_QUEUE_SZ, tcd_event_t)
void tcd_event_handler(tcd_event_t const *event, bool in_isr)
void usbc_int_set(bool enabled)
bool parse_msg_data(uint8_t rhport, pd_header_t const *header, uint8_t const *dobj, uint8_t const *p_end)
void tuc_task_ext(uint32_t timeout_ms, bool in_isr)
bool parse_msg_control(uint8_t rhport, pd_header_t const *header)
TU_ATTR_WEAK bool tuc_pd_data_received_cb(uint8_t rhport, pd_header_t const *header, uint8_t const *dobj, uint8_t const *p_end)
TU_ATTR_WEAK bool tuc_pd_control_received_cb(uint8_t rhport, pd_header_t const *header)