MIPI LCD屏厂初始化时序转换为 qcom,mdss-dsi-on-command

2023-11-11 06:50

本文主要是介绍MIPI LCD屏厂初始化时序转换为 qcom,mdss-dsi-on-command,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.前言

最近在sdm450、msm8953 Android O 上,调试jd9365da(800x1280)和gc9305v(480x960)两块mipi屏,一个作为主屏,一个作为副屏。厂家各提供了屏的初始化代码,初始化代码需要转换成dcs格式,合到到lk和kernel里。

二.厂商提供格式

总结了一下厂商提供的代码格式,分为以下两种:

1. 厂商提供格式一

DCS_Short_Write_1P(0xE0,0x00);//0 
理解:地址(0xE0)+数据(0x00) 向0xE0写0x00.
DCS_Short_Write_1P(0xE1,0x93);//1
DCS_Short_Write_1P(0xE2,0x65);//2

2.厂商提供格式二

{0xF0, 5,{0x55, 0xAA, 0x52, 0x08, 0x00}},
理解:{地址(0xf0),data个数(5),data(0x55 0xAA 0x52 0x08 0x00)};
{0xF6, 2,{0x5A, 0x87}},
{0xC1, 1,{0x3F}},

三.需要转换格式

以上两种格式,是厂商普遍点屏使用的,怎么转换为以下两种格式?

3.需要的格式一(lk)

static char jd9365da_800p_video_on_cmd0[] = {0x02, 0x00, 0x39, 0xC0,0xE0, 0x00, 0xFF, 0xFF,
};//DCS_Short_Write_1P(0xE0,0x00); 理解://长类型代码
//Pack header 0x02, 0x00, 0x39, 0xC0, (2长度+1类型+1标记=4HDR)
//Data 0x35, 0x00, 0xFF, 0xFF,(1命令addr,写入的data)1.0x02+0x00 之和是dsi 数值写入的个数,第二个一般为0x00 
2.0x39 和 0xc0 ,是data type(23、15、05对应的是80)(29、39对应c0)
3.0x35 0x00 是要写的数值(0X02+0X00),理解:地址(0x35)+数据(0x00),一行不满4个,缺省填写0xffstatic char jd9365da_800p_video_on_cmd1[] = {0x02, 0x00, 0x39, 0xC0,0xE1, 0x93, 0xFF, 0xFF,
};//DCS_Short_Write_1P(0xE1,0x93);static char jd9365da_800p_video_on_cmd2[] = {0x02, 0x00, 0x39, 0xC0,0xE2, 0x65, 0xFF, 0xFF,
};//DCS_Short_Write_1P(0xE2,0x65);static char jd9365da_800p_video_on_cmd216[] = {0x11, 0xFF, 0x05, 0x80	
};//短类型代码
Data (1命令addr 0x11,1写入的data 0xff,1类型 0x05, 1标记0x80)

4.需要的格式二(kernel)

        39 01 00 00 00 00 02 E0 00 39 01 00 00 00 00 02 E1 93 39 01 00 00 00 00 02 E2 6505 01 00 00 78 00 02 11 00理解:
39 01 00 00 00 00 02 E0 00 
解析:
39                                     long write 01 00 00                            结构体其他位 00                         ms00 02                   write-len “E0和00,两个” E0 00             data“地址(E0)+数据(00)”

说明:

1. 以下清楚的描述了qcom,mdss-dsi-on-command 意思,结合dsi_ctrl_hdr结构体,可以理解以上代码。

2.同时dcs type :39、15、05、29 意思如下:

 

三.转换实例

1. 格式一实例

##  DCS_Short_Write_1P(0xE0,0x00);//0##(lk)----->static char jd9365da_800p_video_on_cmd0[] = {0x02, 0x00, 0x39, 0xC0,0xE0, 0x00, 0xFF, 0xFF,};//DCS_Short_Write_1P(0xE0,0x00);static struct mipi_dsi_cmd jd9365da_800p_video_on_command[] = {{0x8, jd9365da_800p_video_on_cmd0, 0x00},##(kernel)----->39 01 00 00 00 00 02 E0 00 

2.格式二实例

## {0xF0, 5,{0x55, 0xAA, 0x52, 0x08, 0x00}},##(lk)---------------》static char gc9503v_480p_video_on_cmd0[] = {0x06, 0x00, 0x39, 0xC0,0xF0, 0x55, 0xAA, 0x52,0x08, 0x00, 0xFF, 0XFF,};// {0xF0, 5,{0x55, 0xAA, 0x52, 0x08, 0x00}},static struct mipi_dsi_cmd gc9503v_480p_video_on_command[] = {{0xC, gc9503v_480p_video_on_cmd0, 0x00},##(kernel)-----------》39 01 00 00 00 00 06 F0 55 AA 52 08 00

                13 0A 00 01 28      关屏
                13 78 00 01 10      睡眠
   
                13 78 00 01 11     唤醒
                13 64 00 01 29    显示

这篇关于MIPI LCD屏厂初始化时序转换为 qcom,mdss-dsi-on-command的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/388288

相关文章

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

PDF 软件如何帮助您编辑、转换和保护文件。

如何找到最好的 PDF 编辑器。 无论您是在为您的企业寻找更高效的 PDF 解决方案,还是尝试组织和编辑主文档,PDF 编辑器都可以在一个地方提供您需要的所有工具。市面上有很多 PDF 编辑器 — 在决定哪个最适合您时,请考虑这些因素。 1. 确定您的 PDF 文档软件需求。 不同的 PDF 文档软件程序可以具有不同的功能,因此在决定哪个是最适合您的 PDF 软件之前,请花点时间评估您的

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };