STRUCT WRPLL_CFG(9)
β¨ 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 astruct wrpll_cfgrecord, that record should be zero-initialized with the exception of theflagsfield π«Ά
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms