私はsn65dsi84 dsi2lvdsブリッジをLinuxカーネル6.6.52(Yocto scartgap)で動作させるようにしようとしています。
mipi-dsiをSN65DSI83ドライバーにアタッチする際の問題を修正した後: IMX8MM-sn65dsi83-yocto-scarthgap-mipi-dsi-is-not-initialized
DT の LVDS タイミング パラメータの修正: Error-Cannot-find-any-crtc-or-sizes -
別の問題に直面している:MIPI-DSIがデータを送信していないようです。
SN65DSI83driver は DSI ソース クロックがあるため、PLL をロックできません。
[ 2.946302] sn65dsi83 0-002c: failed to lock PLL, ret=-110私のdevicetreeは:
/dts-v1/;
#include "imx8mm.dtsi"
/ {
panel: panel10inch {
width-mm = <210>;
height-mm = <157>;
compatible = "panel-lvds";
backlight = <&bl_lcd>;
data-mapping = "vesa-24";
status = "okay";
enable-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
panel-timing {
clock-frequency = <65000000>;
hactive = <1024>;
vactive = <768>;
/* */
hfront-porch = <40>;
hsync-len = <60>;
hback-porch = <220>;
/* */
vfront-porch = <7>;
vsync-len = <10>;
vback-porch = <21>;
/* */
vsync-active = <0>;
hsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
panel_in: endpoint {
remote-endpoint = <&bridge_out>;
};
};
};
};
};
&i2c1 {
dsi_lvds_bridge: sn65dsi84@2c {
compatible = "ti,sn65dsi83";
reg = <0x2c>;
enable-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_dsi_bridge>;
vcc-supply = <®_1V8>;
status = "okay";
of-depends-on = <&panel>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
bridge_in: endpoint {
remote-endpoint = <&mipi_dsi_out>;
data-lanes = <1 2 3 4>;
};
};
port@2 {
reg = <2>;
bridge_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
};
&lcdif {
status = "okay";
};
&mipi_dsi {
status = "okay";
port@1 {
mipi_dsi_out: endpoint {
remote-endpoint = <&bridge_in>;
data-lanes = <1 2 3 4>;
/*lane-polarities = <1 0 0 0 0>;*/
attach-bridge;
};
};
};bootlog が添付されています。
奇妙なものを見つけました:
[ 2.946302]sn65dsi83 0-002c: PLL のロックに失敗しました。ret=-110
[ 2.948106]imx_sec_dsim_drv 32e10000.mipi_dsi:imx_sec_dsim_encoder_atomic_enable: 入力
[ 2.951027]SN65DSI83 0-002C:sn65dsi83_atomic_enable:入力
[ 2.956980]sn65dsi83 0-002c: 予期しないリンク ステータス 0x01
sn65dsi83 プローブ関数は、imx_sec_dsim_encoder_atomic_enable() 関数が PLL をエンスブルする前に、MIPI-DSI から PLL をロックします。
PLL を sn65dsi83_atomic_enable() 関数に設定するコードを移動しました。
今すぐ動作します!