这篇文章写于13年11月,这里仅记录一下曾经涉猎了这方面的知识,可能对以后的一些知识了解有所帮助
关于platform总线模型,可以参考之前的一篇文章Linux驱动Platform总线模型,这对frameBuffer的驱动注册可能有所帮助
一、LCD硬件框架
二、LCD软件框架
三、LCD初始化流程
四、LCD on与off的流程
五、LCD数据流
六、驱动程序framebuffer
所在文件
/android/kernel/drivers/video/fbmem.c
/android/kernel/drivers/video/msm/msm_fb.c
帧缓冲(framebuffer)是linux系统为线索设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,上层应用程序可直接对framebuffer进行读写操作。
调用register_framebuffer(struct fb_info *fb_info)可注册framebuffer,注册framebuffer实际上会把fb_info放到一个全局数组里面,到后面需要用时会到数组里面取相关信息
结构体fb_info中比较重要的有
①struct fb_var_screeninfo var,记录用户可修改的显示控制器参数
fb_var_screeninfo结构中的颜色位域struct fb_bitfield
②struct fb_fix_screeninfo fix,记录用户不能修改的显示控制器参数,如物理地址,长度
七、驱动程序mipi_dsi
所在文件/android/kernel/drivers/video/msm/mipi_dis.c
八、驱动程序mdp
所在文件/android/kernel/drivers/video/msm/mdp.c
九、驱动程序hx8369
所在文件
/android/kernel/drivers/video/msm/mipi_HX8369B_video_wvga_pt.c
/android/kernel/drivers/video/msm/mipi_HX8369B.c
十、驱动程序板级文件
所在文件/android/kernel/arch/arm/mach-msm/board-msm7627a-display.c
最后,辛苦了