1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * i2c-mux-gpio interface to platform code 4 * 5 * Peter Korsgaard <peter.korsgaard@barco.com> 6 */ 7 8 #ifndef _LINUX_I2C_MUX_GPIO_H 9 #define _LINUX_I2C_MUX_GPIO_H 10 11 /* MUX has no specific idle mode */ 12 #define I2C_MUX_GPIO_NO_IDLE ((unsigned)-1) 13 14 /** 15 * struct i2c_mux_gpio_platform_data - Platform-dependent data for i2c-mux-gpio 16 * @parent: Parent I2C bus adapter number 17 * @base_nr: Base I2C bus number to number adapters from or zero for dynamic 18 * @values: Array of bitmasks of GPIO settings (low/high) for each 19 * position 20 * @n_values: Number of multiplexer positions (busses to instantiate) 21 * @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used 22 * @settle_time: Delay to wait when a new bus is selected 23 */ 24 struct i2c_mux_gpio_platform_data { 25 int parent; 26 int base_nr; 27 const unsigned *values; 28 int n_values; 29 unsigned idle; 30 u32 settle_time; 31 }; 32 33 #endif /* _LINUX_I2C_MUX_GPIO_H */ 34