STRUCT WRPLL_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct wrpll_cfg(9) ✨

okay bestie, so this is a page from the Kernel API Manual and it's literally about struct wrpll_cfg β€” the WRPLL configuration values πŸ’… it's giving "tiny struct, big responsibilities" and honestly? iconic πŸŽ€


🌸 NAME 🌸

struct wrpll_cfg β€” WRPLL configuration values ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

struct wrpll_cfg {
    u8 divr;
    u8 divq;
    u8 range;
    u8 flags;
    u16 divf;
 };

no cap, that's the whole thing πŸ™ˆ


πŸ’– Members πŸ’–

  • divr β€” the reference divider value (6 bits), exactly as it gets presented to the PLL signals ✨
  • divq β€” the output divider value (3 bits), again as presented to the PLL signals πŸŽ€
  • range β€” the PLL loop filter range. peek below for the deets πŸ‘€
  • flags β€” the PLL configuration flags. also peek above for the deets πŸ‘€
  • divf β€” the feedback divider value (9 bits), as presented to the PLL signals πŸ’«

πŸ‘‘ Description πŸ‘‘

so divr, divq, divq, range are what the PLL expects to see on its input signals, fr fr. which means divr and divf are the actual divisors minus one β€” yes, minus one, don't come for me, that's just how it is 😭

and divq? that one's a power-of-two divider bestie. like, 1 = divide-by-2 and 6 = divide-by-64. and listen β€” 0 is an invalid divq value πŸ’€ so don't do that.

when you're initially passing a struct wrpll_cfg record, that record should be zero-initialized with the exception of the flags field 🫢

the only flag bits that need to be set are either WRPLL_FLAGS_INT_FEEDBACK or WRPLL_FLAGS_EXT_FEEDBACK β€” that's it, that's the whole vibe check ⭐


🌈 SEE ALSO 🌈

  • Kernel file ./include/linux/clk/analogbits-wrpll-cln28hpc.h πŸ¦‹

and that's the whole page, bestie! this one came from ./include/linux/clk, dated October 2026, and it's struct wrpll_cfg(9) β€” go forth and configure your PLLs responsibly πŸ’œβœ¨πŸŒΈ

πŸ“¦ where this page comes from