devm_clk_hw_..._parent_data(9)
π devm_clk_hw_..._parent_data β from the Kernel API Manual, section 9, bestie
Okay so this is a kernel manpage, section 9, and the title is literally devm_clk_hw_..._parent_data(9) β yes the elision is doing a lot of work there, we love a mysterious queen. The function it's actually about is devm_clk_hw_register_divider_parent_data, and no cap, the name is longer than my attention span. Let's get into it π
β¨ NAME β¨
devm_clk_hw_register_divider_parent_data β registers a divider clock with the clock framework. That's it, that's the whole job. Slay. π°οΈ
πΈ SYNOPSIS πΈ
devm_clk_hw_register_divider_parent_data (dev , name , parent_data ,
flags , reg , shift , width , clk_divider_flags , lock );
Nine arguments. Nine. Bestie she is thorough and honestly? Respect. π
π¦ ARGUMENTS π¦
So literally every one of these, one by one, because we do not skip:
devβ the device that's registering this clock. Like, whose clock is it? This one's. π«Άnameβ the name of this clock. Give her a cute name, she deserves one.parent_dataβ the parent clk data. That's the parent, in data form. iykyk.flagsβ framework-specific flags. Framework-specific, meaning: read the docs before you sent it, babe.regβ the register address to adjust the divider. This is where the divider lives. Physical location energy.shiftβ how many bits to shift the bitfield. Yes you have to count. Yes it matters. πwidthβ the width of the bitfield. Not to be confused with height. There is no height. πclk_divider_flagsβ divider-specific flags for this clock. Different flags! Divider flags! Not the other flags! Keep them straight bestie πlockβ the shared register lock for this clock. Sharing is caring, but also sharing is a lock, so.
π SEE ALSO π
Bestie, the cross-reference list on this one is extensive and I'm obsessed. She links to literally everyone. The kernel file is ./include/linux/clk-provider.h β that's the neighborhood she lives in.
First, the general clock framework crew:
clk framework flags(9)struct clk_rate_request(9)struct clk_duty(9)struct clk_spread_spectrum(9)struct clk_ops(9)struct clk_parent_data(9)struct clk_init_data(9)struct clk_hw(9)
Then the fixed-rate girlies:
struct clk_fixed_rate(9)clk_hw_register_fixed_rate(9)devm_clk_hw_register_fixed_rate(9)devm_clk_hw_register_fixed_rate_parent_data(9)clk_hw_register_fixed_rate_parent_hw(9)clk_hw_register_fixed_rate_parent_data(9)clk_hw_register_fixed_rate_with_accuracy(9)clk_hw_register_fixed_rate_with_accuracy_parent_hw(9)clk_hw_register_fixed_rate_with_accuracy_parent_data(9)clk_hw_register_fixed_rate_parent_accuracy(9)
The gate squad:
struct clk_gate(9)clk_hw_register_gate(9)clk_hw_register_gate_parent_hw(9)clk_hw_register_gate_parent_data(9)devm_clk_hw_register_gate(9)devm_clk_hw_register_gate_parent_hw(9)devm_clk_hw_register_gate_parent_data(9)
The divider family β our main character's actual family:
struct clk_divider(9)clk_register_divider(9)clk_hw_register_divider(9)clk_hw_register_divider_parent_hw(9)clk_hw_register_divider_parent_data(9)clk_hw_register_divider_table(9)clk_hw_register_divider_table_parent_hw(9)clk_hw_register_divider_table_parent_data(9)devm_clk_hw_register_divider(9)devm_clk_hw_register_divider_parent_hw(9)devm_clk_hw_register_divider_table(9)
And the rest of the extended universe:
struct clk_mux(9)struct clk_fixed_factor(9)devm_clk_hw_register_fixed_factor_parent_hw(9)struct clk_fractional_divider(9)struct clk_multiplier(9)clk_hw_get_dev(9)clk_hw_get_of_node(9)
That's every single one, fr fr. Forty-something references and we did not drop a single one, because dropping references is not the vibe. π§
π sign-off π
This little beauty ships out of ./include/linux, dated October 2026, and she's filed under devm_clk_hw_..._parent_data(9) in the Kernel API Manual. Go forth and register your dividers, bestie β you're gonna eat πβ¨
π¦ 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