drm/tilcdc: panel: make better use of gpiod API
Since 39b2bbe3d7
(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>
This commit is contained in:
parent
89ae3d3b9a
commit
26a5bd2649
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue