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.

any help for tvp5158 mcvip problem on dvsdk4 of dm365

Other Parts Discussed in Thread: TVP5158

hi,

i use DM365_DVR_DVSDK3_00.02.00.00.zip mcvip packages from http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/118704.aspx.

i see tvp5158 info from boot msg on dm365 as below:

U-Boot 2010.12-rc2 (Aug 01 2011 - 23:08:14)                                    
                                                                               
Cores: ARM 297 MHz                                                             
DDR:   243 MHz                                                                 
I2C:   ready                                                                   
DRAM:  128 MiB                                                                 
NAND:  256 MiB                                                                 
MMC:   davinci: 0, davinci: 1                                                  
Net:   Ethernet PHY: GENERIC @ 0x00                                            
DaVinci-EMAC                                                                   
Hit any key to stop autoboot:  0                                               
                                                                               
Loading from nand0, offset 0x400000                                            
   Image Name:   " Linux Kernel"                                             
   Created:      2012-02-29  13:40:39 UTC                                      
   Image Type:   ARM Linux Kernel Image (uncompressed)                         
   Data Size:    4192128 Bytes = 4 MiB                                         
   Load Address: 80008000                                                      
   Entry Point:  80008000                                                      
Skipping bad block 0x006e0000                                                  
Automatic boot of image at addr 0x82000000 ...                                 
## Booting kernel from Legacy Image at 82000000 ...                            
   Image Name:   "Linux Kernel"                                             
   Created:      2012-02-29  13:40:39 UTC                                      
   Image Type:   ARM Linux Kernel Image (uncompressed)                         
   Data Size:    4192128 Bytes = 4 MiB                                         
   Load Address: 80008000                                                      
   Entry Point:  80008000                                                      
   Verifying Checksum ... OK                                                   
   Loading Kernel Image ... OK                                                 
OK                                                                             
                                                                               
Starting kernel ...                                                            
                                                                               
Linux version 2.6.32-17 (gcc version 4.3.3 (Sourcery
G++ Lite 2009q1-203) ) #7 PREEMPT Wed Feb 29 21:39:26 CST 2012                 
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177                  
CPU: VIVT data cache, VIVT instruction cache                                   
Machine: DM365 EVM                                                         
Memory policy: ECC disabled, Data cache writeback                              
DaVinci dm36x_rev1.2 variant 0x8                                               
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 25146     
Kernel command line: davinci_enc_mngr.ch0_output=PRGB davinci_enc_mngr.ch0_mode=
PRGB davinci_display.cont2_bufsize=6291456 vpfe_capture.cont_bufoffset=6291456 v
pfe_capture.cont_bufsize=6291456 video=davincifb:osd1=off:osd0=1280x720x16,1800K
@0,0 console=ttyS0,115200n8 video=davincifb:vid0=off:vid1=off:osd1=off dm365_imp
.oper_mode=0 vpfe_capture.interface=1 mem=99M root=/dev/nfs nfsroot=192.168.1.20
0:/home/dsp/LeopardBoardDM365sdkEVAL2011Q2/fs/fs rw ip=dhcp dm365_generic_prgb_e
ncoder.mode=1280x720MR-16@60 mtdparts=davinci_nand.0:4096k(UBOOT),4480k(KERNEL),
204800k(FS)                                                                    
PID hash table entries: 512 (order: -1, 2048 bytes)                            
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)                 
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)                   
Memory: 99MB = 99MB total                                                      
Memory: 96000KB available (3764K code, 295K data, 140K init, 0K highmem)       
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1        
Hierarchical RCU implementation.                                               
NR_IRQS:245                                                                    
Console: colour dummy device 80x30                                             
Calibrating delay loop... 147.86 BogoMIPS (lpj=739328)                         
Mount-cache hash table entries: 512                                            
CPU: Testing write buffer coherency: ok                                        
DaVinci: 8 gpio irqs                                                           
NET: Registered protocol family 16                                             
davinci_serial_init:97: failed to get UART2 clock                              
bio: create slab <bio-0> at 0                                                  
DM365 IPIPE initialized in Continuous mode                                     
SCSI subsystem initialized                                                     
usbcore: registered new interface driver usbfs                                 
usbcore: registered new interface driver hub                                   
usbcore: registered new device driver usb                                      
vpss vpss: dm365_vpss vpss probed                                              
vpss vpss: dm365_vpss vpss probe success                                       
dm365_afew_hw_init                                                             
ch0 default output "PRGB", mode "PRGB"                                         
VPBE Encoder Initialized                                                       
fbcvt: 1280x720@60: CVT Name - .921M9-R                                        
General PRGB Encoder initialized                                               
LogicPD encoder initialized                                                    
Switching to clocksource timer0_1                                              
musb_hdrc: version 6.0, cppi-dma, host, debug=0                                
musb_hdrc: USB Host mode controller at fec64000 using DMA, IRQ 12              
musb_hdrc musb_hdrc: MUSB HDRC host driver                                     
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1             
usb usb1: configuration #1 chosen from 1 choice                                
hub 1-0:1.0: USB hub found                                                     
hub 1-0:1.0: 1 port detected                                                   
NET: Registered protocol family 2                                              
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                 
TCP established hash table entries: 4096 (order: 3, 32768 bytes)               
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)                      
TCP: Hash tables configured (established 4096 bind 4096)                       
TCP reno registered                                                            
NET: Registered protocol family 1                                              
RPC: Registered udp transport module.                                          
RPC: Registered tcp transport module.                                          
RPC: Registered tcp NFSv4.1 backchannel transport module.                      
msgmni has been set to 187                                                     
alg: No test for stdrng (krng)                                                 
io scheduler noop registered                                                   
io scheduler anticipatory registered (default)                                 
davincifb davincifb.0: dm_osd0_fb: 1280x720x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_osd1_fb: 1280x720x4@0,0 with framebuffer size 1800KB 
DM365 IPIPEIF probed                                                           
imp serializer initialized                                                     
davinci_previewer initialized                                                  
davinci_resizer initialized                                                    
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled                       
serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A                   
console [ttyS0] enabled                                                        
brd: module loaded                                                             
loop: module loaded                                                            
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit
)                                                                              
Scanning device for bad blocks                                                 
Bad eraseblock 55 at 0x0000006e0000                                            
Bad eraseblock 168 at 0x000001500000                                           
Bad eraseblock 171 at 0x000001560000                                           
Bad eraseblock 368 at 0x000002e00000                                           
Bad eraseblock 385 at 0x000003020000                                           
Bad eraseblock 780 at 0x000006180000                                           
Bad eraseblock 1467 at 0x00000b760000                                          
Bad eraseblock 1682 at 0x00000d240000                                          
Bad eraseblock 2010 at 0x00000fb40000                                          
3 cmdlinepart partitions found on MTD device davinci_nand.0                    
Creating 3 MTD partitions on "davinci_nand.0":                                 
0x000000000000-0x000000400000 : "UBOOT"                                        
0x000000400000-0x000000860000 : "KERNEL"                                       
0x000000860000-0x00000d060000 : "FS"                                           
davinci_nand davinci_nand.0: controller rev. 2.3                               
Initializing USB Mass Storage driver...                                        
usbcore: registered new interface driver usb-storage                           
USB Mass Storage support registered.                                           
usbcore: registered new interface driver usbtest                               
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
tsc2004: probe of 1-0049 failed with error -110                                
i2c /dev entries driver                                                        
Linux video capture interface: v2.00                                           
ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter)                        
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
ths7303 1-002c: ths7303 write failed                                           
ths7303: probe of 1-002c failed with error -110                                
I2C: Module install successful, device major num = 251                         
DMA: Module install successful, device major num = 250                         
TVP5158: Module built on Feb 29 2012 21:39:09                                  
vpfe_init                                                                      
vpfe-capture: vpss clock vpss_master enabled                                   
vpfe-capture vpfe-capture: v4l2 device registered                              
vpfe-capture vpfe-capture: video device registered                             
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
mt9p031 1-0048: No MT9P031 chip detected, register read ffffff92               
vpfe-capture vpfe-capture: v4l2 sub device mt9p031 register fails              
No sub devices registered                                                      
vpfe-capture: vpfe capture clocks disabled                                     
vpfe_register_ccdc_device: DM365 ISIF                                          
dm365_isif: probe of dm365_isif failed with error -22                          
af major#: 249, minor# 0                                                       
AF Driver initialized                                                          
aew major#: 248, minor# 0                                                      
AEW Driver initialized                                                         
Trying to register davinci display video device.                               
layer=c506c400,layer->video_dev=c506c564                                       
Trying to register davinci display video device.                               
layer=c506c800,layer->video_dev=c506c964                                       
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded                           
watchdog watchdog: heartbeat 60 sec                                            
davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode                               
usbcore: registered new interface driver usbhid                                
usbhid: v2.6:USB HID core driver                                               
Advanced Linux Sound Architecture Driver Version 1.0.21.                       
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
No device for DAI tlv320aic3x                                                  
No device for DAI davinci-i2s                                                  
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
i2c_davinci i2c_davinci.1: controller timed out                                
i2c_davinci i2c_davinci.1: initiating i2c bus recovery                         
asoc: tlv320aic3x <-> davinci-i2s mapping ok                                   
ALSA device list:                                                              
  #0: DaVinci DM365 EVM (tlv320aic3x)                                          
TCP cubic registered                                                           
NET: Registered protocol family 17                                             
Clocks: disable unused mmcsd1                                                  
Clocks: disable unused spi0                                                    
Clocks: disable unused spi1                                                    
Clocks: disable unused spi2                                                    
Clocks: disable unused spi3                                                    
Clocks: disable unused spi4                                                    
Clocks: disable unused pwm0                                                    
Clocks: disable unused pwm1                                                    
Clocks: disable unused pwm2                                                    
Clocks: disable unused pwm3                                                    
Clocks: disable unused timer1                                                  
Clocks: disable unused timer3                                                  
Clocks: disable unused emac                                                    
Clocks: disable unused voice_codec                                             
Clocks: disable unused rto                                                     
Clocks: disable unused mjcp                                                    
davinci_emac_probe: using random MAC addr: 3e:a0:17:f9:6d:12                   
emac-mii: probed                                                               
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)                        
Sending DHCP requests ., OK                                                    
IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.1.145           
IP-Config: Complete:                                                           
     device=eth0, addr=192.168.1.145, mask=255.255.255.0, gw=192.168.1.1,      
     host=192.168.1.145, domain=domain, nis-domain=(none),                     
     bootserver=0.0.0.0, rootserver=192.168.1.200, rootpath=                   
Looking up port of RPC 100003/2 on 192.168.1.200                               
Looking up port of RPC 100005/1 on 192.168.1.200                               
VFS: Mounted root (nfs filesystem) on device 0:13.                             
Freeing init memory: 140K                                                      
init started: BusyBox v1.18.2 (2012-02-29 19:42:49 CST)                        
starting pid 984, tty '': '/etc/rcS'                                           
Starting System                                                                
done.                             

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

however,i test mcvip_test.out and get errors  like these:

/examples # ./mcvip_test.out                                                   
----MCVIP 0I2C: Driver registration in progress for address b6..               
                                                                               
 pObj->client=[0]                                                              
Unable to handle kernel NULL pointer dereference at virtual address 00000000   
pgd = c5690000                                                                 
[00000000] *pgd=85679031, *pte=00000000, *ppte=00000000                        
Internal error: Oops: 17 [#1] PREEMPT                                          
last sysfs file: /sys/devices/virtual/irqk/irqk/dev                            
Modules linked in: irqk edmak dm365mmap cmemk                                  
CPU: 0    Not tainted  (2.6.32-17-ridgerun #7)                                 
PC is at memcpy+0x48/0x330                                                     
LR is at I2C_create+0xd4/0x19c                                                 
pc : [<c015f328>]    lr : [<c0222b10>]    psr: 20000013                        
sp : c51efe7c  ip : 00000000  fp : c51efeb4                                    
r10: 00000000  r9 : c51ee000  r8 : 000000b6                                    
r7 : c041a8fc  r6 : 0000005b  r5 : c53e0b00  r4 : c53e0b08                     
r3 : 00000000  r2 : 00000050  r1 : 00000000  r0 : c53e0b08                     
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user              
Control: 0005317f  Table: 85690000  DAC: 00000015                              
Process mcvip_test.out (pid: 1117, stack limit = 0xc51ee270)                   
Stack: (0xc51efe7c to 0xc51f0000)                                              
fe60:                                                                c53e0b00  
fe80: 0000005b c041a8fc 000000b6 c53e0b08 c53e0b08 c0222b10 000000b6 00002c01  
fea0: c5664e80 00000000 c51efeec c51efeb8 c0222c38 c0222a4c 0002dcf0 c51effb0  
fec0: 00000000 00012c98 c51f7280 c41c8b80 c5664e80 000000b6 00002c01 c5664e80  
fee0: c51eff0c c51efef0 c00a8378 c0222be8 00000005 c5664e80 00000005 c5664e80  
ff00: c51eff7c c51eff10 c00a8a28 c00a8310 c560ad80 00000003 00000000 c5664e80  
ff20: c51eff5c 00000000 00000000 c51f41f0 00000000 c41c8b80 00000020 c51f41f0  
ff40: 00000000 c41c8b80 00000020 c51f41f0 c51eff94 00000005 000000b6 00002c01  
ff60: c5664e80 c002c0e4 c51ee000 00000000 c51effa4 c51eff80 c00a8ac4 c00a84a4  
ff80: c51ee000 00000000 beca3c9c 0002dcec 000000b6 00000036 00000000 c51effa8  
ffa0: c002bf60 c00a8a94 beca3c9c 0002dcec 00000005 00002c01 000000b6 ffffffff  
ffc0: beca3c9c 0002dcec 000000b6 00000036 0002caa8 00000000 00000000 00000001  
ffe0: 00000001 beca3c98 00012ce0 40de1aec 20000010 00000005 ffffffff ffffffff  
Backtrace:                                                                     
[<c0222a3c>] (I2C_create+0x0/0x19c) from [<c0222c38>] (I2C_devIoctl+0x60/0x2e0)
 r7:00000000 r6:c5664e80 r5:00002c01 r4:000000b6                               
[<c0222bd8>] (I2C_devIoctl+0x0/0x2e0) from [<c00a8378>] (vfs_ioctl+0x78/0x94)  
 r7:c5664e80 r6:00002c01 r5:000000b6 r4:c5664e80                               
[<c00a8300>] (vfs_ioctl+0x0/0x94) from [<c00a8a28>] (do_vfs_ioctl+0x594/0x5f0) 
 r7:c5664e80 r6:00000005 r5:c5664e80 r4:00000005                               
[<c00a8494>] (do_vfs_ioctl+0x0/0x5f0) from [<c00a8ac4>] (sys_ioctl+0x40/0x64)  
[<c00a8a84>] (sys_ioctl+0x0/0x64) from [<c002bf60>] (ret_fast_syscall+0x0/0x28)
 r7:00000036 r6:000000b6 r5:0002dcec r4:beca3c9c                               
Code: ba000002 f5d1f03c f5d1f05c f5d1f07c (e8b151f8)                           
---[ end trace 93e213e3096a1781 ]---                                           
Segmentation fault                                                             
/examples #

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

QUESTION:

i find

#ifndef _SYSTEM_H_
#define _SYSTEM_H_

#if 0  /*    DM6467     */
#define TVP5158_A_I2C_ADDR    (0xB0)
#define TVP5158_B_I2C_ADDR    (0xB2)
#endif

#define TVP5158_A_I2C_ADDR    (0xB6)
#define TVP5158_B_I2C_ADDR    (0xBE)

#define TVP5158_C_I2C_ADDR    (0x00)
#define TVP5158_D_I2C_ADDR    (0x00)

in system.h in mcvip

then board-dm365-evm.c in lsp_files in mcvip

#ifdef CONFIG_VIDEO_TVP5158

       {          
                .module_name       = "I2C_JG",
                .num_inputs = ARRAY_SIZE(tvp5158_inputs_2),
                .inputs = tvp5158_inputs_2,
                .board_info = {
                        I2C_BOARD_INFO("tvp5158", 0x5F),
                        .platform_data = &tvp5158_pdata,
                },
                .can_route = 0,
                .ccdc_if_params = {
                        .if_type = VPFE_BT656,
                        .hdpol = VPFE_PINPOL_POSITIVE,
                        .vdpol = VPFE_PINPOL_POSITIVE,
                },
        },

        {
                .module_name       = "I2C_IG",
  .num_inputs = ARRAY_SIZE(tvp5158_inputs_1),
                .inputs = tvp5158_inputs_1,
                .board_info = {
                         I2C_BOARD_INFO("tvp5158", 0x5B),
                        .platform_data = &tvp5158_pdata,
                },
                .can_route = 0,
                .ccdc_if_params = {
                        .if_type = VPFE_BT656,
                        .hdpol = VPFE_PINPOL_POSITIVE,
                        .vdpol = VPFE_PINPOL_POSITIVE,
                },
        },
 
#endif

from errors shown,i think mcvip_test.out could not find tvp5158 in address B6.

which is the true i2c address of tvp5158,B6 or 5B?The mcvip packages DM365_DVR_DVSDK3_00.02.00.00.zip is wrong?

 

any expert could give me a light?why  i get the result?

Is my tvp5158 not work?

any comment would be appreciated!

thanks