_of_pll_clk_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« _of_pll_clk_init(9) πŸ’«

okay so bestie, welcome to the Kernel API Manual β€” yes we're literally in the kernel docs together, hold my hand 🫢 this one is about _of_pll_clk_init, which is giving "tiny function, big responsibility" energy ngl.


✨ NAME ✨

_of_pll_clk_init β€” PLL initialisation via DT πŸ’…

like, it sets up a PLL using the device tree. no cap, that's the whole vibe of the name.


πŸ¦‹ SYNOPSIS πŸ¦‹

void _of_pll_clk_init (struct device_node *node , bool pllctrl );

that's it. that's the signature. it returns void, so don't go looking for a return value, there isn't one, periodt.


πŸŽ€ ARGUMENTS πŸŽ€

  • node β€” the device tree node for this clock 🌸 like, this is the DT node that represents the clock we're initialising, she's the main character here.
  • pllctrl β€” a bool, and the way it works is genuinely so specific: if it's true, the lower 6 bits of the multiplier live in the pllm register of the pll controller ✨ but if it's false, those lower 6 bits are instead in the control register0, specifically bits 11-6 πŸ‘‘ iykyk.
lowkey important: that's bits 11 through 6 of control register0 when pllctrl is false, versus the pllm register of the pll controller when it's true. two completely different homes for the same 6 bits, and you gotta know which one you're in πŸ™ˆ

🌈 SEE ALSO 🌈

the whole keystone clock friend group honestly, we love a supportive squad 🧚


and that's the page!! this one lives in ./drivers/clk/keystone, dated October 2026, and yes the footer still says _of_pll_clk_init(9) because she's consistent like that πŸ’œ slay, go init some PLLs bestie πŸ’…πŸ”₯

πŸ“¦ where this page comes from