upload tizen1.0 source
[kernel/linux-2.6.36.git] / drivers / video / omap / lcd_apollon.c
1 /*
2  * LCD panel support for the Samsung OMAP2 Apollon board
3  *
4  * Copyright (C) 2005,2006 Samsung Electronics
5  * Author: Kyungmin Park <kyungmin.park@samsung.com>
6  *
7  * Derived from drivers/video/omap/lcd-h4.c
8  *
9  * This program is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU General Public License as published by the
11  * Free Software Foundation; either version 2 of the License, or (at your
12  * option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, write to the Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22  */
23
24 #include <linux/module.h>
25 #include <linux/platform_device.h>
26
27 #include <mach/gpio.h>
28
29 #include "omapfb.h"
30
31 /* #define USE_35INCH_LCD 1 */
32
33 static int apollon_panel_init(struct lcd_panel *panel,
34                                 struct omapfb_device *fbdev)
35 {
36         return 0;
37 }
38
39 static void apollon_panel_cleanup(struct lcd_panel *panel)
40 {
41 }
42
43 static int apollon_panel_enable(struct lcd_panel *panel)
44 {
45         return 0;
46 }
47
48 static void apollon_panel_disable(struct lcd_panel *panel)
49 {
50 }
51
52 static unsigned long apollon_panel_get_caps(struct lcd_panel *panel)
53 {
54         return 0;
55 }
56
57 struct lcd_panel apollon_panel = {
58         .name           = "apollon",
59         .config         = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC |
60                           OMAP_LCDC_INV_HSYNC,
61
62         .bpp            = 16,
63         .data_lines     = 18,
64 #ifdef USE_35INCH_LCD
65         .x_res          = 240,
66         .y_res          = 320,
67         .hsw            = 2,
68         .hfp            = 3,
69         .hbp            = 9,
70         .vsw            = 4,
71         .vfp            = 3,
72         .vbp            = 5,
73 #else
74         .x_res          = 480,
75         .y_res          = 272,
76         .hsw            = 41,
77         .hfp            = 2,
78         .hbp            = 2,
79         .vsw            = 10,
80         .vfp            = 2,
81         .vbp            = 2,
82 #endif
83         .pixel_clock    = 6250,
84
85         .init           = apollon_panel_init,
86         .cleanup        = apollon_panel_cleanup,
87         .enable         = apollon_panel_enable,
88         .disable        = apollon_panel_disable,
89         .get_caps       = apollon_panel_get_caps,
90 };
91
92 static int apollon_panel_probe(struct platform_device *pdev)
93 {
94         omapfb_register_panel(&apollon_panel);
95         return 0;
96 }
97
98 static int apollon_panel_remove(struct platform_device *pdev)
99 {
100         return 0;
101 }
102
103 static int apollon_panel_suspend(struct platform_device *pdev,
104                                   pm_message_t mesg)
105 {
106         return 0;
107 }
108
109 static int apollon_panel_resume(struct platform_device *pdev)
110 {
111         return 0;
112 }
113
114 struct platform_driver apollon_panel_driver = {
115         .probe          = apollon_panel_probe,
116         .remove         = apollon_panel_remove,
117         .suspend        = apollon_panel_suspend,
118         .resume         = apollon_panel_resume,
119         .driver         = {
120                 .name   = "apollon_lcd",
121                 .owner  = THIS_MODULE,
122         },
123 };
124
125 static int __init apollon_panel_drv_init(void)
126 {
127         return platform_driver_register(&apollon_panel_driver);
128 }
129
130 static void __exit apollon_panel_drv_exit(void)
131 {
132         platform_driver_unregister(&apollon_panel_driver);
133 }
134
135 module_init(apollon_panel_drv_init);
136 module_exit(apollon_panel_drv_exit);