高通平台MSM8916LCM模块移植(一)-bootloader部分

此次移植打算分成两个模块来说,bootloader部分和kernel部分。在实际的移植调试过程中也是这么分成了两个部分分别调试。

           高通平台中的bootloader叫做LK(Little Kernel,对于LCM来说LK部分相当重要,它不仅要负责开机部分的LCD显示任务,还要负责传参给kernel的LCM驱动,指导kernel选择合适的LCM参数。

1、LK中LCM启动流程


注:read_panel_id()和read_panel_id_ddr3()为私有添加,非高通库上代码。

在这个流程图中,需要着重了解的有oem_panel_select() mdss_dsi_initialize() 和read_panel_id()函数,这三个函数主要是做lcd兼容,下面来具体看函数内容。

2、oem_panel_select()

这个函数在 android/bootloader/lk/target/msm8916/oem_panel.c文件中
主要是识别不同IC,赋值给参数panel_id,panel_id的使用在同一文件中的 init_panel_data()函数中。
/********************************************************
*Name:        oem_panel_select
*Function:    selection different lcm panel
*Description: 1)This func will be roaded twice,first time use default value
                second time depend on lk_lcd_id value match correct branch.
*Author:      Jerry.peng
*********************************************************/
bool oem_panel_select(const char *panel_name, struct panel_struct *panelstruct,
			struct msm_panel_info *pinfo,
			struct mdss_dsi_phy_ctrl *phy_db)
{
	uint32_t soc_version = board_soc_version();
	uint32_t gpio_state = 0;

	gpio_tlmm_config(LCM_GPIO_DETECT, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_8MA, GPIO_ENABLE);<span style="color:#33ff33;"> </span><span style="color:#009900;">//这个主要是硬件检测lcd_id引脚,用来区分同一IC不同模组厂屏</span>
	mdelay(10);
	gpio_st
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值