ENUM DFLL_CTRL_MODE(9)
β¨ enum dfll_ctrl_mode β¨
Okay so this is straight out of the Kernel API Manual and it's literally all about DFLL hardware operating mode β the four little states the DFLL can be in, and bestie, you need to know them π
πΈ SYNOPSIS πΈ
enum dfll_ctrl_mode {
DFLL_UNINITIALIZED ,
DFLL_DISABLED ,
DFLL_OPEN_LOOP ,
DFLL_CLOSED_LOOP
};
(yes there's a lil' blank line before the closing brace, that's just how it is, don't come for me π )
π¦ Constants π¦
DFLL_UNINITIALIZEDβ the uninitialized state, i.e. it is not in the hardware bitfield. so like, it exists here but the hardware doesn't even know about it yet πDFLL_DISABLEDβ DFLL is not generating an output clock. clock? never heard of her πDFLL_OPEN_LOOPβ the DVCO is running, but the DFLL is not adjusting voltage. it's just vibing, do not perceive it βDFLL_CLOSED_LOOPβ DVCO running and the DFLL is adjusting voltage to match the requested rate. main character energy honestly π
π Description π
So the way this works is: the integer corresponding to the last two states, minus one, is what gets written to the DFLL hardware to change operating modes. no cap, that's the whole trick β¨
π SEE ALSO π
Kernel file ./drivers/clk/tegra/clk-dfll.c β and here's the whole friend group, in order, exactly like the original line-up:
enum dfll_tune_range(9), struct dfll_rate_req(9), dfll_is_running(9), tegra_dfll_runtime_resume(9), tegra_dfll_runtime_suspend(9), dfll_tune_low(9), dfll_scale_dvco_rate(9), dfll_set_mode(9), dfll_i2c_set_output_enabled(9), dfll_pwm_set_output_enabled(9), dfll_set_force_output_value(9), dfll_set_force_output_enabled(9), dfll_force_output(9), dfll_load_i2c_lut(9), dfll_init_i2c_if(9), dfll_init_out_if(9), find_lut_index_for_rate(9), dfll_calculate_rate_request(9), dfll_set_frequency_request(9), dfll_request_rate(9), dfll_disable(9), dfll_enable(9), dfll_set_open_loop_config(9), dfll_lock(9), dfll_unlock(9), dfll_register_clk(9), dfll_unregister_clk(9), dfll_calc_monitored_rate(9), dfll_read_monitor_rate(9), dfll_set_default_params(9), dfll_init_clks(9), dfll_init(9), tegra_dfll_suspend(9), tegra_dfll_resume(9), dfll_build_i2c_lut(9), read_dt_param(9), dfll_fetch_i2c_params(9), dfll_fetch_common_params(9), tegra_dfll_register(9), tegra_dfll_unregister(9)
like, go read them, iykyk π«Ά
π§ quick vibe check: the three things to hold onto are the enum name, that "minus one" rule for the last two states, and the fact that DFLL_UNINITIALIZED isn't in the hardware bitfield. everything else is just lore π
okay that's the page!! sourced from ./drivers/clk/tegra, dated October 2026, filed under enum dfll_ctrl_mode(9) β mwah, slay, bye bestie ππ
π¦ 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