[PATCH] drm/omap: sharp ls037v7dw01: restore optional GPIOs

Russell King rmk+kernel at armlinux.org.uk
Fri Dec 7 21:24:10 UTC 2018


The binding document for this device says that all GPIOs are optional,
but the driver fails to bind on OMAP3 LDP, reporting:

panel-sharp-ls037v7dw01: probe of display failed with error -2

Unfortunately, commit ca8c67dafdb7 ("fbdev: omap2: improve usage of
gpiod API") removed the -ENOENT handling without converting the
gpiod function to use the optional variant, causing all GPIOs to become
mandatory.

Since the LDP hard-wires some of the panel control signals, there are
no GPIOs that could be specified in DT to satisfy this.

Switch the driver to use the devm_gpiod_get_index_optional() rather
than devm_gpiod_get_index() to conform to its binding documentation.

Fixes: ca8c67dafdb7 ("fbdev: omap2: improve usage of gpiod API")
Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>
---
 drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
index 64b1369cb274..68f2f8d9c430 100644
--- a/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
+++ b/drivers/gpu/drm/omapdrm/displays/panel-sharp-ls037v7dw01.c
@@ -151,7 +151,7 @@ static  int sharp_ls_get_gpio_of(struct device *dev, int index, int val,
 
 	*gpiod = NULL;
 
-	gd = devm_gpiod_get_index(dev, desc, index, GPIOD_OUT_LOW);
+	gd = devm_gpiod_get_index_optional(dev, desc, index, GPIOD_OUT_LOW);
 	if (IS_ERR(gd))
 		return PTR_ERR(gd);
 
-- 
2.7.4



More information about the dri-devel mailing list