summaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:14:24 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-27 15:29:45 +0100
commit29d6678fd546377459ef75cf54abeef5b969b5cf (patch)
tree8edd65790e37a00d01c3f203f773fe4b5012db18 /meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch
parentda49de6885ee1bc424e70bc02f21f6ab920efb55 (diff)
downloadpoky-29d6678fd546377459ef75cf54abeef5b969b5cf.tar.gz
Major layout change to the packages directory
Having one monolithic packages directory makes it hard to find things and is generally overwhelming. This commit splits it into several logical sections roughly based on function, recipes.txt gives more information about the classifications used. The opportunity is also used to switch from "packages" to "recipes" as used in OpenEmbedded as the term "packages" can be confusing to people and has many different meanings. Not all recipes have been classified yet, this is just a first pass at separating things out. Some packages are moved to meta-extras as they're no longer actively used or maintained. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch')
-rw-r--r--meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch396
1 files changed, 396 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch
new file mode 100644
index 0000000000..d12586ca2f
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-omap-2.6.29/dss2/0005-DSS2-Add-panel-drivers.patch
@@ -0,0 +1,396 @@
1From 4cc0368574f587f448231ccd121266bed4bf9729 Mon Sep 17 00:00:00 2001
2From: Tomi Valkeinen <tomi.valkeinen@nokia.com>
3Date: Thu, 2 Apr 2009 10:29:56 +0300
4Subject: [PATCH] DSS2: Add panel drivers
5
6- Generic panel
7- Samsung LTE430WQ-F0C LCD Panel
8- Sharp LS037V7DW01 LCD Panel
9
10Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
11---
12 drivers/video/omap2/displays/Kconfig | 21 ++++
13 drivers/video/omap2/displays/Makefile | 3 +
14 drivers/video/omap2/displays/panel-generic.c | 96 +++++++++++++++++
15 .../omap2/displays/panel-samsung-lte430wq-f0c.c | 108 +++++++++++++++++++
16 .../video/omap2/displays/panel-sharp-ls037v7dw01.c | 112 ++++++++++++++++++++
17 5 files changed, 340 insertions(+), 0 deletions(-)
18 create mode 100644 drivers/video/omap2/displays/Kconfig
19 create mode 100644 drivers/video/omap2/displays/Makefile
20 create mode 100644 drivers/video/omap2/displays/panel-generic.c
21 create mode 100644 drivers/video/omap2/displays/panel-samsung-lte430wq-f0c.c
22 create mode 100644 drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
23
24diff --git a/drivers/video/omap2/displays/Kconfig b/drivers/video/omap2/displays/Kconfig
25new file mode 100644
26index 0000000..0419ec8
27--- /dev/null
28+++ b/drivers/video/omap2/displays/Kconfig
29@@ -0,0 +1,21 @@
30+menu "OMAP2/3 Display Device Drivers"
31+ depends on OMAP2_DSS
32+
33+config PANEL_GENERIC
34+ tristate "Generic Panel"
35+ help
36+ Generic panel driver.
37+ Used for DVI output for Beagle and OMAP3 SDP.
38+
39+config PANEL_SAMSUNG_LTE430WQ_F0C
40+ tristate "Samsung LTE430WQ-F0C LCD Panel"
41+ depends on OMAP2_DSS
42+ help
43+ LCD Panel used on Overo Palo43
44+
45+config PANEL_SHARP_LS037V7DW01
46+ tristate "Sharp LS037V7DW01 LCD Panel"
47+ depends on OMAP2_DSS
48+ help
49+ LCD Panel used in TI's SDP3430 and EVM boards
50+endmenu
51diff --git a/drivers/video/omap2/displays/Makefile b/drivers/video/omap2/displays/Makefile
52new file mode 100644
53index 0000000..a26bbd2
54--- /dev/null
55+++ b/drivers/video/omap2/displays/Makefile
56@@ -0,0 +1,3 @@
57+obj-$(CONFIG_PANEL_GENERIC) += panel-generic.o
58+obj-$(CONFIG_PANEL_SAMSUNG_LTE430WQ_F0C) += panel-samsung-lte430wq-f0c.o
59+obj-$(CONFIG_PANEL_SHARP_LS037V7DW01) += panel-sharp-ls037v7dw01.o
60diff --git a/drivers/video/omap2/displays/panel-generic.c b/drivers/video/omap2/displays/panel-generic.c
61new file mode 100644
62index 0000000..8382acb
63--- /dev/null
64+++ b/drivers/video/omap2/displays/panel-generic.c
65@@ -0,0 +1,96 @@
66+/*
67+ * Generic panel support
68+ *
69+ * Copyright (C) 2008 Nokia Corporation
70+ * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
71+ *
72+ * This program is free software; you can redistribute it and/or modify it
73+ * under the terms of the GNU General Public License version 2 as published by
74+ * the Free Software Foundation.
75+ *
76+ * This program is distributed in the hope that it will be useful, but WITHOUT
77+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
78+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
79+ * more details.
80+ *
81+ * You should have received a copy of the GNU General Public License along with
82+ * this program. If not, see <http://www.gnu.org/licenses/>.
83+ */
84+
85+#include <linux/module.h>
86+#include <linux/delay.h>
87+
88+#include <mach/display.h>
89+
90+static int generic_panel_init(struct omap_display *display)
91+{
92+ return 0;
93+}
94+
95+static int generic_panel_enable(struct omap_display *display)
96+{
97+ int r = 0;
98+
99+ if (display->hw_config.panel_enable)
100+ r = display->hw_config.panel_enable(display);
101+
102+ return r;
103+}
104+
105+static void generic_panel_disable(struct omap_display *display)
106+{
107+ if (display->hw_config.panel_disable)
108+ display->hw_config.panel_disable(display);
109+}
110+
111+static int generic_panel_suspend(struct omap_display *display)
112+{
113+ generic_panel_disable(display);
114+ return 0;
115+}
116+
117+static int generic_panel_resume(struct omap_display *display)
118+{
119+ return generic_panel_enable(display);
120+}
121+
122+static struct omap_panel generic_panel = {
123+ .owner = THIS_MODULE,
124+ .name = "panel-generic",
125+ .init = generic_panel_init,
126+ .enable = generic_panel_enable,
127+ .disable = generic_panel_disable,
128+ .suspend = generic_panel_suspend,
129+ .resume = generic_panel_resume,
130+
131+ .timings = {
132+ /* 640 x 480 @ 60 Hz Reduced blanking VESA CVT 0.31M3-R */
133+ .x_res = 640,
134+ .y_res = 480,
135+ .pixel_clock = 23500,
136+ .hfp = 48,
137+ .hsw = 32,
138+ .hbp = 80,
139+ .vfp = 3,
140+ .vsw = 4,
141+ .vbp = 7,
142+ },
143+
144+ .config = OMAP_DSS_LCD_TFT,
145+};
146+
147+
148+static int __init generic_panel_drv_init(void)
149+{
150+ omap_dss_register_panel(&generic_panel);
151+ return 0;
152+}
153+
154+static void __exit generic_panel_drv_exit(void)
155+{
156+ omap_dss_unregister_panel(&generic_panel);
157+}
158+
159+module_init(generic_panel_drv_init);
160+module_exit(generic_panel_drv_exit);
161+MODULE_LICENSE("GPL");
162diff --git a/drivers/video/omap2/displays/panel-samsung-lte430wq-f0c.c b/drivers/video/omap2/displays/panel-samsung-lte430wq-f0c.c
163new file mode 100644
164index 0000000..e4bb781
165--- /dev/null
166+++ b/drivers/video/omap2/displays/panel-samsung-lte430wq-f0c.c
167@@ -0,0 +1,108 @@
168+/*
169+ * LCD panel driver for Samsung LTE430WQ-F0C
170+ *
171+ * Author: Steve Sakoman <steve@sakoman.com>
172+ *
173+ * This program is free software; you can redistribute it and/or modify it
174+ * under the terms of the GNU General Public License version 2 as published by
175+ * the Free Software Foundation.
176+ *
177+ * This program is distributed in the hope that it will be useful, but WITHOUT
178+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
179+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
180+ * more details.
181+ *
182+ * You should have received a copy of the GNU General Public License along with
183+ * this program. If not, see <http://www.gnu.org/licenses/>.
184+ */
185+
186+#include <linux/module.h>
187+#include <linux/delay.h>
188+
189+#include <mach/display.h>
190+
191+static int samsung_lte_panel_init(struct omap_display *display)
192+{
193+ return 0;
194+}
195+
196+static void samsung_lte_panel_cleanup(struct omap_display *display)
197+{
198+}
199+
200+static int samsung_lte_panel_enable(struct omap_display *display)
201+{
202+ int r = 0;
203+
204+ /* wait couple of vsyncs until enabling the LCD */
205+ msleep(50);
206+
207+ if (display->hw_config.panel_enable)
208+ r = display->hw_config.panel_enable(display);
209+
210+ return r;
211+}
212+
213+static void samsung_lte_panel_disable(struct omap_display *display)
214+{
215+ if (display->hw_config.panel_disable)
216+ display->hw_config.panel_disable(display);
217+
218+ /* wait at least 5 vsyncs after disabling the LCD */
219+ msleep(100);
220+}
221+
222+static int samsung_lte_panel_suspend(struct omap_display *display)
223+{
224+ samsung_lte_panel_disable(display);
225+ return 0;
226+}
227+
228+static int samsung_lte_panel_resume(struct omap_display *display)
229+{
230+ return samsung_lte_panel_enable(display);
231+}
232+
233+static struct omap_panel samsung_lte_panel = {
234+ .owner = THIS_MODULE,
235+ .name = "samsung-lte430wq-f0c",
236+ .init = samsung_lte_panel_init,
237+ .cleanup = samsung_lte_panel_cleanup,
238+ .enable = samsung_lte_panel_enable,
239+ .disable = samsung_lte_panel_disable,
240+ .suspend = samsung_lte_panel_suspend,
241+ .resume = samsung_lte_panel_resume,
242+
243+ .timings = {
244+ .x_res = 480,
245+ .y_res = 272,
246+
247+ .pixel_clock = 9200,
248+
249+ .hsw = 41,
250+ .hfp = 8,
251+ .hbp = 45-41,
252+
253+ .vsw = 10,
254+ .vfp = 4,
255+ .vbp = 12-10,
256+ },
257+ .recommended_bpp = 16,
258+ .config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IHS | OMAP_DSS_LCD_IVS,
259+};
260+
261+
262+static int __init samsung_lte_panel_drv_init(void)
263+{
264+ omap_dss_register_panel(&samsung_lte_panel);
265+ return 0;
266+}
267+
268+static void __exit samsung_lte_panel_drv_exit(void)
269+{
270+ omap_dss_unregister_panel(&samsung_lte_panel);
271+}
272+
273+module_init(samsung_lte_panel_drv_init);
274+module_exit(samsung_lte_panel_drv_exit);
275+MODULE_LICENSE("GPL");
276diff --git a/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c b/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
277new file mode 100644
278index 0000000..1f99150
279--- /dev/null
280+++ b/drivers/video/omap2/displays/panel-sharp-ls037v7dw01.c
281@@ -0,0 +1,112 @@
282+/*
283+ * LCD panel driver for Sharp LS037V7DW01
284+ *
285+ * Copyright (C) 2008 Nokia Corporation
286+ * Author: Tomi Valkeinen <tomi.valkeinen@nokia.com>
287+ *
288+ * This program is free software; you can redistribute it and/or modify it
289+ * under the terms of the GNU General Public License version 2 as published by
290+ * the Free Software Foundation.
291+ *
292+ * This program is distributed in the hope that it will be useful, but WITHOUT
293+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
294+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
295+ * more details.
296+ *
297+ * You should have received a copy of the GNU General Public License along with
298+ * this program. If not, see <http://www.gnu.org/licenses/>.
299+ */
300+
301+#include <linux/module.h>
302+#include <linux/delay.h>
303+
304+#include <mach/display.h>
305+
306+static int sharp_ls_panel_init(struct omap_display *display)
307+{
308+ return 0;
309+}
310+
311+static void sharp_ls_panel_cleanup(struct omap_display *display)
312+{
313+}
314+
315+static int sharp_ls_panel_enable(struct omap_display *display)
316+{
317+ int r = 0;
318+
319+ /* wait couple of vsyncs until enabling the LCD */
320+ msleep(50);
321+
322+ if (display->hw_config.panel_enable)
323+ r = display->hw_config.panel_enable(display);
324+
325+ return r;
326+}
327+
328+static void sharp_ls_panel_disable(struct omap_display *display)
329+{
330+ if (display->hw_config.panel_disable)
331+ display->hw_config.panel_disable(display);
332+
333+ /* wait at least 5 vsyncs after disabling the LCD */
334+
335+ msleep(100);
336+}
337+
338+static int sharp_ls_panel_suspend(struct omap_display *display)
339+{
340+ sharp_ls_panel_disable(display);
341+ return 0;
342+}
343+
344+static int sharp_ls_panel_resume(struct omap_display *display)
345+{
346+ return sharp_ls_panel_enable(display);
347+}
348+
349+static struct omap_panel sharp_ls_panel = {
350+ .owner = THIS_MODULE,
351+ .name = "sharp-ls037v7dw01",
352+ .init = sharp_ls_panel_init,
353+ .cleanup = sharp_ls_panel_cleanup,
354+ .enable = sharp_ls_panel_enable,
355+ .disable = sharp_ls_panel_disable,
356+ .suspend = sharp_ls_panel_suspend,
357+ .resume = sharp_ls_panel_resume,
358+
359+ .timings = {
360+ .x_res = 480,
361+ .y_res = 640,
362+
363+ .pixel_clock = 19200,
364+
365+ .hsw = 2,
366+ .hfp = 1,
367+ .hbp = 28,
368+
369+ .vsw = 1,
370+ .vfp = 1,
371+ .vbp = 1,
372+ },
373+
374+ .acb = 0x28,
375+
376+ .config = OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS,
377+};
378+
379+
380+static int __init sharp_ls_panel_drv_init(void)
381+{
382+ omap_dss_register_panel(&sharp_ls_panel);
383+ return 0;
384+}
385+
386+static void __exit sharp_ls_panel_drv_exit(void)
387+{
388+ omap_dss_unregister_panel(&sharp_ls_panel);
389+}
390+
391+module_init(sharp_ls_panel_drv_init);
392+module_exit(sharp_ls_panel_drv_exit);
393+MODULE_LICENSE("GPL");
394--
3951.5.6.5
396