Linux学习笔记(24)—— LCD驱动程序

有关LCD接口的相关文档,已有许多优秀博文讲解,本文不再赘述,下面仅浅显地罗列出LCD驱动程序、测试程序等
  1. LCD设备驱动程序关键点

LCD驱动程序的核心就是:

    分配fb_info 设置fb_info 注册fb_info 硬件相关的设置 硬件相关的设置又可以分为3部分: 引脚设置 时钟设置 LCD控制器设置
  1. 设备树文件——在根节点下添加如下节点
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>;
				};
			};
		};
	};
  1. 测试程序
  1. 试验

基于正点原子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
经验分享 程序员 微信小程序 职场和发展