MIPI DSI eDP Bridge SN65DSI86 Porting Problem on IMX8MM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
currently we don't have sample code fodr SN65DSI86, only for sn65dsi84, maybe you can refer to the link as below:
https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/bridge/ti-sn65dsi86.c
https://patchwork.kernel.org/project/dri-devel/patch/20191207203553.286017-4-robdclark@gmail.com/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
should support it, but we don't test it yet
