STRUCT IMX412(9)
β¨ struct imx412(9) β¨
okay so bestie, this is a page from the Kernel API Manual β it's the whole entire glow-up tour of struct imx412, aka the sensor device structure for the imx412. think of it as the main character's contact card. every field, every pointer, all of it. let's get into it π
πΈ NAME πΈ
struct imx412 β the imx412 sensor device structure. that's her. that's the whole vibe. π
π¦ SYNOPSIS π¦
here's the struct in all her glory, copy-pasted exactly because we do NOT paraphrase code in this house:
struct imx412 {
struct device *dev;
struct regmap *cci;
struct i2c_client *client;
struct v4l2_subdev sd;
struct media_pad pad;
struct gpio_desc *reset_gpio;
struct clk *inclk;
struct regulator_bulk_data
supplies[ARRAY_SIZE(imx412_supply_names)];
struct v4l2_ctrl_handler ctrl_handler;
struct v4l2_ctrl *link_freq_ctrl;
struct v4l2_ctrl *pclk_ctrl;
struct v4l2_ctrl *hblank_ctrl;
struct v4l2_ctrl *vblank_ctrl;
struct {
struct v4l2_ctrl *exp_ctrl;
struct v4l2_ctrl *again_ctrl;
};
u32 vblank;
const struct imx412_mode *cur_mode;
};
π MEMBERS π
lowkey the best part. every single field, explained:
devβ pointer to the generic device. the origin story. π«Άcciβ the CCI register map.clientβ pointer to the i2c client.sdβ the V4L2 sub-device. iconic.padβ media pad. and listen β only one pad supported, so don't get any ideas about a second one πreset_gpioβ the sensor reset gpio.inclkβ the sensor input clock. she keeps time βsuppliesβ the regulator supplies.ctrl_handlerβ the V4L2 control handler.link_freq_ctrlβ pointer to the link frequency control.pclk_ctrlβ pointer to the pixel clock control.hblank_ctrlβ pointer to the horizontal blanking control.vblank_ctrlβ pointer to the vertical blanking control.{unnamed_struct}β anonymous. no name, all mystery π§ (it's an unnamed struct, bestie, that's literally the whole descriptor)exp_ctrlβ pointer to the exposure control.again_ctrlβ pointer to the analog gain control.
vblankβ vertical blanking in lines.cur_modeβ pointer to the current selected sensor mode. the moment. the chosen one π
π SEE ALSO π
the whole friend group, fr fr β kernel file ./drivers/media/i2c/imx412.c plus these besties:
struct imx412_reg_list(9)struct imx412_mode(9)to_imx412(9)imx412_update_controls(9)imx412_update_exp_gain(9)imx412_fill_pad_format(9)imx412_enable_streams(9)imx412_disable_streams(9)imx412_detect(9)imx412_parse_hw_config(9)imx412_init_controls(9)
ngl bestie, if you made it this far you officially understand the imx412 sensor device structure better than half the people who claim they do. periodt. πβ¨
okay that's the page!! sourced from ./drivers/media/i2c, dated October 2026, and filed under struct imx412(9) β mwah, go touch some registers πππ¦
π¦ 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