From: Alexey Brodkin Date: Thu, 7 Nov 2013 13:51:43 +0000 (+0400) Subject: cmd_eeprom: fix i2c_{read|write} usage if env is in I2C EEPROM X-Git-Url: http://git.dujemihanovic.xyz/%22/img/sics.gif/%22/static/git-favicon.png?a=commitdiff_plain;h=a2e0a45d2e1e258cbe9bd3dbbe7bc7cacbf7a84e;p=u-boot.git cmd_eeprom: fix i2c_{read|write} usage if env is in I2C EEPROM 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 Cc: Jean-Christophe PLAGNIOL-VILLARD cc: Peter Tyser Cc: Heiko Schocher Cc: Wolfgang Denk Cc: Stefan Roese Cc: Mischa Jonker --- diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c index ef694d8f87..02539c40a0 100644 --- a/common/cmd_eeprom.c +++ b/common/cmd_eeprom.c @@ -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