Some displays have a reset input. To assert that the display is
functional the reset gpio must be deasserted.

Teach the driver to get and drive such a gpio accordingly.

Reviewed-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
---
 drivers/gpu/drm/omapdrm/displays/panel-dpi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c 
b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
index e780fd4f8b46..201a1c1a6f42 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-dpi.c
@@ -213,6 +213,16 @@ static int panel_dpi_probe_of(struct platform_device *pdev)

        ddata->enable_gpio = gpio;

+       /*
+        * Many different panels are supported by this driver and there are
+        * probably very different needs for their reset pins in regards to
+        * timing and order relative to the enable gpio. So for now it's just
+        * ensured that the reset line isn't active.
+        */
+       gpio = devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_OUT_LOW);
+       if (IS_ERR(gpio))
+               return PTR_ERR(gpio);
+
        ddata->backlight_gpio = -ENOENT;

        r = of_get_display_timing(node, "panel-timing", &timing);
-- 
2.7.0

Reply via email to