3. 修改lcd相关设备树

imx6ull提供了LCD相关的设备树插件,如果想要修改相关信息参照相关内容修改即可。

如果修改了LCD显示屏的引脚,需要在这里修改对应的引脚。

/arch/arm/boot/dts/overlays/ebf/imx-fire-lcd-overlay.dts
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
pinctrl_lcdif_ctrl: lcdifctrlgrp {
   fsl,pins = <
      MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x79
      MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x79
      MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC    0x79
      MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC    0x79
   >;
};
pinctrl_lcdif_dat: lcdifdatgrp {
   fsl,pins = <
      MX6UL_PAD_LCD_DATA00__LCDIF_DATA00  0x79
      MX6UL_PAD_LCD_DATA01__LCDIF_DATA01  0x79
      MX6UL_PAD_LCD_DATA02__LCDIF_DATA02  0x79
      MX6UL_PAD_LCD_DATA03__LCDIF_DATA03  0x79
      MX6UL_PAD_LCD_DATA04__LCDIF_DATA04  0x79
      MX6UL_PAD_LCD_DATA05__LCDIF_DATA05  0x79
      MX6UL_PAD_LCD_DATA06__LCDIF_DATA06  0x79
      MX6UL_PAD_LCD_DATA07__LCDIF_DATA07  0x79
      MX6UL_PAD_LCD_DATA08__LCDIF_DATA08  0x79
      MX6UL_PAD_LCD_DATA09__LCDIF_DATA09  0x79
      MX6UL_PAD_LCD_DATA10__LCDIF_DATA10  0x79
      MX6UL_PAD_LCD_DATA11__LCDIF_DATA11  0x79
      MX6UL_PAD_LCD_DATA12__LCDIF_DATA12  0x79
      MX6UL_PAD_LCD_DATA13__LCDIF_DATA13  0x79
      MX6UL_PAD_LCD_DATA14__LCDIF_DATA14  0x79
      MX6UL_PAD_LCD_DATA15__LCDIF_DATA15  0x79
      MX6UL_PAD_LCD_DATA16__LCDIF_DATA16  0x79
      MX6UL_PAD_LCD_DATA17__LCDIF_DATA17  0x79
      MX6UL_PAD_LCD_DATA18__LCDIF_DATA18  0x79
      MX6UL_PAD_LCD_DATA19__LCDIF_DATA19  0x79
      MX6UL_PAD_LCD_DATA20__LCDIF_DATA20  0x79
      MX6UL_PAD_LCD_DATA21__LCDIF_DATA21  0x79
      MX6UL_PAD_LCD_DATA22__LCDIF_DATA22  0x79
      MX6UL_PAD_LCD_DATA23__LCDIF_DATA23  0x79
   >;
};

pinctrl_pwm1: pwm1grp {
   fsl,pins = <
            MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
   >;
};

背光引脚被复用为PWM1的输出,如果修改了背光引脚也要在这里修改使用的pwm。

/arch/arm/boot/dts/overlays/ebf/imx-fire-lcd-overlay.dts
1
2
3
4
5
6
7
backlight {
   compatible = "pwm-backlight";
   pwms = <&pwm1 0 5000000>;
   brightness-levels = <0 4 8 16 32 64 128 255>;
   default-brightness-level = <6>;
   status = "okay";
};

通常情况我们参考官方开发板设计硬件LCD使用的引脚和官方一致即可。 我们经常要修改的是LCD一些配置参数,例如分辨率、时钟、无效行数。 此处内容要根据自己使用的显示屏说明文档配置。

/arch/arm/boot/dts/overlays/ebf/imx-fire-lcd-overlay.dts
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
clock-frequency = <27000000>;  //LCD时钟
hactive = <800>;
vactive = <480>;               //分辨率

hfront-porch = <22>;           //HFP时间参数
hback-porch = <46>;            //HBP时间参数
vback-porch = <23>;            //VBP时间参数
vfront-porch = <22>;           //VFP时间参数

hsync-len = <1>;               //水平同步信号宽度
vsync-len = <1>;               //垂直同步信号宽度

hsync-active = <0>;            //行同步信号极性
vsync-active = <0>;            //帧同步信号极性
de-active = <1>;               //数据信号极性
pixelclk-active = <0>;         //像素时钟信号极性