DS90UH941AS-Q1: DS90UH941AS-Q1 Linux drm_bridge 驱动 / DSI 显示链路寄存器初始化序列

Part Number: DS90UH941AS-Q1
Other Parts Discussed in Thread: DS90UH948-Q1,

您好 TI 团队,
  ▎
  ▎ 我们在 Rockchip RK3576 SoC(Linux 内核 6.1)上调试一块新评估板,显示链路如下:
  ▎
  ▎ RK3576 SoC MIPI-DSI TX(4 lane,1.0 Gbps/lane)
  ▎          │
  ▎          ▼
  ▎ DS90UH941AS-Q1   (DSI → FPD-Link III 序列化器)
  ▎          │   I2C 控制:    地址 0x0C(IDX 拉低)
  ▎          │   REFCLK0:    25 MHz 独立 LVCMOS 晶振
  ▎          │   MODE_SEL0/1: 两者均拉高
  ▎          │
  ▎          ▼  FPD-Link III 经 STP 线
  ▎ DS90UH948-Q1     (FPD-Link III → OpenLDI/RGB 解串器)
  ▎          │
  ▎          ▼
  ▎ LVDS LCD 屏
  ▎
  ▎ DS90UH941AS 是 SoC 的 MIPI-DSI host 和屏幕之间唯一的有源 bridge。没有 Linux 驱动以 drm_bridge 形式注册,SoC 的 DSI 控制器就无法完成 mipi_dsi_host_attach(),屏幕点不亮。
  ▎
  ▎ 我们已经核实
  ▎
  ▎ - mainline Linux drivers/gpu/drm/bridge/ 里没有 DS90UH941 驱动(最近的 TI 件:ti-sn65dsi83.c 是 DSI→LVDS,ti-sn65dsi86.c 是 DSI→eDP,输出协议都不一样)
  ▎ - TI 自己的 ti-linux-kernel(ti-linux-6.12.y 分支,drivers/media/i2c/)有 ds90ub913 / ds90ub953 / ds90ub960 驱动,全部是摄像头方向 V4L2
  ▎ sub-device,显示方向(UH941/947/949)一个都没有
  ▎ - 2018 年 MFD-based ds90ux9xx-core RFC 系列(LWN 767903)从未合入主线
  ▎ - 已有的 E2E 帖 + Raspberry Pi 论坛(forums.raspberrypi.com/viewtopic.php?p=2307034)均证实:无 in-tree 驱动,建议自己写
  ▎
  ▎ 我们的问题
  ▎
  ▎ 1. 驱动是否存在。 TI 是否维护(in-tree 或客户专属)的 DS90UH941AS-Q1 Linux drm_bridge 驱动?如有,请提供 git 仓库 / SDK 版本号,或私信附件。即便面向 TI
  ▎ 自己的平台(Jacinto/Sitara/AM6x)也行,Rockchip 适配我们自己来。
  ▎
  ▎ 2. 寄存器初始化序列。 若无驱动,请共享 DS90UH941AS-Q1EVM 配套软件用于以下场景的 I2C 寄存器写入序列:
  ▎ - 4-lane MIPI-DSI 输入,single-link FPD-Link III 输出
  ▎ - HDCP 关闭
  ▎ - DSI burst 模式,continuous clock
  ▎
  ▎ SNLS546 datasheet 我们已经在看,但需要的是 RESET_CTL、MODE_SEL、BRIDGE_CTL、DSI lane 映射、以及读取 link 状态(GENERAL_STS.DSI_ERROR、DSI_STATUS)的逐步顺序。
  ▎
  ▎ 3. Deser + 屏侧 I2C backchannel alias 配置。 对应远端 DS90UH948-Q1 + 一个下游 I2C 设备(panel EEPROM/touch),SlaveID_n / SlaveAlias_n(UH941A 寄存器
  ▎ 0x07..0x17)推荐如何配?给一个我们这种"1 ser + 1 deser + 1 下游 I2C 设备"的具体配置例子会有很大帮助。
  ▎
  ▎ 4. Strap 与寄存器 override。 MODE_SEL0/1 都拉高了,datasheet 表 8-2 对应 "4-lane DSI、HDCP enabled、single-link"。复位后能否通过 BRIDGE_CTL 寄存器覆盖关掉
  ▎ HDCP,还是必须重新 strap 硬件?如果可以 override,请指出确切字段位。
  ▎
  ▎ 平台信息(供参考)
  ▎
  ▎ | 项       | 值                                                                         |
  ▎ |----------|----------------------------------------------------------------------------|
  ▎ | SoC      | Rockchip RK3576(Cortex-A72 + A53),MIPI D-PHY 4-lane,最高 4.5 Gbps/lane     |
  ▎ | 内核     | Linux 6.1(Rockchip BSP 分支)                                               |
  ▎ | 序列化器 | DS90UH941AS-Q1,MODE_SEL0/1 = H/H,IDX = L(地址 0x0C 7-bit),REFCLK0 = 25 MHz |
  ▎ | 解串器   | DS90UH948-Q1(同样还没驱动)                                                 |
  ▎ | 屏       | LVDS,时序按 panel DT 节点配置                                              |
  ▎
  ▎ 显示调试是我们的关键路径,无论驱动源码、寄存器序列、还是 EVM .cfg 寄存器 dump 都帮助很大,先谢过。
  ▎
  ▎ 此致,
  ▎ 卓洋