clk_hw_regi...le_parent_hw(9)
π NAME π
clk_hw_register_divider_table_parent_hw β bestie, this is the one that registers a table based divider clock with the clock framework π
β¨
So like, the manual is the Kernel API Manual (yes, THE kernel, we're fancy now π) and this page is clk_hw_regi...le_parent_hw(9) β the name's long enough to get truncated, iconic honestly π
β¨ SYNOPSIS β¨
clk_hw_register_divider_table_parent_hw (dev , name , parent_hw , flags
, reg , shift , width , clk_divider_flags , table , lock );
Ten arguments. Ten. She's high-maintenance but she delivers π«Ά
π ARGUMENTS π
devβ the device that's registering this clock, aka who's signing the birth certificate πnameβ name of this clock. give her a good one, she'll be answering to it forever βparent_hwβ pointer to the parent clk. every main character has an origin story πΈflagsβ framework-specific flags, the generic ones π¦regβ register address to adjust the divider π―shiftβ number of bits to shift the bitfield. bit math, no cap πwidthβ width of the bitfield πclk_divider_flagsβ divider-specific flags for this clock, the specialized ones, not to be confused withflagsabove (yes there are two flag arguments, don't @ me) πtableβ array of divider/value pairs ending with adivset to 0 π (that trailing zero is the "we're done here" marker, fr fr)lockβ shared register lock for this clock. share it, be nice π
π¦ SEE ALSO π¦
Kernel file ./include/linux/clk-provider.h β that's where the whole clk framework fam lives, and honestly the list below is giving "tag yourself, I'm struct clk_divider(9)" π
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(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)
π lowkey a whole family reunion in here β read a few of these before you start poking at dividers, it'll save you so much pain bestie
okay that's the whole page!! π this one lives in ./include/linux and it's dated October 2026 β yes, the future, we're ahead of schedule β¨ slay π
π¦ 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