MTK平台多种LCD兼容方案

MTK平台LCD兼容性解决方案
本文档介绍了在MTK6572项目中如何通过软件配置和驱动更新实现对不同型号LCD屏幕的兼容,包括天马屏(HX8394和NT35512S)的识别。主要步骤包括修改配置文件、添加LCM驱动声明和引用,以及在驱动文件中实现lcm_compare_id()函数来判断LCD类型。

  近期一个MTK6572项目中需要兼容多种不同厂商不同型号的显示屏,其中有两种天马屏(IC:HX8394和IC:NT35512S)在项目中不能通过硬件标识区别开,这样只能通过读取displayID来判定是哪种屏。分析了该平台显示相关逻辑,发现是支持多驱动的。这样一来,也方便对不同的屏进行调试与调优。下面介绍该方案的具体修改:

  1.修改配置文件,路径mediatek/config/{project}/Project.mk

  CUSTOM_LK_LCM = FWVGA_HX8394  FWVGA_NT35512S

  CUSTOM_KERNEL_LCM = FWVGA_HX8394  FWVGA_NT35512S

  2.在list文件中,添加其声明和引用.路径mediatek/custom/commom/kernel/lcm/mt65xx_lcm_list.c

...

extern LCM_DRIVER fwvga_hx8394_tianma_lcm_drv;

extern LCM_DRIVER fwvga_hx8394_tianma_lcm_drv;

...

LCM_DRIVER* lcm_driver_list[] = 

{

......

#if defined(FWVGA_HX8394)

&fwvga_hx8394_tianma_lcm_drv,

#endif

#if defined(FWVGA_HX8394)

&fwvga_nt35512s_tianma_lcm_drv,

#endif

......

}

3.在相应的驱动文件中,添加lcm_compare_id(),用于判断当前连接的LCD

如在fwvga_hx8394_tianma中,

  static unsigned int lcm_compare_id(void)
{
  ......

    
    //*************Enable CMD2 Page1  *******************//
    data_array[0]=0x00063902;
    data_array[1]=0x52AA55F0;
    data_array[2]=0x00000108;
    dsi_set_cmdq(data_array, 3, 1);
    MDELAY(10); 
    
    data_array[0] = 0x00033700;// read id return two byte,version and id
    dsi_set_cmdq(data_array, 1, 1);
    MDELAY(10); 
    
    len = read_reg_v2(0xC5, buffer, 2);
       DMS_LCD(" (TIANMA,IC:HX8394)compare_id--buf[0]=0x%x, buf[1]=0x%x, len=%d\n", buffer[0], buffer[1], len);

      if ((buffer[0] == 0x55) && (buffer[1] == 0x12)) 
      {
/*the type:TIANMA(IC:NT35512). Another driver will be used.*/
return 0;
      }

      /*the type:TIANMA(IC:HX8394) */
      return 1;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值