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.12 Ok, 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 Re: imx93 lvds with kernel 6.12 For anyone interested, i finally got it working, even with the soft pwm. Causes were : * missing modules in kernel compilation (CONFIG_BACKLIGHT_CLASS_DEVICE=y , CONFIG_BACKLIGHT_PWM=y ,CONFIG_DRM_PANEL_LVDS=y ) * backlight must use a regulator for power supply
查看全文