TFTLCD在S5PV210平台调试记录
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TFTLCD在S5PV210平台调试记录
TFT LCD在S5PV210平台调试记录
分类:嵌入式Linux2013-06-25 16:52 414人阅读评论(0) 收藏举报嵌入式linuxlinux内核
首先弄清楚linux内核中LCD驱动相关文件包含内容,在驱动任务承担啥角色,然后对照《S5PV210_UM_REV1.1.pdf》和自己的LCD user manual修改参数。
我就是以前没有动过这部分调试,狠狠的看了三星samsung的芯片手册和液晶屏的Driver IC。A8核比2440和6410的LCD控制器要复杂、强大。
下面开始==>>
linux2.6.32内核中,关于lcd的驱动主要的文件为:
/drivers/video/sumsung/s3cfb.c 、s3cfb_fimd6x.c 等
一、LCD初始化入口
@s3cfb.c lines1306
1static int s3cfb_probe(struct platform_device *pdev)
2{
3struct s3c_platform_fb *pdata;
4struct resource *res;
5int ret = 0;
6printk("# s3cfb_probe() for V-PDA LCD:\n");
7#if 0
8/* ldo6 regulator on */
9 printk("\t %s \n", __func__);
10 lcd_regulator = regulator_get(NULL, "vddlcd");
11if (IS_ERR(lcd_regulator)) {
12 printk(KERN_ERR "failed to get resource %s\n", "vddlcd");
13return PTR_ERR(lcd_regulator);
14 }
15 regulator_enable(lcd_regulator);
16#endif
17/* initialzing global structure */
18 fbdev = kzalloc(sizeof(struct s3cfb_global), GFP_KERNEL); 19if (!fbdev) {
20 dev_err(fbdev->dev, "failed to allocate for " 21"global fb structure\n");
22goto err_global;
23 }
24
25 fbdev->dev = &pdev->dev;
26 s3cfb_set_lcd_info(fbdev);//added in ili9341
27
28/* gpio */
29 pdata = to_fb_plat(&pdev->dev);
30if (pdata->cfg_gpio)
31 pdata->cfg_gpio(pdev);
32
33if (pdata->clk_on)
34 pdata->clk_on(pdev, &fbdev->clock);
35
36/* io memory */
37 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 38if (!res) {
39 dev_err(fbdev->dev, "failed to get io memory region\n");
40 ret = -EINVAL;
41goto err_io;
42 }
43
44/* request mem region */
45 res = request_mem_region(res->start,
46 res->end - res->start + 1, pdev->name);
47if (!res) {
48 dev_err(fbdev->dev, "failed to request io memory region\n");
49 ret = -EINVAL;
50goto err_io;
51 }
52
53/* ioremap for register block */
54 fbdev->regs = ioremap(res->start, res->end - res->start + 1);
55if (!fbdev->regs) {
56 dev_err(fbdev->dev, "failed to remap io region\n");
57 ret = -EINVAL;
58goto err_io;
59 }
60
61/* irq */
62 fbdev->irq = platform_get_irq(pdev, 0);
63if (request_irq(fbdev->irq, s3cfb_irq_frame, IRQF_SHARED,
64 pdev->name, fbdev)) {
65 dev_err(fbdev->dev, "request_irq failed\n");
66 ret = -EINVAL;
67goto err_irq;
68 }
69
70/*set gamma LUT*///SSCR xuhui 110130
71 s3cfb_set_gamma(fbdev);
72