Skip to main content
Visitor II
January 12, 2023
Solved

STM32MP157CAA3 LCD ili9881 coupling

  • January 12, 2023
  • 13 replies
  • 6700 views

Hi,

I try to couple LCD TFT ili9881c (mipi dsi 2 lanes interface) with stm32mp157caa3.

My custom driver seems to be loading correctly.

When I type lsmod I get

Module Size Used by 
cfg80211 651264 0 
usb_f_rndis 24576 2 
u_ether 20480 1 usb_f_rndis 
libcomposite 49152 10 usb_f_rndis 
galcore 516096 2 
panel_ilitek_ili9881c 20480 0 
dwmac_stm32 16384 0 
stmmac_platform 20480 1 dwmac_stm32 
stm32_adc_core 20480 0 
spi_stm32 24576 0 
sch_fq_codel 20480 3 
ip_tables 24576 0 
x_tables 24576 1 ip_tables 
ipv6 512000 42

Unfortunately, the display is not working, only the backlight is working.

I checked twice the dts and looks good, driver is loading well. I can't find anything with 'drm'. What I missed? Shall I add some additional driver in the kernel or something install in the roofs?

In the log, I can see only

[ 0.079013] platform 5a000000.dsi: Fixing up cyclic dependency with 5a001000.display-controller

and

[ 13.730531] [drm] Initialized stm 1.0.0 20170330 for 5a001000.display-controller on minor 0

    This topic has been closed for replies.
    Best answer by MWoło.2

    I think I can close this topic. The real problem is related with display itself. STM32MP1x support only 2 lane displays. My display have 4 lane and it can't be reconfigured by software to 2 lane - missing access to IM pins. So I think mipi works but the display can't be handled by 2 lanes.

    13 replies

    MWoło.2Author
    Visitor II
    March 29, 2023

    I found something in the driver. Incorrect line

    dsi->mode_flags = MIPI_DSI_MODE_VIDEO_SYNC_PULSE

    for this display should be

    dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_CLOCK_NON_CONTINUOUS;

    Now looks much better.

    On the MIPI lines, I have some waveforms. In the configuration phase, I see what is sent but after configuration over on all MIPI lines, I see waveform with 77kHz frequency and duty 20%. After initialization LCD became white for a moment and after minutes start slowly became black again. No valid picture, no picture at all.

    What is the problem now?

    PS. During the configuration phase on Dx lines, the waveform is much faster.

    MWoło.2AuthorAnswer
    Visitor II
    March 30, 2023

    I think I can close this topic. The real problem is related with display itself. STM32MP1x support only 2 lane displays. My display have 4 lane and it can't be reconfigured by software to 2 lane - missing access to IM pins. So I think mipi works but the display can't be handled by 2 lanes.

    Visitor II
    December 10, 2024

    My team encountered an issue something like this, but we found that the ili9881C can be configured to use 2 lanes by adjusting a resistor to enable that feature. After configuring it, our STM32U5 board successfully communicated with the ili9881C via MIPI 2 lanes.

    I hope this information helps someone in the future.

    Explorer
    January 13, 2025

    Do you mean resistor or register? 

    I am currently attempting to get my STM32H747 to communicated with the ILI9881C via 2-lane MIPI. I can adjust registers B6 and B7 of Page 1 to enable this, but as soon as I do, the communication breaks down. 

    Graduate
    March 3, 2025

    Hi 

         Can you please help me with the driver code  of ILI9881C display driver