clk_hw_regi...ivider_table(9)
π clk_hw_regi...ivider_table(9) β Kernel API Manual β¨
okay so bestie, buckle up, because we're diving into clk_hw_register_divider_table from the Kernel API Manual (yes, that manual, the one with the truncated name in the header, iykyk π). This is the one that registers a table based divider clock with the clock framework, and honestly? it's giving "niche but essential." π
πΈ NAME πΈ
clk_hw_register_divider_table β registers a table based divider clock with the clock framework. periodt. π
β SYNOPSIS β
clk_hw_register_divider_table (dev , name , parent_name , flags , reg ,
shift , width , clk_divider_flags , table , lock );
like, that's the whole call. ten args. no cap. don't skip any of them or it's over for you π
π¦ ARGUMENTS π¦
devβ the device that's registering this clock. it's the main character of the registration, tbh π«Άnameβ name of this clock. give her a good one β¨parent_nameβ name of the clock's parent. yep, clocks have parents too, family tree real πflagsβ framework-specific flags. the generic ones, not the divider ones, keep scrolling for those πregβ register address you're adjusting to set the divider πshiftβ number of bits to shift the bitfield. bit math era πwidthβ width of the bitfield. size matters (in bits) πclk_divider_flagsβ divider-specific flags for this clock. yes it's a different flags argument thanflags, don't come for me πtableβ array of divider/value pairs, and it ends with adivset to0. that zero is the little "we're done here" signal, do not forget it π©lockβ shared register lock for this clock. sharing is caring, but like, thread-safely π
fr fr, thattableneeds itsdivset to0terminator or things get weird. the manpage said it, i'm just relaying it π
π SEE ALSO π
Kernel file: ./include/linux/clk-provider.h β the source of truth, go say hi π§
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)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)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)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_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_parent_data(9)devm_clk_hw_register_divider_table(9)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)
like, that's a whole friend group. divs, gates, muxes, fixed factors, fractional dividers, multipliers β everybody's here and they all ate π₯
this has been your girl signing off from ./include/linux, the October 2026 edition of the Kernel API Manual, page clk_hw_regi...ivider_table(9) (name still truncated, still iconic, we stan a mysterious queen π). now go register that divider clock, bestie β you got this π«Άβ¨
π¦ 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