STRUCT OMAP_VOLTDM_PMIC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ STRUCT OMAP_VOLTDM_PMIC(9) ✨

okay so we're in the Kernel API Manual today bestie, and the star of the show is struct omap_voltdm_pmic β€” literally just the PMIC-specific data that the voltage driver needs to do its thing. that's it, that's the vibe πŸŽ€


🌸 NAME 🌸

struct omap_voltdm_pmic β€” PMIC specific data required by voltage driver.


πŸ’… SYNOPSIS πŸ’…

struct omap_voltdm_pmic {
    int slew_rate;
    int step_size;
    u16 i2c_slave_addr;
    u16 volt_reg_addr;
    u16 cmd_reg_addr;
    u8 vp_erroroffset;
    u8 vp_vstepmin;
    u8 vp_vstepmax;
    u32 vddmin;
    u32 vddmax;
    u8 vp_timeout_us;
    bool i2c_high_speed;
    u32 i2c_pad_load;
    u8 i2c_mcode;
    unsigned long (*vsel_to_uv) (const u8 vsel);
    u8 (*uv_to_vsel) (unsigned long uV);
 };

like, look at her. sixteen members. main character energy fr fr πŸ‘‘


πŸ¦‹ Members πŸ¦‹

here's the rundown, one by one, no skipping (iykyk):

  • slew_rate β€” the PMIC slew rate, measured in uv/us. slay in microvolts per microsecond πŸ’«
  • step_size β€” the PMIC voltage step size, in uv. one lil hop of voltage at a time 🐾
  • i2c_slave_addr β€” the I2C slave address of the PMIC. who she is on the bus πŸ“‡
  • volt_reg_addr β€” the voltage configuration register address. where the voltage goss lives 🏠
  • cmd_reg_addr β€” the command (on, on-LP, ret, off) configuration register address. all four states, iconic behavior ✨
  • vp_erroroffset β€” no description in the original, bestie, but she's a u8 and she's in the struct, so πŸ™ˆ
  • vp_vstepmin β€” also u8, also undescribed. respecting her privacy πŸ’…
  • vp_vstepmax β€” u8, same deal. the mysterious trio 😭
  • vddmin β€” u32, no description given. she holds the low end of something, and that's all we're officially told πŸ“
  • vddmax β€” u32, no description given. presumably her counterpart 🀝
  • vp_timeout_us β€” u8, no description in the original. the name says timeouts in microseconds and honestly that's all we're getting ⏳
  • i2c_high_speed β€” whether VC uses I2C high-speed mode to PMIC. a bool, so it's giving yes/no 🌈
  • i2c_pad_load β€” u32, and nope, no description in the original either. mysterious queen πŸ’€
  • i2c_mcode β€” master code value for I2C high-speed preamble transmission. preamble transmission!! so technical, so chic πŸ”₯
  • vsel_to_uv β€” PMIC API to convert vsel value to actual voltage in uV. signature is unsigned long (*vsel_to_uv) (const u8 vsel) 🌸
  • uv_to_vsel β€” PMIC API to convert voltage in uV to vsel value. signature is u8 (*uv_to_vsel) (unsigned long uV), so she's the reverse trip πŸ¦‹
real talk: the original manual page literally does not describe some of these members, so I'm not out here making up lore. if you need the deets on those, go read the header β€” do NOT guess, bestie 🫢

🧚 SEE ALSO 🧚

  • Kernel file ./arch/arm/mach-omap2/voltage.h struct omap_vfsm_instance(9)
  • struct voltagedomain(9)

okay that's the whole page, no cap πŸ’– this lil struct lives in ./arch/arm/mach-omap2 and the manual's dated October 2026 β€” so yeah, future-dated and still serving looks. go read your voltage headers, ily, bye πŸŽ€πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from