首先要准备以下东西:屏IC 规格书,初始化代码,硬件原理图
屏IC 规格书—>获得时序等数据
初始化代码 —>获得初始化屏幕ic的命令,用于编写屏的.h文件(lk)和.dtsi文件(kernel)
硬件原理图 —>获得打开背光、reset等有关电源的引脚,在代码中拉高拉低
涉及到的文件是:
一、Lk部分:在Z:\G0335D\bootable\bootloader\lk目录下:
dev/gcdb/display/include/panel_jdi_gree_1080p_video.h
target/msm8996/oem_panel.c
target/msm8996/target_display.c
二、kernel部分:在G03X5/kernel/msm-3.18目录下:
arch/arm/boot/dts/qcom/dsi-panel-jdi-gree-1080p-video.dtsi
arch/arm/boot/dts/qcom/msm8996-mdss-panels.dtsi
arch/arm/boot/dts/qcom/msm8996-regulator.dtsi
arch/arm/boot/dts/qcom/msm8996-mtp.dtsi
arch/arm64/configs/msm_defconfig
drivers/misc/Kconfig
drivers/video/msm/mdss/mdss_dsi.h
drivers/video/msm/mdss/mdss_dsi.c
drivers/video/msm/mdss/mdss_dsi_panel.c
目录
一、Lk部分:在Z:\G0335D\bootable\bootloader\lk目录下:
1、分析:dev/gcdb/display/include/panel_jdi_gree_1080p_video.h
2、分析:bootable/bootloader/lk/target/msm8996/oem_panel.c
3、分析:bootable/bootloader/lk/target/msm8996/target_display.c
二、kernel部分:在G03X5/kernel/msm-3.18目录下:
2、arch/arm/boot/dts/qcom/msm8996-mdss-panels.dtsi
3、arch/arm/boot/dts/qcom/msm8996-mtp.dtsi
4、arch/arm/boot/dts/qcom/msm8996-regulator.dtsi
5、drivers/video/msm/mdss/mdss_dsi.c
6、drivers/video/msm/mdss/mdss_dsi_panel.c
6、drivers/video/msm/mdss/mdss_dsi_panel.c
7、arch/arm64/configs/msm_defconfig
分别讲解:
一、Lk部分:在Z:\G0335D\bootable\bootloader\lk目录下:
dev/gcdb/display/include/panel_jdi_gree_1080p_video.h
target/msm8996/oem_panel.c
target/msm8996/target_display.c
1、分析:dev/gcdb/display/include/panel_jdi_gree_1080p_video.h
主要是配置面板Panel resolution、Panel configuration、Panel Command information、Panel Timing。作用:点亮屏幕
从device\qcom\common\display\tools下找到panel-xxxx.xml文件里面包含主要有9个部分。
xml文件每个配置具体含义可以查看高通的文档。可以知道代码时序中每一个值的具体含义,
Panel.h中可以找到其结构体
参考供应商提供的IC规格书:A531_TD4310_Register_Setting_Seqence_for_customer_20170810.pdf
1)
以上表格说明的是Panel resolution
面板宽度(qcom,mdss-dsi-panel-width,HAdr)为1080
面板高度(qcom,mdss-dsi-panel-height,VAdr)为2160
水平前沿值(qcom,mdss-dsi-h-front-porch,HFP)为60
水平后沿值(qcom,mdss-dsi-h-back-porch,HBP)为30
水平脉冲宽度(qcom,mdss-dsi-h-pulse-width,Hsync)为