This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SN65DSI83:imx8mp 上的桥接连接失败6.6 Linux 内核

Guru**** 2538955 points
Other Parts Discussed in Thread: SN65DSI83

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1363191/sn65dsi83-bridge-attach-fail-6-6-linux-kernel-on-imx8mp

器件型号:SN65DSI83
您好!
 
我有一个从5.4移植到6.6的 Linux 内核(Yocto nabield)。 现在尝试使用已移植的6.6内核上的 SN65DSI83来启动 MIPI-DSI。 imx8mp 中使用的处理器
但它失败了。 相同的 DTS 在5.4内核中工作正常。 您可以在这里帮助我吗。
看起来像 sec_mipi_dsim_bind ()和 sn65dsi83_probe ()之间的循环依赖关系。  
sec_mipi_dsim_bind ()由于连接失败而失败,因为网桥仍然没有出现。  sn65dsi83_probe ()失败,因为没有 DSI 主机。
请让我知道如何避免这种情况? 是否缺少任何配置? 如果您需要更多信息、请通知。
sn65dsi83_probe 日志
[ 21.626617] device_node host_node 名称 mipi_DSI full_name mipi_DSI@32e60000
[21.633598]无主机
[21.636227]连接 DSI 主机失败
imx_sec_dsim_probe 日志
[ 21.831150][DRM:DRM_BRIDGE_ATTACH]* ERROR*未能将网桥/ soc@0/bus@32c0000000/mipi_DSI@32e60000连接至编码器 DSI-37:-517
[ 21.842856] imx_sec_dsim_ddrv 32e6000.mipi_DSI:连接网桥失败:32e6000.mipi_DSI
[ 21.851141]连接网桥失败:32e6000.mipi_DSI
[ 21.856300] mipi_dsi_host_unregister
[ 21.859901] imx_sec_dsim_ddrv 32e6000.mipi_dSI:无法绑定 sec dsim 桥接器:-517
[ 21.867666]无法绑定 sec dsim 桥接器:-517
[ 21.872851]绑定到-517
 
下面是 dts 文件更改
 
/dts-v1/;
 
#包含
#包含
#包含
#包含
#include "imx8mp.dtsi"
 
/{
  型号="NXP I. MX8MPlus GX2板";
  兼容="FSL、imx8mp-EVK"、"FSL、imx8mp";
   
  已选择{
    stdout-path =&uart2;
  };
   
  lvds_backlight:lvds_backlight{
    兼容="PWM 背光";
    PWM =<&pwm2 0 100000>;
    状态="可以";
     
    亮度级别=< 0 1 2 3 4 5 6 7 8 9
       10 11 12 13 14 15 16 17 18 19
       20 21 22 23 24 25 26 27 28 29
       30 31 32 33 34 35 36 37 38 39
       40 41 42 43 44 45 46 47 48 49
       50 51 52 53 54 55 56 57 58 59
       60 61 62 63 64 65 66 67 68 69
       70 71 72 73 74 75 76 77 78 79
       80 81 82 83 84 85 86 87 88 89
       90 91 92 93 94 95 96 97 98 99
      100>;
    default-brightness 级别=<80>;
  };
   
  lvds0_panel{
    兼容="ampire、AM-1280720l2tzqw-00h";
    Backlight =<&LVDS_BACKLE>;
    power-supply =<Registered_ panel_shlr>;
     
    端口{
      PANEL_LVDS_IN:端点{
        远程端点=<&LVDS_OUT>;
      };
    };
  };
};
 
i2c3 (&I){
  时钟频率=<100000>;
  pinctrl-names ="默认";
  pinctrl-0 =<&pinctrL_i2c3>;
  状态="可以";
   
  DSI_LVDS_BRIDGE:sn65dsi83@2d{
  兼容="ti、sn65dsi83";
  REG =<0x2D>;
  TI、DSI 通道=<4>;
  ti、lvds-format =<1>;
  ti、lvds-bpp =<24>;
  ti、width-mm =<177>;
  ti、height-mm =<100>;
  ENABLE-GPIO =<&GPIO5 27 GPIO_ACTIVE_HIGH>;
  INTERRUPT-PARENT =<&GPIO2>;
  中断=<2 IRQ_TYPE_LEVEL_HIGH>;
  状态="可以";
     
  显示-计时{
  LVDS{
    //Clock-frequency =<62500000>;
    时钟频率=<71150000>;
    Hactive =<1280>;
    Vactive =<720>;
    后沿=<120>;
    前沿=<120>;
    vback-scale =<25>;
    前沿=<25>;
    //HSYNC-len =<30>;
  HSYNC-LEN =<2>;
  //sync-len =<5>;
  vsync-len =<1>;
  HSYNC-ACTIVE =<0>;  
  VSYNC-ACTIVE =<0>;
  无效=<1>;
  像素时钟主动=<0>;
  };
    };
 
端口{
DSI_LVDS_BRIDGE_IN:端点{
远程端点=<&mipi_DSI_out>;
  };
  };
};
 
 
lcdif1(&L)
  状态="可以";
};
 
lcdif2 (&L){
  状态="可以";
};
 
ldb (&ldb){
  状态="可以";
   
  LVDS 通道@0{
    fsl、data-mapping ="JEIDA";
    FSL、数据宽度=<24>;
    状态="可以";
     
    端口@1{
      寄存器=<1>;
      LVDS_OUT:端点{
        远程端点=<&PAGE_LVDS_IN>;
      };
    };
  };
};
 
&ldb_phy{
  状态="可以";
};
 
&mipi_DSI{
  状态="可以";
   
  端口@1{
    MIPI_DSI_OUT:端点{
      远程端点=<&DSI_LVDS_BRIDGE_IN>;
      连接桥接;
    };
  };
};
 
 
在 defconfig 中启用以下配置
CONFIG_DRM_TI_SN65DSI83=y
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嘿 Prashant、

    很遗憾、软件调试超出了我的专业知识范围。 我们不支持软件。 您是否能够与器件进行 I2C 通信?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。

    I2C 通信与器件协同工作。

    观察结果是、如果在 i2c3/sn65dsi83@2D 节点下添加端口节点(DSI_LVDS_BRIDGE_IN)、则桥接失败并且 i2cdetect 看不到器件。
    如果没有端口节点、则可以看到 i2cdetect 器件并且通信工作。
    端口{
      DSI_LVDS_BRIDGE_IN:端点{
      远程端点=<&mipi_DSI_out>;
    };

    我们还尝试在同一个 Linux 6.6上测试 adv7535桥接器,它工作正常。
    所以不确定是什么导致 sn65dsi83桥出现故障。

           adv_bridge:adv7535@3D{
                   兼容="Adi、adv7535";
                   REG =<0x3D>;
                   ADI、addr-CEC =<0x3b>;
                   ADI、DSI-LANES =<4>;
                   状态="可以";

     

                   端口{
                           adv7535_from_dsim:端点{
                                   remote-endpoint =<&dsim_to_adv7535>;
                           };
                   };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嘿 Prashant、

    正如我提到过的、我无法支持用于我们的器件的驱动程序软件。 我们有一些针对这些器件的参考代码、但您似乎已经使用了一些源代码。  

    源码: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/video/omap2/dss/dsi.c?id=c16fa4f2ad19908a47c63d8fa436a1178438c7e7

    请告诉我这是否有帮助!

    遗憾的是、在支持方面、我没有其他可提供的内容、但如果您有任何硬件/实现问题、可以随时重新打开该线程。