Ilitek ILI9881C MIPI controller

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Ilitek ILI9881C MIPI controller

ソリューションへジャンプ
3,754件の閲覧回数
robertosartori
Contributor III

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

タグ(2)
1 解決策
3,515件の閲覧回数
robertosartori
Contributor III

Hi all,

An updated on this: it turned out to be an hardware issue.

We now have the display working correctly.

We can close this.

Thanks!

Roberto

元の投稿で解決策を見る

0 件の賞賛
10 返答(返信)
895件の閲覧回数
vivek5676
Contributor II

Hello,

Can you give name list of driver IC for MIPI DSI display which will support i.mx93.

Regards,

VK

0 件の賞賛
899件の閲覧回数
vivek5676
Contributor II

Hi, can you give the model number of MIPI display

0 件の賞賛
1,885件の閲覧回数
Arvin8002
Contributor I

I have also added the ili9881C screen on IMX8MQ platform, but I have encountered some problems, the screen has not been lit up, may I ask what else I need to do besides sending the initialization sequence at rm67198 and configuring the information in the device tree?

0 件の賞賛
1,836件の閲覧回数
brunocrga
Contributor I

Hi @Arvin8002,

In my case, the vendor of the display that uses the ili9889C panel helped us by updating the commands from the initialization sequence. This solved the issue on our end.
You may want to contact your vendor to ask for their help.

Best regards,
Bruno

0 件の賞賛
3,516件の閲覧回数
robertosartori
Contributor III

Hi all,

An updated on this: it turned out to be an hardware issue.

We now have the display working correctly.

We can close this.

Thanks!

Roberto

0 件の賞賛
2,450件の閲覧回数
brunocrga
Contributor I

Hello @robertosartori 

I am having a similar issue with a display that has the ILI9881C IC controller.

I was wondering if you could kindly share some information about the hardware issue that was causing the errors or how you were able to fix this.
Any help would be appreciated.

Thanks and best regards,
Bruno

0 件の賞賛
3,616件の閲覧回数
robertosartori
Contributor III

Hi,

An update: I'm now trying to read registers from the Ilitek controller to validate the MIPI communication. It is my understanding that I just need to toggle the RESET PIN (high->low->high) to enable the MIPI communication and be able to read registers from the controller.

I'm using this to read the registers:

 

mipi_dsi_generic_read(ctx->dsi, &cmd, sizeof(cmd), &data, sizeof(data));

 

cmd is the register address (e.g. 0x09). However, the read operation always timeouts. This happens both from the Ilitek driver and from the Raydium driver.

The error is:

 

imx_sec_dsim_drv 32e60000.mipi_dsi: wait rx done time out

 

I found numerous reports of the same issues, for example:

https://community.nxp.com/t5/i-MX-Processors/iMX8MP-MIPI-DSI-Bring-up-wait-payload-tx-done-time-out/...

https://community.nxp.com/t5/i-MX-Processors/Driver-of-ST7703-under-Linux-5-4-3/m-p/1267260/highligh...

The read do not work in the probe (and I expected it since dsi it still not fully enabled) nor in the enable callback when all the writes are performed apparently succesfully.

I see the same: even if write operations are apparently successful, I cannot read any register.

So now the question is: how can I validate the read operations? Are they suppose to work on the prepare or enable methods of the Ilitek or Raydium drivers?

Thank you,

Roberto

3,713件の閲覧回数
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Hi @robertosartori 

Can you share the kernel log about this issue?

0 件の賞賛
3,704件の閲覧回数
robertosartori
Contributor III

Hi @Zhiming_Liu, attached the full dmesg log.

I don't see particular issues reported in the log.

0 件の賞賛
895件の閲覧回数
vivek5676
Contributor II

Hello,

Can you give name list of driver IC for MIPI DSI display which will support i.mx93.

Regards,

VK

0 件の賞賛