0001
0002
0003
0004
0005
0006
0007
0008
0009 #include <linux/module.h>
0010 #include <linux/platform_device.h>
0011 #include <linux/io.h>
0012
0013 #include <linux/soc/ti/omap1-soc.h>
0014
0015 #include "omapfb.h"
0016
0017 static void __iomem *omap1510_fpga_lcd_panel_control;
0018
0019 static int innovator1510_panel_enable(struct lcd_panel *panel)
0020 {
0021 __raw_writeb(0x7, omap1510_fpga_lcd_panel_control);
0022 return 0;
0023 }
0024
0025 static void innovator1510_panel_disable(struct lcd_panel *panel)
0026 {
0027 __raw_writeb(0x0, omap1510_fpga_lcd_panel_control);
0028 }
0029
0030 static struct lcd_panel innovator1510_panel = {
0031 .name = "inn1510",
0032 .config = OMAP_LCDC_PANEL_TFT,
0033
0034 .bpp = 16,
0035 .data_lines = 16,
0036 .x_res = 240,
0037 .y_res = 320,
0038 .pixel_clock = 12500,
0039 .hsw = 40,
0040 .hfp = 40,
0041 .hbp = 72,
0042 .vsw = 1,
0043 .vfp = 1,
0044 .vbp = 0,
0045 .pcd = 12,
0046
0047 .enable = innovator1510_panel_enable,
0048 .disable = innovator1510_panel_disable,
0049 };
0050
0051 static int innovator1510_panel_probe(struct platform_device *pdev)
0052 {
0053 omap1510_fpga_lcd_panel_control = (void __iomem *)pdev->dev.platform_data;
0054 omapfb_register_panel(&innovator1510_panel);
0055 return 0;
0056 }
0057
0058 static struct platform_driver innovator1510_panel_driver = {
0059 .probe = innovator1510_panel_probe,
0060 .driver = {
0061 .name = "lcd_inn1510",
0062 },
0063 };
0064
0065 module_platform_driver(innovator1510_panel_driver);
0066
0067 MODULE_AUTHOR("Imre Deak");
0068 MODULE_DESCRIPTION("LCD panel support for the TI OMAP1510 Innovator board");
0069 MODULE_LICENSE("GPL");