From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Tue, 17 Feb 2015 10:38:32 +0100 Subject: [U-Boot] [PATCH 1/2] cmd_eeprom: make it possible to define the used i2c bus In-Reply-To: <1423664372-20800-1-git-send-email-christian.gmeiner@gmail.com> References: <1423664372-20800-1-git-send-email-christian.gmeiner@gmail.com> Message-ID: <54E30C18.6060402@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 Hi Christian, On 11/02/2015 15:19, Christian Gmeiner wrote: > A SoC like the i.MX6 supports more then one i2c bus. In oder to be > able to use the eeprom command add a new define to specify the > i2c bus to use. If CONFIG_SYS_I2C_EEPROM_BUS is not defined there > is no functional change, else a call to i2c_set_bus_num(..) is > done before calling i2c_read(..) and i2c_write(..). > > Signed-off-by: Christian Gmeiner > --- > README | 3 +++ > common/cmd_eeprom.c | 6 ++++++ > 2 files changed, 9 insertions(+) > > diff --git a/README b/README > index ba57dc5..f38ab15 100644 > --- a/README > +++ b/README > @@ -4341,6 +4341,9 @@ to save the current settings. > If defined, specified the chip address of the EEPROM device. > The default address is zero. > > + - CONFIG_SYS_I2C_EEPROM_BUS: > + If defined, specified the i2c bus of the EEPROM device. > + Thanks to fix this as well ;-) > - CONFIG_SYS_EEPROM_PAGE_WRITE_BITS: > If defined, the number of bits used to address bytes in a > single page in the EEPROM device. A 64 byte page, for example > diff --git a/common/cmd_eeprom.c b/common/cmd_eeprom.c > index 29f0f1f..e9904cd 100644 > --- a/common/cmd_eeprom.c > +++ b/common/cmd_eeprom.c > @@ -161,6 +161,9 @@ int eeprom_read (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cnt > #if defined(CONFIG_SPI) && !defined(CONFIG_ENV_EEPROM_IS_ON_I2C) > spi_read (addr, alen, buffer, len); > #else > +#if defined(CONFIG_SYS_I2C_EEPROM_BUS) > + i2c_set_bus_num(CONFIG_SYS_I2C_EEPROM_BUS); > +#endif > if (i2c_read(addr[0], offset, alen - 1, buffer, len)) > rcode = 1; > #endif > @@ -339,6 +342,9 @@ int eeprom_write (unsigned dev_addr, unsigned offset, uchar *buffer, unsigned cn > /* Write is enabled ... now write eeprom value. > */ > #endif > +#if defined(CONFIG_SYS_I2C_EEPROM_BUS) > + i2c_set_bus_num(CONFIG_SYS_I2C_EEPROM_BUS); > +#endif > if (i2c_write(addr[0], offset, alen - 1, buffer, len)) > rcode = 1; > > Acked-by: Stefano Babic Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================