zephyr/subsys/usb/device_next/class/Kconfig.uvc
Josuah Demangeon 7538b7bdf0 usb: device_next: new USB Video Class implementation
Introduce a new USB Video Class (UVC) implementation from scratch.
It exposes a native Zephyr Video driver interface, allowing to call the
video_enqueue()/video_dequeue() interface. It will query the attached
video device to learn about the video capabilities, and use this to
configure the USB descriptors. At runtime, this UVC implementation will
send this device all the control requests, which it will send to the
attached video device. The application can poll the format currently
selected by the host, but will not be alerted when the host configures
a new format, as there is no video.h API for it yet.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2025-06-27 12:25:41 +02:00

47 lines
1.3 KiB
Plaintext

# Copyright (c) 2025 tinyVision.ai Inc.
#
# SPDX-License-Identifier: Apache-2.0
config USBD_VIDEO_CLASS
bool "USB Video Class implementation [EXPERIMENTAL]"
depends on DT_HAS_ZEPHYR_UVC_DEVICE_ENABLED
select EXPERIMENTAL
help
USB Device Video Class (UVC) implementation.
if USBD_VIDEO_CLASS
config USBD_VIDEO_MAX_FORMATS
int "Max number of format descriptors"
range 1 254
default 32
help
The table of format descriptors are generated at runtime. This options plans the
storage at build time to allow enough descriptors to be generated. The default value
aims a compromise between enough descriptors for most devices, but not too much memory
being used.
config USBD_VIDEO_MAX_FRMIVAL
int "Max number of video output stream per USB Video interface"
range 1 255
default 8
help
Max number of Frame Interval listed on a frame descriptor. The
default value is selected arbitrarily to fit most situations without
requiring too much RAM.
config USBD_VIDEO_NUM_BUFS
int "Max number of buffers the UVC class can allocate"
default 16
help
Control the number of buffer UVC can allocate in parallel.
The default is a compromise to allow enough concurrent buffers but not too much
memory usage.
module = USBD_VIDEO
module-str = usbd uvc
default-count = 1
source "subsys/logging/Kconfig.template.log_config"
endif # USBD_VIDEO_CLASS