STRUCT CLK_MULTIPLIER(9)
π struct clk_multiplier(9) π
okay bestie, welcome to the Kernel API Manual entry for struct clk_multiplier β the adjustable multiplier clock. it's giving clock-provider main character energy, and we are gonna keep every single field, flag, and SEE ALSO reference because that's the whole vibe. no cap, every detail stays. periodt. π
πΈ NAME πΈ
struct clk_multiplier β an adjustable multiplier clock. that's it, that's the name, and she's iconic. π
β¨ SYNOPSIS β¨
struct clk_multiplier {
struct clk_hw hw;
void __iomem *reg;
u8 shift;
u8 width;
u8 flags;
spinlock_t *lock;
};
π Members π
hwβ the handle between common and hardware-specific interfaces. lowkey the bridge between two worlds. πregβ the register containing the multiplier. that's where the multiplier lives, bestie. πshiftβ the shift to the multiplier bit field. yes, bit-shifting, we stay precise. β¨widthβ the width of the multiplier bit field. gotta know how many bits we're working with. πflagsβ the behavior switches, and here's the tea, because each one matters:CLK_MULTIPLIER_ZERO_BYPASSβ by default, the multiplier is the value read from the register, with0being a valid value that effectively zeroes the output clock rate. ifCLK_MULTIPLIER_ZERO_BYPASSis set, then a null multiplier will be considered as a bypass, leaving the parent rate unmodified. so0stops being "rate = zero" and becomes "bypass, don't touch parent." πCLK_MULTIPLIER_ROUND_CLOSESTβ makes the best calculated divider to be rounded to the closest integer instead of the down one. no floor-core behavior here. π―CLK_MULTIPLIER_BIG_ENDIANβ by default little endian register accesses are used for the multiplier register. setting this flag makes the register accesses big endian. endianness check, slay. π§
lockβ the register lock. protect the register, bestie. π
π« Description π«
Clock with an adjustable multiplier affecting its output frequency. Implements .recalc_rate, .set_rate and .determine_rate. she ate and left no crumbs. π₯
π₯ SEE ALSO π₯
- Kernel file
./include/linux/clk-provider.hclk frameworkflags(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)struct clk_fixed_factor(9)devm_clk_hw_register_fixed_factor_parent_hw(9)struct clk_fractional_divider(9)clk_hw_get_dev(9)clk_hw_get_of_node(9)
xoxo, your kernel bestie π β source/version: ./include/linux, date: October 2026. struct clk_multiplier(9) is out. stay slaying, babes π
π¦ 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