Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
  1/*
  2 * LCD panel support for the Palm Tungsten E
  3 *
  4 * Original version : Romain Goyet <r.goyet@gmail.com>
  5 * Current version : Laurent Gonzalez <palmte.linux@free.fr>
  6 *
  7 * This program is free software; you can redistribute it and/or modify it
  8 * under the terms of the GNU General Public License as published by the
  9 * Free Software Foundation; either version 2 of the License, or (at your
 10 * option) any later version.
 11 *
 12 * This program is distributed in the hope that it will be useful, but
 13 * WITHOUT ANY WARRANTY; without even the implied warranty of
 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15 * General Public License for more details.
 16 *
 17 * You should have received a copy of the GNU General Public License along
 18 * with this program; if not, write to the Free Software Foundation, Inc.,
 19 * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 20 */
 21
 22#include <linux/module.h>
 23#include <linux/platform_device.h>
 24#include <linux/io.h>
 25
 26#include "omapfb.h"
 27
 28static int palmte_panel_init(struct lcd_panel *panel,
 29				struct omapfb_device *fbdev)
 30{
 31	return 0;
 32}
 33
 34static void palmte_panel_cleanup(struct lcd_panel *panel)
 35{
 36}
 37
 38static int palmte_panel_enable(struct lcd_panel *panel)
 39{
 40	return 0;
 41}
 42
 43static void palmte_panel_disable(struct lcd_panel *panel)
 44{
 45}
 46
 47static unsigned long palmte_panel_get_caps(struct lcd_panel *panel)
 48{
 49	return 0;
 50}
 51
 52struct lcd_panel palmte_panel = {
 53	.name		= "palmte",
 54	.config		= OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC |
 55			  OMAP_LCDC_INV_HSYNC | OMAP_LCDC_HSVS_RISING_EDGE |
 56			  OMAP_LCDC_HSVS_OPPOSITE,
 57
 58	.data_lines	= 16,
 59	.bpp		= 8,
 60	.pixel_clock	= 12000,
 61	.x_res		= 320,
 62	.y_res		= 320,
 63	.hsw		= 4,
 64	.hfp		= 8,
 65	.hbp		= 28,
 66	.vsw		= 1,
 67	.vfp		= 8,
 68	.vbp		= 7,
 69	.pcd		= 0,
 70
 71	.init		= palmte_panel_init,
 72	.cleanup	= palmte_panel_cleanup,
 73	.enable		= palmte_panel_enable,
 74	.disable	= palmte_panel_disable,
 75	.get_caps	= palmte_panel_get_caps,
 76};
 77
 78static int palmte_panel_probe(struct platform_device *pdev)
 79{
 80	omapfb_register_panel(&palmte_panel);
 81	return 0;
 82}
 83
 84static int palmte_panel_remove(struct platform_device *pdev)
 85{
 86	return 0;
 87}
 88
 89static int palmte_panel_suspend(struct platform_device *pdev, pm_message_t mesg)
 90{
 91	return 0;
 92}
 93
 94static int palmte_panel_resume(struct platform_device *pdev)
 95{
 96	return 0;
 97}
 98
 99static struct platform_driver palmte_panel_driver = {
100	.probe		= palmte_panel_probe,
101	.remove		= palmte_panel_remove,
102	.suspend	= palmte_panel_suspend,
103	.resume		= palmte_panel_resume,
104	.driver		= {
105		.name	= "lcd_palmte",
106		.owner	= THIS_MODULE,
107	},
108};
109
110module_platform_driver(palmte_panel_driver);