Hello Community,
I've written a drm panel driver for a MIPI DSI TFT display which has a Himax HX8394-A01 controller inside. We are using a SOM from the company Variscite based on the i.mx8 mini processor (imx8mm-var-som) running AOSP 9.
I followed more or less the same steps as described in
https://community.nxp.com/t5/i-MX-Processors/how-to-add-a-new-panel-with-imx8mm-evk-I-got-some-probl...
1- I wrote the diver "panel-himax-HX8394-A01.c" using the "panel-raydium-rm67191.c" as a template.
2 - I modified the corresponding Makefile and Kconfig files to include this driver.
3- I modified the defconfig file (imx8_var_android_defconfig in my case)
4- I modified the DT adding the MIPI DSI panel node like this
&mipi_dsi {
panel@0 {
status = "okay";
compatible = "himax,hx8394";
reg = <0>;
pinctrl-0 = <&pinctrl_mipi_dsi_en>;
reset-gpio = <&gpio4 7 GPIO_ACTIVE_HIGH>;
dsi-lanes = <4>;
video-mode = <0>;
/* 0: burst mode
* 1: non-burst mode with sync event
* 2: non-burst mode with sync pulse
*/
panel-width-mm = <68>;
panel-height-mm = <121>;
//status = "okay";
};
};
I can compile the Android image without a problem but when I load it to my board and start it, it seems the kernel does not find the corresponding driver and I got this message on the debug console
...
[ 1.466163] bootconsole [ec_imx6q0] disabled
[ 1.476337] msm_serial: driver initialized
[ 1.494005] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.500663] [drm] No driver support for vblank timestamp query.
[ 1.506702] imx-drm display-subsystem: bound imx-lcdif-crtc.0 (ops lcdif_crtc_ops)
[ 1.514301] [drm] Cannot find any crtc or sizes
[ 1.519660] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 1.541280] brd: module loaded
[ 1.550682] loop: module loaded...
Attached you can find the whole console log, the driver, and the device tree.
As far as I know, the .probe function is the first function from the driver to be called
static struct mipi_dsi_driver hx8394_panel_driver = {
.driver = {
.name = "panel-himax-HX8394-A01",
.of_match_table = hx8394_of_match,
},
.probe = hx8394_panel_probe,
.remove = hx8394_panel_remove,
.shutdown = hx8394_panel_shutdown,
};
module_mipi_dsi_driver(hx8394_panel_driver);
So I added a debug message into this function but I dot not get anything
DRM_DEV_DEBUG_DRIVER(dev,"Enter func %s...\n",__func__);
Am I missing something, some image configuration?
How can I know if the driver is even being called?
Best regards,
Gonzalo