1 /* 2 * i2c-gpio interface to platform code 3 * 4 * Copyright (C) 2007 Atmel Corporation 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 #ifndef _LINUX_I2C_GPIO_H 11 #define _LINUX_I2C_GPIO_H 12 13 /** 14 * struct i2c_gpio_platform_data - Platform-dependent data for i2c-gpio 15 * @udelay: signal toggle delay. SCL frequency is (500 / udelay) kHz 16 * @timeout: clock stretching timeout in jiffies. If the slave keeps 17 * SCL low for longer than this, the transfer will time out. 18 * @sda_is_open_drain: SDA is configured as open drain, i.e. the pin 19 * isn't actively driven high when setting the output value high. 20 * gpio_get_value() must return the actual pin state even if the 21 * pin is configured as an output. 22 * @scl_is_open_drain: SCL is set up as open drain. Same requirements 23 * as for sda_is_open_drain apply. 24 * @scl_is_output_only: SCL output drivers cannot be turned off. 25 */ 26 struct i2c_gpio_platform_data { 27 int udelay; 28 int timeout; 29 unsigned int sda_is_open_drain:1; 30 unsigned int scl_is_open_drain:1; 31 unsigned int scl_is_output_only:1; 32 }; 33 34 #endif /* _LINUX_I2C_GPIO_H */ 35