imx93カスタムボード上でLVDSディスプレイを動作させようとしています。このエラーで困っています。
imx-lcdif 4ae30000.lcd-controller: probe with driver imx-lcdif failed with error -2
トレースを追加すると、これはドライバのこのライン(関数lcdif_load)から来ます
lcdif->clk_axi = devm_clk_get(drm->dev, "axi");
if (IS_ERR(lcdif->clk_axi))
return PTR_ERR(lcdif->clk_axi);
つまり、「axi」クロックが見つからないようです。
私はカーネルのデバイスツリー、imx93.dtsiを使用しています。ベースとして、以下の行が含まれます。
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>;
つまり、デバイスツリーとドライバの間には多少の矛盾があります。問題は、時計が正確かどうか、どの時計を使うべきか分からないことです。
6.18のブランチに何があるか確認しようとしましたが、この部分(LCDIFコントローラー)はIMX93.dtsiファイルから完全に消えてしまいました。
何かヒントはありますか?
こんにちは、 @julienblanc
お元気でお過ごしのことと思います。
まだ問題は解決していませんか?
よろしくお願いいたします。
サラス。
残念ながら、いいえ。
同じエラーが繰り返し発生します。私が試した設定方法は以下のとおりです。
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はExander上でGPIOを大量に消費します。
display_power_12v: gpio_regulator {
gpio-hog;
gpios = <12 GPIO_ACTIVE_HIGH>;
output-high;
label = "DISPLAY12V";
};これは主にデバイスツリー内のいくつかの例から引用したものです。何が問題なのか、なぜディスプレイが表示されず、バックライトも表示されないのか分かりません。ソフトウェアGPIOではなくTPMを使うべきだと分かっていますが、それはハードウェアの修正が必要で、今は対応していて、それが問題だとは思いません。
ご支援ありがとうございます。
よろしくお願いいたします。
ジュリアン