]> git.karo-electronics.de Git - linux-beck.git/commitdiff
omapfb: lcd_ams_delta: drive control lines over GPIO
authorJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Mon, 19 Dec 2011 23:08:56 +0000 (00:08 +0100)
committerTony Lindgren <tony@atomide.com>
Thu, 22 Dec 2011 17:00:46 +0000 (09:00 -0800)
Don't use Amstrad Delta custom I/O functions any longer, use GPIO API
instead.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap1/board-ams-delta.c
arch/arm/plat-omap/include/plat/board-ams-delta.h
drivers/video/omap/lcd_ams_delta.c

index cc6f96249e77bb78c98f4c7ab6008b3ddd4dd382..3aba8f99cc7e6f02156d934582c30517c08a82ca 100644 (file)
@@ -226,16 +226,6 @@ static struct gpio latch_gpios[] __initconst = {
                .flags  = GPIOF_OUT_INIT_LOW,
                .label  = "dockit2",
        },
-       {
-               .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",
-       },
        {
                .gpio   = AMS_DELTA_GPIO_PIN_KEYBRD_PWR,
                .flags  = GPIOF_OUT_INIT_LOW,
index 3e578339fe8c90d7c37b291898f2779ebdfe8166..e9ad673be32f1b023856869d8a59e608eb090cff 100644 (file)
@@ -28,8 +28,6 @@
 
 #if defined (CONFIG_MACH_AMS_DELTA)
 
-#define AMS_DELTA_LATCH2_LCD_VBLEN     0x0001
-#define AMS_DELTA_LATCH2_LCD_NDISP     0x0002
 #define AMD_DELTA_LATCH2_KEYBRD_PWR    0x0100
 #define AMD_DELTA_LATCH2_KEYBRD_DATA   0x0200
 #define AMD_DELTA_LATCH2_SCARD_RSTIN   0x0400
index 6978ae4ef83aedf90a560f1d166a890a413ad25e..73b211b92a39dc935c89b067af72890e48fef0af 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/io.h>
 #include <linux/delay.h>
 #include <linux/lcd.h>
+#include <linux/gpio.h>
 
 #include <plat/board-ams-delta.h>
 #include <mach/hardware.h>
@@ -98,29 +99,41 @@ static struct lcd_ops ams_delta_lcd_ops = {
 
 /* omapfb panel section */
 
+static struct gpio _gpios[] __initconst_or_module = {
+       {
+               .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 0;
+       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)
 {
-       ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_NDISP,
-                       AMS_DELTA_LATCH2_LCD_NDISP);
-       ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_VBLEN,
-                       AMS_DELTA_LATCH2_LCD_VBLEN);
+       gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 1);
+       gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 1);
        return 0;
 }
 
 static void ams_delta_panel_disable(struct lcd_panel *panel)
 {
-       ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_VBLEN, 0);
-       ams_delta_latch2_write(AMS_DELTA_LATCH2_LCD_NDISP, 0);
+       gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_VBLEN, 0);
+       gpio_set_value(AMS_DELTA_GPIO_PIN_LCD_NDISP, 0);
 }
 
 static unsigned long ams_delta_panel_get_caps(struct lcd_panel *panel)