i2c_of_prob...leanup_early(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… i2c_of_probe_simple_cleanup_early(9) β€” the "let go of the GPIOs early" girlie

okay so bestie, welcome to the Kernel API Manual πŸŽ€ β€” today's main character is i2c_of_probe_simple_cleanup_early, and yes the title up there is lowkey truncated (i2c_of_prob...leanup_early(9)) because even manpage headers gotta fit the vibe check. It's a simple helper for the I2C OF prober that releases GPIOs before the component gets enabled. Very "drop the keys before you walk in the door" energy πŸ”‘


✨ SYNOPSIS ✨

void i2c_of_probe_simple_cleanup_early (struct device *dev , void *data );

like, it returns void, it takes two things, and it does One Job. slay.


🌸 ARGUMENTS 🌸

  • dev β€” pointer to the struct device of the caller. And bestie… it's unused. literally not even looked at. it's giving plus-one-at-the-party energy πŸ™ˆ
  • data β€” pointer to the struct i2c_of_probe_simple_ctx helper context. this one's the actual VIP πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

So here's the tea β˜• β€” GPIO descriptors are exclusive. Like, exclusive-exclusive. Only one holder at a time, no sharing, no "we can both have it", no cap.

Which means they have to be released before the actual driver probes, so that the driver itself can acquire them. That's the whole entire point of this function: early cleanup, so the real driver doesn't show up to the party and find the GPIOs already taken πŸ˜­πŸ’€

fr fr β€” if you skip this, the driver probe is gonna get told "nope, someone else has it" and that someone else is you. awkward.

πŸ‘€ SEE ALSO πŸ‘€

go read those too, iykyk 🫢


aaaand that's the whole page!! sourced from ./drivers/i2c, dated October 2026, and yes she's still i2c_of_prob...leanup_early(9) in the footer because truncation is forever ✨ mwah πŸ’–πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from