I'm trying to port the mipi dsi interface and bridge the signal to HDMI output.
There are several resoultions are required, such as 1080P, 720P and 800x600. So I setup the lcdif VIDEO_PLL timing for supporting these resolution.
&lcdif {
status = "okay";
assigned-clock-rates = <1039500000>, <148444444>, <400000000>, <133333333>;
};
And I got the resolutions what I wanted showing in the modetest.
But I could only display 1280x720, 1024x768 on screen, and 1080P, 800x600 didn't show anything on screen while testing.
I test the resolution of displaying: modetest -s 35:<resolution>
The dsi node in kernel device tree is as below:
&dsi {
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
dsi-lanes = <4>;
/*
* 0: burst mode
* 1: non-burst mode with sync event
* 2: non-burst mode with sync pulse
*/
video-mode = <2>;
ports {
port@1 {
reg = <1>;
dsi_to_lt9611: endpoint {
remote-endpoint = <<9611_to_dsi>;
};
};
};
};
The Video mode and dsi lane number are set in the LT9611UXC driver.
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE |
MIPI_DSI_MODE_VIDEO_HSE;
Ths BSP I'm using is imx-6.6.3 with a DSI to HDMI bridge named LT9611UXC.
Please help me figure this problem out, thanks in advance.
Hi @AlanWen
1. Please check return value of lt9611uxc_bridge_mode_valid.
2. Get the serial output from lt9611uxc chip, the serial log is very helpful.
Best Regards
Zhiming
I print out the valid mode from LT9611UXC driver as below
static struct lt9611uxc_mode *lt9611uxc_find_mode(const struct drm_display_mode *mode)
{
int i;
for (i = 0; i < ARRAY_SIZE(lt9611uxc_modes); i++) {
if (lt9611uxc_modes[i].hdisplay == mode->hdisplay &&
lt9611uxc_modes[i].vdisplay == mode->vdisplay &&
lt9611uxc_modes[i].vrefresh == drm_mode_vrefresh(mode)) {
printk("Got Mode LT9611UXC H: %d, V: %d, FPS: %d\n", mode->hdisplay, mode->vdisplay, lt9611uxc_modes[i].vrefresh);
return <9611uxc_modes[i];
}
}
return NULL;
}
And it shows lots of modes in dmesg, but there are only few modes can be use in the modetest.
Hi @AlanWen
The mode supported by LT9611UXC is limited by it's firmware not i.MX93. You can refer below commit message. You may need contact Lontium to check logs from firmware.
The lt9611uxc firmware supports only a fixed set of modes. Thus lt9611uxc driver has to check if the mode is supported by the fw. Unsupported modes would result in HDMI display not receiving valid signal.
Best Regards
Zhiming