MIPI DSI eDP Bridge SN65DSI86 Porting Problem on IMX8MM

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

MIPI DSI eDP Bridge SN65DSI86 Porting Problem on IMX8MM

6,366 Views
talel_hajsalem
Contributor III

Hi All,

I'm working on a custom board based on IMX8MM.

I'm trying to integrate a MIPI DSI to eDP bridge module which is SN65DSI86.

I'm getting this error:

 

 

# dmesg | grep drm
[    0.894170] imx-drm soc@0:bus@32c00000:display-subsystem: no available port
[    4.229399] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* could not find any panel node
[    4.270746] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* could not find any panel node
[    4.353747] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* could not find any panel node
[    4.432826] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* could not find any panel node
[    4.673391] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* could not find any panel node
[    4.682721] [drm:ti_sn_bridge_probe [ti_sn65dsi86]] *ERROR* could not find any panel node

 

 

I already integrated the module flags into the Kernel defconfig via a Yocto cfg file:

 

 

CONFIG_DRM_TI_SN65DSI86=m
CONFIG_FB_MXC_DISP_FRAMEWORK=m
CONFIG_MXC_GPU_VIV=y

 

 

I activated a patch for the sn65dsi86.c driver based on this official kernel patch: here

Our module is connected to I2C_1 bus, here is the node inside the i2c node:

 

 

/* 0x2d is from the datasheet */
sn65_bridge: sn65dsi86@2d {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "ti,sn65dsi86";
		reg = <0x2d>;
		ti,dsi-lanes = <4>;
		max,dsi-channel = <1>;
		ti,dp-lanes = <2>;
		status = "okay";
		enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		interrupts-extended = <&gpio1 10 IRQ_TYPE_EDGE_FALLING>;
		vccio-supply = <&ldo6_reg>;	//1.8V
		vcca-supply = <&buck1_reg>;	//1.2V
		vpll-supply = <&ldo6_reg>;	//1.8V
		vcc-supply = <&buck1_reg>;	//1.2V
		clock-names = "refclk";
		clocks = <&clk IMX8MM_CLK_DSI_CORE>,
			     <&clk IMX8MM_CLK_DSI_PHY_REF>;
		panel@0 {
			reg = <0>;
			pinctrl-0 = <&pinctrl_mipi_dsi_en>;
			enable-gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
			panel-width-mm = <68>;
			panel-height-mm = <130>;
			port {
				panel1_in: endpoint {
					remote-endpoint = <&sn65_out>;
				};
			};
		};
		ports {
			#address-cells = <1>;
			#size-cells = <0>;
			port@0 {
				reg = <0>;
				sn65_in: endpoint {
					remote-endpoint = <&dsim_to_sn65>;
				};
			};
			port@1 {
				reg = <1>;
				sn65_out: endpoint {
					data-lanes = <0 1 2 3>;
					lane-polarities = <0 1 0 1>;
					remote-endpoint = <&panel1_in>;
				};
			};
		};
		
	};

 

 

And here is the mipi_dsi node:

 

 

&mipi_dsi {
	status = "okay";

	port@1 {
		dsim_to_sn65: endpoint {
			remote-endpoint = <&sn65_in>;
			attach-bridge;
		};
	};
};

 

 

I used the same kernel DTS for Uboot DTS also.

NOTE1: I didn't add this to Uboot "video=mxcfb0:dev=mipi_dsi,TRULY-WVGA,if=RGB24" because I do not actually where to add it, should it be in the bootargs variable inside the uboot machine header file?

NOTE2: I didn't add the CONFIG_VIDEO and the VIDEO defines in the uboot defconfig and header file because I get an error "undefined reference to "display"".

Besides, when I boot the image and try to detect the module with i2cdetect I cannot find it on i2c1:

 

 

# i2cdetect -y 0
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --

 

 

Only the pmic is shown because it is on the same I2C.

We checked the power of the MIPI DSI module and it is correctly powered.

We are so blocked now, we need some help.

  • Is there a problem with the driver?
  • How to configure Uboot for the VIDEO support?
  • Is the kernel DTS file is correct? [The Kernel DTS file is attached]
  • How can we solve this?

Help us please.

Thanks, Talel

 

 

Labels (1)
0 Kudos
Reply
6 Replies

6,356 Views
joanxie
NXP TechSupport
NXP TechSupport
0 Kudos
Reply

6,340 Views
talel_hajsalem
Contributor III

Hi joanxie,

Thanks for the reply.

Now we managed to make the module appears in i2cdetect on address 0x2d I2C1

Actually I'm using the same driver and the same patch.

The driver is not interacting with the module because with i2cdetect it still appearing as 0x2d and not UU

Is my device tree is correct ?

How to add mipi_dsi setting parameter to kernel? Or to bootargs of uboot?

Is it necessary to activate CONFIG_MXC_VIDEO to machine defconfig file along with the machine header file?

Thanks, Talel

0 Kudos
Reply

4,737 Views
lam-le
Contributor I

Hi @talel_hajsalem 

Could you post your final device tree please, I am using the same bridge and having issue with it.

In your original device tree you have the panel defined twice (one under root, one under dsi) is that correct?

Thank you, Lam

 
0 Kudos
Reply

6,308 Views
joanxie
NXP TechSupport
NXP TechSupport

we don't have solution for TI, but I found we have another eDP solution on imx8MP, imx8MM has the same mipi dsi IP, maybe you can refer to it

https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/IMX8MP-MIPI-DSI-to-eDP-bridge-board-supp...

0 Kudos
Reply

6,304 Views
talel_hajsalem
Contributor III

Hi, joanxie,

Thanks for the reply,

Actually, this is a great solution for DSI to eDP which is ITE6151.

But I have an important question: Do you support the DSI to HDMI bridge ITE6161 from the same company?

Thanks,

Talel

 

0 Kudos
Reply

6,178 Views
joanxie
NXP TechSupport
NXP TechSupport

should support it, but we don't test it yet

 

0 Kudos
Reply