主题中讨论的其他器件: AM4372、 TLV320AIC3111、 TPS65218
工具/软件:Linux
Sitara 处理器论坛:
我的客户设计了一个定制板、它使用 AM4379处理器从 Techwell TW9906视频解码器捕获视频。
TW9906有8条数据线路通过 CAM_7连接到 CAM_0、 解码器 的 PCLK、VSYNC 和 HSYNC 也 连接到 AM4379上各自的引脚。 在此设计中、解码器的 I2C 信号路由到 AM4379的 I2C2_SDA 和 I2C2_SCL 引脚。
我已根据"Linux Core VPFE 用户指南"文档中包含的信息配置了内核、但有一个例外:我选择了 TW9906解码器支持、而不是 OV2659传感器支持。 我还将"多媒体支持"编译为 一个模块。
我已经修改了 am43x-epos-evm.dts、以包括用于 CAM_0至 CAM_7引脚以及 PCLK、VSYNC 和 HSYNC 引脚的正确引脚多路复用设置。 我还将 I2C 绑定从 I2C1移动到 I2C2、并将每次发生的 ov2659替换为 tw9906。
内核成功引导 至定制板上的命令行、modprobe 显示模块可用。
# modprobe -D tw9906
insmod /lib/modules/4.9.40/kernel/drivers/media/media.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/videodev.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/v4l2-common.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/i2c/tw9906.ko
# modprobe -D AM437X-VPFE.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/media.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/videodev.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/videobuf2-core.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/videobuf2-v4l2.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/videobuf2-memops.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/v4l2-common.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/v4l2-core/videobuf2-dma-contig.ko
insmod /lib/modules/4.9.40/kernel/drivers/media/platform/am437x/am437x-vpfe.ko
我可以手动加载所有相关模块和 tw9906.ko、没有任何错误。
但是、在我加载所有 AM437X-VPFE.ko 相关模块并最终加载 AM437X-VPFE.ko 后、我会得到以下错误:
# modprobe -v media.ko
[281.958715]介质:Linux 介质接口:v0.10
# modprobe -v video.ko
[289.847537] Linux 视频捕捉接口:v2.00
# modprobe -v videobf2-core.ko
# modprobe -v videobuf2-v4l2.ko
# modprobe -v videobf2-memops.ko
# modprobe -v v4l2-common.ko
# modprobe -v video/dma-contg.ko
# modprobe -v AM437X-VPFE.ko
[349601145] VPFE 48326000.VPFE:无效总线宽度。
[349606027] VPFE 48326000.VPFE:无平台数据
[349612628] VPFE:48326000.VPFE 的探测失败,错误-22
我有三个问题:
1) 1)我的设计步骤是否正确?
2) 2)错误是什么意思?
3) 3)如何修复配置、以便能够从视频解码器捕获视频。
我们将感谢您的所有帮助和建议。
~Gary