ENUM I3C_ADDR_SLOT_STATUS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum i3c_addr_slot_status(9) πŸ’…

okay bestie, so this page lives in the Kernel API Manual and it's literally all about the I3C address slot status enum β€” like, the whole vibe is "which addresses are taken, which are free, and which ones are reserved." no cap, that's it. πŸŽ€


✨ NAME ✨

enum i3c_addr_slot_status β€” I3C address slot status πŸ‘‘


🌸 SYNOPSIS 🌸

enum i3c_addr_slot_status {
    I3C_ADDR_SLOT_FREE ,
    I3C_ADDR_SLOT_RSVD ,
    I3C_ADDR_SLOT_I2C_DEV ,
    I3C_ADDR_SLOT_I3C_DEV ,
    I3C_ADDR_SLOT_STATUS_MASK ,
    I3C_ADDR_SLOT_EXT_STATUS_MASK ,
    I3C_ADDR_SLOT_EXT_DESIRED

};

like, that's the whole lineup. every single one of them matters, so let's go through them one by one 🫢


πŸ¦‹ Constants πŸ¦‹

  • I3C_ADDR_SLOT_FREE β€” this address is free, bestie β€” it's up for grabs ✨
  • I3C_ADDR_SLOT_RSVD β€” this address is reserved, so hands off πŸ™ˆ
  • I3C_ADDR_SLOT_I2C_DEV β€” this address is assigned to an I2C device πŸ’œ
  • I3C_ADDR_SLOT_I3C_DEV β€” and this one's assigned to an I3C device 🌈
  • I3C_ADDR_SLOT_STATUS_MASK β€” it's the address slot mask, iconic πŸ’…
  • I3C_ADDR_SLOT_EXT_STATUS_MASK β€” the address slot mask with extended information β€” yeah, she's got extra ✨
  • I3C_ADDR_SLOT_EXT_DESIRED β€” okay so this bitmask represents addresses that are preferred by some devices, like the "assigned-address" property in a device tree source. and here's the thing: on an I3C bus, addresses get assigned dynamically, so we literally have to know which addresses are free to use and which ones are already assigned. it's giving main character energy for real πŸ”₯

πŸ‘‘ Description πŸ‘‘

addresses that get marked as reserved are the ones reserved by the I3C protocol β€” like the broadcast address, and so on β€” literally reserved by the protocol itself, not by us πŸŽ€


πŸ’– SEE ALSO πŸ’–

Kernel file ./include/linux/i3c/master.h β€” struct i3c_i2c_dev_desc(9), struct i2c_dev_boardinfo(9), struct i2c_dev_desc(9), struct i3c_ibi_slot(9), struct i3c_device_ibi_info(9), struct i3c_dev_boardinfo(9), struct i3c_dev_desc(9), struct i3c_device(9), enum i3c_bus_mode(9), enum i3c_open_drain_speed(9), struct i3c_bus(9), struct i3c_master_controller_ops(9), struct i3c_master_controller(9), i3c_bus_for_each_i2cdev(9), i3c_bus_for_each_i3cdev(9), struct i3c_dma(9), i3c_dev_get_master_data(9), i3c_dev_set_master_data(9), i2c_dev_get_master_data(9), i2c_dev_set_master_data(9), i3c_dev_get_master(9), i2c_dev_get_master(9), i3c_master_get_bus(9) β€” yeah, that's the whole friend group, go say hi πŸ¦‹


aaaand that's the page, bestie πŸ’œ it comes from ./include/linux/i3c and it's dated October 2026, so go forth and slay your address slots πŸŒΈβœ¨πŸŽ€

πŸ“¦ where this page comes from