STRUCT IMX412(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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:


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