问题描述:
目前的开发包是:DVRRDK_04.01.00.02,开发包里的视频采集芯片是tvp5158,而开发板(DM8168-EVM)的采集芯片是tvp7002 + ths7368 ,在目录 DVRRDK_04.01.00.02/ti_tools/hdvpss/dvr_rdk_hdvpss/packages/ti/psp/devices 中找到了tvp5158 和 tvp7002 的子目录,如果理解没有错的话,这里应该就是这两种芯片的驱动(如果错误请指正)。在目录 DVRRDK_04.01.00.02/dvr_rdk/mcfw/src_linux/devices 下只有 tvp5158子目录而不包含 tvp7002 子目录,也就是说,开发包中的mcfw只加载了tvp5158的驱动,而没有加载tvp7002。
查看boot的log信息发现确实只加载了tvp5158的驱动:
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
notify_init : notify drivercreated for remote proc id 2 at physical Address 00
usbcore: registered new interface driver snd-usb-audio
Registered tvp5158 audio codec
asoc: tvp5158-hifi <-> davinci-mcasp.0 mapping ok
asoc: tlv320aic3x-hifi <-> davinci-mcasp.2 mapping ok
asoc: HDMI-DAI-CODEC <-> hdmi-dai mapping ok
ALSA device list:
#0: TI81XX SOUND0
#1: TI81XX SOUND1
问题1:如何在开发包中实现 tvp7002的驱动,需要添加或修改那些模块?
然后我试着去运行了开发包中提供的demo,选择 VCAP + VENC + VDEC + VDIS - Progressive SD Encode + Decode ,设置必要参数之后,发现视频采集程序检测不到tvp7002,查看源代码(文件为: dvr_rdk/mcfw/src_linux/mcfw_api/usecases/ti816x/multich_progressive_vcap_venc_vdec_vdis.c)该demo中的采集芯片全部是tvp5158,同时,在开发包中其他涉及到视频采集部分也是用的tvp5158来实现,与我的开发板不匹配。
问题2:将视频采集芯片又5158变为7002,是否需要将demo中的所有tvp5158修改为tvp7002,并根据7002的寄存器配置修改参数?(个人感觉这个工作量比较大,也不合理) 是否在tvp7002采集的demo?
例如:UInt32 tvp_i2c_addr = Device_getVidDecI2cAddr(DEVICE_VID_DEC_TVP5158_DRV,0);
修改为:UInt32 tvp_i2c_addr = Device_getVidDecI2cAddr(DEVICE_VID_DEC_TVP7002_DRV,0);
说明:之前提过类似的问题,非常感谢Eason Wang 也给我提供的解决办法和思路,但是问题还没有解决,所以又详细整理了问题。
夏安
祝好!