diff options
Diffstat (limited to 'drivers/video/omap/lcd_ams_delta.c')
| -rw-r--r-- | drivers/video/omap/lcd_ams_delta.c | 27 | 
1 files changed, 20 insertions, 7 deletions
diff --git a/drivers/video/omap/lcd_ams_delta.c b/drivers/video/omap/lcd_ams_delta.c index 0fdd6f6873b..d3a31132722 100644 --- a/drivers/video/omap/lcd_ams_delta.c +++ b/drivers/video/omap/lcd_ams_delta.c @@ -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 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 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)  |