Hello,
we want to connect a DSI Panel (IC based on EK79007AD3+EK73217BCGA) to our hardware (based on the Imx8mp module).
We did following changes to our device-tree.
&lcdif1 {
status = "okay";
};
&mipi_dsi {
status = "okay";
port@1 {
mipi_dsi_out: endpoint {
remote-endpoint = <&dsi_panel_in>;
};
};
panel@0 {
status = "okay";
//compatible = "winstar,ek79007ad3";
compatible = "ronbo,rb070d30";
reg = <0>;
port {
dsi_panel_in: endpoint {
remote-endpoint = <&mipi_dsi_out>;
};
};
};
};
With this setting I get following dmesg output
dmesg | grep -ri dsi
[ 0.836295] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[ 0.844169] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 0.912324] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517, retry 0
[ 1.704951] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[ 1.712782] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 1.780977] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517, retry 1
[ 2.269476] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[ 2.277300] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 2.345427] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517, retry 2
[ 2.474864] imx_sec_dsim_drv 32e60000.mipi_dsi: version number is 0x1060200
[ 2.482680] imx_sec_dsim_drv 32e60000.mipi_dsi: Failed to attach bridge: 32e60000.mipi_dsi
[ 2.550804] imx_sec_dsim_drv 32e60000.mipi_dsi: failed to bind sec dsim bridge: -517, retry 3
[ 2.560036] imx-drm display-subsystem: bound 32e60000.mipi_dsi (ops imx_sec_dsim_ops)
It always returns EPROBE_DEFER error code (-517). It seems the panel driver is never loaded correctly.
I noticed that when I try to load the ronbo kernel module manually, it never calls the probe function.
I have the same issue that probe function is not called, when I use the "winstar,ek79007ad3" compatible string (this is panel-simple driver, where I've added a new device).
Is there a reason, why the probe function of the drivers is not called? I thought that if the compatible string matches with the driver, the probe function is called. Or are there further dependencies?
Thanks in advance
Solved! Go to Solution.
The reason the driver was not calling the probe function was that the driver was integrated as a kernel module instead of being directly compiled into the kernel.
The reason the driver was not calling the probe function was that the driver was integrated as a kernel module instead of being directly compiled into the kernel.