On 6 May 2015 at 08:34, Simon Glass <s...@chromium.org> wrote: > Hi Heiko, > > On 5 May 2015 at 23:44, Heiko Schocher <h...@denx.de> wrote: >> Hello Simon, >> >> >> Am 04.05.2015 19:30, schrieb Simon Glass: >>> >>> This command was missed in the conversion. Add it back for driver model. >>> >>> Signed-off-by: Simon Glass <s...@chromium.org> >>> --- >>> >>> common/cmd_i2c.c | 63 >>> +++++++++++++++++++++++++++++++++++++++++++++++++------- >>> 1 file changed, 55 insertions(+), 8 deletions(-) >>> >>> diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c >>> index ad38cbf..1bc0db8 100644 >>> --- a/common/cmd_i2c.c >>> +++ b/common/cmd_i2c.c >>> @@ -1623,6 +1623,27 @@ int do_edid(cmd_tbl_t *cmdtp, int flag, int argc, >>> char *const argv[]) >>> } >>> #endif /* CONFIG_I2C_EDID */ >>> >>> +#ifdef CONFIG_DM_I2C >>> +static void show_bus(struct udevice *bus) >>> +{ >>> + struct udevice *dev; >>> + >>> + printf("Bus %d:\t%s", bus->req_seq, bus->name); >>> + if (device_active(bus)) >>> + printf(" (active %d)", bus->seq); >>> + printf("\n"); >>> + for (device_find_first_child(bus, &dev); >>> + dev; >>> + device_find_next_child(&dev)) { >>> + struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); >>> + >>> + printf(" %02x: %s, offset len %x, flags %x\n", >>> + chip->chip_addr, dev->name, chip->offset_len, >>> + chip->flags); >>> + } >>> +} >>> +#endif >>> + >>> /** >>> * do_i2c_show_bus() - Handle the "i2c bus" command-line command >>> * @cmdtp: Command data struct pointer >>> @@ -1632,20 +1653,30 @@ int do_edid(cmd_tbl_t *cmdtp, int flag, int argc, >>> char *const argv[]) >>> * >>> * Returns zero always. >>> */ >>> -#if defined(CONFIG_SYS_I2C) >>> +#if defined(CONFIG_SYS_I2C) || defined(CONFIG_DM_I2C) >>> static int do_i2c_show_bus(cmd_tbl_t *cmdtp, int flag, int argc, >>> char * const argv[]) >>> { >>> - int i; >>> -#ifndef CONFIG_SYS_I2C_DIRECT_BUS >>> - int j; >>> -#endif >>> - >>> if (argc == 1) { >>> /* show all busses */ >>> +#ifdef CONFIG_DM_I2C >>> + struct udevice *bus; >>> + struct uclass *uc; >>> + int ret; >>> + >>> + ret = uclass_get(UCLASS_I2C, &uc); >>> + if (ret) >>> + return CMD_RET_FAILURE; >>> + uclass_foreach_dev(bus, uc) >>> + show_bus(bus); >>> +#else >>> + int i; >>> + >>> for (i = 0; i < CONFIG_SYS_NUM_I2C_BUSES; i++) { >>> printf("Bus %d:\t%s", i, I2C_ADAP_NR(i)->name); >>> #ifndef CONFIG_SYS_I2C_DIRECT_BUS >>> + int j; >>> + >> >> >> I thought this drops an error, because var j is declared in the middle of >> code, but just tried it with gcc 4.7.2 and gcc 4.8.1 vor the mgcoge board, >> drops no warning, so: >> >> Acked-by: Heiko Schocher <h...@denx.de> > > Yes, I probably shouldn't do that. > > [snip] > > Regards, > Simon
Actually this is OK because it is not really in the middle of the code, due to the #ifdef. Applied to u-boot-dm. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot