QCOM display panel porting

1. 配置display的dtsi文件:

   @arch/arm/boot/dts/dsi-wukong-panel.dtsi

   &mdss_mdp { //包含两种display,具体用那个可以选择

       dsi_novatek_720p_lgd: somc,novatek_lgd_panel{//第三方的display panel setting

                   qcom,mdss-dsi-panel-name="NT35521 LGD 720p Video Mode panel";

                   ...

       }

      dsi_himax_720p_ctc: somc,himax_ctc_panel{//第三方的display panel setting

                  qcom,mdss-dsi-panel-name="HX8394 CTC 720p Video Mode panel";

                  .....

     }

  }

  @arch/arm/boot/dts/msm8226-mdss.dtsi

   &soc {

       mdss_mdp: qcom,mdss_mdp@fd900000 { //包含mdss_mdp

           compatible = "qcom,mdss_mdp";
           ...

       }

      mdss_dsi0: qcom,mdss_dsi@fd922800 { //包含mdss_dsi0

         compatible = "qcom,mdss-dsi-ctrl";
         ...

      }

   }

  @/kernel/arch/arm/boot/dts/msm8226-wukong.dtsi

   &mdss_dsi0 {
        qcom,dsi-pref-prim-pan = <&dsi_novatek_720p_lgd>; //表示使用的是第一个display panel
   };

  至此,dtsi文件的相互关系分析完了,如果需要porting第三方的display panel, 则只在 &mdss_mdp 添加具体的setting 即可, 然后再 &mdss_dsi0 具体引用


2. 具体.c文件流程分析

  @kernel/drivers/video/msm/mdss/mdss_dsi.c

       mdss_dsi_ctrl_probe --> mdss_dsi_find_panel_of_node --> mdss_dsi_pref_prim_panel //得到对应的display panel node

                                      --> mdss_dsi_panel_init --> mdss_panel_parse_dt  //根据node的setting, 设置display panel的参数

                                      --> dsi_panel_device_register //注册该display panel device

3. 小结: 因为高通高度集成了display的代码,所以一般只需要在dtsi 中修改display panel setting 即可。


你可能感兴趣的:(QCOM display panel porting)