LVDS屏幕移植应用笔记(飞凌OKMX6DL/Q)

文档版本: V1.0 (2018.12.08)
适用平台: 飞凌 OKMX6DL/Q-S3, Linux 4.1.15

概述

本文档是飞凌嵌入式针对 OKMX6DL/Q 平台移植 LVDS 屏幕的技术应用笔记,主要说明如何在 i.MX6 平台上配置 LVDS 显示屏。

核心内容

1. 内核驱动修改

需要修改文件:kernel/drivers/video/fbdev/mxc/ldb.c

添加或修改 ldb_modedb[] 中的显示模式定义:

static struct fb_videomode ldb_modedb[] = {
    { "LDB-WXGA", 60, 1280, 800, 14064, 70, 80, 8, 13, 10, 2, 0, 
      FB_VMODE_NONINTERLACED, FB_MODE_IS_DETAILED },
    { "LDB-XGA", 60, 1024, 768, 15385, 220, 40, 21, 7, 60, 10, 0, 
      FB_VMODE_NONINTERLACED, FB_MODE_IS_DETAILED },
    { "LDB-1080P60", 60, 1920, 1080, 7692, 100, 40, 30, 3, 10, 2, 0, 
      FB_VMODE_NONINTERLACED, FB_MODE_IS_DETAILED },
};

2. U-Boot 配置修改

文件: uboot/include/configs/mx6sabre_common.h

配置 FDT 文件名:

#define CONFIG_6Q_FDT "setenv fdt_file imx6q-s3-sabresd.dtb; fi; "
#define CONFIG_6DL_FDT "setenv fdt_file imx6dl-s3-sabresd.dtb; fi; "

配置显示输出:

#define MXC_FB0 "mxcfb0=video=mxcfb0:dev=ldb,LDB-WXGA,if=RGB24,bpp=16,int_clk\0"
#define MXC_FB1 "mxcfb1=video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=16\0"
#define LDBMODE "ldbmode=ldb=sin0\0"

3. 默认启动设备修改

文件: uboot/arch/arm/imx-common/video.c

修改 panel 默认值为:

setenv("panel", "LDB-WXGA")

关键技术点

  1. 显示模式参数: fb_videomode 结构体中的参数需要根据实际屏幕手册计算
  2. 时序参数: 包括像素时钟、水平/垂直同步脉冲宽度、前后空白等
  3. 接口类型: LVDS 使用 RGB24 接口,bpp=16
  4. 非交错模式: FB_VMODE_NONINTERLACED 表示逐行扫描

注意事项

  • 文档声明仅供参考,客户需自行修改以适应具体使用场景
  • 不同平台间存在差异,需客户自行调整
  • 具体参数需根据屏幕手册自行计算

关联知识