Hello,
I have been trying to bring a MIPI DSI panel up on the iMX8 mini nano and seem to be getting nowhere, even after following and trying different examples. I have written a device driver for the 'com35h3n82' and can load it using modprobe but it only gets as far as 'insmod'. This is the boot output I am getting:
[ 0.665317] imx-drm 32c00000.bus:display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 0.674445] imx_sec_dsim_drv 32e10000.dsi_controller: version number is 0x1060200
[ 0.682080] imx_sec_dsim_drv 32e10000.dsi_controller: Failed to attach bridge: 32e10000.dsi_controller
[ 0.691422] imx_sec_dsim_drv 32e10000.dsi_controller: failed to bind sec dsim bridge: -19
[ 0.699636] imx-drm 32c00000.bus:display-subsystem: bound 32e10000.dsi_controller (ops imx_sec_dsim_ops)
[ 0.709717] [drm] Initialized imx-drm 1.0.0 20120507 for 32c00000.bus:display-subsystem on minor 0
The relevent part of my device tree is attached.
Any suggestions welcome as I have tried multiple different device tree configurations but can't seen to get the driver to load. Nothing ever appears in sys->bus->mipi-dsi->devices. If I could just get the device to be panel to be recognised and my driver to load and start printing that's all I need to continue.
Thanks
Solved! Go to Solution.
So my problem was I was trying to write a new driver and add it to the kernel in yocto, this was not working.
When I changed my panel to be compatible to "raydium,rm67191" and added support for this driver into the kernel it started printing on boot.
Not sure why it never worked with my own compatible "com35h3n82" string despite having the driver included using:
RPROVIDES += "kernel-module-panel-com35h3n82"
MACHINE_EXTRA_RDEPENDS += "kernel-module-panel-com35h3n82"
and seeing the driver appear in /sys/bus/mipi-dsi/drivers. But I am no linux/yocto expert so who knows.
However now when I modify the panel-raydium-rm67191.c source file and build I can see my code being run.
So if anyone else is stuck trying to write a custom driver, just modify an existing one instead.
So my problem was I was trying to write a new driver and add it to the kernel in yocto, this was not working.
When I changed my panel to be compatible to "raydium,rm67191" and added support for this driver into the kernel it started printing on boot.
Not sure why it never worked with my own compatible "com35h3n82" string despite having the driver included using:
RPROVIDES += "kernel-module-panel-com35h3n82"
MACHINE_EXTRA_RDEPENDS += "kernel-module-panel-com35h3n82"
and seeing the driver appear in /sys/bus/mipi-dsi/drivers. But I am no linux/yocto expert so who knows.
However now when I modify the panel-raydium-rm67191.c source file and build I can see my code being run.
So if anyone else is stuck trying to write a custom driver, just modify an existing one instead.
Hi Dean
for mipi-dsi lcd one can look at rm67191 example:
for custom lcd change specific for that lcd initialization sequence ("struct cmd_set_entry") in driver
Best regards
igor