diff options
author | Marek Vasut | 2015-11-10 20:53:32 +0100 |
---|---|---|
committer | Tom Rini | 2015-11-21 21:50:26 -0500 |
commit | d4fec4e9881ec5d72104a6ca7bd04ec725cf5c82 (patch) | |
tree | 4b7b87b4c27529b6da70829d44883f54db0e4a99 | |
parent | 354e3ed754fea744ff412b1e015b696db08320e3 (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.c | 15 |
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'" ) |