
Hello Kuo-jung,
Am 02.12.2013 09:02, schrieb Kuo-Jung Su:
From: Kuo-Jung Sudantesu@faraday-tech.com
The local pointer of address (i.e., addr) only gets referenced under SPI mode, and it won't be appropriate to pass only 1-byte addr[1] to i2c_read/i2c_write while CONFIG_SYS_I2C_EEPROM_ADDR_LEN> 1.
In U-boot's I2C model, the address would be re-assembled to a byte string in MSB order inside I2C controller drivers.
The 'CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW' option which could be found at soft_i2c.c is always turned on in cmd_eeprom.c, the addr[0] always contains the device address with overflowed MSB address bits.
Signed-off-by: Kuo-Jung Sudantesu@faraday-tech.com Cc: Alexey Brodkinabrodkin@synopsys.com Cc: Jean-Christophe PLAGNIOL-VILLARDplagnioj@jcrosoft.com cc: Peter Tyserptyser@xes-inc.com Cc: Heiko Schocherhs@denx.de Cc: Wolfgang Denkwd@denx.de Cc: Stefan Roesesr@denx.de Cc: Mischa Jonkermjonker@synopsys.com
Changes for v3:
- It turns out that what we did before 2013-11-13 (i.e., cmd_eeprom: fix i2c_{read|write} usage if env is in I2C EEPROM) is still the best one, this patch simply rollback to it with coding style fix.
Changes for v2:
- Initial release
common/cmd_eeprom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Applied to u-boot.i2c.git, thanks!
bye, Heiko