CLK FRAMEWORK FLAGS(9)
πΈ clk framework flags(9) πΈ
okay bestie, so this is a page from the Kernel API Manual and it's literally just the flag collection for the clock framework β like the group chat of struct clk and everyone's pinned messages. π
β¨ NAME β¨
clk framework flags β the shared flag vocabulary used all over the common struct clk π
π¦ DESCRIPTION π¦
These are the flags that get used across common struct clk. And listen β these flags should only affect the top-level framework. That's the rule, no cap. π«Ά
If you've got custom flags for dealing with hardware specifics? Those belong in struct clk_foo, bestie. Not here. Different lane, different vibe. β¨
So here's the whole lineup, and honestly? Every single one of them is kind of iconic:
CLK_SET_RATE_GATEβ must be gated across rate change πCLK_SET_PARENT_GATEβ must be gated across re-parentCLK_SET_RATE_PARENTβ propagate rate change up one level β¬οΈCLK_IGNORE_UNUSEDβ do not gate even if unused πCLK_GET_RATE_NOCACHEβ do not use the cached clk rateCLK_SET_RATE_NO_REPARENTβ don't re-parent on rate change π«CLK_GET_ACCURACY_NOCACHEβ do not use the cached clk accuracyCLK_RECALC_NEW_RATESβ recalc rates after notifications πCLK_SET_RATE_UNGATEβ clock needs to run to set rate πββοΈCLK_IS_CRITICALβ do not gate, ever π (like, ever ever)CLK_OPS_PARENT_ENABLEβ parents need enable during gate/ungate, set rate and re-parent πCLK_DUTY_CYCLE_PARENTβ duty cycle call may be forwarded to the parent clock π¨
periodt. those are all of them, and yes, CLK_IS_CRITICAL really does mean do not gate, ever. don't test it, bestie. π₯
π SEE ALSO π
Kernel file ./include/linux/clk-provider.h β and honestly the whole extended friend group:
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)struct clk_multiplier(9)clk_hw_get_dev(9)clk_hw_get_of_node(9)
π that's the whole page, bestie π
this one lives in ./include/linux, it's from October 2026, and it's part of the Kernel API Manual β go read it before you touch a clock, ily, bye π§ββοΈβ¨
π¦ 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