MTK平台多种LCD兼容方案
2015-06-03 19:16
609 查看
近期一个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;
}
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;
}
相关文章推荐
- mtk6572 Camera驱动配置
- mtk6572平台camera video 报错问题
- mtk6572 otg 功能调试
- MTK6572 android4.4上串口模块的调试
- android系统重启流程分析
- [shell] while read line 与for循环的区别
- 匈牙利算法
- redis内存管理代码注释
- CSS-三角形
- C/C++中各种数据类型 如 int ,char long,double 的范围(最大值和最小值)
- 【云大会】之五《第七届云计算大会 Day1感受:喧嚣退潮、人气萎缩》
- 用CocoaPods做iOS程序的依赖管理
- CSS-渐变
- 审稿意见是错的怎么办?
- 【云快讯】之四十五《Google在云服务领域认输?不,我们的重点是大数据》
- 【云大会】之五《第七届云计算大会 Day1感受:喧嚣退潮、人气萎缩》
- poj1258_kruskal
- Linux进程概念&相关系统调用(6.3)
- CSS-追加内容before、after
- CSS-盒模型