基于Linux系统LCD参数更改方法- NXP i.MX 6
注:红色部分为修改部分
修改 kernel/drivers/video/fbdev/mxc/mxc_lcdif.c
static struct fb_videomode lcdif_modedb[] = {
{
/* 800x480 @ 57 Hz , pixel clk @ 27MHz */
"CLAA-WVGA", 57, 800, 480, 37037, 40, 60, 10, 10, 20, 10,
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
/*1024x600 @ 60 Hz , pixel clk @ 32MHz */
{
"SEIKO-WVGA", 60, 1024, 600, 26000, 160, 140, 12, 20, 20, 3
FB_SYNC_CLK_LAT_FALL,
FB_VMODE_NONINTERLACED,
0,},
};
修改 kernel/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
lcd@{
compatible = "fsl,lcd";
ipu_id = <0>;
disp_id = <0>;
default_ifmt = "RGB24";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_ipu1>;
disp-power-on-supply = <®_lcdif_pwr_on>;
status = "okay";
修改 kernel/arch/arm/boot/dts/imx6q-sabresd.dts
&mxcfb1 {
compatible = "fsl,mxc_sdc_fb";
disp_dev = "lcd";
mode_str ="SEIKO-WVGA";
interface_pix_fmt = "RGB24";
default_bpp = <16>;
int_clk = <0>;
late_init = <0>;
status = "okay";
};
注:SEIKO-WVGA 是和内核中的配置保持一致的。代码中的具体参数需要客户根
据自己的屏幕手册自行计算,不知道参数具体含义的可以百度搜索了解这方面相关的
知识。
移植完毕可能会出现触摸不准的情况需要修改文件系统中/etc/X11/xorg.conf
vi /etc/X11/xorg.conf
Section "Device"
Identifier "i.MX Accelerated Framebuffer Device"
Driver "vivante"
Option "fbdev" "/dev/fb0"
Option "vivante_fbdev" "/dev/fb0"
Option "HWcursor" "false"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
EndSection
Section "InputClass"
Identifier "calibration"
MatchProduct "TSC2007 Touchscreen"
Option "SwapAxes" "0"
Option "InvertX" "1"
EndSection
保存并退出
sync
并重新校准
rm /etc/pointercal.xinput
sync
reboot
即可正常使用