Skip to content

Commit

Permalink
i2c: New-style EEPROM driver using device IDs
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Wolfram Sang authored and Jean Delvare committed Jul 14, 2008
1 parent e9ca9eb commit 2b7a505
Show file tree
Hide file tree
Showing 4 changed files with 638 additions and 0 deletions.
26 changes: 26 additions & 0 deletions drivers/i2c/chips/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,32 @@ config DS1682
This driver can also be built as a module. If so, the module
will be called ds1682.

config AT24
tristate "EEPROMs from most vendors"
depends on SYSFS && EXPERIMENTAL
help
Enable this driver to get read/write support to most I2C EEPROMs,
after you configure the driver to know about each EEPROM on
your target board. Use these generic chip names, instead of
vendor-specific ones like at24c64 or 24lc02:

24c00, 24c01, 24c02, spd (readonly 24c02), 24c04, 24c08,
24c16, 24c32, 24c64, 24c128, 24c256, 24c512, 24c1024

Unless you like data loss puzzles, always be sure that any chip
you configure as a 24c32 (32 kbit) or larger is NOT really a
24c16 (16 kbit) or smaller, and vice versa. Marking the chip
as read-only won't help recover from this. Also, if your chip
has any software write-protect mechanism you may want to review the
code to make sure this driver won't turn it on by accident.

If you use this with an SMBus adapter instead of an I2C adapter,
full functionality is not available. Only smaller devices are
supported (24c16 and below, max 4 kByte).

This driver can also be built as a module. If so, the module
will be called at24.

config SENSORS_EEPROM
tristate "EEPROM reader"
depends on EXPERIMENTAL
Expand Down
1 change: 1 addition & 0 deletions drivers/i2c/chips/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#

obj-$(CONFIG_DS1682) += ds1682.o
obj-$(CONFIG_AT24) += at24.o
obj-$(CONFIG_SENSORS_EEPROM) += eeprom.o
obj-$(CONFIG_SENSORS_MAX6875) += max6875.o
obj-$(CONFIG_SENSORS_PCA9539) += pca9539.o
Expand Down
Loading

0 comments on commit 2b7a505

Please sign in to comment.