如何在 MIPI-LVDS 桥的 MDSS (MIPI-DSI) 子系统中集成设备驱动程序?

How to integrate device driver in MDSS (MIPI-DSI) subsystem for a MIPI-LVDS bridge?

我们需要将 LVDS 屏幕连接到 APQ8096 平台,因此选择 MIPI-DSI/LVDS 桥接器将 MIPI 总线转换为 LVDS。使用的桥是来自TI的SN65DSI85。

通过他们的论坛,TI提供了内核模块源代码来配置网桥,但是这个代码与OMAP平台的DSS绑定。 https://e2e.ti.com/support/interface/f/138/t/549283

我不熟悉高通设备的 MIPI 和 MDSS,所以我正在寻求将代码集成到 MDSS 子系统(mdss_dsi、mdss_panel 或其他地方)的提示在 Linux 内核中。使用的内核是 3.18.71.

首先,如果SN65DSI85是通过I2C连接到APQ8096,需要写一个i2c驱动来控制SN65DSI85。

TI 应该为此向您提供示例代码。您需要使用显示面板的参数对其进行配置,例如: height,width,bpp,fps, and optional hbp(horizo​​ntal black porch), hfp, vbp, vfp,etc.

一旦 SN65DSI85 配置正确并正常工作,APQ8096 会将其作为 MIPI 面板。

转到高通的网站:“https://createpoint.qti.qualcomm.com/”,找到要显示的文件,如: “80-nu323-3_b_multimedia 驱动程序开发和启动指南 - display.pdf” (APQ8096可能使用不同的文件编号)。

按照文档,输入相同的面板参数,应该可以调出你的面板。

通常,您只需要更改dtsi 文件,例如:

arch/arm/boot/dts/qcom/dsi-panel-xxxxx.dtsi
arch/arm/boot/dts/qcom/common-8096xxxx.dtsi

但是如果你对gpio/power/notification有额外的控制权,你也可以将它们添加到:

drivers/video/msm/mdss/