linux驱动管理软件 linux系统驱动
资料下载
无法通过浏览器直接打开编码,必须使用git工具进行下载:
代码语言:javascript运行次数:0运行复制```javascriptgit clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git```
观看百问网的驱动教程视频
分析内核自带的LCD驱动程序,基于IMX6ULL的参考资料,GIT仓库中包含:IMX6ULL\开发板对接资料\datasheet\Core_board\CPU\IMX6ULLRM.pdf中的《第三十四章增强型LCD接口》 (eLCDIF)》IMX6ULL的LCD裸机程序位于IMX6ULL\source\03_LCD\05_参考的裸机源码\03_font_test内核自带的IMX6ULL LCD驱动程序,源码位于:Linux-4.9.88\drivers\video\fbdev\mxsfb.c 设备树位于:arch/arm/boot/dts/imx6ull.dtsi 和arch/arm/boot/dts/100ask_imx6ull-14x14.dts
驱动程序框架
Linux驱动程序由驱动程序框架和硬件编程组成。在基于QEMU编写的LCD驱动程序中,已经清晰分析了LCD驱动程序的框架。核心步骤包括之前分配fb_info设置fb_info注册fb_info硬件相关的设置
1.1入口函数注册platform_driver
1.2 设备树中有对应节点
1.3探针函数分析
编写硬件相关的代码
只需针对IMX6ULL编写硬件相关的代码,涉及三部分:GPIO设置LCD引脚引脚时钟设置确定LCD控制器的时钟根据LCD的DCLK计算相关时钟LCD控制器本身的设置比如设置Framebuffer的地址设置Framebuffer中数据格式、LCD数据格式设置对应
2.1 GPIO设置有两种方法:直接寄存器相关寄存器使用设备树,在设备树中设置pinctrl
本课程集中于LCD,因此使用pinctrl简化程序。设备树位于arch/arm/boot/dts/100ask_imx6ull-14x14.dts中:
2.2时钟设置
IMX6ULL的LCD控制器涉及2个时钟:
代码中直接使用时钟子系统的代码。
2.3 LCD控制器的配置
以设置解析为例。
以上就是Linux系统驱动之分析内核自带的LCD驱动程序_基于IMX6ULL的详细内容,更多请关注乐哥常识网其他相关文章!