Linux驱动LCD driver学习总结

这篇文章写于13年11月,这里仅记录一下曾经涉猎了这方面的知识,可能对以后的一些知识了解有所帮助

关于platform总线模型,可以参考之前的一篇文章Linux驱动Platform总线模型,这对frameBuffer的驱动注册可能有所帮助


一、LCD硬件框架

Linux驱动LCD driver学习总结_第1张图片


二、LCD软件框架

Linux驱动LCD driver学习总结_第2张图片


三、LCD初始化流程

Linux驱动LCD driver学习总结_第3张图片


四、LCD on与off的流程

Linux驱动LCD driver学习总结_第4张图片


五、LCD数据流

Linux驱动LCD driver学习总结_第5张图片


六、驱动程序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放到一个全局数组里面,到后面需要用时会到数组里面取相关信息

Linux驱动LCD driver学习总结_第6张图片


结构体fb_info中比较重要的有

①struct fb_var_screeninfo var,记录用户可修改的显示控制器参数

Linux驱动LCD driver学习总结_第7张图片

fb_var_screeninfo结构中的颜色位域struct fb_bitfield

Linux驱动LCD driver学习总结_第8张图片

②struct fb_fix_screeninfo fix,记录用户不能修改的显示控制器参数,如物理地址,长度

Linux驱动LCD driver学习总结_第9张图片


七、驱动程序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



最后,辛苦了

Linux驱动LCD driver学习总结_第10张图片

你可能感兴趣的:(Linux)