STRUCT V4L2_FWNODE_ENDPOINT(9)
π struct v4l2_fwnode_endpoint(9) β the endpoint data structure
okay so bestie, welcome to the Kernel API Manual β¨ β this is the struct v4l2_fwnode_endpoint(9) page, and it's literally the glow-up your media pipeline's endpoint needed. it's giving "one struct to describe how your camera actually talks to the world" π
πΈ NAME πΈ
struct v4l2_fwnode_endpoint β the endpoint data structure. that's it, that's the vibe π
π¦ SYNOPSIS π¦
struct v4l2_fwnode_endpoint {
struct fwnode_endpoint base;
enum v4l2_mbus_type bus_type;
struct {
struct v4l2_mbus_config_parallel parallel;
struct v4l2_mbus_config_mipi_csi1 mipi_csi1;
struct v4l2_mbus_config_mipi_csi2 mipi_csi2;
} bus;
u64 *link_frequencies;
unsigned int nr_of_link_frequencies;
};
no cap, that's the whole shape β copy it character for character and you're golden π«Ά
β¨ Members β¨
baseβ the fwnode endpoint of the v4l2_fwnode. the origin story, the main character πbus_typeβ bus type. which flavour of bus we're on πbusβ bus configuration data structure. the whole lil container of bus configs πbus.parallelβ embeddedstruct v4l2_mbus_config_parallel. used if the bus is parallel. like, the parallel one, obviously π«bus.mipi_csi1β embeddedstruct v4l2_mbus_config_mipi_csi1. used if the bus is MIPI Alliance's Camera Serial Interface version 1 (MIPI CSI1) or Standard Mobile Imaging Architecture's Compact Camera Port 2 (SMIA CCP2). vintage icon behaviour πbus.mipi_csi2β embeddedstruct v4l2_mbus_config_mipi_csi2. used if the bus is MIPI Alliance's Camera Serial Interface version 2 (MIPI CSI2). the upgraded era, we love to see it π₯
link_frequenciesβ array of supported link frequencies. all the freqs it can slay at πΆnr_of_link_frequenciesβ number of elements inlink_frequencciesarray. yes, that typo is in the original β i did not invent it, i simply did not touch it π (count your freqs, bestie, so nobody buffers past the end of the array π)
real talk: link_frequencies is a pointer, so it does not come with the struct β nothing here allocates or frees it for you, that's on whatever code you're calling. i'm just the messenger π§
π SEE ALSO π
go read these, they're all part of the same friend group π
- Kernel file
./include/media/v4l2-fwnode.h V4L2_FWNODE_PROPERTY_UNSET(9)enum v4l2_fwnode_orientation(9)struct v4l2_fwnode_device_properties(9)struct v4l2_fwnode_link(9)enum v4l2_connector_type(9)struct v4l2_connector_link(9)struct v4l2_fwnode_connector_analog(9)struct v4l2_fwnode_connector(9)enum v4l2_fwnode_bus_type(9)v4l2_fwnode_endpoint_parse(9)v4l2_fwnode_endpoint_free(9)v4l2_fwnode_endpoint_alloc_parse(9)v4l2_fwnode_parse_link(9)v4l2_fwnode_put_link(9)v4l2_fwnode_connector_free(9)v4l2_fwnode_connector_parse(9)v4l2_fwnode_connector_add_link(9)v4l2_fwnode_device_parse(9)
okay that's the whole page, you ate that π mwah π
and for the credits-roll moment: this little masterpiece lives in ./include/media, dated October 2026, and it's filed under struct v4l2_fwnode_endpoint(9) β periodt ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms