STRUCT CCS_PLL_BRANCH_LIMITS_FR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ccs_pll_branch_limits_fr β€” CCS PLL front-end limits πŸ’…

okay bestie, welcome to the Kernel API Manual ✨ this one's a little struct named struct ccs_pll_branch_limits_fr, and honestly? it's giving "the front-end limits sheet for the CCS PLL" πŸŽ€ no cap, that's literally what it is. it's the vibe check for the PLL front-end: every min and every max you're allowed to touch. so slay, let's get into it πŸ¦‹


✨ NAME ✨

struct ccs_pll_branch_limits_fr β€” CCS PLL front-end limits πŸ’–


🌸 SYNOPSIS 🌸

struct ccs_pll_branch_limits_fr {
    u16 min_pre_pll_clk_div;
    u16 max_pre_pll_clk_div;
    u32 min_pll_ip_clk_freq_hz;
    u32 max_pll_ip_clk_freq_hz;
    u16 min_pll_multiplier;
    u16 max_pll_multiplier;
    u32 min_pll_op_clk_freq_hz;
    u32 max_pll_op_clk_freq_hz;
 };

like, that's the whole struct. eight little fields, all of them limits, all of them iconic πŸ‘‘


🫢 Members 🫢

okay so every single member is a min-or-max situation, which is lowkey the whole personality of this struct. here they are, in order, no skipping, fr fr:

  • min_pre_pll_clk_div β€” the minimum pre-PLL clock divider 🧚 smallest divider you're allowed to use before the PLL.
  • max_pre_pll_clk_div β€” the maximum pre-PLL clock divider πŸŽ€ the biggest divider on the menu.
  • min_pll_ip_clk_freq_hz β€” the minimum PLL input clock frequency 🌸 the lowest input clock freq the PLL will accept.
  • max_pll_ip_clk_freq_hz β€” the maximum PLL input clock frequency πŸ’œ the highest input clock freq it'll take, bestie, don't push past it.
  • min_pll_multiplier β€” the minimum PLL multiplier ⭐ the smallest multiplier allowed.
  • max_pll_multiplier β€” the maximum PLL multiplier πŸ”₯ the biggest multiplier allowed.
  • min_pll_op_clk_freq_hz β€” the minimum PLL output clock frequency πŸ’– the lowest output clock freq you can land on.
  • max_pll_op_clk_freq_hz β€” the maximum PLL output clock frequency πŸ‘‘ and the highest output clock freq, periodt.
πŸ’€ reminder that these are limits, not suggestions β€” a struct called ..._limits_fr is absolutely not here to be flexible with you. the vibe check is the whole point. πŸ™ˆ

🌈 SEE ALSO 🌈

go read these next, they're the friend group this struct runs with 🫢 the kernel file is ./drivers/media/i2c/ccs-pll.h, and the whole squad is:

  • struct ccs_pll_branch_fr(9)
  • struct ccs_pll_branch_bk(9)
  • struct ccs_pll(9)
  • struct ccs_pll_branch_limits_bk(9)
  • struct ccs_pll_limits(9)
  • ccs_pll_calculate(9)

like, the back-end limits twin (struct ccs_pll_branch_limits_bk(9)) is right there β€” matching energy, you know how it is πŸ’…


alright bestie, that's the page πŸ’– it lives over in ./drivers/media/i2c, dated October 2026, and it's filed under struct ccs_...ch_limits_fr(9) in the manual β€” love that for us. bye, go read the SEE ALSOs, ily βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from