ENUM I3C_BUS_MODE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum i3c_bus_mode(9) β€” I3C bus mode

okay bestie, welcome to the Kernel API Manual ✨ (yes that's the manual name, we're fancy here). this little page is all about enum i3c_bus_mode β€” the enum that tells you what kind of vibes your I3C bus is giving. let's get into it 🫢


✨ NAME ✨

enum i3c_bus_mode β€” I3C bus mode πŸ’«


🌸 SYNOPSIS 🌸

here's the whole enum, verbatim, no cap:

enum i3c_bus_mode {
    I3C_BUS_MODE_PURE ,
    I3C_BUS_MODE_MIXED_FAST ,
    I3C_BUS_MODE_MIXED_LIMITED ,
    I3C_BUS_MODE_MIXED_SLOW

};

πŸŽ€ Constants πŸŽ€

okay so these are the four modes, and tbh each one has its own whole personality πŸ’…

  • I3C_BUS_MODE_PURE β€” literally only I3C devices are connected to the bus. no limitation expected, it's giving clean, unbothered, main character energy πŸ‘‘ no I2C weirdness to worry about.
  • I3C_BUS_MODE_MIXED_FAST β€” there are I2C devices on the bus with a 50ns spike filter. the only impact in this mode? the high SCL pulse has to stay below 50ns so we can trick those I2C devices when transmitting I3C frames 😭 that's it, that's the whole constraint. sneaky but iconic.
  • I3C_BUS_MODE_MIXED_LIMITED β€” I2C devices without a 50ns spike filter are present on the bus. but good news bestie, they allow compliance up to the maximum SDR SCL clock frequency ⭐ so we're not totally limited.
  • I3C_BUS_MODE_MIXED_SLOW β€” I2C devices without a 50ns spike filter are present on the bus. periodt. that's the whole description, no extra lore πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group lives in the kernel file ./include/linux/i3c/master.h β€” go say hi to all of them πŸ’–


and that's the page, bestie πŸ§šπŸ’œ this one came from ./include/linux/i3c, dated October 2026 β€” so go forth and mode your bus correctly, iykyk 🌈πŸ”₯

πŸ“¦ where this page comes from