高通Qualcomm平台lk(light kernel)启动流程3——到高通lcm屏点亮
来源:互联网 发布:b2b源码授权费用 编辑:程序博客网 时间:2024/06/05 16:05
- 0lk 启动总体流程
- 1lk启动流程代码
- lk app aboot abootc
- lk target msm8953 target_displayc
- lk dev gcdb display gcdb_displayc
更多相关文章:
《高通Qualcomm平台lk(light kernel)启动流程1——aboot_init()之前》:
http://blog.csdn.net/u014134180/article/details/78133916
《高通Qualcomm平台lk(light kernel)启动流程2——aboot_init()》:
http://blog.csdn.net/u014134180/article/details/78132580
《高通Qualcomm平台lk(light kernel)启动流程3——到高通lcm屏点亮》:
http://blog.csdn.net/u014134180/article/details/78177040
《[lcm] Qualcomm Android Display Subsystem 架构》
http://blog.csdn.net/u014134180/article/details/78129502
《[lcm] Qualcomm平台的显示屏lcd驱动移植步骤》:
http://blog.csdn.net/u014134180/article/details/78129499
《[lcm] Qualcomm平台兼容多显示屏lcd的方法&并从lk传输到kernel过程》:
http://blog.csdn.net/u014134180/article/details/78166978
《[lcm] Qualcomm平台显示屏lcd添加I2C读取功能》:
http://blog.csdn.net/u014134180/article/details/78176160
0、lk 启动总体流程
1、lk启动流程代码
lk/ app/ aboot/ aboot.c
aboot_init()
先判断如果是正常启动则goto normal_boot
,否则就根据物理按键判断哪种启动方式,是boot_into_fastboot
还是boot_into_recovery
(《高通Qualcomm平台lk(light kernel)启动流程2——aboot_init()》)。
normal_boot
有一步就是初始化目标屏幕,target_display_init()
是lcm在lk初始化唯一的一条入口函数。
lk/ target/ msm8953/ target_display.c
在target_display_init()
函数里有很重要的函数就是gcdb_display_init()
,里面有 do{…} while()
,这是高通原生lk LCD兼容的关键所在 。如果平台支持屏幕最大个数自动检测,msm8953支持兼容两个屏。(GCDB:Global Component Database全局组件数据库)
lk/ dev/ gcdb/ display/ gcdb_display.c
- gcdb_display_init()
gcdb_display_init()初始化pll_clk_func
、power_func
、bl_func
等功能,初始化好之后就调用msm_display_init()函数。
gcdb_display_init ()在该函数中有一个重要的函数就是 oem_panel_select(),该函数就是根据你的hw_id
确定使用哪一款LCD,hw_id
这个是在高通的私有代码中传过来的。
(Oem_panel_select()->target/msm8953/oem_panel.c)
- msm_display_init()
在msm_display_init()
里先Turn on panel,再Turn on backlight。
- Turn on backlight(bl_func(1))
gcdb_display_init ()
打开背光函数bl_func(1)指向函数mdss_dsi_bl_enable
。
- Turn on panel(power_func(1,…))
屏幕上电函数power_func(1,…)
指向函数mdss_dsi_panel_power
。
/* add by Bert for panel exist checking 20161125 Begin */ret = mdss_dsi_panel_reset(enable);if (ret) {dprintf(CRITICAL, "panel reset failed\n");return ret;}ret = qup_blsp_i2c_device_init();if (ret) {dprintf(CRITICAL, "qup blsp i2c touchpanel init ret=%d\n",ret);}ret = goodix_ic_package_check();if (ret==false) {dprintf(CRITICAL, "qup blsp i2c touchpanel check ret=%d\n",ret);}/* add by Bert for panel exist checking 20161125 End */
static struct gpio_pin enable_gpio = {"msmgpio", 61, 3, 1, 0, 1};
Wu_Being博客声明:本人博客欢迎转载,请标明博客原文和原链接!谢谢!
《高通Qualcomm平台lk(light kernel)启动流程3——到高通lcm屏点亮》: http://blog.csdn.net/u014134180/article/details/78177040
如果你看完这篇博文,觉得对你有帮助,并且愿意付赞助费,那么我会更有动力写下去。
- 高通Qualcomm平台lk(light kernel)启动流程3——到高通lcm屏点亮
- 高通Qualcomm平台lk(light kernel)启动流程2——aboot_init()
- 高通Qualcomm平台lk(light kernel)启动流程1——aboot_init()之前
- qualcomm 平台的lk启动流程
- [lcm] Qualcomm平台兼容多显示屏lcd的方法&并从lk传输到kernel过程
- lk启动流程详细分析(高通)
- 高通(Qualcomm)LK源码深度分析(二)
- 高通(Qualcomm)LK源码深度分析(三)
- 高通(Qualcomm)LK源码深度分析
- 高通平台lk下调屏小结
- Qualcomm Simlock——启动检测流程
- Android启动流程分析之一:Bootloader(基于高通芯片) 【mtk lk阶段有类似】
- 高通平台启动流程
- QualComm lk和kernel之间内存共享
- 高通平台LK传递参数给kernel参考serialno的方式实现
- 深入MTK平台bootloader启动之【 lk -> kernel】分析笔记
- 深入MTK平台bootloader启动之【 lk -> kernel】分析笔记
- 深入MTK平台bootloader启动之【 lk -> kernel】分析笔记
- 会话跟踪的多种方法
- 游戏小透明与Construct 2的初次邂逅
- 中缀表达式转为后缀表达式
- Rust: codewars的Molecule to atoms
- (M)Dynamic Programming:673. Number of Longest Increasing Subsequence
- 高通Qualcomm平台lk(light kernel)启动流程3——到高通lcm屏点亮
- 自定义view箭头绕圆环旋转
- 文章标题
- kotlin实现一个简单的新闻客户端-01
- 重温数据结构:二叉树的常见方法及三种遍历方式 Java 实现
- Java Activiti(1)---基础流程
- Python 之 基础面向对象编程
- 7-1 银行业务队列简单模拟
- HDU 2147 kiki's game 博弈论