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