分类: Android平台
2013-08-26 20:43:03
在dm3730下调试一lcd,初始化序列正确,背光有了,接着问题不断:
1. 屏不亮,一直是黑的
主要问题:在屏的驱动参数中,分辨率,行场同步hsw、hfp、hbp、vsw、vfp、vbp等参数需要不断的调试,最终屏幕终于亮了
2. 颜色不正的问题
在uboot下,刷屏的颜色,红绿蓝等基本是正常的,但是进入到android后,颜色就不对了,还有锯齿等现象。
后来经过多方调试,发觉DISPC_POL_FREQ这个寄存器的DISPC_POL_FREQ_IVS | DISPC_POL_FREQ_IHS | DISPC_POL_FREQ_IPC
等几个寄存器需要设置正确,要确定好是上升沿还是下降沿,否则会一直显示不正常。
在android自带的linux内核中,一般在/arc/arm/omap2/XXXX_board.c文件中,lcd的初始化代码中没有这几个寄存器的初始,一般如下:
需要在omap_dss_device的lcd初始化结构中加入
.pane = {
.config = 0x100007,
}
默认是.config = 0x100000,7代表的是DISPC_POL_FREQ_IVS | DISPC_POL_FREQ_IHS | DISPC_POL_FREQ_IPC三个全部是下降沿有效
,这一点在driver/video/omap2/dss/disc.c文件中设置DISPC_POL_FREQ的函数中找到答案