clk_debug_register(9)
π
clk_debug_register β NAME
okay so clk_debug_register β bestie, this is the one that adds a clk node to the debugfs clk directory β¨ (yes, that's the whole vibe, and it slays)
this page lives in the Kernel API Manual, section 9 β you're welcome π
πΈ SYNOPSIS
void clk_debug_register (struct clk_core *core );
like, that's it. one function, one argument, zero drama π
β¨ ARGUMENTS
coreβ the clk that's being added to the debugfs clk directory. that's your main character right there π
π¦ DESCRIPTION
so here's the tea β β this function dynamically adds a clk to the debugfs clk directory, but only if debugfs has been initialized. periodt.
if debugfs is not initialized yet? it just bails out early π and honestly that's not a bug, that's a strategy β because the debugfs clk directory is going to be created lazily by clk_debug_init as part of a late_initcall. so like, it'll get there eventually, no cap. the directory just shows up fashionably late π§
ngl this is the "i'll do it later" of kernel functions, except it actually means it and the timing is fully intentional π
π₯ SEE ALSO
okay bestie, buckle up β this is the group chat and everyone is in it π
Kernel file ./drivers/clk/clk.c is the source of all this, and these are the icons you'll be hanging with:
struct clk_core(9)clk_pm_runtime_get_all(9)clk_pm_runtime_put_all(9)clk_core_get(9)clk_determine_rate_noop(9)clk_rate_exclusive_put(9)clk_rate_exclusive_get(9)clk_unprepare(9)clk_prepare(9)clk_disable(9)clk_gate_restore_context(9)clk_save_context(9)clk_restore_context(9)clk_enable(9)clk_is_enabled_when_prepared(9)clk_hw_init_rate_request(9)clk_hw_forward_rate_request(9)__clk_determine_rate(9)clk_hw_round_rate(9)clk_round_rate(9)__clk_notify(9)__clk_recalc_accuracies(9)clk_get_accuracy(9)__clk_recalc_rates(9)clk_get_rate(9)clk_hw_get_parent_index(9)__clk_speculate_rates(9)clk_set_rate(9)clk_set_rate_exclusive(9)clk_set_rate_range(9)clk_set_min_rate(9)clk_set_max_rate(9)clk_get_parent(9)clk_has_parent(9)clk_set_parent(9)clk_set_phase(9)clk_get_phase(9)clk_set_duty_cycle(9)clk_get_scaled_duty_cycle(9)clk_is_match(9)clk_debug_init(9)__clk_core_init(9)clk_core_link_consumer(9)clk_core_unlink_consumer(9)alloc_clk(9)free_clk(9)clk_hw_create_clk(9)clk_hw_get_clk(9)dev_or_parent_of_node(9)clk_register(9)clk_hw_register(9)clk_unregister(9)clk_hw_unregister(9)devm_clk_register(9)devm_clk_hw_register(9)devm_clk_hw_get_clk(9)clk_notifier_register(9)clk_notifier_unregister(9)struct of_clk_provider(9)of_clk_add_provider(9)of_clk_add_hw_provider(9)devm_of_clk_add_hw_provider(9)of_clk_del_provider(9)of_parse_clkspec(9)of_clk_get_from_provider(9)of_clk_get_by_name(9)of_clk_get_parent_count(9)of_clk_parent_fill(9)of_clk_detect_critical(9)of_clk_init(9)
like i said β everyone. iykyk π«Ά
and that's the whole page, bestie! β¨ this lil gem comes to you from the source dir ./drivers/clk, dated October 2026, straight out of the Kernel API Manual ππ go forth and debug your clks, you absolute icon ππ
π¦ 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