编程_配置LCD控制器之寄存器操作_基于IMX6ULL
2023-09-14 09:16:19 时间
编程_配置LCD控制器之寄存器操作_基于IMX6ULL
文章目录
参考资料
- 内核自带的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
- 驱动源码:
一、 硬件相关的操作
LCD驱动程序的核心就是:
- 分配fb_info
- 设置fb_info
- 注册fb_info
- 硬件相关的设置
硬件相关的设置又可以分为3部分:
- 引脚设置
- 时钟设置
- LCD控制器设置
二、 在设备树里指定LCD参数
framebuffer-mylcd {
compatible = "100ask,lcd_drv";
pinctrl-names = "default";
pinctrl-0 = <&mylcd_pinctrl>;
backlight-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
<&clks IMX6UL_CLK_LCDIF_APB>;
clock-names = "pix", "axi";
display = <&display0>;
display0: display {
bits-per-pixel = <24>;
bus-width = <24>;
display-timings {
native-mode = <&timing0>;
timing0: timing0_1024x768 {
clock-frequency = <50000000>;
hactive = <1024>;
vactive = <600>;
hfront-porch = <160>;
hback-porch = <140>;
hsync-len = <20>;
vback-porch = <20>;
vfront-porch = <12>;
vsync-len = <3>;
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
};
};
};
三、 编程
3.1 从设备树获得参数
时序参数、引脚极性等信息,都被保存在一个display_timing结构体里:
参考内核文件:
-
drivers\video\of_display_timing.c
-
drivers\video\fbdev\mxsfb.c
3.2 使用参数配置LCD控制器
根据芯片手册,一个一个设置寄存器:
- Framebuffer地址设置
- Framebuffer中数据格式设置
- LCD时序参数设置
3.2 使用参数配置LCD控制器
根据芯片手册,一个一个设置寄存器:
- Framebuffer地址设置
- Framebuffer中数据格式设置
- LCD时序参数设置
- LCD引脚极性设置
致谢
以上笔记源自
韦东山
老师的视频课程,感谢韦老师,韦老师是嵌入式培训界一股清流,为嵌入式linux开发点起的星星之火,也愿韦老师桃李满园。聚是一团火,散是满天星!
在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!
仅此向嵌入行业里的每一个认真做技术的从业者致敬!
相关文章
- pycharm怎么配置python环境anaconda_ug编程电脑配置要求
- 3.Android-传感器开发-处理各种传感器配置[通俗易懂]
- Python 进阶指南(编程轻松进阶):二、环境配置和命令行
- 微信支付配置教程
- windows 2003中IIS6的安全配置
- linux配置防火墙,开启端口详解程序员
- MySQL Variables query_cache_wlock_invalidate 数据库 参数变量解释及正确配置使用
- MySQL 环境变量配置指南(mysql环境变量配置)
- 文件MySQL cnf文件:深入理解配置参数(mysqlcnf)
- 版本配置Linux系统的默认Java版本(linux默认java)
- 配置Oracle五分钟完成配置(oracle 五分钟之内)
- win2003下安装apache2.2.3+php5.2+mysql+Zend的配置方法
- 很详细的Log4j配置步骤
- IIS配置PHP站点的说明
- JavaWeb编程Servlet的基本配置