- 积分
- 26
贡献174
飞刀15 FD
注册时间2018-8-3
在线时间3 小时
|
楼主 |
发表于 2018-8-5 15:48:39
|
显示全部楼层
刚刚已经找到原因!
OK4418 LVDS驱动支持的是8bit VESA制式 (16M色):
0+/-:R0,R1,R2,R3,R4,R5,G0
1+/-:G1,G2,G3,G4,G5,B0,B1
2+/-:B2,B3,B4,B5,HS,VS,DE
3+/-:R6,R7,G6,G7,B6,B7,0
而我使用的LCD是6bit VESA (262K色)
0+/-:R0,R1,R2,R3,R4,R5,G0
1+/-:G1,G2,G3,G4,G5,B0,B1
2+/-:B2,B3,B4,B5,HS,VS,DE
所以最后的高位R6,R7,G6,G7,B6,B7,我的LCD并没有接收到,令颜色出错。
现在我的做法是:
修改arch/arm/mach-s5p4418/soc/display_lvds.c,将VESA设定改为USER自定义,
设定输出时把Bit0 - Bit 1去掉,使LVDS输出Bit 2 - Bit 7
成功把16M色转为262K色,输出如下:
0+/-:R2,R3,R4,R5,R6,R7,G2
1+/-:G3,G4,G5,G6,G7,B2,B3
2+/-:B4,B5,B6,B7,HS,VS,DE
不过由于我无法修改UBoot,所以在UBoot阶段颜色还是错的,等到载入Kernel后,颜色才会变回正常。
希望Forlinx公司能帮忙解决UBoot无法设定LVDS色彩的问题。
我把修改了的display_lvds.c上传了。
|
|