aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/i2c/at24.h
diff options
context:
space:
mode:
authorWolfram Sang <w.sang@pengutronix.de>2008-07-14 16:38:35 -0400
committerJean Delvare <khali@mahadeva.delvare>2008-07-14 16:38:35 -0400
commit2b7a5056a0a7ff17d5d2004c29c852a92a6bd632 (patch)
tree72a58b0b9a0f67f5ff95296176067a12d7d3825f /include/linux/i2c/at24.h
parente9ca9eb9d7fc7bf3dc3cec5ba7edb089c4625f7b (diff)
i2c: New-style EEPROM driver using device IDs
Add a new-style driver for most I2C EEPROMs, giving sysfs read/write access to their data. Tested with various chips and clock rates. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'include/linux/i2c/at24.h')
-rw-r--r--include/linux/i2c/at24.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/linux/i2c/at24.h b/include/linux/i2c/at24.h
new file mode 100644
index 000000000000..f6edd522a929
--- /dev/null
+++ b/include/linux/i2c/at24.h
@@ -0,0 +1,28 @@
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
18struct 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 */