MT6737 LCM移植流程

Lk:
1、添加驱动
vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/
2、配置vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/mt65xx_lcm_list.c

/***注意,要跟驱动中的结构体名字对应***/
extern LCM_DRIVER xxxx_dsi_vdo_boe_lcm_drv;
#if defined(XXXX_DSI_VDO_BOE)
       &xxxx_dsi_vdo_boe_lcm_drv,

3、配置vendor/mediatek/proprietary/bootable/bootloader/lk/project/tek6735m_65_d_n.mk

CUSTOM_LK_LCM="屏驱动文件夹名字"
同步修改Logo资源
BOOT_LOGO=qvgal

Kernel:
1、添加驱动
kernel-3.18/drivers/misc/mediatek/lcm/
2、配置kernel-3.18/drivers/misc/mediatek/lcm/mt65xx_lcm_list.h

/***注意,要跟驱动中的结构体名字对应***/
#if defined(XXXX_DSI_VDO_BOE)
       &xxxx_dsi_vdo_boe_lcm_drv,
#endif

3、配置kernel-3.18/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c

extern LCM_DRIVER xxxx_dsi_vdo_boe_lcm_drv;

4、配置kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_defconfig

CONFIG_CUSTOM_KERNEL_LCM="屏驱动文件夹名字"
/***选择自己屏对应的分辨率***/
CONFIG_LCM_HEIGHT="320"
CONFIG_LCM_WIDTH="240"

5、配置kernel-3.18/arch/arm64/configs/tek6735m_65_d_n_debug_defconfig

CONFIG_CUSTOM_KERNEL_LCM="屏驱动文件夹名字"

CONFIG_LCM_HEIGHT="320"
CONFIG_LCM_WIDTH="240"

Device:
1、配置device/teksun/tek6735m_65_d_n/ProjectConfig.mk

BOOT_LOGO = qvgal

LCM_HEIGHT = 320
LCM_WIDTH = 240

2、配置device/teksun/tek6735m_65_d_n/device.mk

/***修改屏的密度,不然图标过大或过小显示不正常***/
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.sf.lcd_density=160

注意:单通道的屏以及cphy屏在平台端寄存器配置不一样,不修改会导致无法休眠唤醒

后续有空会更新其他设备移植流程

知识补充:
1.一般拿到屏厂初始化代码后,将其代替驱动中的static struct LCM_setting_table lcm_initialization_setting[] ={}参数,没有驱动则在原生代码中找一个差不多类型的修改下;
2.修改static void lcm_get_params(LCM_PARAMS *params)中的参数配置

	params->type   = LCM_TYPE_DSI;

	params->width  = FRAME_WIDTH;
	params->height = FRAME_HEIGHT;

#if defined(LCM_DSI_CMD_MODE)
	params->dsi.mode   = CMD_MODE;
#else
    params->dsi.mode   =BURST_VDO_MODE; //SYNC_EVENT_VDO_MODE;//SYNC_PULSE_VDO_MODE
#endif

	// DSI
	/* Command mode setting */
    params->dsi.LANE_NUM = LCM_TWO_LANE;//LCM_THREE_LANE;//对应所用屏的通道数
	//The following defined the fomat for data coming from LCD engine.
	params->dsi.data_format.color_order = LCM_COLOR_ORDER_RGB;
	params->dsi.data_format.trans_seq   = LCM_DSI_TRANS_SEQ_MSB_FIRST;
	params->dsi.data_format.padding     = LCM_DSI_PADDING_ON_LSB;
	params->dsi.data_format.format      = LCM_DSI_FORMAT_RGB888;

    // Video mode setting		
	params->dsi.intermediat_buffer_num = 2;

	params->dsi.PS=LCM_PACKED_PS_24BIT_RGB888;

 /*VS=6 ,VBP=40 ,VFP=40 ,HS=10 ,HBP=40 ,HFP=40*/
		//params->dsi.vertical_active_line = FRAME_HEIGHT;
		//修改前后肩
			params->dsi.vertical_sync_active				= 4;//5;
			params->dsi.vertical_backporch					= 16;//15;
			params->dsi.vertical_frontporch					= 20;
			params->dsi.vertical_active_line				= FRAME_HEIGHT; 
				//params->dsi.vertical_active_line				= 800; 

			params->dsi.horizontal_sync_active				= 10;
			params->dsi.horizontal_backporch				= 60;//80;
			params->dsi.horizontal_frontporch				= 60;//80;
			params->dsi.horizontal_active_pixel				= FRAME_WIDTH;

	params->dsi.HS_TRAIL = 20;  //20
	// Bit rate calculation
		params->dsi.PLL_CLOCK = 185;//240;221 j208//this value must be in MTK suggested table  //225 240
		params->dsi.ssc_disable				= 1;

3.修改下时序,一般上电时序在lcm_init中,有的也会有power相关的函数,不过调用也是在Init中调用,所以在lcm_init修改即可
4.不兼容其他屏的情况下,在static unsigned int lcm_compare_id(void)直接return 1;后续兼容判别也是在这里进行
理论上上面配置对后一般能点亮,没有点亮则接上串口看看哪里出错了
end========================================================

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值