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 cc6f962..3aba8f9 100644 (file)
@@ -227,16 +227,6 @@ static struct gpio latch_gpios[] __initconst = {
                .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,
                .label  = "keybrd_pwr",
index 3e57833..e9ad673 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 6978ae4..73b211b 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)