下面是高通平台LCD驱动参数的说明,此说明是根据经验值以及高通的寄存器说明得出的,并非高通官方说明,如有疑问,欢迎探讨。针对一些没有用过的参数,由于没有实践证明,故不做妄加的评论。

mipi_xxx_xxx_xxx_pt.c

static struct mipi_dsi_phy_ctrldsi_video_mode_phy_db = {

/*DSI Bit Clock at 513 MHz, 4 lane, RGB888 */

/*regulator */

{0x05,0x01, 0x01, 0x00},

/*timing   */

{0x8f,0x34, 0x14, 0x00, 0x46, 0x4b, 0x1a, 0x37,

0x19,0x03, 0x04},

/*phy ctrl */

{0x7f,0x00, 0x00, 0xef},

/*strength */

{0xbb,0x02, 0x06, 0x00},

/*pll control */

{0x00,0xfc, 0x30, 0xd2, 0x00, 0x40, 0x37, 0x62,

0x00,0x07, 0x01,

0x05,0x14, 0x03, 0x0, 0x0, 0x0, 0x20, 0x0, 0x02, 0x0},

};

这一段是配置D-PHY的寄存器,主要是MIPI的时序方面的,按照dsi_timing_program_msm7x2xA.xlsm   EXCEL表来配置即可,具体值的作用可以参考8X25Q的寄存器说明文件:

80_VM180_2_MSM8X25Q_MOBILE_STATION_MODEM_SOFTWARE_INTERFACE.pdf

其中寄存器对应关系为:

Regulator ---------> 0x02CC ~ 0x02DC

Timing ------------> 0x0260 ~ 0x028C

Phy_ctrl -----------> 0x0200 ~ 0x024C

Strength -----------> 0x02A0 ~ 0x02A8

Pll_control --------> 0x0200 ~ 0x024C

在mipi_video_xxx_xxx_pt_init函数中主要是对屏的显示区域和mipi控制器进行配置。

pinfo.xres       有效数据的宽度

pinfo.yres       有效数据的高度

pinfo.type       panel的类型

pinfo.bpp              颜色深度

pinfo.lcdc.h_back_porch              水平同步后肩

pinfo.lcdc.h_front_porch              水平同步前肩

pinfo.lcdc.h_pulse_width      水平同步脉冲宽度

pinfo.lcdc.v_back_porch              垂直同步后肩

pinfo.lcdc.v_front_porch              垂直同步前肩

pinfo.lcdc.v_pulse_width      垂直同步脉冲宽度

pinfo.clk_rate       mipi每根lane线的波特率

pinfo.bl_max         背光最大亮度,与设置菜单中最大背光亮度相对应

pinfo.bl_min          背光最小亮度,与设置菜单中最小背光亮度相对应

pinfo.mipi.mode    mipi屏的类型

pinfo.mipi.pulse_mode_hsa_he     表示是否在发送 VS/VE之后发送HSA,0表示不发送,1表示发送

pinfo.mipi.hfp_power_stop

pinfo.mipi.hbp_power_stop

pinfo.mipi.hsa_power_stop

上面三个参数表示 hfp、hbp、hsa 是用mipi 的高速模式还是低速模式来传输,0表示高速,1表示低速

pinfo.mipi.traffic_mode       mipi传输模式,分为 non-burst with sync pulse 模式;non-burst with sync events 模式和 burst模式,它们的区别如下:

1. non-burst with sync pulse

2. non-burstwith sync events

3. Burst

这几种模式只是在传输数据波形上有所区别,具体看屏规格书要求来选择传输模式,一般使用burst模式

pinfo.mipi.dst_format    表示颜色的格式,RGB565 , RGB666 , RGB888

pinfo.mipi.rgb_swap      颜色格式的切换

pinfo.mipi.data_laneX   mipi lane线开关

pinfo.mipi.force_clk_lane_hs       将mipi的clock lane 设置为高速,具体看屏的规格有没有这种需求

mipi_xxx.c

{DTYPE_DCS_WRITE,  1, 0, 0, 120, sizeof(exit_sleep),exit_sleep},

第一个参数:表示数据包的类型,如下图:

 

一般的,我们发送0x11、0x29、0x10、0x28时使用 DTYPE_DCS_WRITE ,发送初始化数据时使用 DTYPE_DCS_LWRITE 。但某些屏可能会其它类型,具体需要看屏的规格书。

第二个参数:使用默认值即可。

第三个参数:用于多个MIPI外围设备,使用默认值即可。

第四个参数:应答信号,当设置为“1”时,发送命令成功后屏的IC会返回一个应答信号,如果不成功,则停止通信。通过设置这个位可以验证BB和屏是否通信成功。

第五个参数:发送完后的延时,毫秒级。

第六个参数:发送的数据大小。

第七个参数:需要发送的数据。

mfd->cont_splash_done

用于开机时在kernel中不初始化屏,如果需要在kernel中初始化屏的话,则需要将board-msm7627a-display中的 mdp_pdata 结构体的 .cont_splash_enabled = 0x1 修改为 0x0。

以上是KERNEL中的LCD驱动参数,LK中的参数与此类似

printk("%s: ", __func__);

for (i = 0; i < tp->len; i++)

printk("0x%02x; ", *bp++);

printk("\n");

 

高通平台LCD驱动参数说明相关推荐

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

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

  2. 高通平台LCD驱动分析

    目前手机芯片厂家提供的源码里包含整个LCD驱动框架,一般厂家会定义一个xxx_fb.c的源文件,注册一个平台设备和平台驱动,在驱动的probe函数中来调用register_framebuffer(), ...

  3. 高通平台 lcd driver 调试小结

    一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2  开发环境 And ...

  4. android lcd调试 高通平台lcd调试深入分析总结(mipi和rgb接口)

    各位网友:最近发现我这篇文章转载的到处都是,有的则以原创存在,转载时请注明出处,还有文中错误的地方请指正!谢谢合作. 一:点亮lcd in kernel 其实点亮lcd很简单必须保证以后几个步骤正确: ...

  5. 高通平台tp驱动(一)

    在网上对于gsl680驱动的剖析文章很多,本人自己也负责过tp驱动的移植,但是对于内部tp驱动的构造从未了解过,觉得有必要对tp驱动进行一个梳理.以下仅为本人观点,如有不对欢迎各路大佬指点,目的主要是 ...

  6. 高通平台tp驱动(二)

    上一篇大概讲了一下gsl680驱动的初始化部分,这部分是比较基础的,下面就开始第二部分:gsl680驱动的前期工作 首先会对一开始声明的input_dev结构体进行一个申请操作,但是这部分是与Inpu ...

  7. 高通平台msm8909 LK 实现LCD 兼容

    前段时间小米出现红米note2 换屏门,现在我们公司也要上演了:有两个供应商提供不同IC 的LCD panel. 软件区分的办法是读取LCD IC 的ID 寄存器,下面解析高通平台LK中LCD兼容的过 ...

  8. linux v4l2 示例程序,linux驱动由浅入深系列:camera驱动之二(基于高通平台的V4L2结构及代码分析)...

    在上一篇文章中介绍了camera的基础知识和相关概念,我们一起来了解一下驱动相关的代码结构.本文以高通+android平台为示例,首先看一下整体框图: 这张图是从整体上来看的 1,图中最下面的是ker ...

  9. linux驱动由浅入深系列:camera驱动之二(基于高通平台的V4L2结构及代码分析)

    在上一篇文章中介绍了camera的基础知识和相关概念,我们一起来了解一下驱动相关的代码结构.本文以高通+android平台为示例,首先看一下整体框图: 这张图是从整体上来看的 1,图中最下面的是ker ...

最新文章

  1. 求二进制中1的个数(编程之美2.1)
  2. ztree树封装 json实例_小白7天入门PHP Web开发 - Day 6[下](综合)个人博客实例讲解用户数据的存储...
  3. SAP Basis DEBUG改表数据权限角色设计
  4. 自学python有用吗-文科专业自学python有用吗?
  5. 蓝桥杯C++ AB组辅导课 第一讲 递归与递推 Acwing
  6. 华为首家欧洲生产厂选择落户法国小镇 将为4G/5G基站生产零部件
  7. 栈的典型应用 —— 逆序输出
  8. 一秒钟世界上会发生多少事_一秒之中会发生什么
  9. 用Vim查看和编辑二进制文件
  10. ai人工智能让女神_人工智能可能只会让你兴奋不已
  11. MSP430FR5994LannchPad开发笔记之一:CCS+DriverLib建立工程模板,及使用eZ-FET Debug进行printf
  12. Nginx反向代理后无法获取header带下划线的头信息
  13. 【Excel】数据透视表—数据透视表布局(显示)
  14. 跨部门的高效沟通与协作
  15. SQL底层执行原理详解
  16. ADIS16465姿态解算+卡尔曼滤波代码
  17. EasyExcel项目实例
  18. 最简单的JAVA解法-----无聊的逗
  19. R语言绘制美国疫情地图(可交互式)
  20. web2.0网站成功三要素

热门文章

  1. linux终端 php清屏,Linux 清屏命令
  2. 在linux下安卸载tomcat,Linux下卸载与安装配置Tomcat
  3. 新的一年,Android开发程序员应该怎样突出重围?
  4. [BZOJ5267]特工
  5. 网络规划.1.扩展.IP地址规划
  6. 「小程序JAVA实战」 小程序远程调试(九)
  7. ICMP protocal
  8. WPF空心圆角combox
  9. 我的世界Minecraft1.12.2模组开发(10)生物实体
  10. 基于神经网络(RBF)补偿的双关节机械手臂自适应控制