2416245_en-US

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

2416245_en-US

2416245_en-US

imx93 lvds with kernel 6.12

I'm trying to make an LVDS display work on an imx93 custom board. I'm struggling with this error :

imx-lcdif 4ae30000.lcd-controller: probe with driver imx-lcdif failed with error -2

After adding some traces, this comes from this line in the driver (in function lcdif_load)

 lcdif->clk_axi = devm_clk_get(drm->dev, "axi");
if (IS_ERR(lcdif->clk_axi))
return PTR_ERR(lcdif->clk_axi);

So, it seems it cannot find the "axi" clock.

I'm using the device tree from the kernel, imx93.dtsi, as the base, which includes the following lines:

 clock-names = "pix", "disp-axi", "disp-apb";
assigned-clocks = <&clk IMX93_CLK_VIDEO_PLL>,
<&clk IMX93_CLK_MEDIA_DISP_PIX>,
<&clk IMX93_CLK_MEDIA_AXI>,
<&clk IMX93_CLK_MEDIA_APB>;

So there's some inconsistency here between the device tree and the driver here. Problem is that i don't know if the clocks are correct, which ones i should use.


I tried to have a look to what is in the 6.18 branch, but this part (lcdif controller) has completely disappeared from the imx93.dtsi file.


Any hints?



Re: imx93 lvds with kernel 6.12Ok, found one cause, this was using the wrong driver. Now, with the lcdif_v3 driver, no clock issues.

On the other hand, i still get this problem
imx93-ldb ldb-display-controller: Failed to create device link (0x180) with 4ae30000.lcd-controller

Any hints ?
Re: imx93 lvds with kernel 6.12

Hello @julienblanc 

Hope you are doing very well.


Are you still having the issue?


Best regards,

Salas.

Re: imx93 lvds with kernel 6.12

Unfortunately, no.

I keep having the same error. Here's how i tried to configure things :

backlight_lvds: backlight-lvds {
compatible = "pwm-backlight";
status = "okay";
power-supply = <&display_power_12v>;
brightness-levels = < 0 5
10 15
20 25
30 35
40 45
50 55
60 65
70 75
80 85
90 95
100>;
default-brightness-level = <30>;
pwms = <&pwm_backlight 0 1000000 0>;
};
pwm_backlight: pwm_gpio {
compatible = "pwm-gpio";
#pwm-cells = <3>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_clko4_gpio>;
gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>; // gpio controller &gpio4, pin 29
status = "okay";
};
panel {
compatible = "panel-lvds";
width-mm = <224>;
height-mm = <126>;
backlight = <&backlight_lvds>;
status = "okay";
port {
panel_in: endpoint {
remote-endpoint = <&lvds_ldb_out>;
};
};
panel-timing {
clock-frequency = <72400000>;
hactive = <1280>;
vactive = <800>;
hfront-porch = <72>;
hback-porch = <88>;
hsync-len = <20>;
vfront-porch = <15>;
vback-porch = <23>;
vsync-len = <10>;
de-active = <1>;
pixelclk-active = <1>;
};
};

&ldb {
status = "okay";

lvds-channel@0 {
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
port@1 {
reg = <1>;
lvds_ldb_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
&ldb_phy {
status = "okay";
};

display_power is a gpio-hog on an exander :

display_power_12v: gpio_regulator {
gpio-hog;
gpios = <12 GPIO_ACTIVE_HIGH>;
output-high;
label = "DISPLAY12V";
};

This is mostly taken from some examples in the device-trees. I can't get what's wrong, or why it won't bring the display up, even not the backlight. I know i should use a TPM instead of a software gpio, but that need a hardware fix, currently i have to deal with it and i don't think that's the problem.

Thanks for your support,


Regards,

Julien

Tags (1)
No ratings
Version history
Last update:
Wednesday
Updated by: