高通平台lcm调试


高通平台*

**
1.在底层源码拿来的时候通常先点亮(让屏幕能亮)才能继续后续其它工作
需要准备:需要调试屏幕的spac以及用户手册,国内目前主要以汇顶的产品
为主.需要向供应商拿到屏幕的一些文档手册.
2.代码路径device/qcom/common/display/tools
在这个路径下存放谷歌默认xml文件以及parser.pl脚本.
新建一个.xml文件,命名格式上模仿默认即可(注意大小写).
xml文件根据拿到的spec文件进行修改,spec文件中主要都是一些寄存器,
以及一些proc值,对应填好即可.最重要是时序上的问题,这里需要用到高通的开发者文档,需要上高通官网进行下载使用.

   <GCDB>
 33   <Version>"1.0"</Version>
 34   <PanelId>nt35596-1080p-video</PanelId>
 35   <PanelH>nt35596_1080p_video</PanelH>
 36   <PanelEntry>
 37 
 38     <!-- Panel configuration -->
 39     <PanelName>"nt35596 1080p video mode dsi panel"</PanelName>
 40     <PanelController>"mdss_dsi0"</PanelController>
 41     <PanelInterface>10</PanelInterface>
 42     <PanelType>0</PanelType>
 43     <PanelDestination>"DISPLAY_1"</PanelDestination>
 44     <PanelOrientation>0</PanelOrientation>
 45     <PanelFrameRate>60</PanelFrameRate>
 46     <PanelChannelId>0</PanelChannelId>
 47     <DSIVirtualChannelId>0</DSIVirtualChannelId>
 48     <PanelBroadcastMode>0</PanelBroadcastMode>
 49     <!-- Optional Panel configuration -->
 50     <!--BitClockFrequency>0</BitClockFrequency -->
 51     <DSIStream>0</DSIStream>
 52     <PanelCompatible>"qcom,mdss-dsi-panel"</PanelCompatible>
 53     <InterleaveMode>0</InterleaveMode>
 54 
 55     <!-- Panel Resolution -->
 56     <PanelWidth>1080</PanelWidth>
 57     <PanelHeight>1920</PanelHeight>
 58     <HFrontPorch>32</HFrontPorch>
 59     <HBackPorch>32</HBackPorch>
 60     <HPulseWidth>8</HPulseWidth>
 61     <HSyncSkew>0</HSyncSkew>
 62     <VBackPorch>18</VBackPorch>
 63     <VFrontPorch>2</VFrontPorch>
 64     <VPulseWidth>2</VPulseWidth>
 65     <HLeftBorder>0</HLeftBorder>
 66     <HRightBorder>0</HRightBorder>
 67     <VTopBorder>0</VTopBorder>
 68     <VBottomBorder>0</VBottomBorder>
 69     <!-- Optional Panel resolution configuration -->
 70     <!--HActiveRes>0</HActiveRes>
 71     <VActiveRes>100</VActiveRes>
 72     <InvertDataPolarity>0</InvertDataPolarity>
 73     <InvertVsyncPolarity>0</InvertVsyncPolarity>
 74     <InvertHsyncPolarity>0</InvertHsyncPolarity -->
 75 
 76     <!-- Panel Color Information -->
 77     <ColorFormat>24</ColorFormat>
 78     <ColorOrder>0</ColorOrder>
 79     <UnderFlowColor>0xff</UnderFlowColor>                                                           
 80     <BorderColor>0</BorderColor>
 81 
 82     <!-- Panel Command information -->
 83     <OnCommand>
 //这里需要填入拿到的寄存器列表
 </OnCommand>
603     <OffCommand>"0x05, 0x01, 0x00, 0x00, 0x32, 0x00, 0x02, 0x28, 0x00,
604                     0x05, 0x01, 0x00, 0x00, 0x78, 0x00, 0x02, 0x10, 0x00"</OffCommand>
605     <OnCommandState>0</OnCommandState>
606     <OffCommandState>1</OffCommandState>
607 
608     <!-- Video mode panel information -->
609     <HSyncPulse>1</HSyncPulse>
610     <HFPPowerMode>0</HFPPowerMode>
611     <HBPPowerMode>0</HBPPowerMode>
612     <HSAPowerMode>0</HSAPowerMode>
613     <BLLPEOFPowerMode>1</BLLPEOFPowerMode>
614     <BLLPPowerMode>1</BLLPPowerMode>
615     <TrafficMode>2</TrafficMode>
616     <DMADelayAfterVsync>0</DMADelayAfterVsync>
617     <BLLPEOFPower>0x9</BLLPEOFPower>
618 
619     <!-- Lane Configuration -->
620     <DSILanes>4</DSILanes>
621     <DSILaneMap>0</DSILaneMap>
622     <Lane0State>1</Lane0State>
623     <Lane1State>1</Lane1State>
624     <Lane2State>1</Lane2State>
625     <Lane3State>1</Lane3State>
626 
627     <!-- Panel Timing -->
628     <PanelTimings>"0xf9, 0x3d, 0x34, 0x00, 0x58, 0x4d, 0x36, 0x3f, 0x53, 0x03, 0x04, 0x00"</PanelTim
629     <DSIMDPTrigger>0</DSIMDPTrigger>
630     <DSIDMATrigger>4</DSIDMATrigger>
631     <TClkPost>0x1e</TClkPost>
632     <TClkPre>0x38</TClkPre>
633 
634     <!-- Backlight -->
635     <BLInterfaceType>1</BLInterfaceType>
636     <BLMinLevel>1</BLMinLevel>
637     <BLMaxLevel>4095</BLMaxLevel>
638     <BLStep>100</BLStep>
639     <BLPMICModel>"PMIC_8941"</BLPMICModel>
640     <BLPMICControlType>1</BLPMICControlType>
641 
642     <!-- Panel Reset Sequence -->
643     <ResetSequence>
644         <PinState1>1</PinState1>
645         <PulseWidth1>20</PulseWidth1>
646         <PinState2>0</PinState2>
647         <PulseWidth2>2</PulseWidth2>
648         <PinState3>1</PinState3>
649         <PulseWidth3>20</PulseWidth3>                                                               
650         <EnableBit>2</EnableBit>
651     </ResetSequence>
652 
653   </PanelEntry>
654 </GCDB>

大致代码如上,其中能看到分辨率1920*1080,以及设置屏幕刷新率60hz
最重要的时几个H或W开头的proch(前后沿)值,控制屏幕偏移的功能.通常不会偏移
如果屏幕发生偏移再去一点一点修改.至于值的大小在datesheet中是可以找到最大最小范围的.
调试也会出现不上问题,例如x.y轴方向上的反转,屏幕波纹等待问题.反转的化DT文件中也能找到控制
方向的寄存器,屏幕显示时通过高频率扫描是实现的,既有控制速度的寄存器也有控制方向的寄存器
可以自己去看看文档.
.xml准备好以后使用脚本命令perl parser.pl .xml panel生成.h 和. dtsi文件 用生成的.h文件添加到bootable/bootloader/lk/dev/gcdb/display/include下面

修改bootable/bootloader/lk/target/platform/oem_panel.c
这个里面不详细说,初学进行替换原来的即可.
之后如果需要做兼容也在这里进行兼容.

与lk差不多把生成的dts加入让其解析 在kernel/msm-4xx/arch/arm64/boot/dts/qcom/xx-mdss-panels.dtsi下
注意如下地方

static struct panel_config xxxx_1080p_video_panel_data = {
	"qcom,mdss_dsi_xxxx_1080p_video", "dsi:0:", "qcom,mdss-dsi-panel",
	10, 0, "DISPLAY_1", 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL
};// 生成的可能会上两个值补上0,NULL可以看下结构体成员

static struct lane_configuration ili9881c_1080p_video_lane_config = {
	4, 0, 1, 1, 1, 1, 0
};//与上相同少个值加上去


注意上电部分
找到kernel/msm-3.19/arch/arm/boot/dts/qcom文件夹下类似文件
注意自己设备的平台
sdmxxx-v2.1-4k-panel-qrd-overlay.dts
&dsi_xxx_1080p_video {
	qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
 
	qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
	//qcom,mdss-dsi-bl-pmic-pwm-frequency = <100>;
	//pwms = <&pmi8998_pwm_1 0 0>;
	//qcom,mdss-dsi-bl-pmic-bank-select = <0>;
	//qcom,mdss-dsi-pwm-gpio = <&pmi8998_gpios 2 0>;
	qcom,mdss-dsi-bl-min-level = <1>;
	qcom,mdss-dsi-bl-max-level = <4095>;
	qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
	qcom,panel-mode-gpio = <&tlmm 52 0>;
	qcom,platform-te-gpio = <&tlmm 10 0>;
	qcom,platform-reset-gpio = <&tlmm 6 0>;
};//copy 后做相应更改
 
&dsi_sharp_4k_dsc_video_display {
	/delete-property/ qcom,dsi-display-active;
};
 
&dsi_xxxx_1080p_video {
	qcom,dsi-display-active;
}; //删除已有的ic加载/delete-property/ qcom,dsi-display-active;

大致就是这样.有许多其它出现过的调试问题,暂时本篇中不提.如果有问题可留言,谢谢

你可能感兴趣的:(高通平台lcm调试)