STRUCT VOLTAGEDOMAIN(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 β€” a list_head linking 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 has vfsm, rmw, vp_param and vc_param chillin' 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.h struct omap_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