1 /* 2 * gpio-i2cmux interface to platform code 3 * 4 * Peter Korsgaard <peter.korsgaard@barco.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 as 8 * published by the Free Software Foundation. 9 */ 10 11 #ifndef _LINUX_GPIO_I2CMUX_H 12 #define _LINUX_GPIO_I2CMUX_H 13 14 /* MUX has no specific idle mode */ 15 #define GPIO_I2CMUX_NO_IDLE ((unsigned)-1) 16 17 /** 18 * struct gpio_i2cmux_platform_data - Platform-dependent data for gpio-i2cmux 19 * @parent: Parent I2C bus adapter number 20 * @base_nr: Base I2C bus number to number adapters from or zero for dynamic 21 * @values: Array of bitmasks of GPIO settings (low/high) for each 22 * position 23 * @n_values: Number of multiplexer positions (busses to instantiate) 24 * @gpios: Array of GPIO numbers used to control MUX 25 * @n_gpios: Number of GPIOs used to control MUX 26 * @idle: Bitmask to write to MUX when idle or GPIO_I2CMUX_NO_IDLE if not used 27 */ 28 struct gpio_i2cmux_platform_data { 29 int parent; 30 int base_nr; 31 const unsigned *values; 32 int n_values; 33 const unsigned *gpios; 34 int n_gpios; 35 unsigned idle; 36 }; 37 38 #endif /* _LINUX_GPIO_I2CMUX_H */ 39