I am trying to integrate a mipi display with a custom carrier board with an iMX8MM. I have created my own out of tree driver which is then loaded onto the board using the torizoncore builder.
Using dmesg I can see that the driver is probing correctly. When the driver prepares and finally enables is where the problem starts. The driver tries to send initialization commands to the display using the command:
mipi_dsi_dcs_write().
The output of each command is:
[ 97.148294] imx_sec_dsim_drv 32e10000.mipi_dsi: wait payload tx done time out
I have put a scope on the clock and data lines and can see that there is no activity. I can also see correct operation of the reset line so I know that this is not the problem.
My current working hypothesis is that the clock is not being enabled either in the driver or in the overlay. I have a few questions:
Does the clock get enabled in the overlay?
- No - where does the clock get enabled?
- Yes - How can I set the clock in the overlay?
Hi, I’m the Toradex AI Assistant. The Toradex Support team will follow up with you shortly!
Did you like my answer?
Hello,
Thank you for reaching out with your question about integrating a MIPI display with the Verdin iMX8M Mini. Let’s address your concerns regarding the clock configuration, which is crucial for the MIPI DSI interface.
Clock Enabling in the Device Tree Overlay:
Typically, the clock for the MIPI DSI interface is configured within the device tree. Ensure that your device tree overlay specifies the correct clock source and frequency for the MIPI DSI controller. Check the relevant nodes in your overlay to confirm that the clock properties are correctly set.
In your driver, make sure you are using the appropriate kernel APIs, such as clk_get() and clk_prepare_enable(), to request and enable the clock.
Verifying Clock Status:
To check if the clock is enabled, you can examine the kernel logs using dmesg for any messages related to clock setup. Successful clock enabling should not produce error messages.
Additionally, you can use the command cat /sys/kernel/debug/clk/clk_summary to list all clocks and their statuses. This will help you verify if the MIPI DSI clock is active.
Troubleshooting Tips:
Double-check your device tree overlay for any missing or incorrect clock configurations.
Ensure your driver handles the clock enablement sequence correctly, including error handling and cleanup.
If the clock seems correctly configured but still doesn’t work, consider reviewing the hardware connections on your custom carrier board.
By focusing on these areas, you should be able to resolve the issue with the MIPI DSI clock, allowing your display to initialize properly.
Best regards,
Toradex AI Assistant
Please, also check if these links can help you solve your problem:
Which display are you using? Could you please send a link to the datasheet? Without knowing that, it is hard to debug the issue.
Which version of Torizon OS are you using?
Also, as @ToradexAI suggested, you could check the clocks using the command cat /sys/kernel/debug/clk/clk_summary. It would be helpful if you can send the output of clock summary as well.