一、Android系统开机启动过程及驱动概述:

MTK平台的显示驱动分两块,一块在LK代码里面,一块在kernel代码里面;
LK的lcm驱动路径在:vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\xxxx_hd720_dsi_vdo
kernel的lcm驱动路径在:kernel-x.x\drivers\misc\mediatek\lcm\xxxx_hd720_dsi_vdo
lcm驱动中,最主要的是了解该结构体中的成员函数运行过程

LCM_DRIVER xxxx_hd720_lcm_drv =
{.name            ="xxxx_hd720_lcm_drv",   //LCM 的型号名,lk的型号名和kernel 型号名必须保持一致,否则会重启;.set_util_funcs = lcm_set_util_funcs,.get_params     = lcm_get_params,    //lcm 显示和mipi 时序参数配置,.init           = lcm_init,             //lcm 的初始化参数.suspend        = lcm_suspend,          /休眠.resume         = lcm_resume,           //唤醒.compare_id    = lcm_compare_id,  //LCM ID 获取,只有在lk有效,lk在启动阶段会调用该接口,通过返回值来判断当前lcm模组与驱动匹配
};

开机启动会首先跑LK的中lcm驱动的.get_params和.init 给LCM模组进行初始化,其作用的生命周期一直到系统启动完成后,短按pwrkey或者自动休眠完成。
重新唤醒之后,就跑kernel 中lcm驱动中的.suspend和.resume;

移植前需要注意:
了解清楚本身本身的硬件特性:
比如分辨率最高支持到多少(MTK平台还比较关心当前的LCM显示屏是物理竖屏还是物理横屏,MTK的手机平台有默认不支持竖屏之说)?最多能支持几通道的mipi-DSI?

二、LK部分,添加新lcm型号支持
1.将新LCM的驱动xxxx_hd720_dsi_vdo文件夹放在vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm下面;
2.添加LCM的驱动型号到lcm_list中,修改文件如下:
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\mt65xx_lcm_list.c

LCM_DRIVER *lcm_driver_list[] = {#if defined(xxxx_HD720_DSI_VDO)&xxxx_hd720_lcm_drv,
#endif

3.将新lcm的文件型号添加到lk的配置文件中:
vendor\mediatek\proprietary\bootable\bootloader\lk\project\xx_xx_bsp.mk
在CUSTOM_LK_LCM添加你要添加的屏型号,比如:CUSTOM_LK_LCM="xxxx_hd720_dsi_vdo"

4.在device文件夹下需要配置对应屏幕分辨率的LOGO(看文件夹下有以下哪个路径就改哪个路径):
device\mediateksample\len6737m_65_sh_n\ProjectConfig.mk
device\lentek\len6737m_65_sh_n\ProjectConfig.mk

BOOT_LOGO = wvga (对应LOGO名在该路径下找:vendor\mediatek\proprietary\bootable\bootloader\lk\dev\logo)
LCM_HEIGHT = 800
LCM_WIDTH = 480

三、在Kernel部分,添加新lcm型号支持步骤:

1.将新LCM的驱动文件 xxxx_hd720_dsi_vdo 文件夹放在kernel-3.18\drivers\misc\mediatek\lcm下
驱动文件的命名格式为:型号_分辨率_MIPI接口_ 接口下SYNC模式
1)MIPI接口:一共有三种接口:DBI(也做CPU或MCU接口)、DPI(也叫RGB接口)、DSI
2)接口下SYNC模式:DSI接口有两种sync 模式:video mode和command mode,其中video mode是BB端一直刷数据到LCM,cmd mode是在有数据更新时刷数据到LCM GRAM中)

2.将LCM的驱动型号添加到lcm_list.c中:kernel-3.18\drivers\misc\mediatek\lcm\mt65xx_lcm_list.c

LCM_DRIVER *lcm_driver_list[] = {#if defined(XXXX_HD720_DSI_VDO)  //需要大写&xxxx_hd720_lcm_drv,
#endif

3.在lcm_list.h中添加LCM名称:kernel-3.18\drivers\misc\mediatek\lcm\mt65xx_lcm_list.h

extern LCM_DRIVER xxxxx_hd720_lcm_drv;

4.修改配置文件中的LCM名称:kernel-3.18\arch\arm64\configs\len6737m_65_sh_n_defconfig

CONFIG_CUSTOM_KERNEL_LCM="xxxx_hd720_dsi_vdo"

同时在该文件下配置对应的分辨率:若没有在该文件下发现配置分辨率信息,则需要在kernel-3.18\drivers\misc\mediatek\video\Kconfig下修改对应的分辨率

CONFIG_LCM_HEIGHT="480"
CONFIG_LCM_WIDTH="800"

MTK平台的LCM驱动移植相关推荐

  1. MTK平台安卓Qcamera驱动移植——sensor部分

    平台MTK676X 安卓:Q/10.0 添加驱动程序文件 将模组厂商提供的驱动程序及调试参数文件拷贝到以下目录.厂商可能会自行客制化,但都是kernel和vendor两处下面,不一定和下面列出的一模一 ...

  2. MTK平台LCM驱动移植

    对于LCM驱动移植,一般分为三部曲: 1.硬件IO口配置: 2.确保LCM背光能够正常点亮: 3.LCM驱动移植: 1.GPIO配置 打开 mediatek\dct\DrvGen.exe 选择 med ...

  3. MTK LCM驱动移植

    对于LCM驱动移植,一般分为三部曲: 1.硬件IO口配置: 2.确保LCM背光能够正常点亮: 3.LCM驱动移植: 硬件电路: 1.GPIO配置 打开 mediatek\dct\DrvGen.exe ...

  4. MTK平台的LCM防静电(esd-check)机制

    MTK平台的LCM防静电(esd-check)机制

  5. MTK平台MT6765 LCM屏调试步骤

    1 总MK配置LCM的相关尺寸  alps/device/mediateksample/k62v1_64_bsp/ProjectConfig.mk  BOOT_LOGO = hd720  LCM_HE ...

  6. esp32系列(11):ESP32 IDF平台 mpu6050 DMP 驱动移植及测试上位机开发

    目录 1 DMP 官方库介绍 1.1 DMP与MPL(Motion Processing Libraries)功能 1.2 运行MPL的硬件要求 1.3 Motion Driver 6.12 的架构 ...

  7. 高通平台开发系列讲解(外设篇)高通平台Camera摄像头驱动移植

    文章目录 一.高通平台摄像头软件框架 二.相关代码目录 三.驱动移植 3.1.新增camera节点 3.2.配置相关的GPIO 沉淀.分享.成长,让自己和他人都能有所收获!

  8. mtk6582平台GT9157触摸屏驱动移植

    一.GT9157触摸屏移植 1.在mediatek/config/sanstar82_cwet_kk/ProjectConfig.mk中 CUSTOM_KERNEL_TOUCHPANEL=GT9XX ...

  9. 基于MT6572/32平台 Android 版本驱动移植日志

    根据MK官网所述,在Android L 版本上Turnkey ABS 架构将会phase out,而Mediatek Turnkey架构将会全面转向Turnkey AOSP架构.本博文将会大致描述下如 ...

最新文章

  1. Docker暴露端口服务器公网IP无法访问问题排查
  2. [2008.06.10 23:20:00] 心智成熟的旅程
  3. UA MATH571A R语言回归分析实践 多元回归2 医疗费用的决定
  4. 《算法竞赛进阶指南》打卡-基本算法-AcWing 89. a^b:位运算、快速幂
  5. 如何把 DropDownList 某一个 Item 的 Text 改成粗体 ?
  6. (私人收藏)[开发必备]HTML5最全快速查找离线手册(可查询可学习,带实例)...
  7. 【Python】20个小技巧,让数据可视化图表更专业!
  8. 尾递归及快排尾递归优化
  9. (Z)标准电阻值的来历及色环电阻值定义
  10. JavaScript URL参数读取
  11. 关于JavaWeb项目加密的实现 2021-04-24
  12. day013内置函数一
  13. Spring使用内存数据库
  14. 的不定积分_不定积分大集合——方法篇
  15. python运维平台开发_python运维平台的设计
  16. php表决器代码,三人表决器:VHDL源代码
  17. DxO FilmPack破解版|DxO FilmPack Elite 5.5.23破解版下载(附破解补丁)
  18. Python mysql的常用操作
  19. 计算机excel柱状图刻度单位,如何设置excel图表的坐标刻度和单位-excel 柱状图 坐标 区间刻度...
  20. VBA--LBound函数与UBound函数用法详解

热门文章

  1. 刻录原版系统光盘(用软碟通)
  2. 华为USG防火墙-建立安全策略禁止上班时间访问其他网站
  3. 搭建自己的ngrok服务器搭建方式二
  4. VirtualBox虚拟机与主机互通,并且虚拟机又能上网配置
  5. [转]孝心无价--毕淑敏
  6. 能够找一个计算机好的人把六级成绩改一下吗,六级成绩查询
  7. 从会议室猜“公司年龄”,看看准不准?
  8. python 开发培训视频教程
  9. linux照明控制软件,基于ARM-Linux的城市景观照明控制平台设计
  10. 基于SSM的在线商城管理系统