i2c: designware: Consider SCL GPIO optional
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Sat, 17 Feb 2018 20:58:43 +0000 (22:58 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 22 Feb 2018 11:15:35 +0000 (12:15 +0100)
GPIO library can return -ENOSYS for the failed request.
Instead of failing ->probe() in this case override error code to 0.

Fixes: ca382f5b38f3 ("i2c: designware: add i2c gpio recovery option")
Reported-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-designware-master.c

index 55926ef41ef17445238870a7f83e3e7f1d689c04..05732531829fe090185d5f133ea2d7958a94e87a 100644 (file)
@@ -644,7 +644,7 @@ static int i2c_dw_init_recovery_info(struct dw_i2c_dev *dev)
        gpio = devm_gpiod_get(dev->dev, "scl", GPIOD_OUT_HIGH);
        if (IS_ERR(gpio)) {
                r = PTR_ERR(gpio);
-               if (r == -ENOENT)
+               if (r == -ENOENT || r == -ENOSYS)
                        return 0;
                return r;
        }