cancel
Showing results for 
Search instead for 
Did you mean: 

Enable DSI panel on STM32MP257F-EV1

Tim_ho
Associate III

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.

9 REPLIES 9
Erwan SZYMANSKI
ST Employee

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.

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.

 

 

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.

Hi @Erwan SZYMANSKI ,

Thank your reply. I attached the U-Boot and Linux device trees. The dmesg have no changed.

Hello @Tim_ho ,
I took a look at your device trees in both U-Boot and Linux. It seems that you do not activate DSI at U-Boot level, I would try to disable the "default-on" property in your Linux device tree under dsi node. Can you make a try ? 

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_ho
Associate III

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.

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.

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.

Hello @Tim_ho ,
So as far as I understand and see, your remaining error looks to be something around your panel timing. Do you have the specifications of the panel ? 

Your timings should be aligned between U-Boot and Linux kernel by the way, if continuous splash screen is used, there is a possibility that timings are not reset at Linux stage.

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.