I have issue with MT9P031 sensor detection on Leopardboard DM368 (RidgeRun Evaluation SDK 2011Q2 is used).
Corresponding error is 'mt9p031 1-0048: No MT9P031 chip detected, register read ffffff87'.
Have read forum threads regarding similar issues, but didn't find solution yet.
It seems that sensor unable to register on I2C bus:
/ # i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
At the same time, after corresponding reconfiguration, composite and component video adapters were successfully detected under 5d and 5c addresses, as expected.
Also I've tried this sensor with Beagleboard x_M and got simiar results (No MT9P031 chip detected, register read ffffff87).
Is there another way to verify MT9P031 sensor?
Full boot log is below:
U-Boot 2010.12-rc2 (Aug 15 2012 - 17:12:50) Cores: ARM 297 MHz DDR: 243 MHz I2C: ready DRAM: 128 MiB NAND: 256 MiB MMC: davinci: 0, davinci: 1 *** Warning - booting from SD, using default environment Net: Ethernet PHY: GENERIC @ 0x00 DaVinci-EMAC Hit any key to stop autoboot: 3 2 1 0 reading uEnv.txt 476 bytes read Importing environment from mmc ... Running uenvcmd ... reading uImage Invalid FAT entry 4243968 bytes read ## Booting kernel from Legacy Image at 82000000 ... Image Name: "RR Linux Kernel" Created: 2012-08-15 13:27:10 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 4243552 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-ridgerun (v9@whale) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #5 PREEMPT Wed Aug 15 17:24:29 MSD 2012 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: DM365 Leopard 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=COMPOSITE davinci_enc_mngr.ch0_mode=NTSC davinci_display.cont2_bufsize=3145728 vpfe_capture.cont_bufoffset=3145728 vpfe_capture.cont_bufsize=6291456 video=davincifb:osd1=0x0x8:osd0=720x480x16,1350K@0,0 console=ttyS0,115200n8 dm365_imp.oper_mode=0 vpfe_capture.interface=1 mem=99M root=/dev/nfs nfsroot=192.168.0.120:/home/v9/leopardboard/RR2011Q2/fs/fs rw ip=dhcp 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: 95956KB available (3812K 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 "COMPOSITE", mode "NTSC" VPBE 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: 720x480x16@0,0 with framebuffer size 1350KB davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 1020KB davincifb davincifb.0: dm_osd1_fb: 0x0x8@0,0 with framebuffer size 675KB davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 1020KB 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 davinci_nand davinci_nand.0: controller rev. 2.3 tun: Universal TUN/TAP device driver, 1.6 tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver usbtest i2c /dev entries driver Linux video capture interface: v2.00 ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter) gspca: main v2.7.0 registered usbcore: registered new interface driver zc3xx zc3xx: registered vpfe_init vpfe-capture: vpss clock vpss_master enabled vpfe-capture vpfe-capture: v4l2 device registered vpfe-capture vpfe-capture: video device registered mt9p031 1-0048: No MT9P031 chip detected, register read ffffff87 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#: 252, minor# 0 AF Driver initialized aew major#: 251, minor# 0 AEW Driver initialized Trying to register davinci display video device. layer=c50e8c00,layer->video_dev=c50e8d64 Trying to register davinci display video device. layer=c50e9000,layer->video_dev=c50e9164 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. No device for DAI tlv320aic3x No device for DAI davinci-i2s 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: c6:e7:87:0a:9a:2e emac-mii: probed mmc0: host does not support reading read-only switch. assuming write-enable. mmc0: new high speed SD card at address 0007 mmcblk0: mmc0:0007 SD02G 1.84 GiB mmcblk0: p1 Sending DHCP requests ., OK IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.0.107 IP-Config: Complete: device=eth0, addr=192.168.0.107, mask=255.255.255.0, gw=192.168.0.1, host=192.168.0.107, domain=, nis-domain=(none), bootserver=0.0.0.0, rootserver=192.168.0.120, rootpath= Looking up port of RPC 100003/2 on 192.168.0.120 Looking up port of RPC 100005/1 on 192.168.0.120 VFS: Mounted root (nfs filesystem) on device 0:13. Freeing init memory: 140K Warning: unable to open an initial console. CMEMK module: built on Aug 15 2012 at 16:57:12 Reference Linux version 2.6.32 File /home/v9/ti-dvsdk_dm365-evm_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c allocated heap buffer 0xca000000 of size 0xf00000 heap fallback enabled - will try heap if pool buffer is not available CMEM Range Overlaps Kernel Physical - allowing overlap CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x86300000) cmemk initialized EDMAK module: built on Aug 15 2012 at 16:57:26 Reference Linux version 2.6.32 File /home/v9/ti-dvsdk_dm365-evm_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/edma/src/module/edmak.c IRQK module: built on Aug 15 2012 at 16:57:22 Reference Linux version 2.6.32 File /home/v9/ti-dvsdk_dm365-evm_4_02_00_06/linuxutils_2_26_01_02/packages/ti/sdo/linuxutils/irq/src/module/irqk.c irqk initialized Please press Enter to activate this console. starting pid 1116, tty '/dev/ttyS0': '-/bin/sh' BusyBox v1.18.2 (2012-08-15 14:53:47 MSD) built-in shell (ash) Enter 'help' for a list of built-in commands.