ti_sci_get_handle(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

ti_sci_get_handle β€” get the TI SCI handle for a device. that's the whole mission bestie πŸ’–

this lil page lives in the Kernel API Manual, and honestly? it's a short read, but it's important.


✨ SYNOPSIS ✨

const struct ti_sci_handle * ti_sci_get_handle (struct device *dev );

🌸 ARGUMENTS 🌸

  • dev β€” pointer to the device for which we want the SCI handle. literally just hand over the device and we're cooking 🫢

πŸ’… NOTE πŸ’…

okay so two things, and you need to hear both:

  • this function does not track individual clients of the framework, and it's expected to be maintained by the caller of the TI SCI protocol library. like, the framework isn't keeping receipts on you β€” that's your job, main character 😭
  • ti_sci_put_handle must be balanced with a successful ti_sci_get_handle. no drive-by grabs. you take it, you put it back. balance. periodt πŸ’€
ngl the balance thing is the one that gets people. take handle β†’ do the thing β†’ put handle back. every single time. πŸ”₯

πŸ”₯ RETURN πŸ”₯

pointer to handle if successful ✨ else:

  • -EPROBE_DEFER if the instance is not ready
  • -ENODEV if the required node handler is missing
  • -EINVAL if invalid conditions are encountered

so like... three very different sad endings, all clearly labeled. we love a return value that tells you what's wrong πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./drivers/firmware/ti_sci.c β€” the whole TI SCI situation starts here bestie, this is the source. plus the entire friend group:


okay that's the whole page πŸ’œ this one's from the Kernel API Manual, sourced out of ./drivers/firmware, dated October 2026, and the page itself is ti_sci_get_handle(9).

now go get that handle and please put it back when you're done πŸŽ€βœ¨ mwah, ily, bye πŸ¦‹

πŸ“¦ where this page comes from