STRUCT DFLL_RATE_REQ(9)
π struct dfll_rate_req(9) β bestie edition
okay so this is a page from the Kernel API Manual and it's literally all about struct dfll_rate_req, which is the target DFLL rate request data π like, this is the little bundle of info that says "hey, here's the frequency we want." no cap. let's get into it β¨
β¨ NAME β¨
struct dfll_rate_req β target DFLL rate request data π¦
like, the name says it all honestly. it's the request, it's for the DFLL, and it's full of data. iconic.
πΈ SYNOPSIS πΈ
struct dfll_rate_req {
unsigned long rate;
unsigned long dvco_target_rate;
int lut_index;
u8 mult_bits;
u8 scale_bits;
};
that's the whole struct, bestie. five members. she's compact. she's efficient. we stan π
π₯ Members π₯
okay so let's go through them one by one because each one is doing her own thing and we respect that:
rateβ target frequency, after the postscaling. periodt.dvco_target_rateβ target frequency, after the postscaling. yes it also says "after the postscaling," that's literally what the original says, i'm not making this up πlut_indexβ the LUT index at which voltagedvco_target_ratewill be reached. so like, which rung on the ladder gets you that rate π₯mult_bitsβ the value you program into the MULT bits of theDFLL_FREQ_REQregister. it's giving "here's your multiplier, go off."scale_bitsβ the value you program into the SCALE bits of theDFLL_FREQ_REQregister. same energy, different bits β¨
π SEE ALSO π
okay bestie this list is LONG and i need you to stay with me because every single one of these is here for a reason. this struct lives in the Kernel file ./drivers/clk/tegra/clk-dfll.c and it runs with all of these:
enum dfll_ctrl_mode(9)enum dfll_tune_range(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. that's the whole friend group. they all hang out together in ./drivers/clk/tegra and honestly their group chat must be chaos π«Ά
pro tip bestie: if you're touching this struct, you're probably also touching at least three of the functions above. they travel together. it's giving found family π
and that's the page!! π you made it to the end, i'm so proud of you. this one's from the Kernel API Manual, living in the <pink>./drivers/clk/tegra</pink> neighborhood, dated October 2026, and catalogued as struct dfll_rate_req(9) β go forth and request some rates, 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