STRUCT OMAP_VOLTDM_PMIC(9)
β¨ 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 inuv/us. slay in microvolts per microsecond π«step_sizeβ the PMIC voltage step size, inuv. 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 au8and she's in the struct, so πvp_vstepminβ alsou8, 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. abool, 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 inuV. signature isunsigned long (*vsel_to_uv) (const u8 vsel)πΈuv_to_vselβ PMIC API to convert voltage inuVto vsel value. signature isu8 (*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.hstructomap_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
- 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