Hi,
I'm adding support for a MIPI Display with an ili9881c controller on a custom iMX8MP board. I'm on kernel 5.4 and Android 10.
Following the vendor specification, only 3 commands are needed to initialize this display:
- Tearing Effect On
- Sleep Out
(sleep 120ms)
- Display On
This sequence is already present in most drivers, including the ili9881c and the raydium rm67191 drivers.
So, I removed the 'extra commands' from the ili9881c driver and I left only the needed sequence, but I was getting errors on the dsi communication in the kernel log. The display was also completely black (backlight is working).
I then found some reports online that mention some issues with the ili9881 driver. For example, the ilitek driver is using the 'mipi_dsi_dcs_write_buffer' function, which apparently causes issues: using the 'mipi_dsi_generic_write' instead solves part of them.
Example of such reports:
https://community.nxp.com/t5/i-MX-Processors/iMX8MM-Connect-Display-with-ili9881c-driver-ic-via-MIPI...
I also found out that the even if the ‘mipi_dsi_dcs_set_tear_on(dsi, MIPI_DSI_DCS_TEAR_MODE_VBLANK)’ command is sent correctly, after this I cannot send any more messages on the DSI bus (I get errors if I send messages after the ‘mipi_dsi_dcs_set_tear_on' is called)
I bypassed this issue using the ‘mipi_dsi_generic_write(dsi,(u8[]){ 0x35, 0x00 }, 2)’ function instead. I think that this happens because ‘mipi_dsi_dcs_set_tear_on actually uses the 'mipi_dsi_dcs_write_buffer' function, which as mentioned above is not always working as expected.
Now, I don’t get any errors in the logs but the display stays completely black. Only the backlight is working.
I then switched to the rm67191 driver as suggested in the community: https://community.nxp.com/t5/i-MX-Processors/IMX8MM-enabling-MIPI-panel-driver-for-ILI9881C/m-p/1351...
But I have the same results: the display stays black, no lines on colors are shown.
Any suggestions here? Does someone have experience with the Ilitek controller on the 8MP platform?
Thanks!
Roberto