From e4f65d006793d5f034ce10b8cc9810eb0b396879 Mon Sep 17 00:00:00 2001 From: Marek Vasut Date: Tue, 10 Nov 2015 20:53:19 +0100 Subject: eeprom: Zap CONFIG_SYS_I2C_MULTI_EEPROMS This option only complicates the code unnecessarily, just use CONFIG_SYS_DEF_EEPROM_ADDR as the default address if there are only five arguments to eeprom {read/write} if this is defined. If CONFIG_SYS_DEF_EEPROM_ADDR is not defined, we mandate all six arguments. Signed-off-by: Marek Vasut Cc: Simon Glass Cc: Tom Rini Cc: Heiko Schocher Reviewed-by: Heiko Schocher diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c index 4335079..0b59bea 100644 --- a/common/cmd_eeprom.c +++ b/common/cmd_eeprom.c @@ -338,50 +338,50 @@ static int do_eeprom(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) { const char *const fmt = "\nEEPROM @0x%lX %s: addr %08lx off %04lx count %ld ... "; + char * const *args = &argv[2]; + int rcode; + ulong dev_addr, addr, off, cnt; + + switch (argc) { +#ifdef CONFIG_SYS_DEF_EEPROM_ADDR + case 5: + dev_addr = CONFIG_SYS_DEF_EEPROM_ADDR; + break; +#endif + case 6: + dev_addr = simple_strtoul(*args++, NULL, 16); + break; + default: + return CMD_RET_USAGE; + } -#if defined(CONFIG_SYS_I2C_MULTI_EEPROMS) - if (argc == 6) { - ulong dev_addr = simple_strtoul (argv[2], NULL, 16); - ulong addr = simple_strtoul (argv[3], NULL, 16); - ulong off = simple_strtoul (argv[4], NULL, 16); - ulong cnt = simple_strtoul (argv[5], NULL, 16); -#else - if (argc == 5) { - ulong dev_addr = CONFIG_SYS_DEF_EEPROM_ADDR; - ulong addr = simple_strtoul (argv[2], NULL, 16); - ulong off = simple_strtoul (argv[3], NULL, 16); - ulong cnt = simple_strtoul (argv[4], NULL, 16); -#endif /* CONFIG_SYS_I2C_MULTI_EEPROMS */ + addr = simple_strtoul(*args++, NULL, 16); + off = simple_strtoul(*args++, NULL, 16); + cnt = simple_strtoul(*args++, NULL, 16); # if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C) - eeprom_init (); + eeprom_init (); # endif /* !CONFIG_SPI */ - if (strcmp (argv[1], "read") == 0) { - int rcode; - - printf (fmt, dev_addr, argv[1], addr, off, cnt); - - rcode = eeprom_read (dev_addr, off, (uchar *) addr, cnt); + if (strcmp (argv[1], "read") == 0) { + printf(fmt, dev_addr, argv[1], addr, off, cnt); - puts ("done\n"); - return rcode; - } else if (strcmp (argv[1], "write") == 0) { - int rcode; + rcode = eeprom_read(dev_addr, off, (uchar *) addr, cnt); - printf (fmt, dev_addr, argv[1], addr, off, cnt); + puts ("done\n"); + return rcode; + } else if (strcmp (argv[1], "write") == 0) { + printf(fmt, dev_addr, argv[1], addr, off, cnt); - rcode = eeprom_write (dev_addr, off, (uchar *) addr, cnt); + rcode = eeprom_write(dev_addr, off, (uchar *) addr, cnt); - puts ("done\n"); - return rcode; - } + puts ("done\n"); + return rcode; } return CMD_RET_USAGE; } -#ifdef CONFIG_SYS_I2C_MULTI_EEPROMS U_BOOT_CMD( eeprom, 6, 1, do_eeprom, "EEPROM sub-system", @@ -389,12 +389,3 @@ U_BOOT_CMD( "eeprom write devaddr addr off cnt\n" " - read/write `cnt' bytes from `devaddr` EEPROM at offset `off'" ) -#else /* One EEPROM */ -U_BOOT_CMD( - eeprom, 5, 1, do_eeprom, - "EEPROM sub-system", - "read addr off cnt\n" - "eeprom write addr off cnt\n" - " - read/write `cnt' bytes at EEPROM offset `off'" -) -#endif /* CONFIG_SYS_I2C_MULTI_EEPROMS */ diff --git a/include/configs/BSC9131RDB.h b/include/configs/BSC9131RDB.h index 7b34470..665cad7 100644 --- a/include/configs/BSC9131RDB.h +++ b/include/configs/BSC9131RDB.h @@ -266,7 +266,6 @@ extern unsigned long get_sdram_size(void); /* I2C EEPROM */ #define CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 diff --git a/include/configs/BSC9132QDS.h b/include/configs/BSC9132QDS.h index a3a853d..79d8e3f 100644 --- a/include/configs/BSC9132QDS.h +++ b/include/configs/BSC9132QDS.h @@ -462,7 +462,6 @@ combinations. this should be removed later /* enable read and write access to EEPROM */ #define CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 diff --git a/include/configs/C29XPCIE.h b/include/configs/C29XPCIE.h index 9f86f1e..e70506e 100644 --- a/include/configs/C29XPCIE.h +++ b/include/configs/C29XPCIE.h @@ -419,7 +419,6 @@ /* I2C EEPROM */ /* enable read and write access to EEPROM */ #define CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 diff --git a/include/configs/P1010RDB.h b/include/configs/P1010RDB.h index 49105dc..e96d6db 100644 --- a/include/configs/P1010RDB.h +++ b/include/configs/P1010RDB.h @@ -659,7 +659,6 @@ extern unsigned long get_sdram_size(void); #endif /* enable read and write access to EEPROM */ #define CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 diff --git a/include/configs/PMC440.h b/include/configs/PMC440.h index 5488c68..05ad315 100644 --- a/include/configs/PMC440.h +++ b/include/configs/PMC440.h @@ -158,7 +158,6 @@ #define CONFIG_SYS_I2C_PPC4XX_SPEED_1 400000 #define CONFIG_SYS_I2C_PPC4XX_SLAVE_1 0x7F -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR 0x54 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 diff --git a/include/configs/TQM834x.h b/include/configs/TQM834x.h index 5221fbb..58a17f5 100644 --- a/include/configs/TQM834x.h +++ b/include/configs/TQM834x.h @@ -182,7 +182,6 @@ #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 /* 16 bit */ #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5 /* 32 bytes/write */ #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 12 /* 10ms +/- 20% */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS /* more than one eeprom */ /* I2C RTC */ #define CONFIG_RTC_DS1337 /* use ds1337 rtc via i2c */ diff --git a/include/configs/acadia.h b/include/configs/acadia.h index 4dd5720..2f53d73 100644 --- a/include/configs/acadia.h +++ b/include/configs/acadia.h @@ -120,7 +120,6 @@ *----------------------------------------------------------------------*/ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h index ed3fd34..d501f04 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -218,7 +218,6 @@ #define CONFIG_ENV_EEPROM_IS_ON_I2C #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */ #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 -#define CONFIG_SYS_I2C_MULTI_EEPROMS /* PMIC support */ #define CONFIG_POWER_TPS65217 diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h index fa01d1e..42e1425 100644 --- a/include/configs/am43xx_evm.h +++ b/include/configs/am43xx_evm.h @@ -33,7 +33,6 @@ #define CONFIG_ENV_EEPROM_IS_ON_I2C #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */ #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 -#define CONFIG_SYS_I2C_MULTI_EEPROMS /* Power */ #define CONFIG_POWER diff --git a/include/configs/axs101.h b/include/configs/axs101.h index 9e90b69..650d97d 100644 --- a/include/configs/axs101.h +++ b/include/configs/axs101.h @@ -78,7 +78,6 @@ /* * EEPROM configuration */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xA8 >> 1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW 1 diff --git a/include/configs/bamboo.h b/include/configs/bamboo.h index 6ba4aaf..5b8b22f 100644 --- a/include/configs/bamboo.h +++ b/include/configs/bamboo.h @@ -139,7 +139,6 @@ *----------------------------------------------------------------------*/ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/canyonlands.h b/include/configs/canyonlands.h index ed790cc..e136824 100644 --- a/include/configs/canyonlands.h +++ b/include/configs/canyonlands.h @@ -248,7 +248,6 @@ *----------------------------------------------------------------------*/ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/icon.h b/include/configs/icon.h index bbe9b59..d9a3671 100644 --- a/include/configs/icon.h +++ b/include/configs/icon.h @@ -107,7 +107,6 @@ #define CONFIG_SYS_SPD_BUS_NUM 0 /* The I2C bus for SPD */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/intip.h b/include/configs/intip.h index a676a20..60c9e2c 100644 --- a/include/configs/intip.h +++ b/include/configs/intip.h @@ -214,7 +214,6 @@ */ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/katmai.h b/include/configs/katmai.h index fa72eb0..664896b 100644 --- a/include/configs/katmai.h +++ b/include/configs/katmai.h @@ -109,7 +109,6 @@ #define IIC0_BOOTPROM_ADDR 0x50 #define IIC0_ALT_BOOTPROM_ADDR 0x54 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0x50) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/km/km-powerpc.h b/include/configs/km/km-powerpc.h index 3f045f2..eba7479 100644 --- a/include/configs/km/km-powerpc.h +++ b/include/configs/km/km-powerpc.h @@ -25,7 +25,6 @@ #define CONFIG_KM_COMMON_ETH_INIT /* EEprom support 24C08, 24C16, 24C64 */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 /* 8 Byte write page */ #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h index 098839b..750b7e9 100644 --- a/include/configs/km/km_arm.h +++ b/include/configs/km/km_arm.h @@ -220,7 +220,6 @@ int get_scl(void); #define CONFIG_SYS_I2C_SOFT_SPEED 100000 /* EEprom support 24C128, 24C256 valid for environment eeprom */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_EEPROM_PAGE_WRITE_ENABLE #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 6 /* 64 Byte write page */ #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 diff --git a/include/configs/luan.h b/include/configs/luan.h index 15e4a7e..e22d0e8 100644 --- a/include/configs/luan.h +++ b/include/configs/luan.h @@ -119,7 +119,6 @@ *----------------------------------------------------------------------*/ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/m28evk.h b/include/configs/m28evk.h index 24b5489..405a871 100644 --- a/include/configs/m28evk.h +++ b/include/configs/m28evk.h @@ -91,7 +91,6 @@ /* EEPROM */ #ifdef CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 #endif diff --git a/include/configs/motionpro.h b/include/configs/motionpro.h index 97c614b..a8cf201 100644 --- a/include/configs/motionpro.h +++ b/include/configs/motionpro.h @@ -285,7 +285,6 @@ #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 1 /* 2 bytes per write cycle */ #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 /* 2ms/cycle + 3ms extra */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS 1 /* 2 EEPROMs (addr:50,52) */ /* * RTC configuration diff --git a/include/configs/p1_p2_rdb_pc.h b/include/configs/p1_p2_rdb_pc.h index 381b176..57e1c5f 100644 --- a/include/configs/p1_p2_rdb_pc.h +++ b/include/configs/p1_p2_rdb_pc.h @@ -700,7 +700,6 @@ /* enable read and write access to EEPROM */ #define CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 diff --git a/include/configs/p1_twr.h b/include/configs/p1_twr.h index d2af2a0..c7608c5 100644 --- a/include/configs/p1_twr.h +++ b/include/configs/p1_twr.h @@ -261,7 +261,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy); /* enable read and write access to EEPROM */ #define CONFIG_CMD_EEPROM -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 diff --git a/include/configs/pcm051.h b/include/configs/pcm051.h index 275e952..64cfd81 100644 --- a/include/configs/pcm051.h +++ b/include/configs/pcm051.h @@ -115,7 +115,6 @@ #define CONFIG_ENV_EEPROM_IS_ON_I2C #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 /* Main EEPROM */ #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_BAUDRATE_TABLE { 110, 300, 600, 1200, 2400, \ 4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200 } diff --git a/include/configs/pengwyn.h b/include/configs/pengwyn.h index d68cded..bfc1c1e 100644 --- a/include/configs/pengwyn.h +++ b/include/configs/pengwyn.h @@ -112,7 +112,6 @@ #define CONFIG_ENV_EEPROM_IS_ON_I2C #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 -#define CONFIG_SYS_I2C_MULTI_EEPROMS /* SPL */ #define CONFIG_SPL_POWER_SUPPORT diff --git a/include/configs/sequoia.h b/include/configs/sequoia.h index 1f1beea..f32459b 100644 --- a/include/configs/sequoia.h +++ b/include/configs/sequoia.h @@ -151,7 +151,6 @@ */ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/t3corp.h b/include/configs/t3corp.h index 502e795..7942865 100644 --- a/include/configs/t3corp.h +++ b/include/configs/t3corp.h @@ -307,7 +307,6 @@ */ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/tricorder.h b/include/configs/tricorder.h index ca28e47..f5f5324 100644 --- a/include/configs/tricorder.h +++ b/include/configs/tricorder.h @@ -112,7 +112,6 @@ /* EEPROM */ -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_CMD_EEPROM #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 #define CONFIG_SYS_EEPROM_BUS_NUM 1 diff --git a/include/configs/walnut.h b/include/configs/walnut.h index 8b803a2..dd6b519 100644 --- a/include/configs/walnut.h +++ b/include/configs/walnut.h @@ -80,7 +80,6 @@ */ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 diff --git a/include/configs/yosemite.h b/include/configs/yosemite.h index 8508a80..0cffab8 100644 --- a/include/configs/yosemite.h +++ b/include/configs/yosemite.h @@ -122,7 +122,6 @@ *----------------------------------------------------------------------*/ #define CONFIG_SYS_I2C_PPC4XX_SPEED_0 400000 -#define CONFIG_SYS_I2C_MULTI_EEPROMS #define CONFIG_SYS_I2C_EEPROM_ADDR (0xa8>>1) #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 1 #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 3 -- cgit v0.10.2