|
@@ -25,6 +25,7 @@
|
|
#include <linux/io.h>
|
|
#include <linux/io.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/lcd.h>
|
|
#include <linux/lcd.h>
|
|
|
|
+#include <linux/gpio.h>
|
|
|
|
|
|
#include <plat/board-ams-delta.h>
|
|
#include <plat/board-ams-delta.h>
|
|
#include <mach/hardware.h>
|
|
#include <mach/hardware.h>
|
|
@@ -98,29 +99,41 @@ static struct lcd_ops ams_delta_lcd_ops = {
|
|
|
|
|
|
/* omapfb panel section */
|
|
/* 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,
|
|
static int ams_delta_panel_init(struct lcd_panel *panel,
|
|
struct omapfb_device *fbdev)
|
|
struct omapfb_device *fbdev)
|
|
{
|
|
{
|
|
- return 0;
|
|
|
|
|
|
+ return gpio_request_array(_gpios, ARRAY_SIZE(_gpios));
|
|
}
|
|
}
|
|
|
|
|
|
static void ams_delta_panel_cleanup(struct lcd_panel *panel)
|
|
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)
|
|
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;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
static void ams_delta_panel_disable(struct lcd_panel *panel)
|
|
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)
|
|
static unsigned long ams_delta_panel_get_caps(struct lcd_panel *panel)
|