MTK LCD的移植

LCD移植过程中需要注意:
1.拿到屏的原理图。(会看引脚),规格书(会看初始化参数),电路图(会看上拉下拉),gpio口配置表格
2.拿到lcm屏的硬件,确认gpio口的上下拉脚情况。
3.先配置gpio口
4.配置驱动
5.屏不亮,如果一个屏不亮,一个亮,看串口log分析。

LK 阶段,在 lcm_compare_id 函数进行对 LCM 的识别。

对任意新屏可先将 lcm_compare_id 的代码注释,直接 return 1 强制匹配;确认 LCM 单点是能亮的,再去考虑读id、兼容等问题。

static unsigned int lcm_compare_id(void) { return 1; };

LK的标准流程:上电 --> 复位 --> 读取id

 将第1点到第4点理解,配置GPIO和EINT

DrvGen 工具路径:

vendor/mediatek/proprietary/scripts/dct/DrvGen.exe

dws 文件路径(pl/kernel建议同时修改):

vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/$(project)/dct/dct/codegen.dws

$(kernel)/drivers/misc/mediatek/dws/$(platform)/$(project).dws

(1)EINT 配置:

(2)GPIO 配置:

1.LK阶段:

1.1、添加JD9161Z的驱动程序及Makefile文件,路径如下:
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\
1.2、在[project].mk文件中添加LCM配置信息,文件路径如下: vendor\mediatek\proprietary\bootable\bootloader\lk\project[project].mk
1.3、将LCM结构体及名字添加到LCM list文件中:
vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm\mt65xx_lcm_list.c

 2、kernel阶段:

2.1、添加JD9161Z的驱动程序及Makefile文件,路径如下:
[kernel]\driver\misc\mediatek\lcm\
2.2、将LCM结构体及名字添加到LCM list文件中:
[kernel]\driver\misc\mediatek\lcm\mt65xx_lcm_list.h及65xx_lcm_list.c文件中;

2.3、在项目配置文件中修改LCM_WIDTH、LCM_HEIGHT、及CUSTOM_KERNEL_LCM

读取id 

CMI 和BOE id = 0x00009161一样;CMI读取到id为接高,BOE也读取到id为-1。

JD9161Z[lcd-lk] [lcm_compare_id, 353] csp GMI: JD9161 BOE lcm_compare_id, id = 0x00009161 get_lcd_id:1 
JD9161Z[lcd-lk] [get_lcd_id, 292] JD9161Z_QICAI_CMI_MIPI2_FWVGA get_lcd_id 292 

 [2987] cmdline: console=tty0 console=ttyMT0,921600n1 vmalloc=400M             slub_debug=OFZPU page_owner=on swiotlb=noforce             cgroup.memory=nosocket,n
[2989]        : okmem             androidboot.hardware=mt6739 maxcpus=8             firmware_class.path=/vendor/firmware loop.max_part=7 has_battery_removed=1 lo
[2990]        : op.max_part=7 androidboot.boot_devices=bootdevice,soc/11230000.mmc,11230000.mmc,soc/11230000.msdc,11230000.msdc ramoops.mem_add
[2992]        : ress=0x44410000 ramoops.mem_size=0xe0000 ramoops.pmsg_size=0x10000 ramoops.console_size=0x40000 bootopt=64S3,32S1,32S1 buildvar
[2994]        : iant=userdebug root=/dev/ram androidboot.vbmeta.device=PARTUUID=756d934c-50e3-4c91-af46-02d824169ca7 androidboot.vbmeta.avb_ver
[2996]        : sion=1.2 androidboot.vbmeta.device_state=locked androidboot.veritymode=enforcing androidboot.veritymode.managed=yes androidboot
[2997]        : .slot_suffix=_a androidboot.slot=a androidboot.verifiedbootstate=green androidboot.atm=disabled androidboot.force_normal_boot=1
[2999]        :  androidboot.meta_log_disable=0 ro.segment.code=0xc8 ro.segment.name=D445837363537514 mtk_printk_ctrl.disable_uart=1 lcm=1-JD91
[3001]        : 61Z_QICAI_CMI_MIPI2_FWVGA androidboot.serialno=XMOX552211180595 androidboot.bootreason=PowerKey gpt=1 usb2jtag_mode=0 androidbo
[3003]        : ot.dtb_idx=0 androidboot.dtbo_idx=0 

[3003] lk boot mode = 0
[3004] lk boot reason = 0 

[3004] lk finished --> jump to linux kernel 32Bit

BOE

[2920] [avb] cmdline = androidboot.vbmeta.device=PARTUUID=756d934c-50e3-4c91-af46-02d824169ca7 androidboot.vbmeta.avb_version=1.2 androidboot.vbmeta.device_state=locked androidboot.veritymode=enforcing androidboot.veritymode.managed=yes
[2923] [SEC_POLICY] sboot_state = 0x0
[2924] [SEC_POLICY] lock_state(default) = 0x4
[2924] [avb] img_auth_required = 0
[2925] [avb] boot/recovery vfy time = 663 ms
[2925] mblock_create mblock start: 0xb5d00000 size: 0x8c00000 name: avb
[2926] [avb] avb_ret = 0
[2926] [avb] ret = 0
[2927] [LK] check_ota_result = 0
[2928] [LK] ota-fail

CMI 亮,BOE不亮,后来发现是主板的问题。

参考: MTK Android LCD模块驱动_mtk display-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值