Linux学习笔记(24)—— LCD驱动程序
有关LCD接口的相关文档,已有许多优秀博文讲解,本文不再赘述,下面仅浅显地罗列出LCD驱动程序、测试程序等
- LCD设备驱动程序关键点
LCD驱动程序的核心就是:
-
分配fb_info 设置fb_info 注册fb_info 硬件相关的设置 硬件相关的设置又可以分为3部分: 引脚设置 时钟设置 LCD控制器设置
- 设备树文件——在根节点下添加如下节点
fb_lcd {
compatible = "glen,lcd_drv";
reg = <0x021c8000 0x4000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat
&pinctrl_lcdif_ctrl
>;
backlight-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
<&clks IMX6UL_CLK_LCDIF_APB>;
clock-names = "pix", "axi";
display = <&displaya>;
displaya: display {
bits-per-pixel = <24>;
bus-width = <24>;
display-timings {
native-mode = <&timinga>;
timinga: timinga_1024x600 {
clock-frequency = <51200000>;
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>;
};
};
};
};
- 测试程序
- 试验
基于正点原子Linux Alpha开发板平台,执行下面操作,按应用程序执行屏幕被刷成红、绿、蓝色
/drv_module # ls btn_drv_test imx6_io_drv.ko lcd_drv_test button_drv.ko lcd_drv.ko /drv_module # insmod lcd_drv.ko Console: switching to colour frame buffer device 128x37 /drv_module # ./lcd_drv_test
