STRUCT SVS_BANK_PDATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct svs_bank_pdata β€” SVS Bank immutable config parameters πŸ’…

okay so welcome to the Kernel API Manual, section 9 bestie β€” this is the page for struct svs_bank_pdata, aka the immutable config parameters for an SVS Bank. "Immutable" meaning you set these up and then leave them alone, no cap. Let's get into it ✨


🌸 SYNOPSIS 🌸

struct svs_bank_pdata {
    const struct svs_fusemap *dev_fuse_map;
    char *buck_name;
    char *tzone_name;
    u32 age_config;
    u32 ctl0;
    u32 dc_config;
    u32 int_st;
    u32 turn_freq_base;
    u32 tzone_htemp;
    u32 tzone_ltemp;
    u32 volt_step;
    u32 volt_base;
    u16 tzone_htemp_voffset;
    u16 tzone_ltemp_voffset;
    u8 chk_shift;
    u8 cpu_id;
    u8 opp_count;
    u8 vboot;
    u8 vco;
    u8 sw_id;
    u8 type;
    void (*set_freq_pct)(struct svs_platform *svsp, struct svs_bank
*svsb);
    void (*get_volts)(struct svs_platform *svsp, struct svs_bank *svsb);
 };

like look at all those fields. it's giving organized. it's giving I know exactly what I am. we stan a well-structured struct 🫢


✨ Members ✨

  • dev_fuse_map β€” the bank's fuse map data. the origin lore, the blueprint, the fuse map πŸ’–
  • buck_name β€” the regulator name. what the regulator is called, iykyk.
  • tzone_name β€” the thermal zone name. yes it has a name, and yes it's iconic.
  • age_config β€” the bank's age configuration. the bank is aging gracefully, periodt.
  • ctl0 β€” TS-x selection. that's the whole description, bestie, don't @ me.
  • dc_config β€” the bank's dc configuration.
  • int_st β€” the bank's interrupt identification. so you know which interrupt it is πŸ”₯
  • turn_freq_base β€” the reference frequency for the 2-line turn point. this one's a base, it's the reference, it's doing main character energy.
  • tzone_htemp β€” the thermal zone high temperature threshold. HOT πŸ”₯
  • tzone_ltemp β€” the thermal zone low temperature threshold. and then... not hot πŸ’€
  • volt_step β€” the bank's voltage step.
  • volt_base β€” the bank's voltage base.
  • tzone_htemp_voffset β€” the thermal zone high temperature voltage offset.
  • tzone_ltemp_voffset β€” the thermal zone low temperature voltage offset. matching set, we love symmetry πŸ’…
  • chk_shift β€” the bank's chicken shift. no I'm not making that up, that's literally what it's called, and honestly? iconic πŸ”
  • cpu_id β€” the CPU core ID, for SVS CPU bank use only. read the fine print bestie, only πŸŽ€
  • opp_count β€” the bank's opp count.
  • vboot β€” the voltage request for bank init01 only. again: ONLY. πŸ™ˆ
  • vco β€” the bank's VCO value.
  • sw_id β€” the bank's software identification.
  • type β€” the SVS Bank Type (1 or 2-line) and Role (high/low). so many layers, so much range 🌈
  • set_freq_pct β€” function pointer to set bank frequency percent table. it's a pointer, it's a function, it sets the table, it slays.
  • get_volts β€” function pointer to get bank voltages. the getter to the other one's setter, we love a duo 🫢

πŸ’œ SEE ALSO πŸ’œ

go read these next, bestie, they're all in the Kernel file ./drivers/soc/mediatek/mtk-svs.c and they're literally the whole friend group:

  • enum svsb_sw_id(9)
  • enum svsb_type(9)
  • enum svsb_phase(9)
  • struct svs_platform(9)
  • struct svs_bank(9)

that's the whole page! no notes, she ate πŸ’… this lil slice of the Kernel API Manual lives over in ./drivers/soc/mediatek, and it was dated October 2026 β€” so yeah, future iconic behavior ⭐ bye bestie, go configure a bank responsibly πŸ¦‹

πŸ“¦ where this page comes from