cmd_eeprom: make it possible to define the used i2c bus
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Wed, 11 Feb 2015 14:19:31 +0000 (15:19 +0100)
committerStefano Babic <sbabic@denx.de>
Tue, 17 Feb 2015 09:42:53 +0000 (10:42 +0100)
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 <christian.gmeiner@gmail.com>
Acked-by: Stefano Babic <sbabic@denx.de>
README
common/cmd_eeprom.c

diff --git a/README b/README
index ba57dc5617a3823ca8345b5f5751035a046cbcc5..f38ab15b8b6499cbd214b73bf0d133e99761eaba 100644 (file)
--- 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.
+
        - 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
index 29f0f1f78418ddaea20c13070f32ab274c788970..e9904cd6982bad704260e4a5c247ddb8342a3a65 100644 (file)
@@ -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
@@ -338,6 +341,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;