Line data Source code
1 1 : /*
2 : * Copyright (c) 2025 tinyVision.ai Inc.
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : /**
8 : * @file
9 : * @brief USB Video Class (UVC) public header
10 : */
11 :
12 : #ifndef ZEPHYR_INCLUDE_USB_CLASS_USBD_UVC_H
13 : #define ZEPHYR_INCLUDE_USB_CLASS_USBD_UVC_H
14 :
15 : #include <zephyr/device.h>
16 :
17 : /**
18 : * @brief USB Video Class (UVC) device API
19 : * @defgroup usbd_uvc USB Video Class (UVC) device API
20 : * @ingroup usb
21 : * @since 4.2
22 : * @version 0.1.0
23 : * @see uvc: "Universal Serial Bus Device Class Definition for Video Devices"
24 : * Document Release 1.5 (August 9, 2012)
25 : * @{
26 : */
27 :
28 : /**
29 : * @brief Set the video device that a UVC instance will use.
30 : *
31 : * It will query its supported controls, formats and frame rates, and use this information to
32 : * generate USB descriptors sent to the host.
33 : *
34 : * At runtime, it will forward all USB controls from the host to this device.
35 : *
36 : * @note This function must be called before @ref usbd_enable.
37 : *
38 : * @param uvc_dev The UVC device
39 : * @param video_dev The video device that this UVC instance controls
40 : */
41 1 : void uvc_set_video_dev(const struct device *uvc_dev, const struct device *video_dev);
42 :
43 : /**
44 : * @}
45 : */
46 :
47 : #endif /* ZEPHYR_INCLUDE_USB_CLASS_USBD_UVC_H */
|