STRUCT TI_SCI_MSG_REQ_GET_CLOCK_NUM_PARENTS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ti_sci_msg_req_get_clock_num_parents πŸ’…

okay so bestie, welcome to the Kernel API Manual ✨ β€” this is the page for struct ti_sci_msg_req_get_clock_num_parents, and honestly it's giving "small struct, big responsibilities" energy πŸŽ€


🌸 NAME 🌸

struct ti_sci_msg_req_get_clock_num_parents β€” the request that asks "so how many clock parents does this thing even have?" no cap πŸ’–


✨ SYNOPSIS ✨

struct ti_sci_msg_req_get_clock_num_parents {
    struct ti_sci_msg_hdr hdr;
    u32 dev_id;
    u8 clk_id;
    u32 clk_id_32;
 };

that's the whole shape of it, and yes the closing brace has a lil extra space in the original β€” we don't touch it, periodt 🫢


πŸ¦‹ Members πŸ¦‹

  • hdr β€” the generic header, the lil ~hello my name is~ card every message carries ✨
  • dev_id β€” device identifier, aka which device this request is for, lowkey the address on the envelope πŸ’Œ
  • clk_id β€” the clock identifier for the device on this request. > ⚠️ okay important: set this to 255 if the clock ID is greater than or equal to 255 β€” it's the overflow escape hatch 🚨
  • clk_id_32 β€” the actual clock identifier, used when the clk_id field is holding 255. so clk_id says "too big, check the sequel" and this field delivers πŸ˜­πŸ‘‘

πŸ’œ Description πŸ’œ

So this request is literally just asking for the tea β˜•: it provides information about how many clock parent options are available for a given clock to a device. And the manpage says this is typically used for input clocks β€” so like, mostly an input-clock situation, iykyk 🌈

On the protocol side (and this part is facts, not vibes): the request type is TI_SCI_MSG_GET_NUM_CLOCK_PARENTS, and the response is the appropriate message β€” or a NACK in case of inability to satisfy the request. so if it can't be done, you get the NACK, and that's your answer πŸ’€


πŸ”₯ SEE ALSO πŸ”₯

bestie, the see-also list here is long, and the way that it ate β€” every single one of these, in order, no skips 🫢

  • 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_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_set_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)

like?? the roster is massive and every one of them is a whole main character, we stan a well-cross-referenced header file πŸ‘‘πŸ’…


🧚 sign-off 🧚

and that's the page, bestie!! this one lives in ./drivers/firmware (that's the source, mwah πŸ’–), from the October 2026 drop, and the footer is literally just the page name struct ti_s..._num_parents(9) waving goodbye at you πŸŽ€βœ¨ go forth and count those clock parents, fr fr πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from