Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a218d19f authored by Janusz Krzysztofik's avatar Janusz Krzysztofik Committed by Tony Lindgren
Browse files

omapfb: lcd_ams_delta: drive control lines over GPIO



Don't use Amstrad Delta custom I/O functions any longer, use GPIO API
instead.

Signed-off-by: default avatarJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 68f06766
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -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,
+0 −2
Original line number Diff line number Diff line
@@ -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
+20 −7
Original line number Diff line number Diff line
@@ -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)