STRUCT OMAP_VP_COMMON(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct omap_vp_common β€” register data common to all VDDs. That’s the whole vibe: shared register info, no gatekeeping. Periodt. ✨

So bestie, welcome to the Kernel API Manual page for struct omap_vp_common(9) β€” it’s giving β€œone struct to rule all the VDDs’ common register data” realness, and honestly? Obsessed. 🫢


✨ SYNOPSIS ✨

       struct omap_vp_common {
           u32 vpconfig_erroroffset_mask;
           u32 vpconfig_errorgain_mask;
           u32 vpconfig_initvoltage_mask;
           u8 vpconfig_timeouten;
           u8 vpconfig_initvdd;
           u8 vpconfig_forceupdate;
           u8 vpconfig_vpenable;
           u8 vstepmin_stepmin_shift;
           u8 vstepmin_smpswaittimemin_shift;
           u8 vstepmax_stepmax_shift;
           u8 vstepmax_smpswaittimemax_shift;
           u8 vlimitto_vddmin_shift;
           u8 vlimitto_vddmax_shift;
           u8 vlimitto_timeout_shift;
           u8 vpvoltage_mask;
           const struct omap_vp_ops *ops;
        };

πŸŽ€ Members πŸŽ€

Okay so here’s the member-by-member tea, and yes, every single field is getting its moment. πŸ’…

  • vpconfig_erroroffset_mask β€” the ERROROFFSET bitmask in the PRM_VP*_CONFIG reg. Masking, but make it fashion. πŸŽ€
  • vpconfig_errorgain_mask β€” the ERRORGAIN bitmask in the PRM_VP*_CONFIG reg. Gain, but as a mask. Iconic. ✨
  • vpconfig_initvoltage_mask β€” the INITVOLTAGE bitmask in the PRM_VP*_CONFIG reg. Voltage initiation, but masked. Slay. ⚑
  • vpconfig_timeouten β€” the TIMEOUT bitmask in the PRM_VP*_CONFIG reg. Timeout enabled-ish? The mask says so. πŸ’€
  • vpconfig_initvdd β€” the INITVDD bitmask in the PRM_VP*_CONFIG reg. VDD init realness. πŸ”₯
  • vpconfig_forceupdate β€” the FORCEUPDATE bitmask in the PRM_VP*_CONFIG reg. Forcing the update, respectfully. πŸ’…
  • vpconfig_vpenable β€” the VPENABLE bitmask in the PRM_VP*_CONFIG reg. Enabled? Masked? Both. πŸ‘‘
  • vstepmin_stepmin_shift β€” VSTEPMIN field shift in the PRM_VP*_VSTEPMIN reg. Shifting, not drifting. πŸŒ€
  • vstepmin_smpswaittimemin_shift β€” SMPSWAITTIMEMIN field shift in the PRM_VP*_VSTEPMIN reg. The min wait time is shifting, bestie. ⏳
  • vstepmax_stepmax_shift β€” VSTEPMAX field shift in the PRM_VP*_VSTEPMAX reg. Max step, max shift energy. πŸ“ˆ
  • vstepmax_smpswaittimemax_shift β€” SMPSWAITTIMEMAX field shift in the PRM_VP*_VSTEPMAX reg. The max wait time is also shifting. We love consistency. 🫢
  • vlimitto_vddmin_shift β€” VDDMIN field shift in the PRM_VP*_VLIMITTO reg. Limit-to, but make it VDDMIN. 🧚
  • vlimitto_vddmax_shift β€” VDDMAX field shift in the PRM_VP*_VLIMITTO reg. VDDMAX has entered the shift chat. 🌈
  • vlimitto_timeout_shift β€” TIMEOUT field shift in the PRM_VP*_VLIMITTO reg. Timeout field, shifted. No cap. ⏰
  • vpvoltage_mask β€” the VPVOLTAGE field mask in the PRM_VP*_VOLTAGE reg. Masking the voltage field like the main character it is. πŸ‘‘
Lowkey important: these descriptions are exactly the register/bitmask/shift tea from the original page β€” I’m not out here inventing extra lore. 🫑

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./arch/arm/mach-omap2/vp.h
  • struct omap_vp_ops(9)
  • struct omap_vp_instance(9)

Go read those next, iykyk. πŸ“šπŸ’–


Signed with so much love from ./arch/arm/mach-omap2, dated October 2026 β€” this is literally struct omap_vp_common(9), and she ate. Mwah. πŸ’‹πŸŽ€

πŸ“¦ where this page comes from