STRUCT TI_SCI_MSG_REQ_SET_CLOCK_FREQ(9)
π
struct ti_sci_msg_req_set_clock_freq(9) β Kernel API Manual β¨
okay so bestie, weβre in the Kernel API Manual and this page is all about the Request to setup a clock frequency struct. itβs giving very specific firmware behavior and weβre gonna get into every field, no skips π
π NAME π
struct ti_sci_msg_req_set_clock_freq β the Request to setup a clock frequency struct. periodt.
β¨ SYNOPSIS β¨
hereβs the exact shape, no cap:
struct ti_sci_msg_req_set_clock_freq {
struct ti_sci_msg_hdr hdr;
u32 dev_id;
u64 min_freq_hz;
u64 target_freq_hz;
u64 max_freq_hz;
u8 clk_id;
u32 clk_id_32;
};
π Members π
hdrβ Generic Header π«Άdev_idβ the Device identifier this request is for π«min_freq_hzβ the minimum allowable frequency in Hz. like, this is the minimum allowable programmed frequency, and it does not account for clock tolerances and jitter. important bestie πtarget_freq_hzβ the target clock frequency. the clock will be programmed at a rate as close to this target frequency as possible. iconic behavior fr fr βmax_freq_hzβ the maximum allowable frequency in Hz. this is the maximum allowable programmed frequency, and it does not account for clock tolerances and jitter. same energy asmin_freq_hz, just the ceiling π¦clk_idβ Clock identifier for the device for this request. Set to255if clock ID is greater than or equal to255. iykyk πclk_id_32β Clock identifier ifclk_idfield is set to255. the backup field ate π
πΈ NOTE πΈ
so normally, clock frequency management is automatically done by the TISCI entity. but for specific requests, TISCI evaluates capability to achieve the requested range and responds with a success/failure message. lowkey very responsible of it π
this sets the desired frequency for a clock within an allowable range.
β οΈ warning vibe: this message will fail on an enabled clock unlessMSG_FLAG_CLOCK_ALLOW_FREQ_CHANGEis set for the clock. additionally, if other clocks have their frequency modified due to this message, they also must have theMSG_FLAG_CLOCK_ALLOW_FREQ_CHANGEor be disabled. not me being dramatic, thatβs just the rule π
calling set frequency on a clock input to the SoC pseudo-device will inform the PMMC of that clockβs frequency. setting a frequency of zero will indicate the clock is disabled. zero = off, got it π«Ά
calling set frequency on clock outputs from the SoC pseudo-device will function similarly to setting the clock frequency on a device. same vibe, different direction π«
request type is TI_SCI_MSG_SET_CLOCK_FREQ, response is a generic ACK/NACK message. thatβs the whole handshake, bestie π€
π« SEE ALSO π«
- Kernel file
./drivers/firmware/ti_sci.hπ¦ struct ti_sci_msg_hdr(9)struct ti_sci_msg_resp_version(9)struct ti_sci_msg_req_reboot(9)struct ti_sci_msg_resp_query_fw_caps(9)struct ti_sci_msg_req_set_device_state(9)struct ti_sci_msg_req_get_device_state(9)struct ti_sci_msg_resp_get_device_state(9)struct ti_sci_msg_req_set_device_resets(9)struct ti_sci_msg_req_set_clock_state(9)struct ti_sci_msg_req_get_clock_state(9)struct ti_sci_msg_resp_get_clock_state(9)struct ti_sci_msg_req_set_clock_parent(9)struct ti_sci_msg_req_get_clock_parent(9)struct ti_sci_msg_resp_get_clock_parent(9)struct ti_sci_msg_req_get_clock_num_parents(9)struct ti_sci_msg_resp_get_clock_num_parents(9)struct ti_sci_msg_req_query_clock_freq(9)struct ti_sci_msg_resp_query_clock_freq(9)struct ti_sci_msg_req_get_clock_freq(9)struct ti_sci_msg_resp_get_clock_freq(9)struct ti_sci_msg_req_prepare_sleep(9)struct ti_sci_msg_req_set_io_isolation(9)struct ti_sci_msg_resp_lpm_wake_reason(9)struct ti_sci_msg_req_lpm_set_device_constraint(9)struct ti_sci_msg_req_lpm_set_latency_constraint(9)struct ti_sci_msg_req_get_resource_range(9)struct ti_sci_msg_resp_get_resource_range(9)struct ti_sci_msg_req_manage_irq(9)struct ti_sci_msg_rm_ring_cfg_req(9)struct ti_sci_msg_psil_pair(9)struct ti_sci_msg_psil_unpair(9)struct ti_sci_msg_udmap_rx_flow_cfg(9)struct rm_ti_sci_msg_udmap_rx_flow_opt_cfg(9)struct ti_sci_msg_rm_udmap_tx_ch_cfg_req(9)struct ti_sci_msg_rm_udmap_rx_ch_cfg_req(9)struct ti_sci_msg_rm_udmap_flow_cfg_req(9)struct ti_sci_msg_req_proc_request(9)struct ti_sci_msg_req_proc_release(9)struct ti_sci_msg_req_proc_handover(9)struct ti_sci_msg_req_set_config(9)struct ti_sci_msg_req_set_ctrl(9)struct ti_sci_msg_req_get_status(9)struct ti_sci_msg_resp_get_status(9)
okay bestie thatβs the whole page π source/version is ./drivers/firmware, date is October 2026, and the footer vibe is struct ti_sc...t_clock_freq(9) β 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