From b0d997fcd65c4389e3d4a5e375774e51ebe6186a Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Fri, 14 Nov 2008 15:47:19 +0200 Subject: [PATCH] DSS: Sharp LS037V7DW01 LCD Panel driver Signed-off-by: Tomi Valkeinen --- drivers/video/omap2/Kconfig | 7 ++- drivers/video/omap2/Makefile | 1 + drivers/video/omap2/panel-sharp-ls037v7dw01.c | 109 +++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletions(-) create mode 100644 drivers/video/omap2/panel-sharp-ls037v7dw01.c diff --git a/drivers/video/omap2/Kconfig b/drivers/video/omap2/Kconfig index be00882..b54c955 100644 --- a/drivers/video/omap2/Kconfig +++ b/drivers/video/omap2/Kconfig @@ -43,5 +43,10 @@ config PANEL_GENERIC Generic panel driver. Used for DVI output for Beagle and OMAP3 SDP. -endmenu +config PANEL_SHARP_LS037V7DW01 + tristate "Sharp LS037V7DW01 LCD Panel" + depends on OMAP2_DSS + help + LCD Panel used in TI's SDP3430 and EVM boards +endmenu diff --git a/drivers/video/omap2/Makefile b/drivers/video/omap2/Makefile index f471a2b..fe6858e 100644 --- a/drivers/video/omap2/Makefile +++ b/drivers/video/omap2/Makefile @@ -2,3 +2,4 @@ obj-$(CONFIG_FB_OMAP2) += omapfb.o omapfb-y := omapfb-main.o omapfb-sysfs.o omapfb-ioctl.o obj-$(CONFIG_PANEL_GENERIC) += panel-generic.o +obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o diff --git a/drivers/video/omap2/panel-sharp-ls037v7dw01.c b/drivers/video/omap2/panel-sharp-ls037v7dw01.c new file mode 100644 index 0000000..7d67b6d --- /dev/null +++ b/drivers/video/omap2/panel-sharp-ls037v7dw01.c @@ -0,0 +1,109 @@ +/* + * LCD panel driver for Sharp LS037V7DW01 + * + * Copyright (C) 2008 Nokia Corporation + * Author: Tomi Valkeinen + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +#include +#include + +#include + +static int sharp_ls_panel_init(struct omap_display *display) +{ + return 0; +} + +static void sharp_ls_panel_cleanup(struct omap_display *display) +{ +} + +static int sharp_ls_panel_enable(struct omap_display *display) +{ + int r = 0; + + if (display->hw_config.panel_enable) + r = display->hw_config.panel_enable(display); + + return r; +} + +static void sharp_ls_panel_disable(struct omap_display *display) +{ + if (display->hw_config.panel_disable) + display->hw_config.panel_disable(display); +} + +static int sharp_ls_panel_suspend(struct omap_display *display) +{ + sharp_ls_panel_disable(display); + return 0; +} + +static int sharp_ls_panel_resume(struct omap_display *display) +{ + return sharp_ls_panel_enable(display); +} + +static struct omap_panel sharp_ls_panel = { + .owner = THIS_MODULE, + .name = "sharp-ls037v7dw01", + .init = sharp_ls_panel_init, + .cleanup = sharp_ls_panel_cleanup, + .enable = sharp_ls_panel_enable, + .disable = sharp_ls_panel_disable, + .suspend = sharp_ls_panel_suspend, + .resume = sharp_ls_panel_resume, + /*.set_mode = sharp_ls_set_mode, */ + + .timings = { + .x_res = 480, + .y_res = 640, + + .pixel_clock = 19200, + + .hsw = 2, + .hfp = 1, + .hbp = 28, + + .vsw = 1, + .vfp = 1, + .vbp = 1, + }, + + .acb = 0x28, + + .config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS | + OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IPC, + + .bpp = 16, +}; + + +static int __init sharp_ls_panel_drv_init(void) +{ + omap_dss_register_panel(&sharp_ls_panel); + return 0; +} + +static void __exit sharp_ls_panel_drv_exit(void) +{ + omap_dss_unregister_panel(&sharp_ls_panel); +} + +module_init(sharp_ls_panel_drv_init); +module_exit(sharp_ls_panel_drv_exit); +MODULE_LICENSE("GPL"); -- 1.5.6.3