[U-Boot] [PATCH v3 2/9] i2c: common changes for multibus/multiadapter support

Simon Glass sjg at chromium.org
Sat May 11 23:33:41 CEST 2013


Hi Heiko,

On Sat, May 4, 2013 at 6:01 AM, Heiko Schocher <hs at denx.de> wrote:
> Signed-off-by: Heiko Schocher <hs at denx.de>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> Cc: Henrik Nordström <henrik at henriknordstrom.net>
>
> ---
> - changes for v2:
>   add comment from Henrik Nordström <henrik at henriknordstrom.net>
>   remove wrong line in README
>   - rebase against current mainline 178d0cc1a4c73c3341afbeb2a93b172de8c96bd1
> - changes for v3:
>   - adapt to the new introduced U_BOOT_I2C_ADAP_COMPLETE define
>   - fix Codingstyle issues
>   - adapt README
> ---
>  README                          |  74 ++++++++++++++++++++++++-
>  arch/arm/lib/board.c            |   7 ++-
>  arch/blackfin/lib/board.c       |   7 +++
>  arch/m68k/lib/board.c           |  17 +++++-
>  arch/mips/lib/board.c           |   7 +++
>  arch/nds32/lib/board.c          |  10 +++-
>  arch/powerpc/cpu/mpc8xx/video.c |   4 ++
>  arch/powerpc/lib/board.c        |  12 +++-
>  common/cmd_date.c               |   9 +++
>  common/cmd_dtt.c                |   9 +++
>  common/cmd_i2c.c                | 120 ++++++++++++++++++++++++++--------------
>  common/env_eeprom.c             |  14 +++++
>  common/stdio.c                  |  13 ++++-
>  include/i2c.h                   |   9 ---
>  14 Dateien geändert, 251 Zeilen hinzugefügt(+), 61 Zeilen entfernt(-)
>

...
> diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c
> index 4380794..d59f10d 100644

> @@ -1508,16 +1543,21 @@ static int do_i2c_nm(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
>   */
>  static int do_i2c_reset(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
>  {
> +#if defined(CONFIG_SYS_I2C)
> +       i2c_init(I2C_ADAP->speed, I2C_ADAP->slaveaddr);
> +#else
>         i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
> +#endif
>         return 0;
>  }
>
>  static cmd_tbl_t cmd_i2c_sub[] = {
> -#if defined(CONFIG_I2C_MUX)
> -       U_BOOT_CMD_MKENT(bus, 1, 1, do_i2c_add_bus, "", ""),
> +#if defined(CONFIG_SYS_I2C)
> +       U_BOOT_CMD_MKENT(bus, 1, 1, do_i2c_show_bus, "", ""),
>  #endif  /* CONFIG_I2C_MUX */
>         U_BOOT_CMD_MKENT(crc32, 3, 1, do_i2c_crc, "", ""),
> -#if defined(CONFIG_I2C_MULTI_BUS)
> +#if defined(CONFIG_SYS_I2C) || \
> +       defined(CONFIG_I2C_MULTI_BUS)
>         U_BOOT_CMD_MKENT(dev, 1, 1, do_i2c_bus_num, "", ""),

If you are changing the condition here you should change the condition
on the help also.

>  #endif  /* CONFIG_I2C_MULTI_BUS */
>  #if defined(CONFIG_I2C_EDID)
> @@ -1576,11 +1616,11 @@ static int do_i2c(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
>  /***************************************************/
>  #ifdef CONFIG_SYS_LONGHELP
>  static char i2c_help_text[] =
> -#if defined(CONFIG_I2C_MUX)
> -       "bus [muxtype:muxaddr:muxchannel] - add a new bus reached over muxes\ni2c "
> +#if defined(CONFIG_SYS_I2C)
> +       "bus [muxtype:muxaddr:muxchannel] - show I2C bus info\n"
>  #endif  /* CONFIG_I2C_MUX */
>         "crc32 chip address[.0, .1, .2] count - compute CRC32 checksum\n"
> -#if defined(CONFIG_I2C_MULTI_BUS)
> +#if defined(CONFIG_SYS_I2C)
>         "i2c dev [dev] - show or set current I2C bus\n"
>  #endif  /* CONFIG_I2C_MULTI_BUS */
>  #if defined(CONFIG_I2C_EDID)
> diff --git a/common/env_eeprom.c b/common/env_eeprom.c
> index 45c935b..fbd459a 100644

I tested this on snow and it seems to disable every bus except bus 0.
I will see if I can take a look.

Hopefully one of the Nvidia guys can test on seaboard as I don't have
mind with me right now.

SMDK5250 # i2c dev 4
Invalid bus 4

Regards,
Simon


More information about the U-Boot mailing list