ENUM I3C_BUS_MODE(9)
π 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 π
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_open_drain_speed(9)enum i3c_addr_slot_status(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)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms