STRUCT TI_SCI_INFO(9)
β¨ struct ti_sci_info(9) β¨
okay bestie, welcome to the Kernel API Manual π
this is the whole entire page about struct ti_sci_info and honestly? it's giving main character energy for the TI SCI subsystem. let's get into it π«Ά
πΈ NAME πΈ
struct ti_sci_info β the structure that represents a TI SCI instance, like, the whole vibe of one SCI thing in one struct π
β¨ SYNOPSIS β¨
here's the literal layout, no cap, copy it exactly or the compiler will simply end you π
struct ti_sci_info {
struct device *dev;
const struct ti_sci_desc *desc;
struct dentry *d;
void __iomem *debug_region;
char *debug_buffer;
size_t debug_region_size;
struct ti_sci_handle handle;
struct mbox_client cl;
struct mbox_chan *chan_tx;
struct mbox_chan *chan_rx;
struct ti_sci_xfers_info minfo;
struct list_head node;
unsigned long irqs[1 << (( 8) - 1)];
struct mutex irq_lock;
u8 host_id;
u64 fw_caps;
int users;
};
(yes, that irqs line is real, she's iconic and she's doing math in her index expression π₯ and yes there's a lil space before that closing brace, she lives there, leave her alone π)
π¦ Members π¦
okay so every single member, and what she actually does:
devβ device pointer. the classic. the moment. π«Άdescβ SoC description for this instance. this is the SoC lore, iykyk πdβ debugfs file entry. her little debugfs doorway β¨debug_regionβ memory region where the debug message are available. yes, that's the wording, and yes it's where the debug messages hang out πdebug_bufferβ buffer allocated to copy debug messages. it copies. it buffers. she serves πdebug_region_sizeβ the debug region size. how big the debug region is. slay, we love a self-explanatory queen πhandleβ instance of TI SCI handle to send to clients. this is the one you actually hand out, periodt βclβ mailbox client. π¬chan_txβ transmit mailbox channel. the sending one πchan_rxβ receive mailbox channel. the getting one π₯minfoβ message info. πnodeβ list head. she's a list head, that's the whole job πΈirqsβ list of allocated irqs. (an array, bestie, but the docs call it a list, we respect her π§)irq_lockβ protection for irq hash list. she's the bouncer, nobody touches the irq hash list without her πhost_idβ host ID. the ID of the host. πfw_capsβ FW/SoC low power capabilities. the low power flexibility of the firmware/SoC β¨usersβ number of users of this instance. counting the besties π«Ά
π₯ SEE ALSO π₯
okay this is the big one, a whole group chat of references, all from the kernel file:
./drivers/firmware/ti_sci.c
and she references like everyone she's ever met:
struct ti_sci_xfer(9)struct ti_sci_xfers_info(9)struct ti_sci_desc(9)struct ti_sci_irq(9)ti_sci_debug_show(9)ti_sci_debugfs_create(9)ti_sci_dump_header_dbg(9)ti_sci_rx_callback(9)ti_sci_get_one_xfer(9)ti_sci_put_one_xfer(9)ti_sci_do_xfer(9)ti_sci_cmd_get_revision(9)ti_sci_is_response_ack(9)ti_sci_set_device_state(9)ti_sci_get_device_state(9)ti_sci_cmd_get_device(9)ti_sci_cmd_get_device_exclusive(9)ti_sci_cmd_idle_device(9)ti_sci_cmd_idle_device_exclusive(9)ti_sci_cmd_put_device(9)ti_sci_cmd_dev_is_valid(9)ti_sci_cmd_dev_get_clcnt(9)ti_sci_cmd_dev_is_idle(9)ti_sci_cmd_dev_is_stop(9)ti_sci_cmd_dev_is_on(9)ti_sci_cmd_dev_is_trans(9)ti_sci_cmd_set_device_resets(9)ti_sci_cmd_get_device_resets(9)ti_sci_set_clock_state(9)ti_sci_cmd_get_clock_state(9)ti_sci_cmd_get_clock(9)ti_sci_cmd_idle_clock(9)ti_sci_cmd_put_clock(9)ti_sci_cmd_clk_is_auto(9)ti_sci_cmd_clk_is_on(9)ti_sci_cmd_clk_is_off(9)ti_sci_cmd_clk_set_parent(9)ti_sci_cmd_clk_get_parent(9)ti_sci_cmd_clk_get_num_parents(9)ti_sci_cmd_clk_get_match_freq(9)ti_sci_cmd_clk_set_freq(9)ti_sci_cmd_clk_get_freq(9)ti_sci_cmd_prepare_sleep(9)ti_sci_msg_cmd_query_fw_caps(9)ti_sci_cmd_set_io_isolation(9)ti_sci_msg_cmd_lpm_wake_reason(9)ti_sci_cmd_set_device_constraint(9)ti_sci_cmd_set_latency_constraint(9)ti_sci_cmd_lpm_abort(9)ti_sci_get_resource_range(9)ti_sci_cmd_get_resource_range_from_shost(9)ti_sci_cmd_get_resource_range(9)ti_sci_manage_irq(9)ti_sci_irq_hash(9)ti_sci_irq_equal(9)ti_sci_set_irq(9)ti_sci_free_irq(9)ti_sci_cmd_set_irq(9)ti_sci_cmd_set_event_map(9)ti_sci_cmd_free_irq(9)ti_sci_cmd_free_event_map(9)ti_sci_cmd_rm_ring_cfg(9)ti_sci_cmd_rm_psil_pair(9)ti_sci_cmd_rm_psil_unpair(9)ti_sci_cmd_rm_udmap_tx_ch_cfg(9)ti_sci_cmd_rm_udmap_rx_ch_cfg(9)ti_sci_cmd_rm_udmap_rx_flow_cfg(9)ti_sci_cmd_proc_request(9)ti_sci_cmd_proc_release(9)ti_sci_cmd_proc_handover(9)ti_sci_cmd_proc_set_config(9)ti_sci_cmd_proc_set_control(9)ti_sci_cmd_proc_get_status(9)ti_sci_get_handle(9)ti_sci_put_handle(9)devm_ti_sci_get_handle(9)ti_sci_get_by_phandle(9)devm_ti_sci_get_by_phandle(9)ti_sci_get_free_resource(9)ti_sci_release_resource(9)ti_sci_get_num_resources(9)devm_ti_sci_get_resource_sets(9)devm_ti_sci_get_of_resource(9)devm_ti_sci_get_resource(9)
like, she knows everybody. that's range πβ¨
and that's the whole page, bestie π no notes, ate and left no crumbs. this masterpiece of a man page lives in ./drivers/firmware and was dated October 2026 β mwah, iconic, 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