_of_pll_clk_init(9)
π« _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β abool, and the way it works is genuinely so specific: if it'strue, the lower 6 bits of the multiplier live in thepllmregister of the pll controller β¨ but if it'sfalse, those lower 6 bits are instead in the control register0, specifically bits11-6π iykyk.
lowkey important: that's bits 11 through 6 of control register0 whenpllctrlis false, versus thepllmregister 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 kernel file
./drivers/clk/keystone/pll.cβ go read her, she's the source fr fr π struct clk_pll_data(9)struct clk_pll(9)of_keystone_pll_clk_init(9)of_keystone_main_pll_clk_init(9)of_pll_div_clk_init(9)of_pll_mux_clk_init(9)
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
- 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