All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Shreeya Patel <shreeya.patel23498@gmail.com>,
	Arvind Yadav <arvind.yadav.cs@gmail.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Gregory CLEMENT <gregory.clement@bootlin.com>,
	Krzysztof Halasa <khalasa@piap.pl>, Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Tomi Valkeinen <tomi.valkeinen@ti.com>,
	Janusz Krzysztofik <jmkrzyszt@gmail.com>
Subject: [PATCH v2 1/3 v2] video: fbdev: omapfb: lcd_ams_delta: use GPIO lookup table
Date: Wed, 18 Jul 2018 01:14:46 +0200	[thread overview]
Message-ID: <20180717231448.14958-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20180717231448.14958-1-jmkrzyszt@gmail.com>

Now as Amstrad Delta board - the only user of this driver - provides
GPIO lookup tables, switch from GPIO numbers to GPIO descriptors and
use the table to locate required GPIO pins.

Declare static variables for storing GPIO descriptors and replace
gpio_ function calls with their gpiod_ equivalents. Move GPIO lookup
to the driver probe function so device initialization can be deferred
instead of aborted if a GPIO pin is not yet available.

Pin naming used by the driver should be followed while respective GPIO
lookup table is initialized by a board init code.

Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
Changelog:
v2: Remove problematic error code conversion no longer needed if used
    on top of commit d08605a64e67 ("ARM: OMAP1: ams-delta: move late
    devices back to init_machine") already in linux-omap and commit
    8853daf3b4ac ("gpiolib: Defer on non-DT find_chip_by_name()
    failure") already in linux-next

Dependency on commit 8853daf3b4ac ("gpiolib: Defer on non-DT
find_chip_by_name() failure") is not critical for clean build or run, it
only prevents from unexpected future changes to driver initialization
order durin device_initall.

 drivers/video/fbdev/omap/lcd_ams_delta.c | 55 +++++++++++++-------------------
 1 file changed, 22 insertions(+), 33 deletions(-)

diff --git a/drivers/video/fbdev/omap/lcd_ams_delta.c b/drivers/video/fbdev/omap/lcd_ams_delta.c
index e8c748a0dfe2..cddbd00cbf9f 100644
--- a/drivers/video/fbdev/omap/lcd_ams_delta.c
+++ b/drivers/video/fbdev/omap/lcd_ams_delta.c
@@ -24,11 +24,10 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/delay.h>
+#include <linux/gpio/consumer.h>
 #include <linux/lcd.h>
-#include <linux/gpio.h>
 
 #include <mach/hardware.h>
-#include <mach/board-ams-delta.h>
 
 #include "omapfb.h"
 
@@ -41,6 +40,8 @@
 /* LCD class device section */
 
 static int ams_delta_lcd;
+static struct gpio_desc *gpiod_vblen;
+static struct gpio_desc *gpiod_ndisp;
 
 static int ams_delta_lcd_set_power(struct lcd_device *dev, int power)
 {
@@ -99,41 +100,17 @@ static struct lcd_ops ams_delta_lcd_ops = {
 
 /* omapfb panel section */
 
-static const struct gpio _gpios[] = {
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_VBLEN,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_vblen",
-	},
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_NDISP,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_ndisp",
-	},
-};
-
-static int ams_delta_panel_init(struct lcd_panel *panel,
-		struct omapfb_device *fbdev)
-{
-	return gpio_request_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
-static void ams_delta_panel_cleanup(struct lcd_panel *panel)
-{
-	gpio_free_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
 static int ams_delta_panel_enable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 1);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 1);
+	gpiod_set_value(gpiod_ndisp, 1);
+	gpiod_set_value(gpiod_vblen, 1);
 	return 0;
 }
 
 static void ams_delta_panel_disable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 0);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 0);
+	gpiod_set_value(gpiod_vblen, 0);
+	gpiod_set_value(gpiod_ndisp, 0);
 }
 
 static struct lcd_panel ams_delta_panel = {
@@ -154,8 +131,6 @@ static struct lcd_panel ams_delta_panel = {
 	.pcd		= 0,
 	.acb		= 37,
 
-	.init		= ams_delta_panel_init,
-	.cleanup	= ams_delta_panel_cleanup,
 	.enable		= ams_delta_panel_enable,
 	.disable	= ams_delta_panel_disable,
 };
@@ -166,9 +141,23 @@ static struct lcd_panel ams_delta_panel = {
 static int ams_delta_panel_probe(struct platform_device *pdev)
 {
 	struct lcd_device *lcd_device = NULL;
-#ifdef CONFIG_LCD_CLASS_DEVICE
 	int ret;
 
+	gpiod_vblen = devm_gpiod_get(&pdev->dev, "vblen", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_vblen)) {
+		ret = PTR_ERR(gpiod_vblen);
+		dev_err(&pdev->dev, "VBLEN GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+	gpiod_ndisp = devm_gpiod_get(&pdev->dev, "ndisp", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_ndisp)) {
+		ret = PTR_ERR(gpiod_ndisp);
+		dev_err(&pdev->dev, "NDISP GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+#ifdef CONFIG_LCD_CLASS_DEVICE
 	lcd_device = lcd_device_register("omapfb", &pdev->dev, NULL,
 						&ams_delta_lcd_ops);
 
-- 
2.16.4


WARNING: multiple messages have this Message-ID (diff)
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Shreeya Patel <shreeya.patel23498@gmail.com>,
	Arvind Yadav <arvind.yadav.cs@gmail.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Gregory CLEMENT <gregory.clement@bootlin.com>,
	Krzysztof Halasa <khalasa@piap.pl>, Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org, Andy Shevchenko <andy.shevchen>
Subject: [PATCH v2 1/3 v2] video: fbdev: omapfb: lcd_ams_delta: use GPIO lookup table
Date: Tue, 17 Jul 2018 23:14:46 +0000	[thread overview]
Message-ID: <20180717231448.14958-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20180717231448.14958-1-jmkrzyszt@gmail.com>

Now as Amstrad Delta board - the only user of this driver - provides
GPIO lookup tables, switch from GPIO numbers to GPIO descriptors and
use the table to locate required GPIO pins.

Declare static variables for storing GPIO descriptors and replace
gpio_ function calls with their gpiod_ equivalents. Move GPIO lookup
to the driver probe function so device initialization can be deferred
instead of aborted if a GPIO pin is not yet available.

Pin naming used by the driver should be followed while respective GPIO
lookup table is initialized by a board init code.

Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
Changelog:
v2: Remove problematic error code conversion no longer needed if used
    on top of commit d08605a64e67 ("ARM: OMAP1: ams-delta: move late
    devices back to init_machine") already in linux-omap and commit
    8853daf3b4ac ("gpiolib: Defer on non-DT find_chip_by_name()
    failure") already in linux-next

Dependency on commit 8853daf3b4ac ("gpiolib: Defer on non-DT
find_chip_by_name() failure") is not critical for clean build or run, it
only prevents from unexpected future changes to driver initialization
order durin device_initall.

 drivers/video/fbdev/omap/lcd_ams_delta.c | 55 +++++++++++++-------------------
 1 file changed, 22 insertions(+), 33 deletions(-)

diff --git a/drivers/video/fbdev/omap/lcd_ams_delta.c b/drivers/video/fbdev/omap/lcd_ams_delta.c
index e8c748a0dfe2..cddbd00cbf9f 100644
--- a/drivers/video/fbdev/omap/lcd_ams_delta.c
+++ b/drivers/video/fbdev/omap/lcd_ams_delta.c
@@ -24,11 +24,10 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/delay.h>
+#include <linux/gpio/consumer.h>
 #include <linux/lcd.h>
-#include <linux/gpio.h>
 
 #include <mach/hardware.h>
-#include <mach/board-ams-delta.h>
 
 #include "omapfb.h"
 
@@ -41,6 +40,8 @@
 /* LCD class device section */
 
 static int ams_delta_lcd;
+static struct gpio_desc *gpiod_vblen;
+static struct gpio_desc *gpiod_ndisp;
 
 static int ams_delta_lcd_set_power(struct lcd_device *dev, int power)
 {
@@ -99,41 +100,17 @@ static struct lcd_ops ams_delta_lcd_ops = {
 
 /* omapfb panel section */
 
-static const struct gpio _gpios[] = {
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_VBLEN,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_vblen",
-	},
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_NDISP,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_ndisp",
-	},
-};
-
-static int ams_delta_panel_init(struct lcd_panel *panel,
-		struct omapfb_device *fbdev)
-{
-	return gpio_request_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
-static void ams_delta_panel_cleanup(struct lcd_panel *panel)
-{
-	gpio_free_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
 static int ams_delta_panel_enable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 1);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 1);
+	gpiod_set_value(gpiod_ndisp, 1);
+	gpiod_set_value(gpiod_vblen, 1);
 	return 0;
 }
 
 static void ams_delta_panel_disable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 0);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 0);
+	gpiod_set_value(gpiod_vblen, 0);
+	gpiod_set_value(gpiod_ndisp, 0);
 }
 
 static struct lcd_panel ams_delta_panel = {
@@ -154,8 +131,6 @@ static struct lcd_panel ams_delta_panel = {
 	.pcd		= 0,
 	.acb		= 37,
 
-	.init		= ams_delta_panel_init,
-	.cleanup	= ams_delta_panel_cleanup,
 	.enable		= ams_delta_panel_enable,
 	.disable	= ams_delta_panel_disable,
 };
@@ -166,9 +141,23 @@ static struct lcd_panel ams_delta_panel = {
 static int ams_delta_panel_probe(struct platform_device *pdev)
 {
 	struct lcd_device *lcd_device = NULL;
-#ifdef CONFIG_LCD_CLASS_DEVICE
 	int ret;
 
+	gpiod_vblen = devm_gpiod_get(&pdev->dev, "vblen", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_vblen)) {
+		ret = PTR_ERR(gpiod_vblen);
+		dev_err(&pdev->dev, "VBLEN GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+	gpiod_ndisp = devm_gpiod_get(&pdev->dev, "ndisp", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_ndisp)) {
+		ret = PTR_ERR(gpiod_ndisp);
+		dev_err(&pdev->dev, "NDISP GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+#ifdef CONFIG_LCD_CLASS_DEVICE
 	lcd_device = lcd_device_register("omapfb", &pdev->dev, NULL,
 						&ams_delta_lcd_ops);
 
-- 
2.16.4


WARNING: multiple messages have this Message-ID (diff)
From: Janusz Krzysztofik <jmkrzyszt@gmail.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Aaro Koskinen <aaro.koskinen@iki.fi>,
	Boris Brezillon <boris.brezillon@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	Richard Weinberger <richard@nod.at>,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Shreeya Patel <shreeya.patel23498@gmail.com>,
	Arvind Yadav <arvind.yadav.cs@gmail.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Gregory CLEMENT <gregory.clement@bootlin.com>,
	Krzysztof Halasa <khalasa@piap.pl>, Arnd Bergmann <arnd@arndb.de>,
	linux-arm-kernel@lists.infradead.org,
	linux-mtd@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org,
	dri-devel@lists.freedesktop.org, Andy Shevchenko <andy.shevchen>
Subject: [PATCH v2 1/3 v2] video: fbdev: omapfb: lcd_ams_delta: use GPIO lookup table
Date: Wed, 18 Jul 2018 01:14:46 +0200	[thread overview]
Message-ID: <20180717231448.14958-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20180717231448.14958-1-jmkrzyszt@gmail.com>

Now as Amstrad Delta board - the only user of this driver - provides
GPIO lookup tables, switch from GPIO numbers to GPIO descriptors and
use the table to locate required GPIO pins.

Declare static variables for storing GPIO descriptors and replace
gpio_ function calls with their gpiod_ equivalents. Move GPIO lookup
to the driver probe function so device initialization can be deferred
instead of aborted if a GPIO pin is not yet available.

Pin naming used by the driver should be followed while respective GPIO
lookup table is initialized by a board init code.

Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
Changelog:
v2: Remove problematic error code conversion no longer needed if used
    on top of commit d08605a64e67 ("ARM: OMAP1: ams-delta: move late
    devices back to init_machine") already in linux-omap and commit
    8853daf3b4ac ("gpiolib: Defer on non-DT find_chip_by_name()
    failure") already in linux-next

Dependency on commit 8853daf3b4ac ("gpiolib: Defer on non-DT
find_chip_by_name() failure") is not critical for clean build or run, it
only prevents from unexpected future changes to driver initialization
order durin device_initall.

 drivers/video/fbdev/omap/lcd_ams_delta.c | 55 +++++++++++++-------------------
 1 file changed, 22 insertions(+), 33 deletions(-)

diff --git a/drivers/video/fbdev/omap/lcd_ams_delta.c b/drivers/video/fbdev/omap/lcd_ams_delta.c
index e8c748a0dfe2..cddbd00cbf9f 100644
--- a/drivers/video/fbdev/omap/lcd_ams_delta.c
+++ b/drivers/video/fbdev/omap/lcd_ams_delta.c
@@ -24,11 +24,10 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/delay.h>
+#include <linux/gpio/consumer.h>
 #include <linux/lcd.h>
-#include <linux/gpio.h>
 
 #include <mach/hardware.h>
-#include <mach/board-ams-delta.h>
 
 #include "omapfb.h"
 
@@ -41,6 +40,8 @@
 /* LCD class device section */
 
 static int ams_delta_lcd;
+static struct gpio_desc *gpiod_vblen;
+static struct gpio_desc *gpiod_ndisp;
 
 static int ams_delta_lcd_set_power(struct lcd_device *dev, int power)
 {
@@ -99,41 +100,17 @@ static struct lcd_ops ams_delta_lcd_ops = {
 
 /* omapfb panel section */
 
-static const struct gpio _gpios[] = {
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_VBLEN,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_vblen",
-	},
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_NDISP,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_ndisp",
-	},
-};
-
-static int ams_delta_panel_init(struct lcd_panel *panel,
-		struct omapfb_device *fbdev)
-{
-	return gpio_request_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
-static void ams_delta_panel_cleanup(struct lcd_panel *panel)
-{
-	gpio_free_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
 static int ams_delta_panel_enable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 1);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 1);
+	gpiod_set_value(gpiod_ndisp, 1);
+	gpiod_set_value(gpiod_vblen, 1);
 	return 0;
 }
 
 static void ams_delta_panel_disable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 0);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 0);
+	gpiod_set_value(gpiod_vblen, 0);
+	gpiod_set_value(gpiod_ndisp, 0);
 }
 
 static struct lcd_panel ams_delta_panel = {
@@ -154,8 +131,6 @@ static struct lcd_panel ams_delta_panel = {
 	.pcd		= 0,
 	.acb		= 37,
 
-	.init		= ams_delta_panel_init,
-	.cleanup	= ams_delta_panel_cleanup,
 	.enable		= ams_delta_panel_enable,
 	.disable	= ams_delta_panel_disable,
 };
@@ -166,9 +141,23 @@ static struct lcd_panel ams_delta_panel = {
 static int ams_delta_panel_probe(struct platform_device *pdev)
 {
 	struct lcd_device *lcd_device = NULL;
-#ifdef CONFIG_LCD_CLASS_DEVICE
 	int ret;
 
+	gpiod_vblen = devm_gpiod_get(&pdev->dev, "vblen", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_vblen)) {
+		ret = PTR_ERR(gpiod_vblen);
+		dev_err(&pdev->dev, "VBLEN GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+	gpiod_ndisp = devm_gpiod_get(&pdev->dev, "ndisp", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_ndisp)) {
+		ret = PTR_ERR(gpiod_ndisp);
+		dev_err(&pdev->dev, "NDISP GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+#ifdef CONFIG_LCD_CLASS_DEVICE
 	lcd_device = lcd_device_register("omapfb", &pdev->dev, NULL,
 						&ams_delta_lcd_ops);
 
-- 
2.16.4

WARNING: multiple messages have this Message-ID (diff)
From: jmkrzyszt@gmail.com (Janusz Krzysztofik)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 1/3 v2] video: fbdev: omapfb: lcd_ams_delta: use GPIO lookup table
Date: Wed, 18 Jul 2018 01:14:46 +0200	[thread overview]
Message-ID: <20180717231448.14958-2-jmkrzyszt@gmail.com> (raw)
In-Reply-To: <20180717231448.14958-1-jmkrzyszt@gmail.com>

Now as Amstrad Delta board - the only user of this driver - provides
GPIO lookup tables, switch from GPIO numbers to GPIO descriptors and
use the table to locate required GPIO pins.

Declare static variables for storing GPIO descriptors and replace
gpio_ function calls with their gpiod_ equivalents. Move GPIO lookup
to the driver probe function so device initialization can be deferred
instead of aborted if a GPIO pin is not yet available.

Pin naming used by the driver should be followed while respective GPIO
lookup table is initialized by a board init code.

Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
---
Changelog:
v2: Remove problematic error code conversion no longer needed if used
    on top of commit d08605a64e67 ("ARM: OMAP1: ams-delta: move late
    devices back to init_machine") already in linux-omap and commit
    8853daf3b4ac ("gpiolib: Defer on non-DT find_chip_by_name()
    failure") already in linux-next

Dependency on commit 8853daf3b4ac ("gpiolib: Defer on non-DT
find_chip_by_name() failure") is not critical for clean build or run, it
only prevents from unexpected future changes to driver initialization
order durin device_initall.

 drivers/video/fbdev/omap/lcd_ams_delta.c | 55 +++++++++++++-------------------
 1 file changed, 22 insertions(+), 33 deletions(-)

diff --git a/drivers/video/fbdev/omap/lcd_ams_delta.c b/drivers/video/fbdev/omap/lcd_ams_delta.c
index e8c748a0dfe2..cddbd00cbf9f 100644
--- a/drivers/video/fbdev/omap/lcd_ams_delta.c
+++ b/drivers/video/fbdev/omap/lcd_ams_delta.c
@@ -24,11 +24,10 @@
 #include <linux/platform_device.h>
 #include <linux/io.h>
 #include <linux/delay.h>
+#include <linux/gpio/consumer.h>
 #include <linux/lcd.h>
-#include <linux/gpio.h>
 
 #include <mach/hardware.h>
-#include <mach/board-ams-delta.h>
 
 #include "omapfb.h"
 
@@ -41,6 +40,8 @@
 /* LCD class device section */
 
 static int ams_delta_lcd;
+static struct gpio_desc *gpiod_vblen;
+static struct gpio_desc *gpiod_ndisp;
 
 static int ams_delta_lcd_set_power(struct lcd_device *dev, int power)
 {
@@ -99,41 +100,17 @@ static struct lcd_ops ams_delta_lcd_ops = {
 
 /* omapfb panel section */
 
-static const struct gpio _gpios[] = {
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_VBLEN,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_vblen",
-	},
-	{
-		.gpio	= AMS_DELTA_GPIO_PIN_LCD_NDISP,
-		.flags	= GPIOF_OUT_INIT_LOW,
-		.label	= "lcd_ndisp",
-	},
-};
-
-static int ams_delta_panel_init(struct lcd_panel *panel,
-		struct omapfb_device *fbdev)
-{
-	return gpio_request_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
-static void ams_delta_panel_cleanup(struct lcd_panel *panel)
-{
-	gpio_free_array(_gpios, ARRAY_SIZE(_gpios));
-}
-
 static int ams_delta_panel_enable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 1);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 1);
+	gpiod_set_value(gpiod_ndisp, 1);
+	gpiod_set_value(gpiod_vblen, 1);
 	return 0;
 }
 
 static void ams_delta_panel_disable(struct lcd_panel *panel)
 {
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 0);
-	gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 0);
+	gpiod_set_value(gpiod_vblen, 0);
+	gpiod_set_value(gpiod_ndisp, 0);
 }
 
 static struct lcd_panel ams_delta_panel = {
@@ -154,8 +131,6 @@ static struct lcd_panel ams_delta_panel = {
 	.pcd		= 0,
 	.acb		= 37,
 
-	.init		= ams_delta_panel_init,
-	.cleanup	= ams_delta_panel_cleanup,
 	.enable		= ams_delta_panel_enable,
 	.disable	= ams_delta_panel_disable,
 };
@@ -166,9 +141,23 @@ static struct lcd_panel ams_delta_panel = {
 static int ams_delta_panel_probe(struct platform_device *pdev)
 {
 	struct lcd_device *lcd_device = NULL;
-#ifdef CONFIG_LCD_CLASS_DEVICE
 	int ret;
 
+	gpiod_vblen = devm_gpiod_get(&pdev->dev, "vblen", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_vblen)) {
+		ret = PTR_ERR(gpiod_vblen);
+		dev_err(&pdev->dev, "VBLEN GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+	gpiod_ndisp = devm_gpiod_get(&pdev->dev, "ndisp", GPIOD_OUT_LOW);
+	if (IS_ERR(gpiod_ndisp)) {
+		ret = PTR_ERR(gpiod_ndisp);
+		dev_err(&pdev->dev, "NDISP GPIO request failed (%d)\n", ret);
+		return ret;
+	}
+
+#ifdef CONFIG_LCD_CLASS_DEVICE
 	lcd_device = lcd_device_register("omapfb", &pdev->dev, NULL,
 						&ams_delta_lcd_ops);
 
-- 
2.16.4

  reply	other threads:[~2018-07-17 23:15 UTC|newest]

Thread overview: 167+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-18 21:09 [PATCH 1/6] ARM: OMAP1: ams-delta: add GPIO lookup tables Janusz Krzysztofik
2018-05-18 21:09 ` Janusz Krzysztofik
2018-05-18 21:09 ` Janusz Krzysztofik
2018-05-18 21:09 ` [PATCH 2/6] Input: ams_delta_serio: use GPIO lookup table Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-20 20:17   ` Dmitry Torokhov
2018-05-20 20:17     ` Dmitry Torokhov
2018-05-20 20:17     ` Dmitry Torokhov
2018-05-20 20:17     ` Dmitry Torokhov
2018-05-18 21:09 ` [PATCH 3/6] ASoC: ams_delta: " Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-21 10:05   ` Mark Brown
2018-05-21 10:05     ` Mark Brown
2018-05-21 10:05     ` Mark Brown
2018-05-23 18:52     ` Tony Lindgren
2018-05-23 18:52       ` Tony Lindgren
2018-05-23 18:52       ` Tony Lindgren
2018-05-24 20:35       ` Janusz Krzysztofik
2018-05-24 20:35         ` Janusz Krzysztofik
2018-05-24 20:35         ` Janusz Krzysztofik
2018-05-24 20:35         ` Janusz Krzysztofik
2018-05-18 21:09 ` [PATCH 4/6] fbdev: omapfb: lcd_ams_delta: " Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-25 22:49   ` [Resend] " Janusz Krzysztofik
2018-05-25 22:49     ` Janusz Krzysztofik
2018-07-09 19:16   ` [PATCH v2] video: " Janusz Krzysztofik
2018-07-09 19:16     ` Janusz Krzysztofik
2018-07-17 16:54     ` [PATCH RESEND " Janusz Krzysztofik
2018-07-17 16:54       ` Janusz Krzysztofik
2018-07-17 21:40       ` Janusz Krzysztofik
2018-07-17 21:40         ` Janusz Krzysztofik
2018-05-18 21:09 ` [PATCH 5/6] mtd: rawnand: ams-delta: " Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:21   ` Andy Shevchenko
2018-05-18 21:21     ` Andy Shevchenko
2018-05-18 21:21     ` Andy Shevchenko
2018-05-18 23:15     ` Janusz Krzysztofik
2018-05-18 23:15       ` Janusz Krzysztofik
2018-05-18 23:15       ` Janusz Krzysztofik
2018-05-18 23:15       ` Janusz Krzysztofik
2018-05-19 18:00       ` Andy Shevchenko
2018-05-19 18:00         ` Andy Shevchenko
2018-05-19 18:00         ` Andy Shevchenko
2018-05-19 18:00         ` Andy Shevchenko
2018-05-19 21:55         ` Janusz Krzysztofik
2018-05-19 21:55           ` Janusz Krzysztofik
2018-05-19 21:55           ` Janusz Krzysztofik
2018-05-19 21:55           ` Janusz Krzysztofik
2018-05-20 14:44           ` Andy Shevchenko
2018-05-20 14:44             ` Andy Shevchenko
2018-05-20 14:44             ` Andy Shevchenko
2018-05-20 14:44             ` Andy Shevchenko
2018-05-20 15:37             ` Janusz Krzysztofik
2018-05-20 15:37               ` Janusz Krzysztofik
2018-05-20 15:37               ` Janusz Krzysztofik
2018-05-20 15:37               ` Janusz Krzysztofik
2018-05-20 16:17               ` Andy Shevchenko
2018-05-20 16:17                 ` Andy Shevchenko
2018-05-20 16:17                 ` Andy Shevchenko
2018-05-20 16:17                 ` Andy Shevchenko
2018-05-20 17:25                 ` Miquel Raynal
2018-05-20 17:25                   ` Miquel Raynal
2018-05-21  6:44                   ` Andy Shevchenko
2018-05-21  6:44                     ` Andy Shevchenko
2018-05-25 22:20             ` [PATCH 5/6 v2] " Janusz Krzysztofik
2018-05-30  9:05               ` Boris Brezillon
2018-05-30 17:43                 ` Janusz Krzysztofik
2018-05-30 17:52                   ` Boris Brezillon
2018-05-30 20:39                     ` Janusz Krzysztofik
2018-06-04  9:55                       ` Boris Brezillon
2018-06-04 16:48                         ` Janusz Krzysztofik
2018-06-04 23:09                           ` Boris Brezillon
2018-06-04 23:30                             ` Boris Brezillon
2018-07-09 19:38               ` [PATCH v3] " Janusz Krzysztofik
2018-07-17 17:05                 ` [PATCH RESEND " Janusz Krzysztofik
2018-07-17 20:31                   ` Boris Brezillon
2018-07-17 19:37                 ` [PATCH " Boris Brezillon
2018-07-17 20:20                   ` Janusz Krzysztofik
2018-07-17 20:22                     ` Boris Brezillon
2018-05-20 19:27           ` [alsa-devel] [PATCH 5/6] " Ladislav Michl
2018-05-20 19:27             ` Ladislav Michl
2018-05-20 19:27             ` Ladislav Michl
2018-05-20 19:27             ` Ladislav Michl
2018-05-20 20:08             ` Dmitry Torokhov
2018-05-20 20:08               ` Dmitry Torokhov
2018-05-20 20:08               ` Dmitry Torokhov
2018-05-20 20:08               ` Dmitry Torokhov
2018-05-21 20:21               ` Janusz Krzysztofik
2018-05-21 20:21                 ` Janusz Krzysztofik
2018-05-21 20:21                 ` Janusz Krzysztofik
2018-05-21 20:21                 ` Janusz Krzysztofik
2018-05-21 20:57                 ` Dmitry Torokhov
2018-05-21 20:57                   ` Dmitry Torokhov
2018-05-21 20:57                   ` Dmitry Torokhov
2018-05-21 20:57                   ` Dmitry Torokhov
2018-05-18 21:09 ` [PATCH 6/6] ARM: OMAP1: ams-delta: make board header file local to mach-omap1 Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-18 21:09   ` Janusz Krzysztofik
2018-05-21 17:35 ` [PATCH 1/6] ARM: OMAP1: ams-delta: add GPIO lookup tables Tony Lindgren
2018-05-21 17:35   ` Tony Lindgren
2018-05-21 17:35   ` Tony Lindgren
2018-05-21 18:10   ` Janusz Krzysztofik
2018-05-21 18:10     ` Janusz Krzysztofik
2018-05-21 18:10     ` Janusz Krzysztofik
2018-07-17 23:14 ` [PATCH v2 0/3] ARM: OMAP1: ams-delta: Complete driver gpiod migration Janusz Krzysztofik
2018-07-17 23:14   ` Janusz Krzysztofik
2018-07-17 23:14   ` Janusz Krzysztofik
2018-07-17 23:14   ` Janusz Krzysztofik
2018-07-17 23:14   ` Janusz Krzysztofik [this message]
2018-07-17 23:14     ` [PATCH v2 1/3 v2] video: fbdev: omapfb: lcd_ams_delta: use GPIO lookup table Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-17 23:14   ` [PATCH v2 2/3 v4] mtd: rawnand: ams-delta: " Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-18  7:20     ` Miquel Raynal
2018-07-18  7:20       ` Miquel Raynal
2018-07-18  7:20       ` Miquel Raynal
2018-07-18  7:20       ` Miquel Raynal
2018-07-19  6:39       ` Tony Lindgren
2018-07-19  6:39         ` Tony Lindgren
2018-07-19  6:39         ` Tony Lindgren
2018-07-19  6:39         ` Tony Lindgren
2018-07-17 23:14   ` [PATCH v2 3/3] ARM: OMAP1: ams-delta: make board header file local to mach-omap1 Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-17 23:14     ` Janusz Krzysztofik
2018-07-18 14:18   ` [PATCH v2 0/3] ARM: OMAP1: ams-delta: Complete driver gpiod migration Gregory CLEMENT
2018-07-18 14:18     ` Gregory CLEMENT
2018-07-18 14:18     ` Gregory CLEMENT
2018-07-18 14:18     ` Gregory CLEMENT
2018-09-09 22:56   ` [PATCH v3 " Janusz Krzysztofik
2018-09-09 22:56     ` Janusz Krzysztofik
2018-09-09 22:56     ` Janusz Krzysztofik
2018-09-09 22:56     ` Janusz Krzysztofik
2018-09-09 22:56     ` [PATCH v3 1/3] video: fbdev: omapfb: lcd_ams_delta: use GPIO lookup table Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-10  7:15       ` Linus Walleij
2018-09-10  7:15         ` Linus Walleij
2018-09-10  7:15         ` Linus Walleij
2018-10-03 13:03       ` [PATCH v4] " Janusz Krzysztofik
2018-10-08 10:50         ` Bartlomiej Zolnierkiewicz
2018-09-09 22:56     ` [PATCH v3 2/3] mtd: rawnand: ams-delta: " Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-19 22:17       ` [PATCH v5] " Janusz Krzysztofik
2018-09-20 15:33         ` Linus Walleij
2018-09-23 11:35         ` Miquel Raynal
2018-09-09 22:56     ` [PATCH v3 3/3] ARM: OMAP1: ams-delta: make board header file local to mach-omap1 Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-09 22:56       ` Janusz Krzysztofik
2018-09-19 18:10     ` [PATCH v3 0/3] ARM: OMAP1: ams-delta: Complete driver gpiod migration Janusz Krzysztofik
2018-09-19 18:10       ` Janusz Krzysztofik
2018-09-19 18:10       ` Janusz Krzysztofik
2018-09-20 20:58       ` Tony Lindgren
2018-09-20 20:58         ` Tony Lindgren
2018-09-20 20:58         ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180717231448.14958-2-jmkrzyszt@gmail.com \
    --to=jmkrzyszt@gmail.com \
    --cc=aaro.koskinen@iki.fi \
    --cc=andy.shevchenko@gmail.com \
    --cc=arnd@arndb.de \
    --cc=arvind.yadav.cs@gmail.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=computersforpeace@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=dwmw2@infradead.org \
    --cc=gregory.clement@bootlin.com \
    --cc=khalasa@piap.pl \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=marek.vasut@gmail.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=shreeya.patel23498@gmail.com \
    --cc=tomi.valkeinen@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.