iMX8QXP MIPI-DSI device problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX8QXP MIPI-DSI device problem

594 Views
manuelcarrascos
Contributor II

Hi all

I am developing with a iMX8QXP Varisicite SOM based board a MIPI-DSI display interface. The display is based on a ILI9488 controller with only 1 lane, it is 480x320.
I have patched the file drivers/gpu/drm/bridge/nwl-dsi.c

  The function nwl_dsi_bridge_atomic_check makes lanes=1 not a choice with this code

if (config->lanes < 2 || config->lanes > 4)
  return -EINVAL;

  With "(config->lanes < 1" the function continues executing.

From then on the driver loads, but I see this message in the kernel

[ 8.649716] nwl-dsi 56228000.dsi_host: [drm:nwl_dsi_host_transfer [nwl_dsi]] *ERROR* [11] DSI transfer timed out

It is displayed after trying to take the panel out of sleep

ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
if (ret < 0) {
dev_err(ctx->dev, "Failed to exit sleep mode: %d\n", ret);

Loading a dummy panel, with no initializacion with mipi-dsi commands, all the functions in the drm panel are called (drm_panel_funcs prepare, enable and get_modes),
but with the oscilloscope I cannot see any clear signal in the CLK lane (CH3 & CH4), and the DATA lane (CH1 & CH2) is not differential

This is the MIPI-DSI part of the device tree

&mipi0_dphy {
status = "okay";
};

&mipi0_dsi_host {
status = "okay";
fsl,clock-drop-level = <2>;

panel@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;

power-supply = <&reg_mipi0disp>;
backlight = <&backlight>;
reset-gpios = <&gpio_hmi1 15 GPIO_ACTIVE_HIGH>;

compatible = "my_panel,my_ili9488";
panel-width-mm = <42>;
panel-height-mm = <82>;

port {
panel0_in: endpoint {
remote-endpoint = <&mipi0_panel_out>;
};
};
};

ports {
port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
mipi0_panel_out: endpoint {
remote-endpoint = <&panel0_in>;
};
};
};
};

Any suggestion?

Thanks in advance,
M


PS Without the dummy panel in the initialization process I cannot see the Low Power mode commands neither.

0 Kudos
2 Replies

567 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

Can you  add LPM flag in your panel driver?

0 Kudos

565 Views
manuelcarrascos
Contributor II

It is already done, this is a snapshot of the _probe function

 

mipi_dsi_set_drvdata(dsi, ctx);

ctx->dev = dev;

dsi->lanes = 1;
dsi->format = MIPI_DSI_FMT_RGB888;
dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST \
| MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET;

drm_panel_init(&ctx->panel, dev, &ili9488_drm_funcs,
DRM_MODE_CONNECTOR_DSI);

0 Kudos