http://blog.csdn.net/loongembedded/article/details/50972188

4.1. LCD 
参考文档: 
1) 80-NA157-174_E_DSI_Programing_Guide_B-Family_Android_Devices.pdf

2) 80-NN766-1_A_Linux_Android_Display_Driver_Porting_Guide.pdf

3) 80-NH713-1_F_DSI_Timing_Parameters.xlsm

LCD调试主要有三个任务: 
4.1.1. 供电 
➢ DSI供电 
8974芯片内部的DSI模块需要三个外部供电 
mdss_dsi0: qcom,mdss_dsi@fd922800 { 
compatible = “qcom,mdss-dsi-ctrl”; 
label = “MDSS DSI CTRL->0”; 
cell-index = <0>; 
reg = <0xfd922800 0x1f8>, 
<0xfd922b00 0x2b0>, 
<0xfdf30000 0x108>; 
reg-names = “dsi_ctrl”, “dsi_phy”, “mmss_misc_phys”; 
//vdd-supply = <&pm8941_l22>; 
vdd-supply = <&pm8941_lvs3>; // lvs3 is for LCD vddio, not for dsi 
vddio-supply = <&pm8941_l12>; 
vdda-supply = <&pm8941_l2>; 
但是,根据高通的参考原理图,只有两个供电vddio-supply, vdda-supply是需要的。其中lvs3是用来给LCD vddio供电,不是给dsi用的。 
➢ LCD供电 
根据原理图看看LCD需要哪些供电 
qcom,mdss_dsi@fd922800{ 
qcom,dsi-pref-prim-pan = <&dsi_jdi_1080_vid>; 
qcom,platform-disp-en-gpio = <&msmgpio 82 0>; 
qcom,platform-disp-ep-gpio = <&msmgpio 51 0>; 
}; 
这两个GPIO是用来控制供电的,AVDD,VDD。 
供电需要根据具体的原理图来改。 
➢ GPIO配置 
主要有两个GPIO需要配置,reset和te。根据原理图配置 
qcom,platform-reset-gpio = <&pm8941_gpios 19 0>; 
qcom,platform-te-gpio = <&msmgpio 12 0>; 
4.1.2. 背光 
根据不同类型的屏幕,选择不同的背光,一般TFT用WLED来做背光,OLED是自发光的,背光电路由屏上的驱动IC提供。

    qcom,leds@d800 {status = "okay";qcom,wled_0 {label = "wled";linux,name = "wled:backlight";linux,default-trigger = "bkl-trigger";qcom,cs-out-en;qcom,op-fdbck = <0>;qcom,default-state = "on";qcom,max-current = <20>;qcom,ctrl-delay-us = <0>;qcom,boost-curr-lim = <3>;qcom,cp-sel = <0>;qcom,switch-freq = <2>;qcom,ovp-val = <2>;qcom,num-strings = <2>;qcom,id = <0>;};};

需要注意max-current,高通默认是25mA,但是LCD芯片的数据手册里大部分是20mA。设置过高,会导致屏幕发烫,多耗电。 
4.1.3. LCD驱动 
LCD的驱动已经由Vendor厂商做好了,除了一些GPIO的配置可能需要加入到驱动文件,剩下的主要是制作LCD的配置文件。 
&mdss_mdp { 
dsi_jdi_1080_vid: qcom,mdss_dsi_jdi_1080p_video { 
qcom,mdss-dsi-panel-name = “jdi 1080p video mode dsi panel”; 
qcom,mdss-dsi-panel-controller = <&mdss_dsi0>; 
qcom,mdss-dsi-panel-type = “dsi_video_mode”;○1 
qcom,mdss-dsi-panel-destination = “display_1”; 
qcom,mdss-dsi-panel-framerate = <60>; 
qcom,mdss-dsi-virtual-channel-id = <0>; 
qcom,mdss-dsi-stream = <0>; 
qcom,mdss-dsi-panel-width = <1080>; 
qcom,mdss-dsi-panel-height = <1920>; 
qcom,mdss-dsi-h-front-porch = <96>;○2 
qcom,mdss-dsi-h-back-porch = <64>; 
qcom,mdss-dsi-h-pulse-width = <16>; 
qcom,mdss-dsi-h-sync-skew = <0>; 
qcom,mdss-dsi-v-back-porch = <16>; 
qcom,mdss-dsi-v-front-porch = <4>; 
qcom,mdss-dsi-v-pulse-width = <1>; 
qcom,mdss-dsi-h-left-border = <0>; 
qcom,mdss-dsi-h-right-border = <0>; 
qcom,mdss-dsi-v-top-border = <0>; 
qcom,mdss-dsi-v-bottom-border = <0>; 
qcom,mdss-dsi-bpp = <24>; 
qcom,mdss-dsi-underflow-color = <0xff>; 
qcom,mdss-dsi-border-color = <0>; 
qcom,mdss-dsi-on-command = [15 01 00 00 00 00 02 55 00○3 
05 01 00 00 78 00 02 29 00 
05 01 00 00 78 00 02 11 00]; 
qcom,mdss-dsi-off-command = [05 01 00 00 02 00 02 28 00 
05 01 00 00 79 00 02 10 00]; 
qcom,mdss-dsi-on-command-state = “dsi_lp_mode”; 
qcom,mdss-dsi-off-command-state = “dsi_hs_mode”; 
qcom,mdss-dsi-h-sync-pulse = <0>; 
qcom,mdss-dsi-traffic-mode = “burst_mode”; 
qcom,mdss-dsi-bllp-eof-power-mode; 
qcom,mdss-dsi-bllp-power-mode; 
qcom,mdss-dsi-lane-0-state; 
qcom,mdss-dsi-lane-1-state; 
qcom,mdss-dsi-lane-2-state; 
qcom,mdss-dsi-lane-3-state; 
qcom,mdss-dsi-panel-timings = [e7 4f 26 00 7e 6a 2a 3a 2d 03 04 00];○4 
qcom,mdss-dsi-t-clk-post = <0x04>; 
qcom,mdss-dsi-t-clk-pre = <0x1b>; 
qcom,mdss-dsi-bl-min-level = <1>; 
qcom,mdss-dsi-bl-max-level = <4095>; 
qcom,mdss-dsi-dma-trigger = “trigger_sw”; 
qcom,mdss-dsi-mdp-trigger = “none”; 
qcom,mdss-dsi-bl-pmic-control-type = “bl_ctrl_wled”; 
qcom,mdss-dsi-reset-sequence = <1 20>, <0 200>, <1 20>; 
qcom,mdss-pan-physical-width-dimension = <61>; 
qcom,mdss-pan-physical-height-dimension = <110>; 
}; 
}; 
从LCD厂商提供的资料,确定○1panel type是video还是command。LCD厂商也会提供○2porch值和初始化序列○3mdss-dsi-on-command。但是厂商提供的初始化序列的格式可能不匹配,需要我们自己来改。 
○4panel timings是用一个表计算出来的80-NH713-1_F_DSI_Timing_Parameters.xlsm,这个excel文件需要office2010及以上版本的软件才能运行里面的宏。 
4.1.4. LK里的显示驱动 
LK的显示驱动默认是关闭的。LK的显示和Kernel里的是独立的,增加LK里的显示是为了更快的显示Logo,给用户更好的体验。Kernel里第一屏数据大概要7秒左右才能显示出来。 
1) 使能LK里的显示 
bootable/bootloader/lk/target/msm8974/rules.mk 
DEFINES += DISPLAY_SPLASH_SCREEN=1 0->1 
2) 生成驱动文件 
使用高通的GCDG工具可以生成dtsi和h文件用于kernel和lk。 
device/qcom/common/display/tools/ 
perl parser.pl panel_nt35590_720p_cmd.xml panel

注意这个parser.pl需要xml库,需要安装以下两个库才能使用:libxml2, libxml-libxml-perl。 
如果驱动正常,手机开机是会显示一个小企鹅的图标。 
4.1.5. 调试 
1) 闪屏,花屏 
调节Porch值 
2) 背光亮度,颜色,对比度等 
需要和屏厂一起调试

高通 lcd dtsi相关推荐

  1. 高通LCD bring up流程

    高通LCD bring up流程 前言 kernel 添加LCD的dtsi 将屏的dtsi放到平台的dtsi中 电压配置 lk 添加屏的.h文件 Panel configuration Panel r ...

  2. 高通-LCD驱动框架简述

    LCD驱动框架简述 目录 一 LCD硬件结构框架 二 不同的硬件结构LCD的驱动框架简述 三 RGB接口LCD驱动简述(以户外手机(Android5.1)为例) 3.1 硬件线路框架 3.2 软件驱动 ...

  3. 高通LCD的pwm背光驱动

    发生异常的现象: msm8953 lcd在快速亮灭的情况下背光概率性休眠不灭:测量高通pwm,发现正常的时候pwm的管脚LCM_BL_PWM为低电平,失败的时候为高电平: 根据原理图: mpp是什么? ...

  4. 高通LCD 开机logo制作

    本文将介绍LK的logo制作方法,以及代码上的修改. 1.基础简介 LK的logo分为两种 1.1 .当图片内容比较小的时候,将图片的数据放入.h 文件 1.2.当图片内容比较大的时候,将图片的数据做 ...

  5. 高通LCD背光控制软件简析

    背光控制驱动分析 1,Wled backlight 在driver/leds/目录下存放着系统背光以及LED灯的驱动程序,通常需要在驱动程序中构造好struct led_classdev结构体,用来描 ...

  6. 高通LCD lk代码跟踪分析

    H文件里面的所有参数都是在Oem_panel.c里面的int init_panel_data函数调用的.接下来跟踪一下代码.Oem_panel.c位于bootable\bootloader\lk\ta ...

  7. 高通LCD之亮灭屏过程简析

    1.如何看亮灭屏时间 adb shell kmsgcat |grep fb_blank 2.code简介 在kernel/drivers/video/msm/mdss/mdss_fb.c中, stat ...

  8. afe 高通_高通ASOC中的machine驱动

    ASoC被分为Machine.Platform和Codec三大部分,其中的Machine驱动负责Platform和Codec之间的耦合以及部分和设备或板子特定的代码,再次引用上一节的内容:Machin ...

  9. 我所理解的高通平台Lcd驱动框架

    帧缓冲(framebuffer)是 Linux 系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.用户不必关系物理显示 ...

  10. 高通平台TP和LCD 驱动Porting流程

    ELAN 6730 高通820 8996平台Porting手册 1.Touch porting 创建Touch驱动文件夹 cd android/kernel/msm-3.18/drivers/inpu ...

最新文章

  1. CVPR2021|深度感知镜面分割方法(RGBD数据)
  2. WINHEX的数据结构模板
  3. Java面试宝典之开源框架!
  4. android闹钟实现原理
  5. 【LeetCode-SQL每日一练】—— 196. 删除重复的电子邮箱
  6. php定位和天气,php – 根据用户所在地显示天气
  7. java 解析 cim e 模型 架包,基于JAVA平台的CIM模型潮流数据转换方法及装置与流程...
  8. 4月18日云栖精选夜读 | 阿里靠什么支撑 EB 级计算力?
  9. 【红顶商人胡雪岩】-- 读完一点小感
  10. 不同数据库之间的独立性
  11. 10款硬盘数据恢复软件推荐
  12. 【进阶版递归】获取指定目录下的所有后缀为.java的文件
  13. layabox 打印_Layabox 集成指南
  14. 无法加载计算机管理,电脑中无法打开Internet选项中的管理加载项如何解决
  15. MySQL中int(M)和tinyint(M)数值类型中M值的意义
  16. 计算机真有趣作文,这真有趣作文(共6篇)
  17. 电视盒子刷linux树莓派,变废为宝二:闲置“树莓派”开发板秒变电视盒子!
  18. DNA甲基化数据分析专题
  19. 寒假的比较无聊的小程序
  20. Microsoft Lync server 2013 企业即时通讯软件

热门文章

  1. MYSQL安装遇到MySQL-server conflicts with错误(mysql5.6.17)
  2. GoldWave几种转换格式方法
  3. goldwave教程分享:用GoldWave进行音量调节
  4. linux dns权重设置,权重及权重配置
  5. vue2.0和3.0引入阿里字体图标库的步骤
  6. 【计网知识点总结】1概述
  7. 华为asph是什么型号_华为手机各系列有什么区别 华为手机各系列介绍
  8. java毕业设计餐饮类网站Mybatis+系统+数据库+调试部署
  9. 【造数】利用Python快速生成测试数据
  10. Spring Cloud Stream初窥