Hi Eema,
we had similar issues with a similar display and we just managed to get it working. In the end, the issue was one wrong byte in the init sequence of the display controller (the byte which sets how many data lanes are used, which was, of course, undocumented in the datasheet). After changing that, it worked like a charm. So I really can recommend reviewing the init sequence carefully…
One other thing I noticed in your panel specification is your clock-frequency (aka pclk) in the display-timings section:
display-timings {
800x1280-32 {
clock-frequency = <57000000>;
hactive = <800>;
vactive = <1280>;
hfront-porch = <90>;
hback-porch = <90>;
hsync-len = <30>;
vfront-porch = <112>;
vback-porch = <15>;
vsync-len = <4>;
nvidia,h-ref-to-sync = <4>;
nvidia,v-ref-to-sync = <1>;
};
};
For the given parameters, it seems too low with the set 57MHz to reach 60Hz framerate. Afaik you should set it to (800+90+90+30)Ă—(1280+112+15+4)Ă—60 = 85506600 Hz.
And I also would not define the reset gpio directly in the panel specification, as this is a platform property.
nvidia,panel-rst-gpio = <&gpio 149 GPIO_ACTIVE_HIGH>;
I’d rather (re)define it in the board dts :
host1x {
/* DSI mapped to tegradc.1 */
dc@54240000 {
status = "okay";
nvidia,dc-or-node = "/host1x/dsi";
nvidia,dc-connector = <&dsi>;
/* DSI supplies */
avdd_dsi_csi-supply = <&max77620_sd3>;
avdd_lcd-supply = <&battery_reg>;
dvdd_lcd-supply = <&battery_reg>;
vdd_lcd_bl_en-supply = <&battery_reg>;
vdd_lcd_bl-supply = <&battery_reg>;
};
dsi {
nvidia,dsi-controller-vs = <DSI_VS_1>;
status = "okay";
nvidia,active-panel = <&panel_a_wxga_8_0>;
nvidia,dsi-csi-loopback;
panel-a-wxga-8-0 {
status = "okay";
nvidia,panel-rst-gpio = <&gpio TEGRA_GPIO(V, 1) 0>;
/* Only 2 lanes used on Porg */
nvidia,dsi-n-data-lanes = <2>;
};
};
};
Apart from that your dmesg
output looks alright. Hope this helps.
And if you haven’t already, I’d recommend checking if the init sequence is transmitted correctly in the LP mode with a logic analyzer.
Franz