From e9f476d658fb5c7de57498d54c0acd6429439350 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 5 Jan 2009 15:06:40 +0200 Subject: [PATCH] DSS: Add generic DVI panel You also need DSI PLL to generate pix clock for 1280x1024. Signed-off-by: Tomi Valkeinen --- drivers/video/omap2/Kconfig | 5 ++ drivers/video/omap2/Makefile | 2 + drivers/video/omap2/panel-generic.c | 97 +++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+), 0 deletions(-) create mode 100644 drivers/video/omap2/panel-generic.c diff --git a/drivers/video/omap2/Kconfig b/drivers/video/omap2/Kconfig index 8be51a3..be00882 100644 --- a/drivers/video/omap2/Kconfig +++ b/drivers/video/omap2/Kconfig @@ -37,6 +37,11 @@ config FB_OMAP2_NUM_FBS menu "OMAP2/3 Display Device Drivers" depends on OMAP2_DSS +config PANEL_GENERIC + tristate "Generic Panel" + help + Generic panel driver. + Used for DVI output for Beagle and OMAP3 SDP. endmenu diff --git a/drivers/video/omap2/Makefile b/drivers/video/omap2/Makefile index 51c2e00..f471a2b 100644 --- a/drivers/video/omap2/Makefile +++ b/drivers/video/omap2/Makefile @@ -1,2 +1,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 diff --git a/drivers/video/omap2/panel-generic.c b/drivers/video/omap2/panel-generic.c new file mode 100644 index 0000000..5c8fecd --- /dev/null +++ b/drivers/video/omap2/panel-generic.c @@ -0,0 +1,97 @@ +/* + * Generic panel support + * + * 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 generic_panel_init(struct omap_display *display) +{ + return 0; +} + +static int generic_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 generic_panel_disable(struct omap_display *display) +{ + if (display->hw_config.panel_disable) + display->hw_config.panel_disable(display); +} + +static int generic_panel_suspend(struct omap_display *display) +{ + generic_panel_disable(display); + return 0; +} + +static int generic_panel_resume(struct omap_display *display) +{ + return generic_panel_enable(display); +} + +static struct omap_panel generic_panel = { + .owner = THIS_MODULE, + .name = "panel-generic", + .init = generic_panel_init, + .enable = generic_panel_enable, + .disable = generic_panel_disable, + .suspend = generic_panel_suspend, + .resume = generic_panel_resume, + + .timings = { + /* 640 x 480 @ 60 Hz Reduced blanking VESA CVT 0.31M3-R */ + .x_res = 640, + .y_res = 480, + .pixel_clock = 23500, + .hfp = 48, + .hsw = 32, + .hbp = 80, + .vfp = 3, + .vsw = 4, + .vbp = 7, + }, + + .bpp = 24, + .config = OMAP_DSS_LCD_TFT, +}; + + +static int __init generic_panel_drv_init(void) +{ + omap_dss_register_panel(&generic_panel); + return 0; +} + +static void __exit generic_panel_drv_exit(void) +{ + omap_dss_unregister_panel(&generic_panel); +} + +module_init(generic_panel_drv_init); +module_exit(generic_panel_drv_exit); +MODULE_LICENSE("GPL"); -- 1.5.6.3