Jadard JD9365da MIPI DSI panel fail to trigger probe() function in jd9365da driver

Dear Team
As part of bringing up jd9365da mipi dsi panel (TFT lcd panel) connected to imx8mm core board (ARM) fails to trigger probe() function in the jd9365da driver code running on linux-5.10 code.

Referred above link to port the jd9365da driver and written device tree file for jd9365da driver
I noticed Even the probe() in jd9365da driver is failed to trigger during board bring up , could you please provide some insights for further debugging on the issue.? The link for jd9365da driver code is given below for reference.

Regards
koti

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

To address the issue where the probe() function of the jd9365da MIPI DSI panel driver fails to trigger on an iMX8MM core board, there are several steps and checks you can perform to diagnose and potentially resolve the issue:

  1. Device Tree Configuration: Ensure that the device tree entry for the jd9365da panel is correctly defined and matches the expected format by the Linux kernel. The device node should be properly linked to the MIPI DSI host controller. Verify the compatibility string, physical connections (such as MIPI lanes configuration), and any required properties like panel timings and power supply references.

  2. Kernel Configuration: Confirm that the kernel configuration (CONFIG_DRM_MIPI_DSI) supports MIPI DSI and that the driver for the jd9365da panel is enabled (CONFIG_DRM_PANEL_JD9365DA or a similar configuration option, if available). If you are integrating the driver as a module, ensure the module is being loaded.

  3. Driver Integration: If you have ported the jd9365da driver to your kernel, double-check the integration points:

    • The module initialization code should correctly register the panel driver with the DRM subsystem.
    • The of_match_table should contain an entry that matches the device tree node of your panel.
    • Ensure there are no compilation warnings or errors related to the driver that could indicate missing dependencies or incorrect initialization code.
  4. Debugging Output: Increase the kernel’s log level for the DRM and MIPI DSI subsystems to get more detailed output during boot. This can be done by adding drm.debug=0x1f and loglevel=8 to the kernel command line. Look for any errors or warnings related to MIPI DSI or the panel driver.

  5. Hardware Checks: Verify the hardware connections between the iMX8MM and the jd9365da panel. Ensure that the MIPI DSI lanes are correctly connected and that there are no issues with the power supply to the panel.

  6. Review the Probe Function: In the driver code, add additional debug prints at the beginning of the probe() function to confirm if it’s being called but failing partway through. If the probe() function is not being called at all, the issue likely lies with the device tree configuration or the driver’s device matching logic.

  7. Dependencies: Ensure all dependencies required by the jd9365da panel (such as GPIOs, regulators,

Please, also check if these links can help you solve your problem:

Display Output, Resolution and Timings (Linux) | Toradex Developer Center.

Could you please provide some details about your case:

  • Which variant of the Verdin iMX8M Mini module do you have?
  • How exactly have you applied the mentioned patches?
  • Can you provide a full boot log from the Debug UART?

Dear Alex
thank you for your reply. Please find reply for your queries given below.

  • Which variant of the Verdin iMX8M Mini module do you have?
    The main board is NXP engicam based imx8mm mini SOC

How exactly have you applied the mentioned patches?
I applied patches in the order of sequence number 0001 to 0004.

Can you provide a full boot log from the Debug UART?
Please find the serial boot log link below.

It seems, the jd9365da dts file “&mipi_dsi” entry is not triggered to invoke ->debug() entry in the driver code.
i confirm with below log, jd9365da dts file is built and corresponding dtb file is generated.
{{
DTC arch/arm64/boot/dts/imx8mm-jd9365da-mipi-dsi.dtb
}}
I am using(Android kernel ) 5.10 version, i checked BoardConfig.mk file and added above generated dtb file path so that mipi_dsi panel gets detected during boot time, but still fail to detect it.
BoardConfig.mk
{{
TARGET_BOARD_DTS_CONFIG += imx8mm:imx8mm-icore-t48xx_8mm.dtb
** TARGET_BOARD_DTS_CONFIG += imx8mm-mipi-panel:imx8mm-jd9365da-mipi-dsi.dtb**
}}
Seems i am missing a change that is required to detect jd9365da mipi panel dtb file during boot time? Any input please do let me know.

Regards
koti

Dear @koteswararao ,

Unfortunately, I have no experience with Engicam’s modules or the software they provide. This community forum is for supporting Toradex products. I recommend you contact Engicam directly with your problem.