The M24M01-D* eeproms are in effect 2 eeproms under 2 I2C addresses: 1. a standard 1Mbit eeprom (driver model 24c1024 is working) 2. a 256 Byte write lockable "ID page". As the ID page demands 2 byte addresses, the 24c02 driver model can not be used. So a new model 24cm02 is introduced. In the device tree, refer to the ID page of the eeprom as compatible = "st,m24m01-d", "atmel,24cm02"; Signed-off-by: Johannes Poehlmann <Johannes.Poehlmann@xxxxxxxxxxx> --- Documentation/devicetree/bindings/eeprom/at24.txt | 1 + drivers/misc/eeprom/at24.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/eeprom/at24.txt b/Documentation/devicetree/bindings/eeprom/at24.txt index 1812c84..c62c960 100644 --- a/Documentation/devicetree/bindings/eeprom/at24.txt +++ b/Documentation/devicetree/bindings/eeprom/at24.txt @@ -10,6 +10,7 @@ Required properties: "atmel,24cs01", "atmel,24c02", "atmel,24cs02", + "atmel,24cm02", "atmel,24mac402", "atmel,24mac602", "atmel,spd", diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c index 01f9c49..5afeb1a 100644 --- a/drivers/misc/eeprom/at24.c +++ b/drivers/misc/eeprom/at24.c @@ -146,6 +146,7 @@ AT24_CHIP_DATA(at24_data_24c01, 1024 / 8, 0); AT24_CHIP_DATA(at24_data_24cs01, 16, AT24_FLAG_SERIAL | AT24_FLAG_READONLY); AT24_CHIP_DATA(at24_data_24c02, 2048 / 8, 0); +AT24_CHIP_DATA(at24_data_24cm02, 2048 / 8, AT24_FLAG_ADDR16); AT24_CHIP_DATA(at24_data_24cs02, 16, AT24_FLAG_SERIAL | AT24_FLAG_READONLY); AT24_CHIP_DATA(at24_data_24mac402, 48 / 8, @@ -184,6 +185,7 @@ static const struct i2c_device_id at24_ids[] = { { "24cs01", (kernel_ulong_t)&at24_data_24cs01 }, { "24c02", (kernel_ulong_t)&at24_data_24c02 }, { "24cs02", (kernel_ulong_t)&at24_data_24cs02 }, + { "24cm02", (kernel_ulong_t)&at24_data_24cm02 }, { "24mac402", (kernel_ulong_t)&at24_data_24mac402 }, { "24mac602", (kernel_ulong_t)&at24_data_24mac602 }, { "spd", (kernel_ulong_t)&at24_data_spd }, @@ -212,6 +214,7 @@ static const struct of_device_id at24_of_match[] = { { .compatible = "atmel,24cs01", .data = &at24_data_24cs01 }, { .compatible = "atmel,24c02", .data = &at24_data_24c02 }, { .compatible = "atmel,24cs02", .data = &at24_data_24cs02 }, + { .compatible = "atmel,24cm02", .data = &at24_data_24cm02 }, { .compatible = "atmel,24mac402", .data = &at24_data_24mac402 }, { .compatible = "atmel,24mac602", .data = &at24_data_24mac602 }, { .compatible = "atmel,spd", .data = &at24_data_spd }, -- 2.1.4