i2c: mxc_i2c: Remove i2c_idle_bus from probe
authorYe Li <ye.li@nxp.com>
Wed, 10 Jul 2019 10:24:15 +0000 (10:24 +0000)
committerHeiko Schocher <hs@denx.de>
Tue, 27 Aug 2019 04:20:23 +0000 (06:20 +0200)
i2c_idle_bus is already used in i2c_init_transfer. So before each transfer
if the bus is not ready, the i2c_idle_bus will be used to force idle.
It is unnecessary to call it again in probe.

We found a issue when enabling i2c mux with the mxc_i2c. The mxc_i2c is probed
after mux probing. However, at this moment the mux is still in idle state not
select any port. So if we call i2c_idle_bus in probe, it will fail and cause
mxc_i2c probe failed.

Signed-off-by: Ye Li <ye.li@nxp.com>
drivers/i2c/mxc_i2c.c

index 73b9807598223bb96b675d454dde6e3d110459f1..20f6dc4ecb50d80d58cf52e94f06b3c2f5146067 100644 (file)
@@ -917,13 +917,6 @@ static int mxc_i2c_probe(struct udevice *bus)
                }
        }
 
-       ret = i2c_idle_bus(i2c_bus);
-       if (ret < 0) {
-               /* Disable clk */
-               enable_i2c_clk(0, bus->seq);
-               return ret;
-       }
-
        /*
         * Pinmux settings are in board file now, until pinmux is supported,
         * we can set pinmux here in probe function.