Message ID | 167660539263.10409.9736070122710923479-2@git.sr.ht |
---|---|
State | New |
Headers | show |
Series | hw/at24c support eeprom size less than equal 256 byte | expand |
On Fri, Feb 17, 2023 at 09:59:53AM +0700, ~ssinprem wrote: > From: Sittisak Sinprem <ssinprem@celestica.com> > > Device 24C64 the size is 64 kilobits = 8kilobyte > Device 24C02 the size is 2 kilobits = 256byte > > Signed-off-by: Sittisak Sinprem <ssinprem@celestica.com> > --- > hw/arm/aspeed.c | 36 ++++++++++++++++++++---------------- > 1 file changed, 20 insertions(+), 16 deletions(-) > > diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c > index 27dda58338..40f6076b44 100644 > --- a/hw/arm/aspeed.c > +++ b/hw/arm/aspeed.c > @@ -840,42 +840,46 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc) > i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c); > i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d); > > - at24c_eeprom_init(i2c[19], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[20], 0x50, 2 * KiB); > - at24c_eeprom_init(i2c[22], 0x52, 2 * KiB); > + /* > + * EEPROM 24c64 size is 64Kbits or 8 Kbytes > + * 24c02 size is 2Kbits or 256 bytes > + */ > + at24c_eeprom_init(i2c[19], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[20], 0x50, 256); > + at24c_eeprom_init(i2c[22], 0x52, 256); Perfect! Looks good. Reviewed-by: Peter Delevoryas <peter@pjd.dev> > > i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48); > i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49); > i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a); > i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c); > > - at24c_eeprom_init(i2c[8], 0x51, 64 * KiB); > + at24c_eeprom_init(i2c[8], 0x51, 8 * KiB); > i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a); > > i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c); > - at24c_eeprom_init(i2c[50], 0x52, 64 * KiB); > + at24c_eeprom_init(i2c[50], 0x52, 8 * KiB); > i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48); > i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49); > > i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48); > i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49); > > - at24c_eeprom_init(i2c[65], 0x53, 64 * KiB); > + at24c_eeprom_init(i2c[65], 0x53, 8 * KiB); > i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49); > i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48); > - at24c_eeprom_init(i2c[68], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[69], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[70], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[71], 0x52, 64 * KiB); > + at24c_eeprom_init(i2c[68], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[69], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[70], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[71], 0x52, 8 * KiB); > > - at24c_eeprom_init(i2c[73], 0x53, 64 * KiB); > + at24c_eeprom_init(i2c[73], 0x53, 8 * KiB); > i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49); > i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48); > - at24c_eeprom_init(i2c[76], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[77], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[78], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[79], 0x52, 64 * KiB); > - at24c_eeprom_init(i2c[28], 0x50, 2 * KiB); > + at24c_eeprom_init(i2c[76], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[77], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[78], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[79], 0x52, 8 * KiB); > + at24c_eeprom_init(i2c[28], 0x50, 256); > > for (int i = 0; i < 8; i++) { > at24c_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB); > -- > 2.34.6 >
diff --git a/hw/arm/aspeed.c b/hw/arm/aspeed.c index 27dda58338..40f6076b44 100644 --- a/hw/arm/aspeed.c +++ b/hw/arm/aspeed.c @@ -840,42 +840,46 @@ static void fuji_bmc_i2c_init(AspeedMachineState *bmc) i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4c); i2c_slave_create_simple(i2c[17], TYPE_LM75, 0x4d); - at24c_eeprom_init(i2c[19], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[20], 0x50, 2 * KiB); - at24c_eeprom_init(i2c[22], 0x52, 2 * KiB); + /* + * EEPROM 24c64 size is 64Kbits or 8 Kbytes + * 24c02 size is 2Kbits or 256 bytes + */ + at24c_eeprom_init(i2c[19], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[20], 0x50, 256); + at24c_eeprom_init(i2c[22], 0x52, 256); i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x48); i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x49); i2c_slave_create_simple(i2c[3], TYPE_LM75, 0x4a); i2c_slave_create_simple(i2c[3], TYPE_TMP422, 0x4c); - at24c_eeprom_init(i2c[8], 0x51, 64 * KiB); + at24c_eeprom_init(i2c[8], 0x51, 8 * KiB); i2c_slave_create_simple(i2c[8], TYPE_LM75, 0x4a); i2c_slave_create_simple(i2c[50], TYPE_LM75, 0x4c); - at24c_eeprom_init(i2c[50], 0x52, 64 * KiB); + at24c_eeprom_init(i2c[50], 0x52, 8 * KiB); i2c_slave_create_simple(i2c[51], TYPE_TMP75, 0x48); i2c_slave_create_simple(i2c[52], TYPE_TMP75, 0x49); i2c_slave_create_simple(i2c[59], TYPE_TMP75, 0x48); i2c_slave_create_simple(i2c[60], TYPE_TMP75, 0x49); - at24c_eeprom_init(i2c[65], 0x53, 64 * KiB); + at24c_eeprom_init(i2c[65], 0x53, 8 * KiB); i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x49); i2c_slave_create_simple(i2c[66], TYPE_TMP75, 0x48); - at24c_eeprom_init(i2c[68], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[69], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[70], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[71], 0x52, 64 * KiB); + at24c_eeprom_init(i2c[68], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[69], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[70], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[71], 0x52, 8 * KiB); - at24c_eeprom_init(i2c[73], 0x53, 64 * KiB); + at24c_eeprom_init(i2c[73], 0x53, 8 * KiB); i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x49); i2c_slave_create_simple(i2c[74], TYPE_TMP75, 0x48); - at24c_eeprom_init(i2c[76], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[77], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[78], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[79], 0x52, 64 * KiB); - at24c_eeprom_init(i2c[28], 0x50, 2 * KiB); + at24c_eeprom_init(i2c[76], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[77], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[78], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[79], 0x52, 8 * KiB); + at24c_eeprom_init(i2c[28], 0x50, 256); for (int i = 0; i < 8; i++) { at24c_eeprom_init(i2c[81 + i * 8], 0x56, 64 * KiB);