为了方便,我用$(name)表示变量,代表里面值你需要根据自己具体情况更改
1.首先确定你的kernel版本,一般是kernel-4.14,kernel-4.19,kernel-5.10
device/mediateksample/$(yourprojectname)/ProjectConfig.mk文件里搜索LINUX_KERNEL_VERSION即可得到你的kernel版本,后续都要在对应kernel文件夹中配置驱动
不过配置屏也需要配置分辨率
BOOT_LOGO = hdplus1600 对应分辨率名称
LCM_HEIGHT = 1600 屏高
LCM_WIDTH = 720 屏宽
hdplus1600与1600x720是对应的,具体看你屏分辨率
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo里面是相关的分辨率对应
比如fwvga对应480x854,你可以点开对应文件夹,右键查看图片属性
2.配置两个config文件夹,最好是user和userdebug一起改,方便调试以及发布软件
以及注意项目是32位还是64位,对应arm与arm64,你在你项目config文件在哪个arm里面就好了
本项目为32位,对应arm,,64位arm改成arm64,其他一样
$(LINUX_KERNEL_VERSION)/arch/arm/configs/$(yourprojectname)_debug_defconfig
$(LINUX_KERNEL_VERSION)/arch/arm/configs/$(yourprojectname)_defconfig
CONFIG_CUSTOM_KERNEL_LCM="$(lcm_name)"里面补充你需要点亮的屏的驱动名字
CONFIG_LCM_HEIGHT与CONFIG_LCM_WIDTH与上面分辨率对应
3.添加对应的屏驱动文件夹
$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/lcm/$(lcm_name)/
里面一般包含makefile与厂家给的.c文件,原则上.c文件可以随便命名,只要在makefile文件对应就行,但我建议你与驱动名保持一致
注意.c文件里面
LCM_DRIVER $(lcm_name)_lcm_drv= //lcm_drv别掉了,与下面驱动定义对应
{
.name = "$(lcm_name)",
.set_util_funcs = lcm_set_util_funcs,
.get_params = lcm_get_params,
.init = lcm_init,
.suspend = lcm_suspend,
.resume = lcm_resume,
.compare_id = lcm_compare_id,
}
4.添加驱动的定义与声明
$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c
#if defined($(LCM_NAME)) //就是驱动名全改成大写
&$(lcm_name)_lcm_drv, //驱动名,注意后面的lcm_dev别掉了,与驱动里面.c文件对应的
#endif
$(LINUX_KERNEL_VERSION)/drivers/misc/mediatek/lcm/mt65xx_lcm_list.h
extern struct LCM_DRIVER $(lcm_name)_lcm_drv; //lcm_drv注意
5.kernel层配置好了,接下来三lk部分
vendor/mediatek/proprietary/bootable/bootloader/lk/project/$(yourprojectname).mk
CUSTOM_LK_LCM="$(lcm_name)" //这个不改到时候屏只要背光显示,没有画面
BOOT_LOGO := hdplus1600 //分辨率别忘了对应,根据你的实际来
6.与kernel层一样添加驱动,不过不能把kernel层驱动直接拷贝过来,文件结构有些不一样
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/$(lcm_name)
7.添加lk层驱动的定义与声明,不过这个是在同一个文件里面
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/mt65xx_lcm_list.c
extern struct LCM_DRIVER $(lcm_name)_lcm_drv; //注意lcm_drv
#if defined($(LCM_NAME)) //大写
&$(lcm_name)_lcm_drv, //注意lcm_drv
#endif