STRUCT IIO_ITIME_SEL_MUL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iio_itime_sel_mul(9) β€” the integration time glow-up

okay bestie, welcome to the Kernel API Manual ✨ this one's a lil struct that basically explains how long your sensor stares at the world and how much that stare gets amplified. it's giving very much "photography exposure but make it kernel" πŸ“Έ


πŸ¦‹ NAME πŸ¦‹

struct iio_itime_sel_mul β€” integration time description, and honestly? it's the whole personality of your sensor's timing situation πŸ’–


✨ SYNOPSIS ✨

struct iio_itime_sel_mul {
    int time_us;
    int sel;
    int mul;
 };

like, three ints. that's it. that's the struct. no cap, minimal and iconic πŸ‘‘


🌸 Members 🌸

  • time_us β€” the integration time in microseconds ⏱️ real talk: time values must be positive, because negative values are reserved for error handling. so pls don't put a negative in there unless you're literally signalling an error, iykyk πŸ™ˆ
  • sel β€” the selector, which is usually a register value, and it's what you use to point at this specific time 🎯 it's basically the time's little name tag at the register party.
  • mul β€” the multiplication applied to the values caused by this time πŸ”₯ so like, this time slot β†’ this much gain. the multiplier, the amplifier, the drama.

🧚 DESCRIPTION 🧚

okay so picture this: lots of devices β€” light sensors especially, they're the main character here β€” let you set the duration for collecting data. like how long the sensor is out there gathering vibes 🌈

and typically? that duration also has an impact on the magnitude of the measured values, aka the gain. the way that works is: this structure describes the relation between integration time and amplification, plus the corresponding selector (which, again, is usually the register value) πŸŽ€

a whole example, because examples ate: say you've got a sensor that allows 50, 100, 200 and 400 mS times πŸ• the respective multiplication values could be 50 mS => 1, 100 mS => 2, 200 mS => 4 and 400 mS => 8. and that's assuming the impact of integration time is linear β€” in a way that when collecting data for 50 mS caused value X, doubling the data collection time caused value 2X, etc. πŸ’« literally doubling the time, doubling the value. slay.


⭐ NOTE ⭐

bestie, read this part, it's the vibe check 🫢
  • Only selectors >= 0 supported. no negatives, periodt πŸ’€
  • Only multipliers > 0 supported. strictly greater than zero, zero is not invited to this party πŸ™…β€β™€οΈ

πŸ”₯ SEE ALSO πŸ”₯

all of these are the supporting cast and they're lowkey essential, go read them πŸ’œ


alright bestie, that's the whole page 🌸 this lil kernel doc lives at ./include/linux/iio, dated October 2026, and it's filed under struct iio_itime_sel_mul(9) β€” mwah, go forth and set your integration times correctly πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from