Description
This is part of a series of proposal for incremental changes for the Video API:
Is your enhancement proposal related to a problem? Please describe.
In the video drivers, the device tree declaration Linux-style remote-endpoint
is used nowhere. It is up to the user to connect drivers together in a way that hopefully matches the devicetree.
Describe the solution you'd like
- Use the
<&phandle>
to make the drivers communicate with each other. For instance how it is done in https://github.com/zephyrproject-rtos/zephyr/blob/main/tests/subsys/usb/uac2/app.overlay#L53 to allow connecting a different video source by changing the device tree.
Describe alternatives you've considered
- Removing the remote-endpoint everywhere from Zephyr and give-up on using devicetree for video
- Add a subsystem to handle this glue for compatibility reasons
Additional context
My final goal is to implement the USB Video Class (UVC) to implement USB3 webcams with Zephyr.
Currently in Zephyr like in other RTOS, it is up to the user to glue video devices together. remote-endpoint:
is ignored by everything: video_common.c
, video.h
, main.c
, video_sw_generator.c
Using the devicetree information to let the driver perform I/O would allow:
- changing the image sensor resolution when switching a display resolution
- stopping/starting the display transparently stopping/starting the camera source
- implement the diversity of devices present on the Linux kernel
Thank you for this wonderful Video4Zephyr lean and mean driver API introduced in 2019! Glad to see more interest coming into it after a few years!
[EDIT: typo and wording]