STRUCT I2C_ATR_ALIAS_PAIR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct i2c_atr_alias_pair(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸ’… and today's main character is struct i2c_atr_alias_pair β€” it's literally the lil container that holds the alias assigned to a client address. that's the whole vibe. no cap. πŸŽ€


🌸 SYNOPSIS 🌸

struct i2c_atr_alias_pair {
    struct list_head node;
    bool fixed;
    u16 addr;
    u16 alias;
 };

like, that's the whole struct. four fields. iconic. πŸ¦‹


πŸ’– Members πŸ’–

okay so let's go through the glow-ups one by one, iykyk:

  • node β€” it's a list node. that's it, that's the whole job. it's giving "i'm just here to be linked." ✨
  • fixed β€” this is the spicy one πŸ”₯. it means the alias pair cannot be replaced during dynamic address attachment. and before you ask why β€” this flag is literally necessary for situations where a single I2C transaction contains more distinct target addresses than the ATR channel can handle 😭. it marks addresses that have already been attached to an alias, so that their alias pair does not get evicted by a subsequent address in the same transaction. it's a bodyguard. it's protection. it said "not on my watch" πŸ’€.
  • addr β€” the address of the client on the child bus. straightforward. slay. 🌈
  • alias β€” the I2C alias address assigned by the driver. and this is the important bit, bestie: this is the address that will be used to issue I2C transactions on the parent (physical) bus πŸ‘‘. that's the one the real world sees. periodt.

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/i2c/i2c-atr.c
  • struct i2c_atr_alias_pool(9)
  • struct i2c_atr_chan(9)
  • struct i2c_atr(9)

bestie go read the friends too, they're all in the same friend group fr fr 🫢


ngl if you skipped the fixed explanation, go back up πŸ™ˆ. that's the part that keeps your multi-address transactions from eating themselves. it's lowkey the whole plot. ⭐

okay and for the cute sign-off: this lil masterpiece lives under ./drivers/i2c 🌸, and the version stamp is October 2026 β€” and yes, the page title is literally struct i2c_atr_alias_pair(9) again at the bottom, because the manpage said "main character energy" twice and honestly? respect πŸ’œ. bye bestie, go read your kernel source πŸŽ€

πŸ“¦ where this page comes from