cmd_eeprom: fix i2c_{read|write} usage if env is in I2C EEPROM
authorAlexey Brodkin <Alexey.Brodkin@synopsys.com>
Thu, 7 Nov 2013 13:51:43 +0000 (17:51 +0400)
committerHeiko Schocher <hs@denx.de>
Wed, 13 Nov 2013 05:21:21 +0000 (06:21 +0100)
Data "offset" is not used directly in case of I2C EEPROM. Istead it is
split into "block number" and "offset within mentioned block". Which are
"addr[0]" and "addr[1]" respectively.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
cc: Peter Tyser <ptyser@xes-inc.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Stefan Roese <sr@denx.de>
Cc: Mischa Jonker <mjonker@synopsys.com>
common/cmd_eeprom.c

index ef694d8..02539c4 100644 (file)
@@ -161,7 +161,7 @@ int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt
 #if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C)
                spi_read (addr, alen, buffer, len);
 #else
-               if (i2c_read (addr[0], offset, alen-1, buffer, len) != 0)
+               if (i2c_read (addr[0], addr[1], alen-1, buffer, len) != 0)
                        rcode = 1;
 #endif
                buffer += len;
@@ -339,7 +339,7 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn
                /* Write is enabled ... now write eeprom value.
                 */
 #endif
-               if (i2c_write (addr[0], offset, alen-1, buffer, len) != 0)
+               if (i2c_write (addr[0], addr[1], alen-1, buffer, len) != 0)
                        rcode = 1;
 
 #endif