mini2440的W35横屏的LCD的移植

主要参考mini2440的移植文档的几点讲解:内核2.6.32.2,W35是新的mini2440的LCD屏幕,文档里面没有对W35横屏的讲解,而他们提供的lcd的datasheet里面的参数是过时的,用不了的!也就是只得自己去尝试。这里只是简单的说说在那个移植文档上增加一点东西。在文档64页的地方的某个#elseif结束处增加以下代码。

//W35  横屏  LCD 的配置和参数设置
//以下参数要自己根据数据手册来微调
//由于数据手册已经过时
#elif defined(CONFIG_FB_S3C2410_W35)
#define LCD_WIDTH 320
#define LCD_HEIGHT 240
#define LCD_PIXCLOCK 128395//170000,计算的出来的
#define LCD_RIGHT_MARGIN 69
#define LCD_LEFT_MARGIN 17
#define LCD_HSYNC_LEN 0
#define LCD_UPPER_MARGIN 17
#define LCD_LOWER_MARGIN 3
#define LCD_VSYNC_LEN 0

 

你得参考那个文档来哟,我这是给出需要增加的然后就是修改drivers/vedio/Kconfig文件增加内容为

config FB_S3C2410_W35
    boolean "Fucking 3.5 inch 240X320 W35i LCD"
    depends on FB_S3C2410
    help
      3.5 inch 240X320 w35 LCD
然后在:make menuconfig
Device Drivers-->
    Graphics supoort-->
        Support for frame buffer devices-->
        先选中S3C2410 LCDframebuffer support(这个的依赖条件)
        LCD select-->
            3.5 inch 240*320 w35i LCD    


 
  

在他们的移植手册里面出了刚才用#define定义的是我们需要查看datasheet找到的参数外,还有一个重要的东西,我调了一天才知道,为什么用他们的可以,而我的不可以,在结构mini2440_fb_info(文件mach-mini2440.c)中,有一个成员lpcsel,对了就是这个东西,开始我就不知道是干嘛的,就把这个东西给忽略了。后面百度一下查到是这个玩意儿在使用:S3C2410_LPCSEL,再一跟踪才知道就是寄存器TCONSEL(2440里面的寄存器)。这个寄存器里面有几个东西,lpc3600和lcc3600貌似是三星提供的LCD,而我们的LCD不是这个,所以必须要把这个给禁止掉,不然我们的屏幕要么左右不对,要么上下不对!好了,分析道这里,希望后面的人别走弯路!配置Kconfig里面的Fucking是我自己加的,发泄一下!

 
  
 
 

你可能感兴趣的:(Linux设备驱动相关)