From 07f46bc0c978347cc578b5e232f2a154692bf6c4 Mon Sep 17 00:00:00 2001 From: Shawn Guo Date: Sun, 14 Jul 2013 21:52:38 +0800 Subject: MLK-11293: gpio: pca953x: add device_reset() call The pca953x type of devices, e.g. max7310, may have a reset which needs to be handled to get the device start working. Add a device_reset() call for that, and defer the probe if the reset controller for that is not ready yet. Signed-off-by: Shawn Guo Signed-off-by: Fugang Duan (cherry picked from commit: d3264091b30b777d94a18efda9823a06668d5b10) --- drivers/gpio/gpio-pca953x.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'drivers/gpio') diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index fe731f094257..f0bb7b5aabb6 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -813,6 +814,10 @@ static int pca953x_probe(struct i2c_client *client, lockdep_set_subclass(&chip->i2c_lock, i2c_adapter_depth(client->adapter)); + ret = device_reset(&client->dev); + if (ret == -ENODEV) + return -EPROBE_DEFER; + /* initialize cached registers from their original values. * we can't share this chip with another i2c master. */ -- cgit v1.2.3