STRUCT CLK_FIXED_FACTOR(9)
๐ struct clk_fixed_factor(9) ๐
okay bestie, welcome to the Kernel API Manual page for struct clk_fixed_factor โ it's a whole vibe, let's get into it ๐ซถ
๐ธ NAME ๐ธ
struct clk_fixed_factor โ a clock that's literally just a fixed multiplier and divider, no cap ๐
โจ SYNOPSIS โจ
struct clk_fixed_factor {
struct clk_hw hw;
unsigned int mult;
unsigned int div;
unsigned long acc;
unsigned int flags;
};
๐ Members ๐
hwโ the handle between the common interfaces and the hardware-specific ones, yep that's the whole job ๐ฆmultโ the multiplier. it multiplies. iconic behavior honestly โจdivโ the divider. it divides. balance ๐accโ fixed accuracy, in ppb (that's parts per billion, iykyk) โญflagsโ flags that modify the behavior ๐
๐ฅ Description ๐ฅ
So this is a clock with a fixed multiplier and divider โ like, the numbers are baked in, fr fr. The output frequency is the parent clock rate divided by div and multiplied by mult. That's it, that's the math ๐งฎ๐
It implements .recalc_rate, .set_rate, .determine_rate and .recalc_accuracy โ yes queen, all four ๐
๐ Flags ๐
CLK_FIXED_FACTOR_FIXED_ACCURACYโ uses the value inaccinstead of the parent clk accuracy. so like, your accuracy, your rules ๐
๐ SEE ALSO ๐
Kernel file ./include/linux/clk-provider.h โ and the clk framework crew, all of them, in order, no skips ๐:
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_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)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)
aaaand that's the page, bestie ๐ mwah ๐ โ this lil writeup lives in ./include/linux under the Kernel API Manual, dated October 2026, and it's titled (you guessed it) struct clk_fixed_factor(9). go forth and clock responsibly ๐งโโ๏ธ๐
๐ฆ 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