drm/tilcdc: panel: make better use of gpiod API
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Wed, 11 Feb 2015 16:32:53 +0000 (17:32 +0100)
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Mon, 6 Jul 2015 08:10:21 +0000 (10:10 +0200)
Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions)
which appeared in v3.17-rc1, the gpiod_get* functions take an additional
parameter that allows to specify direction and initial value for output.

Furthermore there is devm_gpiod_get_optional which is designed to get
optional gpios.

Simplify driver accordingly.

Acked-by: Alexandre Courbot <acourbot@nvidia.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
drivers/gpu/drm/tilcdc/tilcdc_panel.c

index 7a0315855e90130d5eaa2f00e76750e59a68853f..0af8bed7ce1ee7238dadb6328ac9a73ba38a567d 100644 (file)
@@ -375,25 +375,17 @@ static int panel_probe(struct platform_device *pdev)
                dev_info(&pdev->dev, "found backlight\n");
        }
 
-       panel_mod->enable_gpio = devm_gpiod_get(&pdev->dev, "enable");
+       panel_mod->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
+                                                        GPIOD_OUT_LOW);
        if (IS_ERR(panel_mod->enable_gpio)) {
                ret = PTR_ERR(panel_mod->enable_gpio);
-               if (ret != -ENOENT) {
-                       dev_err(&pdev->dev, "failed to request enable GPIO\n");
-                       goto fail_backlight;
-               }
-
-               /* Optional GPIO is not here, continue silently. */
-               panel_mod->enable_gpio = NULL;
-       } else {
-               ret = gpiod_direction_output(panel_mod->enable_gpio, 0);
-               if (ret < 0) {
-                       dev_err(&pdev->dev, "failed to setup GPIO\n");
-                       goto fail_backlight;
-               }
-               dev_info(&pdev->dev, "found enable GPIO\n");
+               dev_err(&pdev->dev, "failed to request enable GPIO\n");
+               goto fail_backlight;
        }
 
+       if (panel_mod->enable_gpio)
+               dev_info(&pdev->dev, "found enable GPIO\n");
+
        mod = &panel_mod->base;
        pdev->dev.platform_data = mod;