From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Schocher Date: Mon, 16 Nov 2015 12:32:18 +0100 Subject: [U-Boot] [PATCH 15/17] eeprom: Add bus argument to eeprom_init() In-Reply-To: <1447185213-5799-15-git-send-email-marex@denx.de> References: <1447185213-5799-1-git-send-email-marex@denx.de> <1447185213-5799-15-git-send-email-marex@denx.de> Message-ID: <5649BEC2.7040401@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hello Marek, Am 10.11.2015 um 20:53 schrieb Marek Vasut: > Add bus argument to eeprom_init(), so that it can select > the I2C bus number on which the eeprom resides. Any negative > value of the $bus argument will preserve the old behavior. > This is in place so that old code does not randomly break. > > Signed-off-by: Marek Vasut > Cc: Simon Glass > Cc: Tom Rini > Cc: Heiko Schocher > --- > common/cmd_eeprom.c | 6 ++++-- > common/env_eeprom.c | 4 ++-- > include/common.h | 2 +- > 3 files changed, 7 insertions(+), 5 deletions(-) Reviewed-by: Heiko Schocher bye, Heiko > > diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c > index d0942ef..9247036 100644 > --- a/common/cmd_eeprom.c > +++ b/common/cmd_eeprom.c > @@ -60,7 +60,7 @@ __weak int eeprom_write_enable(unsigned dev_addr, int state) > return 0; > } > > -void eeprom_init(void) > +void eeprom_init(int bus) > { > /* SPI EEPROM */ > #if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) > @@ -69,6 +69,8 @@ void eeprom_init(void) > > /* I2C EEPROM */ > #if defined(CONFIG_HARD_I2C) || defined(CONFIG_SYS_I2C_SOFT) > + if (bus >= 0) > + i2c_set_bus_num(bus); > i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); > #endif > } > @@ -223,7 +225,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(); > + eeprom_init(-1); > > if (strcmp (argv[1], "read") == 0) { > printf(fmt, dev_addr, argv[1], addr, off, cnt); > diff --git a/common/env_eeprom.c b/common/env_eeprom.c > index eea169d..72b1373 100644 > --- a/common/env_eeprom.c > +++ b/common/env_eeprom.c > @@ -91,7 +91,7 @@ void env_relocate_spec(void) > uchar rdbuf[64], flags[2]; > int i, crc_ok[2] = {0, 0}; > > - eeprom_init(); /* prepare for EEPROM read/write */ > + eeprom_init(-1); /* prepare for EEPROM read/write */ > > off_env[0] = CONFIG_ENV_OFFSET; > off_env[1] = CONFIG_ENV_OFFSET_REDUND; > @@ -154,7 +154,7 @@ void env_relocate_spec(void) > ulong crc, len, new; > uchar rdbuf[64]; > > - eeprom_init(); /* prepare for EEPROM read/write */ > + eeprom_init(-1); /* prepare for EEPROM read/write */ > > /* read old CRC */ > eeprom_bus_read(CONFIG_SYS_DEF_EEPROM_ADDR, > diff --git a/include/common.h b/include/common.h > index ceb1ad3..39ba5c9 100644 > --- a/include/common.h > +++ b/include/common.h > @@ -475,7 +475,7 @@ void reset_phy (void); > void fdc_hw_init (void); > > /* $(BOARD)/eeprom.c */ > -void eeprom_init (void); > +void eeprom_init (int bus); > int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt); > int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt); > > -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany