STRUCT VOLTAGEDOMAIN(9)
πΈ struct voltagedomain(9) πΈ
okay so bestie, welcome to the Kernel API Manual β we're talking about struct voltagedomain, and honestly? it's giving main character energy for the OMAP power world π
β¨ NAME β¨
struct voltagedomain β the omap voltage domain global structure, fr fr.
π SYNOPSIS π
here's the whole glow-up, copy it exactly bestie, no cap:
struct voltagedomain {
char *name;
bool scalable;
struct list_head node;
struct omap_vc_channel *vc;
const struct omap_vfsm_instance *vfsm;
struct omap_vp_instance *vp;
struct omap_voltdm_pmic *pmic;
struct omap_vp_param *vp_param;
struct omap_vc_param *vc_param;
u32 (*read) (u8 offset);
void (*write) (u32 val, u8 offset);
u32 (*rmw)(u32 mask, u32 bits, u8 offset);
union {
const char *name;
u32 rate;
} sys_clk;
int (*scale) (struct voltagedomain *voltdm, unsigned long
target_volt);
u32 nominal_volt;
struct omap_volt_data *volt_data;
};
π Members π
okay so let's go field by field, because every single one of these is iconic in its own way π«Ά
nameβ the name of the voltage domain, and it can be used as a unique identifier. like a username but for voltage. slay.scalableβ whether or not this voltage domain is scalable. yes/no energy only πnodeβ alist_headlinking all voltage domains together. it's the group chat, and every domain's in it.vcβ pointer to the VC channel associated with this voltagedomain. it's their VC channel, no sharing, periodt.vpβ pointer to the VP associated with this voltagedomain. matching set with the one above, we love a duo πreadβ read-modify-write a VC/VP register. yes that's literally what the original says, and yes it's lowkey a lot, but that's the vibe.writeβ write a VC/VP register. straightforward. iconic. no notes.sys_clkβ system clock name/frequency, used for various timing calculations. little clock, big responsibilities βscaleβ function used to scale the voltage of the voltagedomain. this is the one doing the actual lifting ngl π₯nominal_voltβ current nominal voltage for this voltage domain. "current nominal" is a whole oxymoron but the kernel said what it said πvolt_dataβ the voltage table having the distinct voltages supported by the domain and other associated per voltage data. it's the menu of voltages this domain can serve, plus the extra per-voltage lore π
heads up bestie: the struct up in SYNOPSIS also hasvfsm,rmw,vp_paramandvc_paramchillin' in there β they're in the definition, so keep them exactly as written, even though this Members list doesn't give them their own little blurbs π
π¦ SEE ALSO π¦
go touch some more kernel files, bestie:
- Kernel file
./arch/arm/mach-omap2/voltage.hstructomap_vfsm_instance(9),struct omap_voltdm_pmic(9)
and that's the whole page!! π this one came straight out of ./arch/arm/mach-omap2, dated October 2026, and it's filed under struct voltagedomain(9) β love that for us, mwah ππ§
π¦ 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