clk_hw_regis...te_parent_hw(9)
π clk_hw_register_fixed_rate_parent_hw(9) β the Kernel API Manual, bestie edition π
okay so this is a page straight out of the Kernel API Manual (that's the manual name, iykyk β¨) and it's all about one very specific little function. No cap, if you're here you're probably writing a clock driver, so let's go πΈ
β¨ NAME β¨
clk_hw_register_fixed_rate_parent_hw β literally registers a fixed-rate clock with the clock framework. that's it, that's the whole vibe. a clock that does not adjust. iconic behavior π
π¦ SYNOPSIS π¦
clk_hw_register_fixed_rate_parent_hw (dev , name , parent_hw , flags , fixed_rate );
five arguments, in that order, bestie. don't shuffle them π
π ARGUMENTS π
devβ the device that's registering this clock. it's the one doing the paperwork, basically the main character of this call πnameβ the name of this clock. give it a good one, people will be looking it up πparent_hwβ a pointer to the parent clk. your clock's ancestry, its lore, its nepo-baby connection π«Άflagsβ framework-specific flags. every framework has opinions, and these are them βfixed_rateβ the non-adjustable clock rate. non-adjustable, meaning it does not move, it does not negotiate, it is simply that girl π
π SEE ALSO π
genuinely the longest see-also list i've ever seen and i'm obsessed with it. the Kernel file to go peek at is ./include/linux/clk-provider.h, and then there's the clk framework's own little friend group:
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_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_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, the whole clock family reunion π§π read them, they're all your besties too now.
π one little thing: this page gives you the arguments and the vibe, but it does not tell you what the function returns or what it does on failure. so don't go inventing that, ok? go read the header for the real tea π
and that's the page!! brought to you by the lovely folks at ./include/linux, dated October 2026, and wrapped up in this very good-looking manual πβ¨ slay, go register a clock, periodt ππ¦πΈ
π¦ 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