diff options
author | Heiko Schocher | 2010-01-07 08:55:40 +0100 |
---|---|---|
committer | Wolfgang Denk | 2010-01-18 00:42:37 +0100 |
commit | 548738b4d43af841ff58c787bce297ac6a8bf7d1 (patch) | |
tree | 2d703671e76278a06143bc68e0436ae59e642552 /common/cmd_eeprom.c | |
parent | b63815e31355b44e65899b361da1d8ef6940ab90 (diff) |
cmd_eeprom: I2C updates
- CONFIG_ENV_EEPROM_IS_ON_I2C
define this, if you have I2C and SPI activated, and your
EEPROM, which holds the environment, is on the I2C bus.
- CONFIG_I2C_ENV_EEPROM_BUS
if you have an Environment on an EEPROM reached over
I2C muxes, you can now define, how to reach this
EEPROM.
Signed-off-by: Heiko Schocher <hs@denx.de>
Diffstat (limited to 'common/cmd_eeprom.c')
-rw-r--r-- | common/cmd_eeprom.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c index 102efaf5b66..519b510c77e 100644 --- a/common/cmd_eeprom.c +++ b/common/cmd_eeprom.c @@ -79,7 +79,7 @@ int do_eeprom ( cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) ulong cnt = simple_strtoul (argv[4], NULL, 16); #endif /* CONFIG_SYS_I2C_MULTI_EEPROMS */ -# ifndef CONFIG_SPI +# if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C) eeprom_init (); # endif /* !CONFIG_SPI */ @@ -118,7 +118,7 @@ int do_eeprom ( cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) * 0x00000nxx for EEPROM address selectors and page number at n. */ -#ifndef CONFIG_SPI +#if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C) #if !defined(CONFIG_SYS_I2C_EEPROM_ADDR_LEN) || CONFIG_SYS_I2C_EEPROM_ADDR_LEN < 1 || CONFIG_SYS_I2C_EEPROM_ADDR_LEN > 2 #error CONFIG_SYS_I2C_EEPROM_ADDR_LEN must be 1 or 2 #endif @@ -176,7 +176,7 @@ int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt len = maxlen; #endif -#ifdef CONFIG_SPI +#if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) spi_read (addr, alen, buffer, len); #else if (i2c_read (addr[0], offset, alen-1, buffer, len) != 0) @@ -272,7 +272,7 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn len = maxlen; #endif -#ifdef CONFIG_SPI +#if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) spi_write (addr, alen, buffer, len); #else #if defined(CONFIG_SYS_EEPROM_X40430) @@ -374,7 +374,7 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn return rcode; } -#ifndef CONFIG_SPI +#if !defined(CONFIG_SPI) || defined(CONFIG_ENV_EEPROM_IS_ON_I2C) int eeprom_probe (unsigned dev_addr, unsigned offset) { @@ -403,7 +403,8 @@ eeprom_probe (unsigned dev_addr, unsigned offset) void eeprom_init (void) { -#if defined(CONFIG_SPI) + +#if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) spi_init_f (); #endif #if defined(CONFIG_HARD_I2C) || \ @@ -411,6 +412,7 @@ void eeprom_init (void) i2c_init (CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); #endif } + /*----------------------------------------------------------------------- */ |