Skip to main content
Associate II
August 19, 2025
Question

Enable DSI panel on STM32MP257F-EV1

  • August 19, 2025
  • 3 replies
  • 2098 views

Dear ST Developer Support,

How to enable MIPI DSI panel on STM32MP257F-EV1?

Does it have any user guide for reference?

I only found dsi to hdmi board on device tree.

I urgently need your help! Thanks.

3 replies

Erwan SZYMANSKI
Technical Moderator
August 21, 2025

Hello @Tim_ho ,
You can take example on stm32mp157f-dk2 to see how DSI is configured in the device tree. The device tree is available in our Linux kernel sources.

Kind regards,
Erwan.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Tim_hoAuthor
Associate II
August 22, 2025

Hi @Erwan SZYMANSKI ,

After modified the u-boot board driver stm32mp2.c, the backlight could be enabled.

The main modification is to remove the part that determines whether the panel with stm32mp25 preset support is detected.

I'm not sure if this modification is reasonable. Please help clarify it. Thank you.

Tim_ho_0-1755849458989.png

I attached kernel dmesg log. The panel is detected as connected, but there's still no image and the backlight flickers.

Observing the log, I find the PLL timing issue on dw_mipi_dsi_clk_enable function.

Tim_ho_1-1755849489786.png

In addition, it seems that ltdc will probe pending, I don’t know if it is caused by clock problem.

48010000.display-controller: deferred probe pending

Tim_ho_2-1755849626814.png

I used the command to cat more drm information, you can refer the attached files.

Thank for your help.

 

 

Erwan SZYMANSKI
Technical Moderator
August 26, 2025

Hello @Tim_ho ,
Can you share your complete U-Boot and Linux device trees (as well as new dmesg if it changed since your last message) ?

Kind regards,
Erwan.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Tim_hoAuthor
Associate II
September 3, 2025

Hi @Erwan SZYMANSKI ,

I tried to remove  "default-on" property in Linux device tree under dsi node,  PLL timing issue could be resolved.

I also activate DSI node in u-boot device tree, the panel can bring up on u-boot. But the panel will disable when boot into kernel level.

Do you have any idea?

Thanks.

Erwan SZYMANSKI
Technical Moderator
September 3, 2025

Hi @Tim_ho ,
Can you also try to remove the "default-on" property in ltdc node and check the status ? Can you also provide the dmesg too ? 

Maybe try to keep the dsi node at disabled state in U-Boot for now. Let's try to start the panel from scratch on Linux only in a first step.

Kind regards,
Erwan.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
Tim_hoAuthor
Associate II
September 5, 2025

Hi @Erwan SZYMANSKI ,

I tried to remove the "default-on" property in ltdc node, but it seems no effect. I attached dmesg log.

Besides, if I disabled dsi node, the panel will not enable. So, I set dsi node status to "okay".

I also attach the kernel dts and u-boot dts.

I confuse that if u-boot pixel clock is fixed? I found some message in stm32_ltdc.c driver, it notes "TODO Below parameters are hard-coded for the moment..."

Now, I set abnormal panel-timing can work on u-boot, but it cannot work on kernel. I attached the panel pictures.

In u-boot:

uboot-phase.jpg

In kernel:

kernel-phase.jpg

 

Thank for your help.

Tim_hoAuthor
Associate II
September 9, 2025

Hi @Erwan SZYMANSKI ,

Yes, I have the panel spec as below.

Tim_ho_0-1757381394930.png

My previous question is the pixel clock is fixed in u-boot? I found some message in stm32_ltdc.c driver, it notes "TODO Below parameters are hard-coded for the moment..."

Do you know why this comment is there? Is it means that I need to set fixed parameters?

Besides, could I use the panel-simple.c driver in kernel to drive my panel? Or I need to write my panel driver?

I found the panel is used "stm32_ltdc.c" driver in u-boot to drive the panel and it would according to "stm32mp257f-ev1.dts" device tree to configure our panel. So, I don't need to write my panel driver in u-boot?

I tried to use the same panel timing in kernel and u-boot stages, but it seems that the timing cannot effect in kernel device tree.

Thank to your help.