Freescale imx6的android lvds屏幕驱动调试
来源:互联网 发布:淘宝售后多长时间关闭 编辑:程序博客网 时间:2024/05/16 06:27
一、概述
1、飞思卡尔 imx6的显示屏驱动架构:
2、目标:
因imx6开发板本身已提供LVDS接口,目标屏幕是LG的LA070WV6,其为RGB接口,imx6和LG屏之间用TW8836芯片来转接,LG屏的主要参数为:
分辨率:800*480
色彩:32位
时钟频率:33.26MHz
二移植过程
1、首先把屏幕的接口接到开发板的lvds接口上。开发板提供的lvds接口如下:
如上图所示,lvds共有20个pin,其中有4组数据线,1组时钟线,其他还有背光控制、电源、地等接口。
TW8836芯片和LG屏的接口定义我这里也不做介绍。
2、修改Android的内核源码。
1)找到drivers/video/mxc/ldb.c的fb_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; //时钟频率,单位ps,14430
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.c的fb_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
sync:0
vmode:FB_VMODE_NONINTERLACED
flag:FB_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表示选用fb0的ldb驱动
if=RGB24,bpp=32表示32位色彩
- Freescale imx6的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 基于飞思卡尔imx6 sabrelite开发板的android lvds屏幕驱动调试
- 新路程------英飞凌imx6的lvds驱动
- android LVDS屏幕驱动移植
- imx6 LVDS ANDROID setting
- i.MX6Q的qnx调试笔记------调试imx6的LVDS显示配置-imx6的LVDS显示屏调试
- freescale imx6 linux gpio中断驱动
- Freescale imx6 linux platform 驱动模型分析
- freescale imx6 linux gpio中断驱动
- 飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植
- 飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植
- 飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植
- JUnit4使用教程-快速入门
- Cannot create __weak reference in file using manual reference counting
- 常用操作收集
- 域名和地址转换
- phpstorm+xdebug
- Freescale imx6的android lvds屏幕驱动调试
- 笔试题47. LeetCode OJ (34)
- STM32_TIM定时-中断
- Scala隐式转化和并发编程
- 【算法】删除链表中重复的结点
- Objective-C编程之道:iOS设计模式解析(一)工厂模式
- 互动百科资讯抓取接口实现类
- Android Studio教程从入门到精通
- Android H5判断是否安装app和唤起APP