移植-显示
1. MIPI 转 eDP
以 LT8911EXB 桥接芯片为例。
1.1 添加驱动
将驱动添加到内核目录:
src/kernel-5.15/kernel_platform/msm-kernel/drivers/misc/lt8911exb修改 Kconfig 和 Makefile 以包含到内核编译中:
# Kconfig
source "drivers/misc/lt8911exb/Kconfig"
# Makefile
+obj-y += lt8911exb/最终编译产物位于 rootfs:
build-qti-distro-ubuntu-fullstack-debug/tmp-glibc/work/kalama-oe-linux/qti-ubuntu-robotics-image/1.0-r0/rootfs/lib/modules/5.15.189-qki-consolidate-android13-8-g6a323a18c8d8-dirty/lt8911exb.ko1.2 修改设备树
添加 Panel 配置到显示设备树目录:
src/display/vendor/qcom/proprietary/display-devicetree/display/dsi-panel-lt8911-1080p-edp-video.dtsi在 kalama-sde-display-common.dtsi 中引用面板设备树:
#include "dsi-panel-lt8911-1080p-edp-video.dtsi"在 kalama-sde-display-rb5-gen2.dtsi 中使能 sde_dsi1,配置供电、面板、背光等参数:
&dsi_lt8911_edp_1080p_video {
qcom,mdss-dsi-sec-bl-pmic-control-type = "bl_ctrl_pwm";
pwms = <&pm8550_pwm_2 0 50000>;
qcom,bl-pmic-pwm-period-usecs = <200>;
qcom,mdss-dsi-bl-min-level = <128>;
qcom,mdss-dsi-bl-max-level = <255>;
qcom,mdss-brightness-max-level = <255>;
qcom,platform-bklight-en-gpio = <&tlmm 49 0>;
};
&mdss_mdp {
connectors = <&sde_dsi &sde_dsi1 &smmu_sde_unsec &sde_rscc &sde_wb1 &sde_dp>;
};
&sde_dsi1 {
/delete-property/ qcom,platform-te-gpio;
/delete-property/ qcom,panel-te-source;
status = "ok";
qcom,dsi-default-panel = <&dsi_lt8911_edp_1080p_video>;
pinctrl-names = "pwm_pin", "panel_active", "panel_suspend";
pinctrl-0 = <&pwm_gpio09_default>;
pinctrl-1 = <&edp_active &edp_bl_active>;
pinctrl-2 = <&edp_suspend &edp_bl_suspend>;
};添加 LT8911EXB 的设备树节点:
&qupv3_hub_i2c2 {
lt8911exb: lt8911exb@29 {
compatible = "lontium,lt8911exb";
reg = <0x29>;
power-gpios = <&tlmm 85 0>;
};
};1.3 使用 modetest 测试
检查 DSI-2 状态:
bash
sh-5.1# modetest -M msm_drm
73 0 disconnected DSI-2 0x0 1 71
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 1920x1080x60vid 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: ; type: preferred在 DSI-2 上进行显示测试,观察屏幕是否出现彩条:
bash
modetest -M msm_drm -s 73:1920x1080x60vid2. MIPI
以 GM8775C 面板为例。
2.1 修改设备树
添加 Panel 配置到显示设备树目录:
src/display/vendor/qcom/proprietary/display-devicetree/display/dsi-panel-gm8775c-1080p-video.dtsi在 kalama-sde-display-common.dtsi 中引用面板设备树:
#include "dsi-panel-gm8775c-1080p-video.dtsi"在 kalama-sde-display-rb5-gen2.dtsi 中使能 sde_dsi,配置供电、面板、背光等参数:
&dsi_gm8775c_1080p_video {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,5v-boost-gpio = <&tlmm 69 0>;
qcom,platform-reset-gpio = <&tlmm 68 0>;
qcom,platform-bklight-en-gpio = <&tlmm 60 0>;
qcom,mdss-dsi-mode-sel-gpio-state = "high";
qcom,panel-mode-gpio = <&tlmm 61 0>;
};
&mdss_mdp {
connectors = <&sde_dsi &sde_dsi1 &smmu_sde_unsec &sde_rscc &sde_wb1 &sde_dp>;
};
&sde_dsi {
/delete-property/ qcom,platform-te-gpio;
/delete-property/ qcom,panel-te-source;
pinctrl-names = "panel_active", "panel_suspend";
pinctrl-0 = <&sde_dsi_active>;
pinctrl-1 = <&sde_dsi_suspend>;
qcom,dsi-default-panel = <&dsi_gm8775c_1080p_video>;
};