i2c: imx: switch to using gpiod for bus recovery gpios
authorPhil Reid <preid@electromag.com.au>
Thu, 2 Nov 2017 02:40:28 +0000 (10:40 +0800)
committerWolfram Sang <wsa@the-dreams.de>
Mon, 27 Nov 2017 17:39:45 +0000 (18:39 +0100)
Change the driver to use the gpio descriptors for the bus recovery
information instead of the deprecated integer interface.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Phil Reid <preid@electromag.com.au>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-imx.c

index f96830f..c4cf265 100644 (file)
@@ -1006,26 +1006,26 @@ static int i2c_imx_init_recovery_info(struct imx_i2c_struct *i2c_imx,
                        PINCTRL_STATE_DEFAULT);
        i2c_imx->pinctrl_pins_gpio = pinctrl_lookup_state(i2c_imx->pinctrl,
                        "gpio");
-       rinfo->sda_gpio = of_get_named_gpio(pdev->dev.of_node, "sda-gpios", 0);
-       rinfo->scl_gpio = of_get_named_gpio(pdev->dev.of_node, "scl-gpios", 0);
+       rinfo->sda_gpiod = devm_gpiod_get(&pdev->dev, "sda", GPIOD_OUT_HIGH);
+       rinfo->scl_gpiod = devm_gpiod_get(&pdev->dev, "scl", GPIOD_IN);
 
-       if (rinfo->sda_gpio == -EPROBE_DEFER ||
-           rinfo->scl_gpio == -EPROBE_DEFER) {
+       if (PTR_ERR(rinfo->sda_gpiod) == -EPROBE_DEFER ||
+           PTR_ERR(rinfo->scl_gpiod) == -EPROBE_DEFER) {
                return -EPROBE_DEFER;
-       } else if (!gpio_is_valid(rinfo->sda_gpio) ||
-                  !gpio_is_valid(rinfo->scl_gpio) ||
+       } else if (IS_ERR(rinfo->sda_gpiod) ||
+                  IS_ERR(rinfo->scl_gpiod) ||
                   IS_ERR(i2c_imx->pinctrl_pins_default) ||
                   IS_ERR(i2c_imx->pinctrl_pins_gpio)) {
                dev_dbg(&pdev->dev, "recovery information incomplete\n");
                return 0;
        }
 
-       dev_dbg(&pdev->dev, "using scl-gpio %d and sda-gpio %d for recovery\n",
-                       rinfo->scl_gpio, rinfo->sda_gpio);
+       dev_dbg(&pdev->dev, "using scl%s for recovery\n",
+               rinfo->sda_gpiod ? ",sda" : "");
 
        rinfo->prepare_recovery = i2c_imx_prepare_recovery;
        rinfo->unprepare_recovery = i2c_imx_unprepare_recovery;
-       rinfo->recover_bus = i2c_generic_gpio_recovery;
+       rinfo->recover_bus = i2c_generic_scl_recovery;
        i2c_imx->adapter.bus_recovery_info = rinfo;
 
        return 0;