Skip to content

Commit

Permalink
eeprom: Add support for selecting i2c bus
Browse files Browse the repository at this point in the history
Add additional parameter into the eeprom command to select
the I2C bus on which the eeprom resides.

Signed-off-by: Marek Vasut <[email protected]>
Cc: Simon Glass <[email protected]>
Cc: Tom Rini <[email protected]>
Cc: Heiko Schocher <[email protected]>
Reviewed-by: Heiko Schocher <[email protected]>
  • Loading branch information
Marek Vasut authored and trini committed Nov 22, 2015
1 parent 354e3ed commit d4fec4e
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions common/cmd_eeprom.c
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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);
Expand All @@ -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'"
)

0 comments on commit d4fec4e

Please sign in to comment.