[多媒体][RDK S600][相机扩展板 V1P0] 想通过Link A或者Link B接4路YUV图像

当前下载的platform source code没有找到针对camera 扩展板V1P0 参考的dts配置,是否可以帮忙发一个参考的dts文件。

官方没有单独一份“Camera 扩展板 V1P0 的 dts”,这是正常的:扩展板本身是 2 颗 MAX96712(J501/J601 各 4 路 GMSL2),内核 dts 描述的是 S600 主板侧的 MIPI RX / vcon / I2C / GPIO,所以参考配置就在平台源码的 source/hobot-drivers/kernel-dts 目录,V1P0 启动加载的是 rdk-s600-mcb-v1p0.dtb(源码是该目录下以 mcb-v1p0 命名的 dts/dtsi)。建议先确认是不是目录找错了。

依据:

  • kernel dts 目录、dtb 命名与 extlinux 中 domufdt /hobot/rdk-s600-mcb-v1p0.dtb 的对应关系见 RDK S600 硬件 bringup。
  • 使用官方硬件时,gpio_poc、gpio_des、lpwm_chn 等 vcon 配置 dts 已配好,只有换新硬件才需要改,见 Camera 点亮 的 GMSL 章节(该章以 S100+AR0820 为例,S600 基本一致)。

板端可先确认实际生效的树里有没有相机节点(节点名以你的 dtb 为准):

ls /proc/device-tree | grep -i vcon

如果目标是接自研 4 路 YUV 模组,只改 dts 不会出图,需要两块一起做:

  1. vcon 端口号与 MIPI RX 端口一一对应,bus/gpio_poc/gpio_des/rx_phy 按原理图填,例如文档模板:
&vin_vcon0 {
        bus = <2>;
        gpio_poc = <0>;
        gpio_des = <0>;
        sensor_err = <0>;
        lpwm_chn = <0 1 2 3>;
        rx_phy = <2 0>;
};
  1. HBN sensor 驱动(hobot-camera/drivers/sensor)里 emode 必须能描述你的模组:D4 表示 YUV422,S0/S1/S2 表示 MAX9295A/MAX96717/MAX96717F,M 为加串器给 sensor 的 mclk;4 路挂同一颗解串器时还要做 I2C 地址重映射。

4 路到底接在哪几路 MIPI RX、走哪条 I2C,需要对照扩展板与主板的硬件参考设计原理图:可查 RDK S600 Camera Board Reference Design(下载目录) 和 相机扩展板接口说明。

为了判断是“dts 未配”还是“驱动不支持”,请补充:模组型号与加串器型号、当前 SDK 版本(V5.1.0 / V5.1.1),以及 4 路准备接 J501 还是 J601。若是自研模组加定制 serdes 的适配联调,论坛这边可以先结合资料把方案理清,具体调试环节建议通过 DGP 项目对接与技术支持 对接 FAE。

先看 SDK 的 source/hobot-drivers/kernel-dts/ 目录,S600 板级基线是 rdk-s600-mcb.dtsi,V1P0 对应的启动 DTB 是 rdk-s600-mcb-v1p0.dtb

四路 YUV 的解串器和 VC 配置还要跟模组对应,你补一下 SDK 版本和相机型号,我帮你对具体参考,避免套错旧版扩展板配置

https://developer.d-robotics.cc/rdk_s_doc/Advanced_development/hardware_development/rdk_s600_board_bringup

官方发布包里没有单独一份「相机扩展板 V1P0 的 dts」,扩展板上只有 2 颗 MAX96712 和 J501/J601 两个 4-in-1 接口,内核 dts 描述的是主板侧的 MIPI RX / vcon / I2C / GPIO,所以参考配置就是主板板级 dts:在 source/hobot-drivers/kernel-dts 下,V1P0 启动用的 dtb 是 rdk-s600-mcb-v1p0.dtb(该命名与 boardid 0x5131310 的映射也写在板端 hb_switch_ion.sh 里,见 相关讨论)。

在这个目录里执行 grep -rn vin_vcon . 就能看到现成的 vcon 节点,那就是可照抄的参考;要新增自己的板级 dts,官方要求先 #include "rdk-s600-mcb.dtsi" 再覆写,并把文件加进 Makefile,见 RDK S600 硬件 bringup。

S600 侧实际可用的通道(官方表格):RX0~RX3 为 GMSL,各挂 MAX96712,I2C 依次为 0~3,poc EN 为 362~365、解串器 PWDNB 为 406~409;RX4/RX5 才是直连 MIPI sensor。4 路 YUV 接 Link A 或 Link B 时,vcon 端口号必须与实际用到的 RX 一一对应,bus 填该 RX 的 I2C 号,gpio_poc/gpio_des 填上面的 EN/PWDNB。J501/J601 究竟落到哪两路 RX,文档没有给出,只能按扩展板与主板原理图确认。

来源页:RDK S600 相机扩展板

不想动主 dts 的话可以走 dtbo overlay:写 .dtso 用 dtc -q -@ -I dts -O dtb -o xxx.dtbo xxx.dtso 编译,放到 /boot/overlays,在 config.txt 里写 dtbo_file_path=/overlays/xxx.dtbo,参考示例见 Camera 点亮 的 sensor dtbo 章节。

另外只补 dts 不会出图:模组要在 hobot-camera/drivers/sensor 的 emode 里描述为 D4(YUV422)+ S0/S1/S2(MAX9295A/MAX96717/MAX96717F),同一解串器下挂 4 路相同模组时还要在 emode_data 里做 I2C 地址重映射。模组型号和实际接的 J501/J601 确定后,vcon 的 bus/gpio_poc/gpio_des/rx_phy 就能一次对死。