i2c-gpio.h 829 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef _I2C_GPIO_H
  2. #define _I2C_GPIO_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. struct i2c_gpio_platform_data {
  7. int devid;
  8. unsigned int sda_pin;
  9. unsigned int scl_pin;
  10. int udelay;
  11. int timeout;
  12. unsigned int sda_is_open_drain:1;
  13. unsigned int scl_is_open_drain:1;
  14. unsigned int scl_is_output_only:1;
  15. };
  16. struct i2c_algo_bit_data {
  17. void *data; /* private data for lowlevel routines */
  18. void (*setsda) (void *data, int state);
  19. void (*setscl) (void *data, int state);
  20. int (*getsda) (void *data);
  21. int (*getscl) (void *data);
  22. /* local settings */
  23. int udelay; /* half clock cycle time in us,
  24. minimum 2 us for fast-mode I2C,
  25. minimum 5 us for standard-mode I2C and SMBus,
  26. maximum 50 us for SMBus */
  27. int timeout; /* in jiffies */
  28. };
  29. void i2c_gpio_init(void);
  30. #ifdef __cplusplus
  31. }
  32. #endif
  33. #endif