at24: Fall back to byte or word reads if needed
authorJean Delvare <khali@linux-fr.org>
Fri, 21 May 2010 16:40:57 +0000 (18:40 +0200)
committerJean Delvare <khali@linux-fr.org>
Fri, 21 May 2010 16:40:57 +0000 (18:40 +0200)
commit7aeb96642f70139a194d685b132605836f6f8dbb
tree16ff60fcd074e8b2efb052d883175b48f56b80bb
parentc5aa69285c573e42042530be86b7af6f5fe9e240
at24: Fall back to byte or word reads if needed

Increase the portability of the at24 driver by letting it read from
EEPROM chips connected to cheap SMBus controllers that support neither
raw I2C messages nor even I2C block reads. All SMBus controllers
should support either word reads or byte reads, so read support
becomes universal, much like with the legacy "eeprom" driver.

Obviously, this only works with EEPROM chips up to AT24C16, that use
8-bit offset addressing. 16-bit offset addressing is almost impossible
to support on SMBus controllers.

I did not add universal support for writes, as I had no immediate need
for this, but it could be added later if needed (with the same
performance issue as byte and word reads have, of course.)

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
Cc: Konstantin Lazarev <klazarev@sbcglobal.net>
drivers/misc/eeprom/at24.c