STRUCT I2C_MUX_GPIO_PLATFORM_DATA(9)
π struct i2c_mux_gpio_platform_data β NAME π
okay so bestie, welcome to struct i2c_mux_gpio_platform_data in the Kernel API Manual (section 9, iykyk) β it's literally the platform-dependent data for i2c-mux-gpio. that's it, that's the whole vibe check. she's a carrier struct for the GPIO-driven i2c mux and she's serving β¨
πΈ SYNOPSIS πΈ
here's the whole struct, character for character, no cap:
struct i2c_mux_gpio_platform_data {
int parent;
int base_nr;
const unsigned *values;
int n_values;
unsigned idle;
u32 settle_time;
};
π Members π
every single field, explained with love:
parentβ the parent I2C bus adapter number. like, which bus is the mux hanging off of. π«Άbase_nrβ the base I2C bus number to number adapters from, or zero for dynamic. so if you want to decide the numbering yourself, drop it here; if you want the kernel to pick, just hand over a0and let her cook. πvaluesβ array of bitmasks of GPIO settings (low/high) for each position. one bitmask per mux position, each bit saying hi or low to a GPIO. obsessed. β¨n_valuesβ number of multiplexer positions (busses to instantiate). it's giving headcount for the busses. π¦idleβ bitmask to write to the MUX when idle, orGPIO_I2CMUX_NO_IDLEif it's not used. yeah, that exact symbol, don't get creative with it. πsettle_timeβ delay to wait when a new bus is selected. muxes need a sec to settle in, same as the rest of us. π
ngl this struct is small but she's doing main character energy work β mux everything, slay.
π¦ SEE ALSO π¦
- Kernel file
./include/linux/platform_data/i2c-mux-gpio.hβ go read it bestie, it's right there π₯
this page came from the kernel source under ./include/linux/platform_data, dated October 2026 β thanks for coming to my ted talk, mwah π periodt. ππ
π¦ 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