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