本人之前一直做的Linux,现在在学习安卓驱动。现在学习用的高通msm8953的芯片  看dtsi文件中没有找到对应的屏幕驱动
主要是一些专业的名词不是很懂  网上找不到对应的资料。现在我把我在dtsi里看到的 贴出来 希望大神们能帮我理一下找屏幕驱动的流程
如果有相关的文档推荐 不胜感激!mdss_mdp: qcom,mdss_mdp@1a00000 {
compatible = "qcom,mdss_mdp";
reg = <0x01a00000 0x90000>,
      <0x01ab0000 0x1040>;
reg-names = "mdp_phys", "vbif_phys";
interrupts = <0 72 0>;
vdd-supply = <&gdsc_mdss>; /* Bus Scale Settings */
qcom,msm-bus,name = "mdss_mdp";
qcom,msm-bus,num-cases = <3>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<22 512 0 0>,
<22 512 0 6400000>,
<22 512 0 6400000>;
                .......
}mdss_dsi: qcom,mdss_dsi@0 {
compatible = "qcom,mdss-dsi";
hw-config = "single_dsi";
#address-cells = <1>;
#size-cells = <1>;
gdsc-supply = <&gdsc_mdss>;
vdda-supply = <&pm8953_s3>;
vcca-supply = <&pm8953_l3>; /* Bus Scale Settings */
qcom,msm-bus,name = "mdss_dsi";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<22 512 0 0>,
<22 512 0 1000>;
               .....
               
                mdss_dsi0: qcom,mdss_dsi_ctrl0@1a94000 {
compatible = "qcom,mdss-dsi-ctrl";
label = "MDSS DSI CTRL->0";
cell-index = <0>;
reg = <0x1a94000 0x400>,
<0x1a94400 0x580>,
<0x193e000 0x30>;
reg-names = "dsi_ctrl", "dsi_phy", "mmss_misc_phys"; qcom,timing-db-mode;
qcom,mdss-mdp = <&mdss_mdp>;
vdd-supply = <&pm8953_l17>;
vddio-supply = <&pm8953_l6>;
                        .......
                 }
                ......       qcom,mdss_wb_panel {
compatible = "qcom,mdss_wb";
qcom,mdss_pan_res = <640 640>;
qcom,mdss_pan_bpp = <24>;
qcom,mdss-fb-map = <&mdss_fb1>;
};
}
&mdss_dsi0 {
/delete-property/ lab-supply; //lab-supply = <&lcdb_ldo_vreg>;
/delete-property/ ibb-supply; //ibb-supply = <&lcdb_ncp_vreg>;
// /delete-property/ vdd-supply;
qcom,regulator-ldo-mode;/*zhuyifeng fixme*/
//update by zhushiqiang for bug23036 20190104 begin
qcom,dsi-pref-prim-pan = <&dsi_cpt_claa053wd41_3xb_ili9881_720p_video>;
//update by zhushiqiang for bug23036 20190104 end
/*qcom,platform-bklight-en-gpio = <&pm8953_gpios 4 0>;*/
pinctrl-names = "mdss_default", "mdss_sleep";
pinctrl-0 = <&mdss_dsi_active &mdss_te_active>;
pinctrl-1 = <&mdss_dsi_suspend &mdss_te_suspend>;
qcom,platform-te-gpio = <&tlmm 24 0>;
qcom,platform-reset-gpio = <&tlmm 61 0>;
};
这是我在几个dtsi里面分别找到的感觉相关的信息qcom,dsi-pref-prim-pan = <&dsi_cpt_claa053wd41_3xb_ili9881_720p_video>;从这句话中可以看出这个屏幕的型号应该是ili9881 我也能找到对应9881的dtis(基本都是屏参就不发出来了)但是我在内核中找不到对应ili9881的驱动,请大神们     帮忙解释一下这几个名词是什么意思以及对应的关系是啥
mdss_dsi   mdss_dsi0  mdss_mdp mdss_wb_panel顺便 帮忙理一下找屏幕驱动的流程。
不胜感激!

解决方案 »

  1.   

    1、你找的dts是正确的,显示驱动的代码在mdss_dsi_panel.c,你可以看一下drivers/video/fbdev/msm/目录下面的文件,所有显示相关的代码都在这里
    2、mdss_dsi这是node指的是msm8953的dsi接口,8953平台有两个dsi接口,mdss_dsi0就表示其中一个dsi接口。
    3、mdss_mdp指的是显示处理器,你可以理解为处理显示数据的CPU,实现图像旋转、叠加等功能。
    4、mdss_wb_panel针对fb1(相对于fb0)的配置,可以理解为第二个虚拟的屏
    5、相关显示驱动的流程你可以参考如下文档:
    80-NP925-1SC Android 显示屏调试指南
    80-P3255-23 Display Quick Start