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/AM5728:VIP 最小子设备驱动程序

Guru**** 2589275 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/574362/linux-am5728-vip-minimum-sub-device-driver

器件型号:AM5728

工具/软件:Linux

您好!

我已连接具有16位 YCbCr 4:2:2输出的摄像头、并通过 AM572xEVM 上的摄像头模块接口将其嵌入式同步至 VIP。 摄像机以固定格式1920x1080p25输出视频、像素时钟为74.25MHZ。 am5728与摄像机之间没有通信。 开机后、摄像头立即开始流式传输视频。 现在、我需要一个最小的子设备驱动程序和一个设备树条目、以便在 gstreamer 中接收视频。  

我的问题如下:

没有配置功能的子设备驱动程序的最小实现是什么? 有示例吗? 我看了一个非常短的 ov7640.c、但它具有 i2c、这是不需要的。

2.设备树条目将是什么样的?

提前感谢您的帮助

Marc

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

    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    你对我有什么建议吗? 是否有最小子设备驱动程序的示例? 是否需要介质实体和焊盘?

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

    [报价用户="Marc48067"]我已将具有16位 YCbCr 4:2:2输出的摄像头与嵌入式同步通过 AM572xEVM[/quot]上的摄像头模块接口连接到 VIP [/报价]

    VIP 驱动程序不支持16位总线嵌入式同步(BT.1120)。 它仅支持8位总线嵌入式同步 IE BT656

    [引用 user="Marc48067"]1. 没有配置功能的子设备驱动程序的最小实现是什么? 有示例吗? 我看了 ov7640.c、它很短、但它有 i2c、这是不需要的。[/引述]

    由于使用的传感器是嵌入式同步、建议您将 tvp514x.c 驱动程序视为一个模型。 如果不需要 i2c 器件、您可以将其残留/移除。 例如,您可能必须直接使用 v4l2_subdev_init (),而不是 v4l2_i2c_subdev_init ()

    [引用用户="Marc48067"]2. 设备树条目将是什么样的?[/quot]

    DTS 条目可能如下所示

     

    /{

                  凸轮名称1{

                                 兼容=" 、 ";

     

                                 端口{

                                                #address-cells =<1>;

                                                #size-cells =<0>;

                                                CAM1:端点{

                                                               reg =<1>;

                                                               /*或其连接到*/的任何 VIN 端口

                                                               远程端点=<&V vin1a>;

                                                               pclk-sample =<0>;

                                                              CHANNELS =<0>;

                                                };

                                 };

                  };

    };

     

    这至少应允许它作为嵌入式同步子器件在 V4L2框架级别与握手。

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

    [引用 user="Marc48067">是否需要媒体实体和焊盘?
    [/报价]

    VIP 不支持媒体框架、因此子设备中不需要媒体实体。 但是、该子器件确实需要支持 V4L2子器件 API 、即 CONFIG_VIDEO_V4L2_SUBDEV_API。

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

    非常感谢!

    下面是 tvp514x.c 驱动程序的 subdev 操作。 我不知道哪些操作是必需的并且必须被执行、哪些可以为 NULL。 我也不知道每个操作的目的

    静态常量结构 v4l2_subdev_video_ops tvp514x_video_ops ={
    .s_std = tvp514x_s_std、
    .s_routing = tvp514x_s_routing、
    querystd = tvp514x_querystd、
    .g_parm = tvp514x_g_parm、
    s_parm = tvp514x_s_parm、
    s_stream = tvp514x_s_stream、
    };

    静态常量结构 v4l2_subdev_pad_ops tvp514x_pad_ops ={
    enum_MBUS_code = tvp514x_enum_MBUS_code、
    get_fmt = tvp514x_get_pad_format、
    set_fmt = tvp514x_set_pad_format、
    };

    静态常量结构 v4l2_subdev_ops tvp514x_ops ={
    .video =&tvp514x_VIDEO_ops、
    .pad =&tvp514x_pad_ops、


    子驱动程序必须支持 CONFIG_VIDEO_V4L2_SUBDEV_API 意味着什么? 它必须实现哪些操作?

    谢谢、祝您愉快

    Marc

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

    因此、这意味着我们的摄像头必须为16位 YCbCr 4:2:2提供单独的同步。 否则、它将无法与 VIP 驱动程序配合使用、对吧? 您是否计划在未来版本的 VIP 驱动程序中支持 YCbCr 16位的嵌入式同步?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何测试视频捕捉是否正常? 是否有终端命令可通过 VIP 捕获视频并通过 DSS 在 AM5728EVM 的 HDMI/LCD 输出上显示视频?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我的意思是您需要增强 VIP 驱动程序本身以添加对16位嵌入式同步捕捉的支持。 我们没有计划在将来支持该模式、因为我们的参考 EVM 没有连接16位嵌入式同步摄像头的接口、因此无法测试驱动器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您可以使用 yavta 来测试视频捕获。 它是基于文件的捕获、因此您需要在某些实用程序中打开捕获的图像文件、以查看它是否正常。 在此处查看 wiki 页面、了解有关 yavta 的更多信息-
    processors.wiki.ti.com/.../Linux_Core_VIP_User's_Guide
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    马克

    查看以下 wiki 页面中共享的链接、获取有关子器件实现的答案。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    我现在有这样的问题。 您是否已解决问题?