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.

[参考译文] Linux/processor-SDK-DRA7X:NVP6124I DTS 端口设置

Guru**** 2598435 points
Other Parts Discussed in Thread: TVP5158, DRA725

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578599/linux-processor-sdk-dra7x-nvp6124i-dts-port-setting

器件型号:PROCESSOR-SDK-DRA7X
主题中讨论的其他器件:TVP5158DRA725

工具/软件:Linux

您好:

   我在我的 dra72x 板上使用了 nvp6124i。

  使用 I2c1、Nvp6124 addr:0x30
HW:

Nvp6124i 端口(VDO1~4)

通道1 --(BT656+clk)->VIN1a
通道2 --(BT656+clk)->VIN1b
通道3 --(BT656+clk)->VIN2a
通道4 --(BT656+clk)->VIN2b

我的 DTS
vin1a{(&V)
状态="正常";
端点@0{
从模式;
远程端点=</nvp6124_CAM1>;
};
};
vin1b{(&V)
状态="正常";
端点@0{
从模式;
远程端点=</nvp6124_CAM2>;
};
};
vin2a{(&V)
状态="正常";
端点@0{
从模式;
远程端点=</nvp6124_cam3>;
};
};
vin2b{&V
状态="正常";
端点@0{
从模式;
远程端点=</nvp6124_cam4>;
};
};
如何设置 I2C 端点? 我可以获取节点/dev/video1~4。

我测试了以下设置。 但只能连接一个/dev/video1。  

nvp6124@30{
兼容="nvp6124";
reg =<0x30>;
端口{
nvp6124_CAM1:端点@0{
pclk-sample =<0>;
CHANNELS =<0>;
};
};

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

    您使用的内核版本是什么?

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

    Linux dra7xx-EVM 3.14.57

    是否有 nvp6124x 驱动程序和 DTS?

    谢谢。

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

    您可以在此线程中检查 FIRS 消息中的附件,以了解有关 nvp6124i 驱动程序的一些工作:
    e2e.ti.com/.../539679

    同时,我将向 VIP 专家提出您的问题。

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

    Yordan 您好:

    我检查驱动程序、

    日志:

    dmabuftest -s 4:800x480 -d /dev/video1 -c 1280x720@YUYV

    [1312.856143] vip1-s0:s_fmt pix_TO_MBUS MBUS_code:2006大小:1280x720
    [1312.862611] vip1-s0:s_fmt subdev try_fmt MBUS_code:2008大小:1280x720
    [1312.869352]目前仅支持1280x720分辨率
    [1312.874959] vip1-s0:s_fmt subdev s_fmt MBUS_code:2008大小:1280x720
    [1312.881512] vip1-s0:s_fmt vpdma 数据类型:0x07
    [1312.886775] vip1-s0:获取6个大小均为1843200的缓冲器。
    导出的缓冲区 FD = 6

    导出的缓冲区 FD = 8

    导出的缓冲区 FD = 10

    导出的缓冲区 FD = 12

    导出的缓冲区 FD = 14

    导出的缓冲区 FD = 16

    [1312.909633] vip1-s0:start_streaming: buf 0xd0dfe000 6.
    [1312.914840]宽度:1280、高度:720
    [1312.918174] vip1-s0:start_streaming: start_dma buf 0xd0dfe000
    [1312.924050] vip1-s0:start_dma:buf:0xd0dfe000、VB:0xd0dfe000、dma_addr:0x7f5ce000
    [1312.931662] vip1-s0:IRQ 351 VIP_INT0_STATUS0 0x1
    [1312.936385] vip1-s0:IRQ 0:处理 LIST0_COMPLETE
    [1312.941280] vip1-s0:添加了下一个缓冲区
    [1312.945045] vip1-s0:start_dma:buf:0xd0b5ac00、VB:0xd0b5ac00、dma_addr:0x7f40c000
    [1312.952664] vip1-s0:IRQ 351 VIP_INT0_STATUS0 0x1
    [1312.957387] vip1-s0:IRQ 0:处理 LIST0_COMPLETE
    [1312.962283] vip1-s0:添加了下一个缓冲区
    [1312.966047] vip1-s0:start_dma:buf:0xd0b5a800、VB:0xd0b5a800、dma_addr:0x7f24a000

    在 这里等候。

    我检查硬件信号 BT656是否正常。

    附件 DTS 无法使节点/dev/video1成为节点

    mydts (我的帐户):

     nvp6124@30{
      兼容="nvp6124";
      reg =<0x30>;
      端口{
        nvp6124_CAM1:端点@0{
         pclk-sample =<0>;
         CHANNELS =<0>;
         };
        };
      };

    节点/dev/video1.

    我检查 func:::static int vp_setup_parser (struct vp_port *端口)

    但我不知道如何在 DTS 中设置它们。

    Kevin。 ZD

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我假设您在四个不同的视频端口上有四个不同的 BT656视频流。
    请确认它们未在同一端口上进行时间多路复用


    如果是时间多路复用:
    仅使用正确的视频端口(DRA75x 板上的 vin1a、DRA72x 板上的 vin2a)
    在 JAMR 电路板 DTS 上使用 TVP5158作为器件的基准
    将 CHANNELS 属性设置为正确的通道编号(例如、四个通道的 CHANNELS =<0 1 2 3>)


    如果有四个不同的视频端口:
    您所做的更改部分正确。
    每个 VIN**节点都需要映射到有效的端点。
    我看到您在 NVP DTS 节点中只定义了一个端点。
    为 CAM1、CAM2、CAME3、CAME4添加四个端点

    但愿这对您有所帮助
    此致、
    Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的电路板 dra725 使用四个不同的视频端口。

    您能给我一个 nvp6124 4端口 BT656示例吗?

    谢谢。

    Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好如果 您使用四个不同的端口, 请从 dra7-evm.dts 和 jamr3.dts (请参阅 TVP5158集成) 此处的 vin2a{endpoint -> TVP}和 TVP{endpoint -> vin1a}中举例 说明四个端口, 您需要添加相似的节点、其中每个端口都有一个端点、每个端点都指向一个远程端点 、所有这些节点都应该是不同的端点。 它们可以是同一子开发设备(在您的情况下为 NVP)的一部分。 您无需创建 NVP 器件的四个实例、Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将器件设置为1通道像素非交错。 720p (1280x720)-25fps。

    如何设置我的 dra72x  VIP  寄存器

    我的寄存器从 0x4897 5500开始。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否解决了 DTS 移植问题。 如果是、请关闭此主题并启动新主题。 因此、您不必修改 VIP 解析器代码。 设置正确的 DT 参数应达到正确的解析器配置。 考虑端点节点 Nikhil D 的像素多路复用模式属性
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我还没有解决我的 DTS、NVP6124只有1个 i2c addr、连接的摄像头(1、2、3、4)不具有 I2C addr。
    它与 DEV TVP5158不同。 TVP5158是4端口至1个 VIP 端口。 Nvp6124是4端口到4 VIP 端口、并且只有一个 i2c addr。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Kevin: VIP 和 subdev 驱动程序使用标准 v4l2端点绑定。 它非常简单: -描述子开发下的视频端点数量(在本例中为4个、因此在 NVP 子开发节点中添加四个端点) -描述 v4l2器件中的视频端点数量(已显示为 vin1a、vin2a 等) -相互连接从属端点和主端点(vin1a、2a 连接到 subdev 的每个唯一端点) 您可以在 lwn.net/.../ 上找到更多信息、Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Nikhil ,

    我的基本 BSP 版本:ti-glsdk_dra7xx-evm_7_03_00_03 /ti-glsdk_dra7xx-evm_7_04_00_03

    只需创建一个/dev/video1、

     attach 文件是我的 dev 树和 nvp6124的引导日志、

    我找不到您提供的补丁程序基础 wersion BSP。

    e2e.ti.com/.../mail_5F00_devtree.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Nikhil:
    现在我创建了4个开发节点/dev/video1~4 (远程端点 VIN:1a、1b、2a、2b)、它不是 dts 规则、
    设备树:
    nvp6124@30{...}
    nvp6124@34{...}
    nvp6124@35{...}
    nvp6124@36{...}
    NVP i2c addr 为0x30、我创建3个伪地址、然后创建4个节点;
    当我操作 nvp6124设备时,我将在 NVP 驱动程序中将3个伪地址更改为0x30。

    没关系吗?

    然后是另一个问题:如何通过 bt656捕获视频 nvp6124 (1280x720 25fps)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kevind、您好、 我在上一个答复中非常明确地说明了您应该只创建节点 NVP 节点、并且其中有4个端点。 请从内核文档中阅读有关器件树和 V4L2绑定的更多信息。 从附件中,testcase3看起来是正确的。 确保启用所有其他 VIN 端口(默认情况下、它们处于禁用状态)并添加远程端点。 使用 procfs 器件树进行调试、并转储生成的器件树 、Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../8611.dts_5F00_log.zipI测试 DTS 并获取日志和 fdtdump 文件,

    测试3.1  

    测试3.2

    这两种格式的树仅使一个节点成为 video1。  

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Kevin 、感谢 dmesg 日志。 这会有所帮助。 4个视频节点中不会出现任何 DTS 更改的原因是: V4L2器件和子器件绑定不正确。 请确保您注册的子设备数量与 NVP 驱动程序中的端口数量相同。 每个 subdev 将与每个 VIP 端口链接、然后它将注册/dev/video 器件。 更新 NVP 驱动程序以注册四个单独的子设备。 这是一个新的例子,我从未尝试过类似的东西。 典型的异步绑定是根据基于设备树的标准进行的。 因此、即使所有节点都是同一 i2c 器件的一部分(因为每个端点都是不同的节点) 、它也应该起作用。谨致 Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你 Nikhil。
    现在、我求解多节点、如 fpd3_adapter。
    将范围添加到 DTS、并将自适应添加到驱动程序。
    root@dra7xx-EVM:~# ls /proc/device-tree/ocp/i2c@48070000/NVP@30/
    与#address-cells 兼容 nvp6124_VIN@11 nvp6124_VIN@13个范围
    大小-单元格 名称 nvp6124_VIN@12 nvp6124_VIN@14稳压器
    root@dra7xx-EVM:~# ls /sys/devices/44000000.ocp/48970000.vip/video4linux
    video1 video3 video4 video5
    root@dra7xx-EVM:~# ls /dev/video
    /dev/video0 /dev/video1 /dev/video2 /dev/video3 /dev/video4 /dev/video5
    root@dra7xx-EVM:~#


    ---- -----