L6.6, sn65dsi83 Error:

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

L6.6, sn65dsi83 Error:

跳至解决方案
1,092 次查看
pavelko
Contributor III

I'm trying to make sn65dsi84 dsi2lvds bridge working with Linux kernel 6.6.52 (Yocto scartgap).

After fixing problems with attaching mipi-dsi to SN65DSI83 driver: IMX8MM-sn65dsi83-yocto-scarthgap-mipi-dsi-is-not-initialized 

and correcting LVDS timing parameters in DT: Error-Cannot-find-any-crtc-or-sizes -

facing another problem: seems that MIPI-DSI is not sending data:

SN65DSI83driver cannot lock PLL because it has DSI source clock.

[    2.946302] sn65dsi83 0-002c: failed to lock PLL, ret=-110

 

my devicetree is:

/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 = <&reg_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 is attached.

0 项奖励
回复
1 解答
1,082 次查看
pavelko
Contributor III

Found strange thing:

[    2.946302] sn65dsi83 0-002c: failed to lock PLL, ret=-110
[    2.948106] imx_sec_dsim_drv 32e10000.mipi_dsi: imx_sec_dsim_encoder_atomic_enable: Enter
[    2.951027] sn65dsi83 0-002c: sn65dsi83_atomic_enable: Enter
[    2.956980] sn65dsi83 0-002c: Unexpected link status 0x01

 

The sn65dsi83 probe function pries to lock PLL from MIPI-DSI before imx_sec_dsim_encoder_atomic_enable() function ensbles it.

Moved piece of code that sets PLL to sn65dsi83_atomic_enable() function.

Works now!

 

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,083 次查看
pavelko
Contributor III

Found strange thing:

[    2.946302] sn65dsi83 0-002c: failed to lock PLL, ret=-110
[    2.948106] imx_sec_dsim_drv 32e10000.mipi_dsi: imx_sec_dsim_encoder_atomic_enable: Enter
[    2.951027] sn65dsi83 0-002c: sn65dsi83_atomic_enable: Enter
[    2.956980] sn65dsi83 0-002c: Unexpected link status 0x01

 

The sn65dsi83 probe function pries to lock PLL from MIPI-DSI before imx_sec_dsim_encoder_atomic_enable() function ensbles it.

Moved piece of code that sets PLL to sn65dsi83_atomic_enable() function.

Works now!

 

0 项奖励
回复
1,075 次查看
pavelko
Contributor III
 
0 项奖励
回复