i2c: at91_i2c: remove the .probe_chip function
authorAlan Ott <alan@softiron.com>
Wed, 29 Nov 2017 03:25:24 +0000 (22:25 -0500)
committerHeiko Schocher <hs@denx.de>
Thu, 7 Dec 2017 08:29:19 +0000 (09:29 +0100)
The .probe_chip function is supposed to probe an i2c device on the bus to
determine whether a device is answering to a particular address.
at91_i2c_probe_chip() did not do anything resembling this and always
returned 0.

It looks as though at91_i2c_probe_chip() was intended to be a .probe
function for the controller, as it was copied-and-pasted to become
at91_i2c_probe() in 0bc8f640a4d7ed.

Removing the at91_i2c_probe_chip() function makes the higher layer
(i2c_probe_chip()) try a zero-length read transfer to test for the
presence of a device instead, which does work.

Signed-off-by: Alan Ott <alan@softiron.com>
Acked-by: Wenyou Yang <wenyou.yang@microchip.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
drivers/i2c/at91_i2c.c

index 20d09296a1320f672267b995af1286659981cf0d..7917ca123120a207bcce311bd7048c50cf96243b 100644 (file)
@@ -201,27 +201,6 @@ static int at91_i2c_enable_clk(struct udevice *dev)
        return 0;
 }
 
-static int at91_i2c_probe_chip(struct udevice *dev, uint chip, uint chip_flags)
-{
-       struct at91_i2c_bus *bus = dev_get_priv(dev);
-       struct at91_i2c_regs *reg = bus->regs;
-       int ret;
-
-       ret = at91_i2c_enable_clk(dev);
-       if (ret)
-               return ret;
-
-       writel(TWI_CR_SWRST, &reg->cr);
-
-       at91_calc_i2c_clock(dev, bus->clock_frequency);
-
-       writel(bus->cwgr_val, &reg->cwgr);
-       writel(TWI_CR_MSEN, &reg->cr);
-       writel(TWI_CR_SVDIS, &reg->cr);
-
-       return 0;
-}
-
 static int at91_i2c_set_bus_speed(struct udevice *dev, unsigned int speed)
 {
        struct at91_i2c_bus *bus = dev_get_priv(dev);
@@ -256,7 +235,6 @@ static int at91_i2c_ofdata_to_platdata(struct udevice *dev)
 
 static const struct dm_i2c_ops at91_i2c_ops = {
        .xfer           = at91_i2c_xfer,
-       .probe_chip     = at91_i2c_probe_chip,
        .set_bus_speed  = at91_i2c_set_bus_speed,
        .get_bus_speed  = at91_i2c_get_bus_speed,
 };