aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut2015-11-10 20:53:32 +0100
committerTom Rini2015-11-21 21:50:26 -0500
commitd4fec4e9881ec5d72104a6ca7bd04ec725cf5c82 (patch)
tree4b7b87b4c27529b6da70829d44883f54db0e4a99
parent354e3ed754fea744ff412b1e015b696db08320e3 (diff)
eeprom: Add support for selecting i2c bus
Add additional parameter into the eeprom command to select the I2C bus on which the eeprom resides. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Tom Rini <trini@konsulko.com> Cc: Heiko Schocher <hs@denx.de> Reviewed-by: Heiko Schocher <hs@denx.de>
-rw-r--r--common/cmd_eeprom.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c
index 120ddbbf97a..d3e9462f65d 100644
--- a/common/cmd_eeprom.c
+++ b/common/cmd_eeprom.c
@@ -209,14 +209,21 @@ static int do_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
char * const *args = &argv[2];
int rcode;
ulong dev_addr, addr, off, cnt;
+ int bus_addr;
switch (argc) {
#ifdef CONFIG_SYS_DEF_EEPROM_ADDR
case 5:
+ bus_addr = -1;
dev_addr = CONFIG_SYS_DEF_EEPROM_ADDR;
break;
#endif
case 6:
+ bus_addr = -1;
+ dev_addr = simple_strtoul(*args++, NULL, 16);
+ break;
+ case 7:
+ bus_addr = simple_strtoul(*args++, NULL, 16);
dev_addr = simple_strtoul(*args++, NULL, 16);
break;
default:
@@ -227,7 +234,7 @@ static int do_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
off = simple_strtoul(*args++, NULL, 16);
cnt = simple_strtoul(*args++, NULL, 16);
- eeprom_init(-1);
+ eeprom_init(bus_addr);
if (strcmp (argv[1], "read") == 0) {
printf(fmt, dev_addr, argv[1], addr, off, cnt);
@@ -249,9 +256,9 @@ static int do_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
U_BOOT_CMD(
- eeprom, 6, 1, do_eeprom,
+ eeprom, 7, 1, do_eeprom,
"EEPROM sub-system",
- "read devaddr addr off cnt\n"
- "eeprom write devaddr addr off cnt\n"
+ "read <bus> <devaddr> addr off cnt\n"
+ "eeprom write <bus> <devaddr> addr off cnt\n"
" - read/write `cnt' bytes from `devaddr` EEPROM at offset `off'"
)