i2c-pxa.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _LINUX_I2C_ALGO_PXA_H
  2. #define _LINUX_I2C_ALGO_PXA_H
  3. struct i2c_eeprom_emu_watcher {
  4. void (*write)(void *, unsigned int addr, unsigned char newval);
  5. };
  6. struct i2c_eeprom_emu_watch {
  7. struct list_head node;
  8. unsigned int start;
  9. unsigned int end;
  10. struct i2c_eeprom_emu_watcher *ops;
  11. void *data;
  12. };
  13. #define I2C_EEPROM_EMU_SIZE (256)
  14. struct i2c_eeprom_emu {
  15. unsigned int size;
  16. unsigned int ptr;
  17. unsigned int seen_start;
  18. struct list_head watch;
  19. unsigned char bytes[I2C_EEPROM_EMU_SIZE];
  20. };
  21. typedef enum i2c_slave_event_e {
  22. I2C_SLAVE_EVENT_START_READ,
  23. I2C_SLAVE_EVENT_START_WRITE,
  24. I2C_SLAVE_EVENT_STOP
  25. } i2c_slave_event_t;
  26. struct i2c_slave_client {
  27. void *data;
  28. void (*event)(void *ptr, i2c_slave_event_t event);
  29. int  (*read) (void *ptr);
  30. void (*write)(void *ptr, unsigned int val);
  31. };
  32. extern int i2c_eeprom_emu_addwatcher(struct i2c_eeprom_emu *, void *data,
  33.      unsigned int addr, unsigned int size,
  34.      struct i2c_eeprom_emu_watcher *);
  35. extern void i2c_eeprom_emu_delwatcher(struct i2c_eeprom_emu *, void *data, struct i2c_eeprom_emu_watcher *watcher);
  36. extern struct i2c_eeprom_emu *i2c_pxa_get_eeprom(void);
  37. #endif /* _LINUX_I2C_ALGO_PXA_H */