Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
usbd_uac2.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023-2024 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
17#ifndef ZEPHYR_INCLUDE_USB_CLASS_USBD_UAC2_H_
18#define ZEPHYR_INCLUDE_USB_CLASS_USBD_UAC2_H_
19
20#include <zephyr/device.h>
21
22#define UAC2_ENTITY_ID(node) \
23 ({ \
24 BUILD_ASSERT(DT_NODE_HAS_COMPAT(DT_PARENT(node), zephyr_uac2)); \
25 UTIL_INC(DT_NODE_CHILD_IDX(node)); \
26 })
27
31struct uac2_ops {
40 void (*sof_cb)(const struct device *dev, void *user_data);
52 void (*terminal_update_cb)(const struct device *dev, uint8_t terminal,
53 bool enabled, bool microframes,
54 void *user_data);
68 void *(*get_recv_buf)(const struct device *dev, uint8_t terminal,
69 uint16_t size, void *user_data);
82 void (*data_recv_cb)(const struct device *dev, uint8_t terminal,
83 void *buf, uint16_t size, void *user_data);
95 void (*buf_release_cb)(const struct device *dev, uint8_t terminal,
96 void *buf, void *user_data);
112 uint32_t (*feedback_cb)(const struct device *dev, uint8_t terminal,
113 void *user_data);
114};
115
123void usbd_uac2_set_ops(const struct device *dev,
124 const struct uac2_ops *ops, void *user_data);
125
136int usbd_uac2_send(const struct device *dev, uint8_t terminal,
137 void *data, uint16_t size);
138
139#endif /* ZEPHYR_INCLUDE_USB_CLASS_USBD_UAC2_H_ */
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition: device.h:399
void * data
Address of the device instance private data.
Definition: device.h:409
USB Audio 2 application event handlers.
Definition: usbd_uac2.h:31
void(* sof_cb)(const struct device *dev, void *user_data)
Start of Frame callback.
Definition: usbd_uac2.h:40
void(* buf_release_cb)(const struct device *dev, uint8_t terminal, void *buf, void *user_data)
Transmit buffer release callback.
Definition: usbd_uac2.h:95
void(* data_recv_cb)(const struct device *dev, uint8_t terminal, void *buf, uint16_t size, void *user_data)
Data received.
Definition: usbd_uac2.h:82
uint32_t(* feedback_cb)(const struct device *dev, uint8_t terminal, void *user_data)
Get Explicit Feedback value.
Definition: usbd_uac2.h:112
void(* terminal_update_cb)(const struct device *dev, uint8_t terminal, bool enabled, bool microframes, void *user_data)
Terminal update callback.
Definition: usbd_uac2.h:52
void usbd_uac2_set_ops(const struct device *dev, const struct uac2_ops *ops, void *user_data)
Register USB Audio 2 application callbacks.
int usbd_uac2_send(const struct device *dev, uint8_t terminal, void *data, uint16_t size)
Send audio data to output terminal.