Currently we are trying to setup a LCD display that is connected over MIPI DSI to the Jetson.
The display is a 800x1280 RGB display. The controller on the display is a JD9365 LCD driver.
We have setup the timing of the display according to the manufacturer settings (see snippets below).
Currently the display only shows rubbish. When we look with a scope to the MIPI signals, it does seem more or less correct.
Still there are a few questions.
-
Using the dts settings below, we expect to see a RGB888 signal for the data, but we don’t find the 0xE3 MIPI command on MIPI lane0, with the settings below, is it correct that data is sent as RGB888
-
What does the nvidia,h-ref-to-sync and nvidia,v-ref-to-sync mean, I can’t find this value in the documentation.
display-timings {
800x1280-32 {
clock-frequency = <70794000>;
hactive = <800>;
vactive = <1280>;
hfront-porch = <40>;
hback-porch = <40>;
hsync-len = <20>;
vfront-porch = <16>;
vback-porch = <6>;
vsync-len = <9>;
nvidia,h-ref-to-sync = <9>;
nvidia,v-ref-to-sync = <1>;
};
};
Also the init sequence for the display is configured in:
nvidia,dsi-init-cmd =
<TEGRA_DSI_PACKET_CMD DSI_DCS_WRITE_1_PARAM 0xE0 0x00 0x00>,
<TEGRA_DSI_PACKET_CMD DSI_DCS_WRITE_1_PARAM 0xE1 0x93 0x00>,
<TEGRA_DSI_PACKET_CMD DSI_DCS_WRITE_1_PARAM 0xE2 0x65 0x00>,
<TEGRA_DSI_PACKET_CMD DSI_DCS_WRITE_1_PARAM 0xE3 0xF8 0x00>,
...;
nvidia,dsi-n-init-cmd = <223>;
nvidia,dsi-pkt-seq =
<CMD_VS LEN_SHORT CMD_BLNK LEN_HSYNC CMD_HE LEN_SHORT PKT_LP LINE_STOP>,
<CMD_VE LEN_SHORT CMD_BLNK LEN_HSYNC CMD_HE LEN_SHORT PKT_LP LINE_STOP>,
<CMD_HS LEN_SHORT CMD_BLNK LEN_HSYNC CMD_HE LEN_SHORT PKT_LP LINE_STOP>,
<CMD_HS LEN_SHORT CMD_BLNK LEN_HSYNC CMD_HE LEN_SHORT CMD_BLNK LEN_HBP CMD_RGB_24BPP LEN_HACTIVE3 CMD_BLNK LEN_HFP PKT_LP LINE_STOP>,
<CMD_HS LEN_SHORT CMD_BLNK LEN_HSYNC CMD_HE LEN_SHORT PKT_LP LINE_STOP>,
<CMD_HS LEN_SHORT CMD_BLNK LEN_HSYNC CMD_HE LEN_SHORT CMD_BLNK LEN_HBP CMD_RGB_24BPP LEN_HACTIVE3 CMD_BLNK LEN_HFP PKT_LP LINE_STOP>;
dsi {
panel-s-wuxga-8-0 {
status = "disabled";
compatible = "s,wuxga-8-0";
nvidia,dsi-instance = <DSI_INSTANCE_0>;
nvidia,dsi-n-data-lanes = <4>;
nvidia,dsi-pixel-format = <TEGRA_DSI_PIXEL_FORMAT_24BIT_P>;
nvidia,dsi-refresh-rate = <60>;
nvidia,dsi-video-data-type = <TEGRA_DSI_VIDEO_TYPE_VIDEO_MODE>;
nvidia,dsi-video-clock-mode = <TEGRA_DSI_VIDEO_CLOCK_CONTINUOUS>; //TEGRA_DSI_VIDEO_CLOCK_TX_ONLY
nvidia,dsi-lp00-pre-panel-wakeup = <TEGRA_DSI_DISABLE>;
/*nvidia,enable-hs-clk-in-lp-mode;*/
nvidia,dsi-video-burst-mode = <TEGRA_DSI_VIDEO_NONE_BURST_MODE>;
nvidia,dsi-controller-vs = <DSI_VS_1>;
nvidia,dsi-virtual-channel = <TEGRA_DSI_VIRTUAL_CHANNEL_0>;
nvidia,dsi-panel-reset = <TEGRA_DSI_ENABLE>;
nvidia,dsi-ulpm-not-support = <TEGRA_DSI_ENABLE>;
nvidia,dsi-suspend-stop-stream-late = <TEGRA_DSI_ENABLE>;
nvidia,dsi-power-saving-suspend = <TEGRA_DSI_DISABLE>;
nvidia,default_color_space = <1>; /*default color profile:adobeRGB*/
};
};