OMAP3530 LCD移植(最简单的移植方式)

在LINUX下最简单的LCD显示移植

做这个移植做了挺久的了,但问题是我并不是做驱动开发的啊,我只是想在OMAP3530MINI这个板子上把PSP4.0这个系统包给移植到其上面而已。。。。。。

系统已经做好了,但现在问题就是LCD没有显示。。。。。。。所以,我得做LCD的移植工作。在这里,我不想讲LINUX源代码,也不想说它的驱动框架,我也不是很懂,可以说,我并不懂,看了那么久,算了,下面直接来进行LCD 的移植吧。很简单的,改动的地方不超过10行。


好,下面开始:

说一个事实:首先PSP这个包已经很全了,很多驱动都是有的,当然包括显示子系统啦,本来,我打算自己写一个LCD的驱动的,但是,我在源码里搞了好长时间就是没搞出个头绪来,光一个显示子系统就已经很庞大了,我不会是要搞一个显示子系统吧?大哥,我只是想驱动一下这块LCD而已。。。。。。。说到底,还是自己学不到家,不过,到最后我还是找到点子上了!!!显示子系统已经在PSP里面写好的了,你要改的只是LCD的驱动,而这个驱动就是改一些简单的时序参数就好了!!因为OMAP已经内置LCD控制器了,而PSP包也已经写好了这个控制器的所有东西,唯一一点就是,你不同的LCD,其时序是不一样的,所以, 这一块就由用户自己去写,而PSP也把这一块简单化了,所以,你只要改几个参数就可以了。


***********************PSP_4.0包,LCD移植*********************************
开发操作系统:centos 6.5
板子:OMAP3530MINI   对应于TI的omap3beagle板子 、
开发包: psp4.0
交叉编译器:arm-none-linux-gnueabi-gcc       arm-2009q1
文件系统:NFS
*******************************************************************************
1.what


LCD驱动控制器(LCD controller)
OMAP3530开发板的CPU已经内置了LCD controller,相关的寄存器和参数请查看OMAP3530的手册,那么LCD的驱动开发就是设置这些寄存器参数。由于PSP开发包已经做了很多底层的工作,包括LCD驱动器的驱动程序,但是对于不同的LCD液晶屏,原始的驱动程序并不一定适用,但有一点可以肯定的是,一个例程lcd屏的驱动已经做好了,那么可以从这个例程驱动去跟踪LCD驱动的开发过程。在这里只是记录一下简单的参数修改,至于为什么,这里就不说了。


2.how to do


驱动程序当然是在源码的driver/下面的:


打开文件:
kernel/driver/video/omap2/displays/panel-generic.c



为什么是这个文件:这是一个LCD屏驱动程序,在这里,它是默认编进内核的,与它对应的一定还有一个设备文件,具体这里不说。另外在这个目录下你也可以看到很多LCD屏的驱动,大同小异,都是从这个文件变的,也只有这个结构体的参数变了而已。


打开文件后可以看到下面关于LCD时序的结构体信息:


static struct omap_video_timings generic_panel_timings = {

/* 640 x 480 @ 60 Hz  Reduced blanking VESA CVT 0.31M3-R */

      .x_res = 640,

      .y_res = 480,

      .pixel_clock = 23500,

      .hfp = 48,

      .hsw = 32,

      .hbp = 80,

      .vfp = 3,

      .vsw = 4,

      .vbp = 7,


};



把参数改成下面的就可以了(这些参数请参考自己LCD屏的说明书):
static struct omap_video_timings generic_panel_timings = {

/* 480 x 272 @ 60 Hz  Reduced blanking VESA CVT 0.31M3-R */

      .x_res = 480,

      .y_res = 272,

      .pixel_clock = 9000,

      .hfp = 2,

      .hsw = 41,

      .hbp = 2,

      .vfp = 2,

      .vsw = 10,

      .vbp = 2,


};



通常来说,你来一个屏我只要把这里的参数改了就可以了。但是这里有一点还没弄清楚。因为CPU内置的LCD控制器的行场中断驱动是高电平的,而我的LCD要求的却是低电平驱动的。所以,笔者认为,这个例程中,已经默认是这样的配置了。为了更好的移植,很有必要去摸清楚LCD的一些寄存器配置到底在哪里。这已经是后话,不管了,来了再说吧。。。。。。




    
更多关于嵌入式的实践内容,请尽情点击:
http://blog.csdn.net/tianyi1991

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值