devm_clk_hw..._parent_data(9)
π NAME π
So the manual page is called devm_clk_hw..._parent_data(9) β that's the header, bestie, and this whole lil doc lives in the Kernel API Manual. The actual function is devm_clk_hw_register_gate_parent_data, and what it does is register a gate clock with the clock framework. That's it, that's the whole vibe. Iconic. πΈ
β¨ SYNOPSIS β¨
devm_clk_hw_register_gate_parent_data (dev , name , parent_data , flags
, reg , bit_idx , clk_gate_flags , lock );
okay so it literally takes eight arguments, no cap, we love a generous signature π«Ά every single one explained below, don't skip, i'll know π₯
π ARGUMENTS π
devβ the device that's registering this clock. like, who's the main character here? this guy. πnameβ name of this clock. gotta introduce her properly πparent_dataβ parent clk data. the parent situation, the family tree, the lore πflagsβ framework-specific flags for this clock. β¨regβ register address to control gating of this clock. this is where the gating magic happens πbit_idxβ which bit in the register controls gating of this clock. not just any bit, that bit. the chosen one πclk_gate_flagsβ gate-specific flags for this clock. yes, different flags from the other flags. keep up bestie πlockβ shared register lock for this clock. sharing is caring, and also thread safety is slay π
π¦ SEE ALSO π¦
Kernel file ./include/linux/clk-provider.h, plus the whole extended clock-provider friend group β iykyk, this is a long contact list:
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)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)
ngl that's a lot of cross-references but every one of them is cited in the original, so go read them, bestie, they're all in the family π§
and that's a wrap on devm_clk_hw..._parent_data(9) from the Kernel API Manual β sourced out of ./include/linux with a date stamp of October 2026. mwah, go register your gate 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