Hi Jean-Jacques, On 11 October 2018 at 06:01, Jean-Jacques Hiblot <jjhib...@ti.com> wrote: > Hi Simon, > > thanks for the reviews. > > > > On 11/10/2018 05:13, Simon Glass wrote: >> >> Hi Jean-Jacques, >> >> On 5 October 2018 at 10:45, Jean-Jacques Hiblot <jjhib...@ti.com> wrote: >>> >>> In a non-DM environment, it is possible to test the presence of a chip >>> using i2c_probe(chip_addr). >>> dm_i2c_probe_device() brings the same functionality with a DM interface. >>> The intent is to be able to test the presence of a chip for the device >>> has >>> been created with i2c_get_chip_for_busnum(bus_num, chip_addr, ...) >>> >>> Signed-off-by: Jean-Jacques Hiblot <jjhib...@ti.com> >>> --- >>> >>> Changes in v2: None >>> >>> drivers/i2c/i2c-uclass.c | 8 ++++++++ >>> include/i2c.h | 13 +++++++++++++ >>> 2 files changed, 21 insertions(+) >>> >>> diff --git a/drivers/i2c/i2c-uclass.c b/drivers/i2c/i2c-uclass.c >>> index c5a3c4e..ec88168 100644 >>> --- a/drivers/i2c/i2c-uclass.c >>> +++ b/drivers/i2c/i2c-uclass.c >>> @@ -378,6 +378,14 @@ int dm_i2c_probe(struct udevice *bus, uint >>> chip_addr, uint chip_flags, >>> return ret; >>> } >>> >>> +int dm_i2c_probe_device(struct udevice *dev) >>> +{ >>> + struct udevice *bus = dev_get_parent(dev); >>> + struct dm_i2c_chip *chip = dev_get_parent_platdata(dev); >>> + >>> + return i2c_probe_chip(bus, chip->chip_addr, chip->flags); >>> +} >> >> Why not just probe the device? That should have the same effect. > > The device itself is not probed when using i2c_get_chip_for_busnum(). I > could have changed it there but was sure about possible side-effects on all > boards. > The code that uses the non-DM API usually calls I2C_probe() at some point, > this function is the equivalent in the DM world.
So if you change your above function to: int dm_i2c_probe_device(struct udevice *dev) { return device_probe(dev); } what happens? Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot