home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / linux / i2c / at24.h next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  982 b   |  29 lines

  1. #ifndef _LINUX_AT24_H
  2. #define _LINUX_AT24_H
  3.  
  4. #include <linux/types.h>
  5.  
  6. /*
  7.  * As seen through Linux I2C, differences between the most common types of I2C
  8.  * memory include:
  9.  * - How much memory is available (usually specified in bit)?
  10.  * - What write page size does it support?
  11.  * - Special flags (16 bit addresses, read_only, world readable...)?
  12.  *
  13.  * If you set up a custom eeprom type, please double-check the parameters.
  14.  * Especially page_size needs extra care, as you risk data loss if your value
  15.  * is bigger than what the chip actually supports!
  16.  */
  17.  
  18. struct at24_platform_data {
  19.     u32        byte_len;        /* size (sum of all addr) */
  20.     u16        page_size;        /* for writes */
  21.     u8        flags;
  22. #define AT24_FLAG_ADDR16    0x80    /* address pointer is 16 bit */
  23. #define AT24_FLAG_READONLY    0x40    /* sysfs-entry will be read-only */
  24. #define AT24_FLAG_IRUGO        0x20    /* sysfs-entry will be world-readable */
  25. #define AT24_FLAG_TAKE8ADDR    0x10    /* take always 8 addresses (24c00) */
  26. };
  27.  
  28. #endif /* _LINUX_AT24_H */
  29.