Skip to content

Commit

Permalink
drivers: video: add a struct video_dt_spec and C macro
Browse files Browse the repository at this point in the history
This introduces a video_dt_spec that can be used by the APIs to refer
one particular video endpoint out of a video device and refer it in
one go.

Signed-off-by: Josuah Demangeon <[email protected]>
  • Loading branch information
josuah committed May 20, 2024
1 parent 83dab24 commit 7bc3a35
Showing 1 changed file with 36 additions and 0 deletions.
36 changes: 36 additions & 0 deletions include/zephyr/drivers/video.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,42 @@
extern "C" {
#endif

/**
* @brief Video Device Tree endpoint identifier
*
* Identify a particular port and particular endpoint of a video device,
* providing all the context necessary to act upon a video device, via one of
* its endpoint.
*/
struct video_dt_spec {
/** Device instance of the remote video device to communicate with. */
const struct device *dev;
/** Devicetree address for this endpoint. */
uint32_t endpoint;
};

/**
* @brief Get a device reference for an endpoint of a video controller.
*
* @code
* mipi0: mipi-controller@... {
* mipi0out: endpoint@0 {
* remote-endpoint = <&mjpeg0in>;
* };
* };
* @endcode
*
* Here, the devicetree spec for mipi0out can be obtaine with:
*
* @code
* struct video_dt_spec spec = VIDEO_DT_SPEC_GET(DT_NODELABEL(mipi0out));
* @endcode
*
* @param node_id node identifier of an endpoint phandle property
*/
#define VIDEO_DT_SPEC_GET(node_id) \
{.dev = DEVICE_DT_GET(DT_BUS(node_id)), .endpoint = VIDEO_ENDPOINT_ID(node_id)}

/**
* Obtain the endpoint ID out of an devicetree endpoint node.
*
Expand Down

0 comments on commit 7bc3a35

Please sign in to comment.