Linux驱动LCD driver学习总结

这篇文章写于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

 

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要编写Zynq MP(Zynq UltraScale+ MPSoC)平台上的Linux LCD驱动程序,您可以按照以下步骤进行: 1. 确定LCD控制器类型和规格:首先,确定您使用的LCD控制器的型号和规格。这将有助于您了解如何与该控制器进行通信和配置。 2. 创建驱动程序文件:在Linux内核源代码中的`drivers/video`目录下,创建一个新的驱动程序文件,例如`lcd_driver.c`。 3. 编写驱动程序代码:在驱动程序文件中,编写与LCD控制器通信和配置相关的代码。这可能涉及到初始化LCD控制器、设置分辨率、配置时序参数等。您可以使用Linux提供的框架(如DRM)和相关API来简化驱动程序开发。 4. 实现驱动程序接口:根据Linux内核的规范,实现驱动程序需要提供一组接口函数,用于注册、初始化和控制LCD设备。这些接口函数包括`probe()`、`remove()`、`suspend()`、`resume()`等。 5. 注册驱动程序:在驱动程序中实现`probe()`函数,并将其注册到Linux内核的设备模型中。这样,在系统启动时,内核会调用`probe()`函数来加载和初始化您的驱动程序。 6. 修改设备树(Device Tree):根据您的LCD控制器类型和规格,修改设备树以描述LCD相关节点,并将其与正确的驱动程序关联起来。这样,内核在启动时可以正确识别和加载您的驱动程序。 7. 编译内核:重新编译Linux内核,以包含您编写的LCD驱动程序。确保在配置内核时启用了相关的配置选项(如DRM支持)。 8. 测试和调试:完成编译后,将新的内核镜像烧录到Zynq MP平台上,并通过相关的应用程序或测试代码来测试LCD驱动程序的功能。根据实际情况,进行必要的调试和优化。 请注意,以上步骤是一般性的指导,具体的驱动程序开发可能因您使用的LCD控制器和Linux发行版而有所不同。建议您参考相关的文档、示例代码和社区资源,以获取更具体和针对性的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值