Freescale imx6的android lvds屏幕驱动调试

一、概述

     1飞思卡尔 imx6的显示屏驱动架构


    2、目标:

    imx6开发板本身已提供LVDS接口,目标屏幕是LGLA070WV6,其为RGB接口,imx6LG屏之间用TW8836芯片来转接,LG屏的主要参数为:

分辨率:800*480

色彩:32

时钟频率:33.26MHz



移植过程

1、首先把屏幕的接口接到开发板的lvds接口上。开发板提供的lvds接口如下:



如上图所示,lvds共有20pin,其中有4组数据线,1组时钟线,其他还有背光控制、电源、地等接口。

TW8836芯片和LG屏的接口定义我这里也不做介绍。

2、修改Android的内核源码。

1)找到drivers/video/mxc/ldb.cfb_videomode数组变量,它定义了屏幕的相关参数,fb_videomode结构体的定义在include/linux/fb.h中: 

[cpp] view plain copy

1.  struct fb_videomode {  

2.     const char *name;    /* 名字 */  

3.      u32 refresh;         /* 刷新频率 */  

4.     u32 xres;            //行像素  

5.      u32 yres;            //列像素  

6.     u32 pixclock;        //时钟频率,单位ps14430  

7.      u32 left_margin;     // HBPD(horizontal back porch)80  

8.     u32 right_margin;    // HFPD(horizontal front porth)48  

9.      u32 upper_margin;    // VBPD(vertical back porch),15  

10.    u32 lower_margin;    // VFBD(vertical front porch),2  

11.     u32 hsync_len;       // HSPW(horizontal sync pulse width)32  

12.    u32 vsync_len;       // VSPW(vertical sync pulse width)47  

13.     u32 sync;  

14.    u32 vmode;  

15.     u32 flag;  

16.};  

2)修改drivers/video/mxc/ldb.cfb_videomode数组变量,使它的参数适应LA070WV6的屏幕参数。

[cpp] view plain copy

17. static struct fb_videomode ldb_modedb[] = {

18. {

19.     .name       ="LDB-XGA",

20.     .refresh    =60,

21.     .xres       =800,

22.     .yres       =480,

23.      .pixclock   =30066,

24.      .left_margin    =28,

25.      .right_margin   =100,

26.      .upper_margin   =13,

27.      .lower_margin   =30,

28.      .hsync_len  =128,

29.      .vsync_len  =2,

30.     .sync       =0,

31.     .vmode      =FB_VMODE_NONINTERLACED,

32.     .flag       =FB_MODE_IS_DETAILED,

33. }

34. }; 

名称:LDB-XGA

刷新频率:60

分辨率:800*480

时钟:10^12/33260000 = 30066

sync0

vmodeFB_VMODE_NONINTERLACED

flagFB_MODE_IS_DETAILED

3)设置cmdline,重新编译kernel,生成boot.img,烧录到开发板中:

[html] view plain copy

1.  cmdline console=ttymxc3,115200 init=/init video=mxcfb0:dev=ldb,LDB-XGA, if=RGB24,bpp=32 video=mxcfb1:dev=ldb,LDB-XGA, if=RGB24,bpp=32 video=mxcfb2:off fbmem=10M  vmalloc=400Mandroidboot.console=ttymxc3

其中video = mxcfb0:dev=ldb,LDB-XGA表示选用fb0ldb驱动

if=RGB24,bpp=32表示32位色彩

 

你可能感兴趣的:(Linux)