Framebuffer 设备
framebuffer在内核中的表现就是fb_info结构体,屏幕驱动重点就是初始化fb_info
里面的各个成员变量。初始化完成之后,通过register_framebuffer。
fb_info就是Framebuffer驱动框架的实现。
卸载驱动的时候,调用
驱动 :
1、LCD控制器 (通用的)
2、具体屏幕参数。
打开imx6ull.dtsi
compatible 匹配属性。
LCD驱动解析
驱动文件为mxsfb.c,为paltform驱动框架,probe函数就会执行。
驱动文件为mxsfb.c,为platform驱动框架,驱动和设备匹配以后,mxsfb_probe函数就会执行。
结构体mxsfb_info,
给mxsfb_info申请内存,申请fb_info,然后将这两个联系起来。
host.base就是内存映射以后的LCDIF外设基地址。
mxsfb_probe函数会调用mxsfb_init_fbinfo来初始化fb_info。
fb_ops
mxsfb_probe函数重点工作:
1、初始化fb_info并且向内核注册
2、初始化LCDIF控制器。
mxsfb_init_fbinfo_dt函数会从设备树中读取相关属性信息:
设备树代码:
下面4个是电平的有效值,标准高电平或者低电平有效!!!
参考文档文件路径:
修改完设备树代码就能驱动屏幕,屏幕可以直接跑起来了,驱动代码原厂已经写好了。