eeprom: at24: support reading the serial number for 24csxx

The chips from the at24cs family have two memory areas - a regular
read-write block and a read-only area containing the serial number.

The latter is visible on a different slave address (the address of the
rw memory block + 0x08). In order to access both blocks the user needs
to instantiate a regular at24c device for the rw block address and a
corresponding at24cs device on the serial number block address.

Add a function that allows to access the serial number and assign it
to at24->read_func if the chip allows serial number read operations
and the driver was passed the relevant flag for this device.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
Bartosz Golaszewski
2016-06-06 10:48:51 +02:00
committed by Wolfram Sang
parent a7284a82e8
commit 818d0220d8
2 changed files with 79 additions and 2 deletions

View File

@@ -48,6 +48,7 @@ struct at24_platform_data {
#define AT24_FLAG_READONLY BIT(6) /* sysfs-entry will be read-only */
#define AT24_FLAG_IRUGO BIT(5) /* sysfs-entry will be world-readable */
#define AT24_FLAG_TAKE8ADDR BIT(4) /* take always 8 addresses (24c00) */
#define AT24_FLAG_SERIAL BIT(3) /* factory-programmed serial number */
void (*setup)(struct nvmem_device *nvmem, void *context);
void *context;