Using regmap_i2c allows us to get rid of dealing with the low-level differences between I2C and SMBUS. As a result the code can be simplified a lot. This patchset was successfully tested with a 24C32 on a I2C adapter. The patchset was submitted first in Aug 2017 and was sitting in the review queue until now. Resubmitted version is rebased due to recent changes to at24. Changes in v3: - Small changes based on review comments - Introduce at24_adjust_read_offset to avoid some overhead Changes in v4: - Small improvement in patch 5 Changes in v5: - Small improvement in patch 5 I still add offset_adj in at24_regmap_read, because we may have values like 0x9a for offset_adj, and the or-ing to offset may be inappropriate. Changes in v6: - rebased - re-introduce check for I2C_SMBUS_BLOCK_MAX in patch 7 Heiner Kallweit (7): eeprom: at24: add basic regmap_i2c support eeprom: at24: change at24_translate_offset return type eeprom: at24: add regmap-based write function eeprom: at24: remove old write functions eeprom: at24: add regmap-based read functions eeprom: at24: remove old read functions eeprom: at24: remove now unneeded smbus-related code drivers/misc/eeprom/Kconfig | 1 + drivers/misc/eeprom/at24.c | 434 +++++++++++--------------------------------- 2 files changed, 111 insertions(+), 324 deletions(-) -- 2.15.0