任何想要使用该解决方案的人都应从 Lontium 获取参考设计和固件。
以下是 LT9611UXC 演示板的框图。
由于我们的EVK的MIPI端口可以提供5V、3V3和1V8电压,因此我们可以从参考设计中移除无用的DC-DC芯片。
BD_LT9611UXC.png
下面是 LT9611UXC 演示板。
将固件下载到 LT9611UXC 中。在 Linux 端,我们需要驱动 MIPI 以输出 1080P 标准时序的信号。
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
index 1732b5c72380..c6a829be541f 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
@@ -696,13 +716,17 @@ &ldb_phy {
&mipi_dsi {
status = "okay";
+ panel@0{
+ compatible = "nxp,lt9611uxc";
+ reg = <0>;
+ status = "okay";
};
};
&snvs_pwrkey {
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 4f78bbf63f33..90d99f12515b 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -4997,6 +4997,34 @@ struct panel_desc_dsi {
unsigned int lanes;
};
+static const struct drm_display_mode lt9611_panel_mode = {
+ .clock = 148500,
+ .hdisplay = 1920,
+ .hsync_start = 1920 + 88,
+ .hsync_end = 1920 + 88 + 44,
+ .htotal = 1920 + 88 + 44 + 148,
+ .vdisplay = 1080,
+ .vsync_start = 1080 + 4,
+ .vsync_end = 1080 + 4 + 5,
+ .vtotal = 1080 + 4 + 5 + 36,
+};
+
+static const struct panel_desc_dsi lt9611_panel = {
+ .desc = {
+ .modes = <9611_panel_mode,
+ .num_modes = 1,
+ .bpc = 8,
+ .size = {
+ .width = 62,
+ .height = 110,
+ },
+ .connector_type = DRM_MODE_CONNECTOR_DSI,
+ },
+ .flags = MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_NO_EOT_PACKET | MIPI_DSI_MODE_VIDEO_SYNC_PULSE,
+ .format = MIPI_DSI_FMT_RGB888,
+ .lanes = 4,
+};
+
static const struct drm_display_mode auo_b080uan01_mode = {
.clock = 154500,
.hdisplay = 1200,
@@ -5201,6 +5229,9 @@ static const struct panel_desc_dsi osd101t2045_53ts = {
static const struct of_device_id dsi_of_match[] = {
{
+ .compatible = "nxp,lt9611uxc",
+ .data = <9611_panel,
+ },{
.compatible = "auo,b080uan01",
.data = &auo_b080uan01
}, {