MDP mobile dispaly processor
LCD设计驱动文件:
mdp3_ctrl.c
mdp3.c
mdss_dsi.c
mdss_fb.c
LCD的设备树
@msm8909-mdss.dtsi
&soc {
mdss_mdp: qcom,mdss_mdp@1a00000 {
compatible = "qcom,mdss_mdp3";
reg = <0x1a00000 0x100000>,
<0x1ab0000 0x3000>;
reg-names = "mdp_phys", "vbif_phys";
interrupts = <0 72 0>;
vdd-supply = <&gdsc_mdss>;
clocks = <&clock_gcc clk_gcc_mdss_ahb_clk>,
<&clock_gcc clk_gcc_mdss_axi_clk>,
<&clock_gcc clk_mdp_clk_src>,
<&clock_gcc clk_gcc_mdss_mdp_clk>,
<&clock_gcc clk_gcc_mdss_vsync_clk>;
clock-names = "iface_clk", "bus_clk", "core_clk_src",
"core_clk", "vsync_clk";
mdss_fb0: qcom,mdss_fb_primary {
cell-index = <0>;
compatible = "qcom,mdss-fb";
qcom,cont-splash-memory {
linux,contiguous-region = <&cont_splash_mem>;
};
};
mdss_dsi0: qcom,mdss_dsi_ctrl0@1ac8000 {
compatible = "qcom,mdss-dsi-ctrl";
label = "MDSS DSI CTRL->0";
cell-index = <0>;
reg = <0x1ac8000 0x25c>,
<0x1ac8500 0x280>,
<0x1ac8780 0x30>,
<0x193e000 0x30>;
reg-names = "dsi_ctrl", "dsi_phy",
"dsi_phy_regulator", "mmss_misc_phys";
qcom,dsi-irq-line;
interrupts = <0 80 0>;
qcom,mdss-mdp = <&mdss_mdp>;
vdd-supply = <&pm8909_l17>;
vddio-supply = <&pm8909_l6>;
}
}
@dsi-panel-auo-cx-qvga-cmd.dtsi
&mdss_mdp {
dsi_auo_cx_qvga_cmd: qcom,mdss_dsi_auo_cx_qvga_cmd {
qcom,mdss-dsi-panel-name = "auo cx qvga cmd mode dsi panel";
qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
qcom,mdss-dsi-panel-type = "dsi_cmd_mode";
qcom,mdss-dsi-panel-destination = "display_1";
qcom,mdss-dsi-panel-framerate = <60>;
qcom,mdss-dsi-virtual-channel-id = <0>;
qcom,mdss-dsi-stream = <0>;
qcom,mdss-dsi-panel-width = <320>;
qcom,mdss-dsi-panel-height = <360>;
qcom,mdss-dsi-h-front-porch = <140>;
qcom,mdss-dsi-h-back-porch = <164>;
qcom,mdss-dsi-h-pulse-width = <8>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <1>;
qcom,mdss-dsi-v-front-porch = <6>;
qcom,mdss-dsi-v-pulse-width = <1>;
qcom,mdss-dsi-h-left-border = <0>;
qcom,mdss-dsi-h-right-border = <0>;
qcom,mdss-dsi-v-top-border = <0>;
qcom,mdss-dsi-v-bottom-border = <0>;
qcom,mdss-dsi-bpp = <24>;
qcom,mdss-dsi-color-order = "rgb_swap_rgb";
qcom,mdss-dsi-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-pixel-packing = "tight";
qcom,mdss-dsi-pixel-alignment = <0>;
qcom,mdss-dsi-on-command = [29 01 00 00 00 00 02 FE 04
29 01 00 00 00 00 02 00 dc
29 01 00 00 00 00 02 01 00
29 01 00 00 10 00 02 02 02
高通平台LCD驱动主要分为三部分:
- MDP驱动
- DSI控制器驱动
- FrameBuffer驱动
执行probe的先后顺序:
MDP probe -> DSI probe -> FB probe