STRUCT RZV2H_PLL_LIMITS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct rzv2h_pll_limits(9) ✨

okay so bestie, welcome to the Kernel API Manual page for struct rzv2h_pll_limits β€” aka the lil' rulebook that says what numbers a PLL is actually allowed to do πŸ’… it's literally the PLL parameter constraints struct, and honestly? iconic.


🌸 SYNOPSIS 🌸

here's the whole thing verbatim, do not touch, do not breathe on it:

struct rzv2h_pll_limits {
    u32 input_fref;
    struct {
      u32 min;
      u32 max;
    } fout;
    struct {
      u32 min;
      u32 max;
    } fvco;
    struct {
      u16 min;
      u16 max;
    } m;
    struct {
      u8 min;
      u8 max;
    } p;
    struct {
      u8 min;
      u8 max;
    } s;
    struct {
      s16 min;
      s16 max;
    } k;
 };

like look at those nested structs. the way that they're all min/max pairs… it's giving boundaries, it's giving self-respect πŸŽ€


πŸ¦‹ Members πŸ¦‹

okay so here's the cast of characters, one by one:

  • input_fref β€” the reference input frequency going into the PLL, measured in Hz. and here's the plot twist: if you set it to 0, it just defaults to 24MHz. queen behavior honestly ✨
  • fout β€” the output frequency range, in MHz. yes MHz, not Hz, keep up bestie 😭
    • fout.min β€” the minimum output frequency you're allowed to ask for
    • fout.max β€” the maximum output frequency you're allowed to ask for
  • fvco β€” the PLL oscillation frequency range, also in MHz
    • fvco.min β€” minimum allowed VCO frequency
    • fvco.max β€” maximum allowed VCO frequency
  • m β€” the main-divider range
    • m.min β€” minimum main-divider value
    • m.max β€” maximum main-divider value
  • p β€” the pre-divider range
    • p.min β€” minimum pre-divider value
    • p.max β€” maximum pre-divider value
  • s β€” the divider range
    • s.min β€” minimum divider value
    • s.max β€” maximum divider value
  • k β€” the delta-sigma modulator range, and ngl the key detail here: it's signed πŸ™ˆ
    • k.min β€” minimum delta-sigma value
    • k.max β€” maximum delta-sigma value

πŸ’– Description πŸ’–

so what is this thing for? literally just: this structure defines the minimum and maximum allowed values for the various parameters you use to configure a PLL. that's it, that's the whole vibe.

the point of these limits is to keep the PLL operating inside valid and stable ranges β€” so like, no sending it off into chaos territory πŸ”₯ the constraints are the vibe check, and the PLL must pass it.

bestie please respect the min/max values. that's not a suggestion, that's the whole stable-operation situation 😌

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, they're in the group chat too:

  • Kernel file ./include/linux/clk/renesas.h struct rzv2h_pll_pars(9)
  • struct rzv2h_pll_div_pars(9)

that's the whole page, no cap 🫢 this came straight out of the source file at ./include/linux/clk, dated October 2026, and it's filed under struct rzv2h_pll_limits(9) β€” slay, go configure your PLL responsibly πŸ’œ

πŸ“¦ where this page comes from