From 548738b4d43af841ff58c787bce297ac6a8bf7d1 Mon Sep 17 00:00:00 2001 From: Heiko Schocher Date: Thu, 7 Jan 2010 08:55:40 +0100 Subject: 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 --- common/cmd_eeprom.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'common/cmd_eeprom.c') diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c index 102efaf..519b510 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 } + /*----------------------------------------------------------------------- */ -- cgit v1.1