Dragonbaord 410c / DSI / SN65DSI83EVM / LVDS / LCD; 研究筆記
程序员文章站
2022-05-28 23:25:22
...
BSP = APQ8016_410C_LA.BR.1.2.7-01010-8x16.0_6.0.1_Marsh_Mallo_P2
LCDM = 微雪的7inch Capacitive Touch LCD (D)模塊, 1024x600HJ070NA-13A
SN65DSI83EVM -> LVDS -> LCD硬體線路,請參考前篇,不贅述.
db410c -> DSI -> SN65DSI83EVM硬體線路,如下,用了3-lane
(1)為了要有navigation bar,要改
gedit device/qcom/common/rootdir/etc/init.qcom.early_boot.sh
"msm8916" | "msm8909")
if test -n "$virtual_size"
then
if [ $virtual_size -ge "1080" ]
then
if [ $soc_hwplatform == "SBC" ]
then
...
else
...
fi
elif [ $virtual_size -ge "720" ]
then
setprop ro.sf.lcd_density 160
setprop qemu.hw.mainkeys 0
elif [ $virtual_size -ge "480" ]
then
...
else
...
fi
fi
(2)
Device-tree要改
gedit kernel/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
aaa@qq.com { /* BLSP1 QUP4 */
/* DSI_TO_HDMI I2C configuration */
aaa@qq.com {
compatible = "adv7533";
...
adv7533,disable-gpios = <1>; //Add this line can switch MIPI to HS connector
};
};
&mdss_mdp {
qcom,mdss-pref-prim-intf = "dsi";
dsi_adv7533_720p: qcom,mdss_dsi_adv7533_720p {
...
};
dsi_adv7533_1080p: qcom,mdss_dsi_adv7533_1080p {
...
};
dsi_adv7533_600p: qcom,mdss_dsi_adv7533_600p {
label = "adv7533 720p video mode dsi panel";
qcom,mdss-dsi-panel-name = "dsi_adv7533_600p";
qcom,mdss-dsi-panel-controller = <&mdss_dsi0>;
qcom,mdss-dsi-panel-type = "dsi_video_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 = <1024>;
qcom,mdss-dsi-panel-height = <600>;
qcom,mdss-dsi-h-front-porch = <10>;
qcom,mdss-dsi-h-back-porch = <10>;
qcom,mdss-dsi-h-pulse-width = <300>;
qcom,mdss-dsi-h-sync-skew = <0>;
qcom,mdss-dsi-v-back-porch = <5>;
qcom,mdss-dsi-v-front-porch = <5>;
qcom,mdss-dsi-v-pulse-width = <25>;
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-underflow-color = <0xff>;
qcom,mdss-dsi-border-color = <0>;
qcom,mdss-dsi-on-command = [
//05 01 00 00 c8 00 02 11 00
//05 01 00 00 0a 00 02 29 00
];
qcom,mdss-dsi-off-command = [
//05 01 00 00 00 00 02 28 00
//05 01 00 00 00 00 02 10 00
];
qcom,mdss-dsi-on-command-state = "dsi_lp_mode";
qcom,mdss-dsi-off-command-state = "dsi_hs_mode";
qcom,mdss-dsi-h-sync-pulse = <1>;
qcom,mdss-dsi-traffic-mode = "non_burst_sync_pulse";
qcom,mdss-dsi-bllp-eof-power-mode;
qcom,mdss-dsi-bllp-power-mode;
qcom,mdss-dsi-lane-0-state;
qcom,mdss-dsi-lane-1-state;
qcom,mdss-dsi-lane-2-state;
//qcom,mdss-dsi-panel-timings = [A4 24 18 00 4E 52 1C 28 1C 03 04 00];
//qcom,mdss-dsi-panel-timings = [54 0e 0a 00 2e 30 0e 12 0a 03 04 00];
qcom,mdss-dsi-panel-timings = [D5 32 22 00 60 64 26 36 29 03 04 00];
qcom,mdss-dsi-t-clk-post = <0x03>;
qcom,mdss-dsi-t-clk-pre = <0x20>;
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-dma-trigger = "trigger_sw";
qcom,mdss-dsi-mdp-trigger = "none";
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-reset-sequence = <1 20>, <0 1>, <1 20>;
qcom,mdss-pan-physical-width-dimension = <160>;
qcom,mdss-pan-physical-height-dimension = <90>;
qcom,mdss-dsi-force-clock-lane-hs;
qcom,mdss-dsi-always-on;
};
};
&mdss_dsi0 {
//qcom,dsi-pref-prim-pan = <&dsi_adv7533_1080p>;
//qcom,dsi-pref-prim-pan = <&dsi_adv7533_720p>;
qcom,dsi-pref-prim-pan = <&dsi_adv7533_600p>;
pinctrl-names = "mdss_default", "mdss_sleep";
...
qcom,panel-supply-entries {
...
};
qcom,aaa@qq.com {
...
};
};
};
(3)
SN65DSI83EVM I2C參數.
//PLL off
S 5A 0D 00 P
//sw reset
S 5A 09 01 P
//lvds clk.range
S 5A 0A 09 P
//200/51= 4 => 011 => shl 3 => 3 * 8 = 24 = 18h
S 5A 0B 18 P
//10 set lanes 3 lanes[4,3] => 01 => ,[6,5]=01=20h
S 5A 10 29 P
//12 set cha clk range
//150/5=30=1Eh
S 5A 12 1E P
//18 LVDS signal format
S 5A 18 79 P
//1024=400h
//20 hor.lo
S 5A 20 00 P
//21 hor.hi
S 5A 21 04 P
//28 sync_delay.lo
S 5A 28 00 P
//29 sync_delay.hi
S 5A 29 03 P
//PLL enable
S 5A 0D 01 P