Hello community, I tried to use my ov3640 camera along with my gumstix overo board and the linux kernel 3.10. So for that I added the appropriate lines into the board-overo.c file, but when I use "i2cdetect" after startup I get the wrong output: root@overo2:~# i2cdetect -r 3 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-3 using read byte commands. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- 51 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@overo2:~# DMESG tells also that the driver couldn't be registered of the ISP. Can someone help me? Did I forget something to register the ov3640 on the ic2 bus? Regrads, Tom DMESG: root@overo2:~# dmesg [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 3.10.0 (linuxentwickler@linuxentwickler-OEM) (gcc version 4.3.3 (GCC) ) #15 Thu Sep 26 15:32:18 CEST 2013 [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine: Gumstix Overo [ 0.000000] cma: CMA: reserved 16 MiB at 8ec00000 [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] On node 0 totalpages: 56320 [ 0.000000] free_area_init_node: node 0, pgdat c0763f94, node_mem_map c0cc6000 [ 0.000000] Normal zone: 512 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 56320 pages, LIFO batch:15 [ 0.000000] CPU: All CPU(s) started in SVC mode. [ 0.000000] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk ) [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 55808 [ 0.000000] Kernel command line: mem=93M@0x80000000 mem=128M@0x88000000 console=ttyO2,115200n8 vram=12M omapfb.mode=dvi:1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait [ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes) [ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Memory: 93MB 127MB = 220MB total [ 0.000000] Memory: 193736k/193736k available, 32568k reserved, 0K highmem [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB) [ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB) [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB) [ 0.000000] .text : 0xc0008000 - 0xc06bef04 (6876 kB) [ 0.000000] .init : 0xc06bf000 - 0xc07093f4 ( 297 kB) [ 0.000000] .data : 0xc070a000 - 0xc07681e8 ( 377 kB) [ 0.000000] .bss : 0xc07681e8 - 0xc0cc53b0 (5493 kB) [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts [ 0.000000] Total of 96 interrupts on 1 active controller [ 0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz [ 0.000000] OMAP clockevent source: timer1 at 32768 Hz [ 0.000000] sched_clock: 32 bits at 32kHz, resolution 30517ns, wraps every 131071999ms [ 0.000000] OMAP clocksource: 32k_counter at 32768 Hz [ 0.000000] Console: colour dummy device 80x30 [ 0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar [ 0.000000] ... MAX_LOCKDEP_SUBCLASSES: 8 [ 0.000000] ... MAX_LOCK_DEPTH: 48 [ 0.000000] ... MAX_LOCKDEP_KEYS: 8191 [ 0.000000] ... CLASSHASH_SIZE: 4096 [ 0.000000] ... MAX_LOCKDEP_ENTRIES: 16384 [ 0.000000] ... MAX_LOCKDEP_CHAINS: 32768 [ 0.000000] ... CHAINHASH_SIZE: 16384 [ 0.000000] memory used by lock dependency info: 3695 kB [ 0.000000] per task-struct memory footprint: 1152 bytes [ 0.000946] Calibrating delay loop... 398.13 BogoMIPS (lpj=1990656) [ 0.119720] pid_max: default: 32768 minimum: 301 [ 0.120025] Security Framework initialized [ 0.120147] Mount-cache hash table entries: 512 [ 0.123596] CPU: Testing write buffer coherency: ok [ 0.125030] Setting up static identity map for 0xc04ddf70 - 0xc04ddfc8 [ 0.129821] devtmpfs: initialized [ 0.170440] pinctrl core: initialized pinctrl subsystem [ 0.175140] regulator-dummy: no parameters [ 0.178833] NET: Registered protocol family 16 [ 0.184082] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.186157] omap-gpmc omap-gpmc: GPMC revision 5.0 [ 0.196197] gpiochip_add: registered GPIOs 0 to 31 on device: gpio [ 0.197509] OMAP GPIO hardware version 2.5 [ 0.198883] gpiochip_add: registered GPIOs 32 to 63 on device: gpio [ 0.201263] gpiochip_add: registered GPIOs 64 to 95 on device: gpio [ 0.203430] gpiochip_add: registered GPIOs 96 to 127 on device: gpio [ 0.205718] gpiochip_add: registered GPIOs 128 to 159 on device: gpio [ 0.207916] gpiochip_add: registered GPIOs 160 to 191 on device: gpio [ 0.215301] BOARD-OVERO -> overo_init: ENTER [ 0.215942] omap_mux_init: Add partition: #1: core, flags: 4 [ 0.218078] BOARD-OVERO -> overo_i2c_init: ENTER [ 0.230743] omap_mux_get_by_name: Could not find signal uart4_rx.uart4_rx [ 0.237091] Reprogramming SDRC clock to 332000000 Hz [ 0.239868] BOARD-OVERO -> overo_spi_init: ENTER [ 0.239898] BOARD-OVERO -> overo_ads7846_init: ENTER [ 0.240631] BOARD-OVERO -> overo_init_smsc911x: ENTER [ 0.242065] BOARD-OVERO -> overo_init_keys: ENTER [ 0.242675] BOARD-OVERO -> overo_camera_init: ENTER [ 0.243347] BOARD-OVERO -> overo_camera_init: LEAVE [ 0.252624] hw-breakpoint: debug architecture 0x4 unsupported. [ 0.269348] OMAP DMA hardware revision 5.0 [ 0.273132] arm-pmu: alias fck already exists [ 0.334869] bio: create slab <bio-0> at 0 [ 0.419799] omap-dma-engine omap-dma-engine: OMAP DMA engine driver [ 0.427001] SCSI subsystem initialized [ 0.429534] usbcore: registered new interface driver usbfs [ 0.430114] usbcore: registered new interface driver hub [ 0.430755] usbcore: registered new device driver usb [ 0.432983] I2C-OMAP -> omap_i2c_probe: ENTER [ 0.446228] twl 1-0048: PIH (irq 23) chaining IRQs 338..346 [ 0.446777] twl 1-0048: power (irq 343) chaining IRQs 346..353 [ 0.449584] twl4030_gpio twl4030_gpio: gpio (irq 338) chaining IRQs 354..371 [ 0.449951] gpiochip_find_base: found new base at 236 [ 0.451202] gpiochip_add: registered GPIOs 236 to 255 on device: twl4030 [ 0.451232] BOARD-OVERO -> overo_twl_gpio_setup: ENTER [ 0.455352] vdd_mpu_iva: 600 <--> 1450 mV normal [ 0.457641] vdd_core: 600 <--> 1450 mV normal [ 0.460113] VMMC1: 1850 <--> 3150 mV at 3000 mV normal standby [ 0.462463] VDAC: 1800 mV normal standby [ 0.464813] VDVI: 1800 mV normal standby [ 0.465789] omap_i2c omap_i2c.1: bus 1 rev4.4 at 2600 kHz [ 0.465972] I2C-OMAP -> omap_i2c_probe: ENTER [ 0.467407] omap_i2c omap_i2c.3: bus 3 rev4.4 at 400 kHz [ 0.471343] omap-iommu omap-iommu.0: mmu_isp registered [ 0.476287] Switching to clocksource 32k_counter [ 0.624847] NET: Registered protocol family 2 [ 0.626922] TCP established hash table entries: 2048 (order: 2, 16384 bytes) [ 0.627197] TCP bind hash table entries: 2048 (order: 4, 73728 bytes) [ 0.628234] TCP: Hash tables configured (established 2048 bind 2048) [ 0.628479] TCP: reno registered [ 0.628509] UDP hash table entries: 256 (order: 2, 20480 bytes) [ 0.628814] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes) [ 0.630249] NET: Registered protocol family 1 [ 0.631805] RPC: Registered named UNIX socket transport module. [ 0.631835] RPC: Registered udp transport module. [ 0.631835] RPC: Registered tcp transport module. [ 0.631866] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.632965] NetWinder Floating Point Emulator V0.97 (double precision) [ 0.633361] CPU PMU: probing PMU on CPU 0 [ 0.633392] hw perfevents: enabled with ARMv7 Cortex-A8 PMU driver, 5 counters available [ 0.842407] VFS: Disk quotas dquot_6.5.2 [ 0.842529] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.845214] NFS: Registering the id_resolver key type [ 0.845703] Key type id_resolver registered [ 0.845733] Key type id_legacy registered [ 0.845886] jffs2: version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc. [ 0.846405] msgmni has been set to 410 [ 0.851074] io scheduler noop registered [ 0.851104] io scheduler deadline registered [ 0.851165] io scheduler cfq registered (default) [ 0.855804] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.864410] omap_uart.0: ttyO0 at MMIO 0x4806a000 (irq = 88) is a OMAP UART0 [ 0.867065] omap_uart.1: ttyO1 at MMIO 0x4806c000 (irq = 89) is a OMAP UART1 [ 0.868896] omap_uart.2: ttyO2 at MMIO 0x49020000 (irq = 90) is a OMAP UART2 [ 1.572174] console [ttyO2] enabled [ 1.577850] omap_uart.3: ttyO3 at MMIO 0x49042000 (irq = 96) is a OMAP UART3 [ 1.618652] brd: module loaded [ 1.640869] loop: module loaded [ 1.648864] mtdoops: mtd device (mtddev=name/number) must be supplied [ 1.656555] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit), 512MiB, page size: 2048, OOB size: 64 [ 1.669311] Creating 5 MTD partitions on "omap2-nand.0": [ 1.674896] 0x000000000000-0x000000080000 : "xloader" [ 1.687713] 0x000000080000-0x000000240000 : "uboot" [ 1.698913] 0x000000240000-0x000000280000 : "uboot environment" [ 1.709960] 0x000000280000-0x000000680000 : "linux" [ 1.722747] 0x000000680000-0x000020000000 : "rootfs" [ 2.173034] omap-dma-engine omap-dma-engine: allocating channel for 36 [ 2.180084] omap-dma-engine omap-dma-engine: allocating channel for 35 [ 2.196594] smsc911x: Driver version 2008-10-21 [ 2.201477] smsc911x.0 supply vdd33a not found, using dummy regulator [ 2.208862] smsc911x.0 supply vddvario not found, using dummy regulator [ 2.216125] smsc911x smsc911x.0 (unregistered net_device): couldn't get clock -2 [ 2.230529] libphy: smsc911x-mdio: probed [ 2.235076] smsc911x smsc911x.0 eth0: attached PHY driver [SMSC LAN8700] (mii_bus:phy_addr=smsc911x-0:01, irq=-1) [ 2.246276] smsc911x smsc911x.0 eth0: MAC Address: 00:15:c9:28:fb:53 [ 2.253112] smsc911x: Driver version 2008-10-21 [ 2.258026] smsc911x.1 supply vdd33a not found, using dummy regulator [ 2.265014] smsc911x.1 supply vddvario not found, using dummy regulator [ 2.272338] smsc911x smsc911x.1 (unregistered net_device): couldn't get clock -2 [ 2.283050] usbcore: registered new interface driver asix [ 2.289367] usbcore: registered new interface driver ax88179_178a [ 2.296264] usbcore: registered new interface driver cdc_ether [ 2.303009] usbcore: registered new interface driver smsc95xx [ 2.309600] usbcore: registered new interface driver net1080 [ 2.316070] usbcore: registered new interface driver cdc_subset [ 2.322845] usbcore: registered new interface driver zaurus [ 2.329376] usbcore: registered new interface driver cdc_ncm [ 2.337677] usbcore: registered new interface driver cdc_wdm [ 2.344238] usbcore: registered new interface driver usb-storage [ 2.351196] usbcore: registered new interface driver usbtest [ 2.359497] mousedev: PS/2 mouse device common for all mice [ 2.368499] spi1.0 supply vcc not found, using dummy regulator [ 2.376800] ads7846 spi1.0: touchscreen, irq 228 [ 2.383880] input: ADS7846 Touchscreen as /devices/platform/omap2_mcspi.1/spi_master/spi1/spi1.0/input/input0 [ 2.400451] input: twl4030_pwrbutton as /devices/platform/omap_i2c.1/i2c-1/1-004b/twl4030_pwrbutton/input/input1 [ 2.413452] twl_rtc twl_rtc: Power up reset detected. [ 2.419036] twl_rtc twl_rtc: Enabling TWL-RTC [ 2.428161] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0 [ 2.436126] i2c /dev entries driver [ 2.443359] Driver for 1-wire Dallas network protocol. [ 2.453704] omap_wdt: OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec [ 2.466033] omap-dma-engine omap-dma-engine: allocating channel for 62 [ 2.473052] omap-dma-engine omap-dma-engine: allocating channel for 61 [ 2.480346] omap_hsmmc.0 supply vmmc_aux not found, using dummy regulator [ 2.857147] omap-dma-engine omap-dma-engine: allocating channel for 48 [ 2.864044] omap-dma-engine omap-dma-engine: allocating channel for 47 [ 2.871032] omap_hsmmc.1 supply vmmc not found, using dummy regulator [ 2.878143] omap_hsmmc.1 supply vmmc_aux not found, using dummy regulator [ 2.885528] omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22) [ 2.894531] omap_hsmmc omap_hsmmc.1: could not set regulator OCR (-22) [ 2.939117] usbcore: registered new interface driver usbhid [ 2.945007] usbhid: USB HID core driver [ 2.950744] oprofile: using arm/armv7 [ 2.955444] TCP: cubic registered [ 2.959197] Initializing XFRM netlink socket [ 2.963806] NET: Registered protocol family 17 [ 2.968688] NET: Registered protocol family 15 [ 2.973815] Key type dns_resolver registered [ 2.978576] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 [ 2.998962] ThumbEE CPU extension supported. [ 3.007812] VDVI: incomplete constraints, leaving on [ 3.013214] VDAC: incomplete constraints, leaving on [ 3.022918] input: gpio-keys as /devices/platform/gpio-keys/input/input2 [ 3.032897] twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:10 UTC (946684810) [ 3.046142] Waiting for root device /dev/mmcblk0p2... [ 3.080993] mmc0: host does not support reading read-only switch. assuming write-enable. [ 3.093933] mmc0: new high speed SDHC card at address e624 [ 3.102447] mmcblk0: mmc0:e624 SU04G 3.69 GiB [ 3.124176] mmcblk0: p1 p2 [ 3.171722] kjournald starting. Commit interval 5 seconds [ 3.177856] EXT3-fs (mmcblk0p2): warning: mounting fs with errors, running e2fsck is recommended [ 3.206817] EXT3-fs (mmcblk0p2): using internal journal [ 3.212341] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode [ 3.219787] VFS: Mounted root (ext3 filesystem) on device 179:2. [ 3.233367] devtmpfs: mounted [ 3.237548] Freeing unused kernel memory: 296K (c06bf000 - c0709000) [ 4.327728] udevd (770): /proc/770/oom_adj is deprecated, please use /proc/770/oom_score_adj instead. [ 5.966735] media: Linux media interface: v0.10 [ 6.533966] Linux video capture interface: v2.00 [ 8.002838] omap3isp supply VDD_CSIPHY1 not found, using dummy regulator [ 8.010345] omap3isp supply VDD_CSIPHY2 not found, using dummy regulator [ 8.017944] omap3isp omap3isp: Revision 15.0 found [ 8.024383] omap-iommu omap-iommu.0: mmu_isp: version 1.1 [ 10.691192] OV3640 -> ov3640_probe: ENTER [ 10.695648] 3-003c supply avdd not found, using dummy regulator [ 10.702331] 3-003c supply dvdd not found, using dummy regulator [ 10.708801] 3-003c supply dovdd not found, using dummy regulator [ 10.716857] OV3640 -> ov3640_registered: ENTER [ 10.721557] OV3640 -> __ov3640_set_power: ENTER [ 10.739166] OV3640 -> ov3640_standby: ENTER [ 10.743591] OV3640 -> ov3640_set_pll1: ENTER [ 10.748168] OV3640 -> ov3640_set_register: ENTER [ 10.753021] OV3640 -> ov3640_write: ENTER [ 10.786773] ov3640 3-003c: Failed writing register 0x300e! [ 10.792572] OV3640 -> ov3640_read: ENTER [ 10.799011] ov3640 3-003c: Failed reading register 0x300a! [ 10.804870] OV3640 -> __ov3640_set_power: ENTER [ 10.809692] OV3640 -> ov3640_standby: ENTER [ 10.814086] OV3640 -> ov3640_set_pll1: ENTER [ 10.818603] OV3640 -> ov3640_set_register: ENTER [ 10.823455] OV3640 -> ov3640_write: ENTER [ 10.828765] ov3640 3-003c: Failed writing register 0x300e! [ 10.835510] OV3640 -> ov3640_remove: ENTER [ 10.841064] omap3isp omap3isp: isp_register_subdev_group: Unable to register subdev ov3640 [ 12.328735] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. [ 12.428527] alignment: ignoring faults is unsafe on this CPU. Defaulting to fixup mode. [ 14.465087] smsc911x smsc911x.0 eth2: SMSC911x/921x identified at 0xd087c000, IRQ: 290 [ 16.229156] zeroconf calls setitimer() with new_value NULL pointer. Misfeature support will be removed my board-overo.c code snippet: static struct ov3640_platform_data overo_ov3640_platform_data = { .reset = 98, .pwdn = 110, .clk_pol = 1, .hs_pol = 1, .vs_pol = 1, }; static struct i2c_board_info ov3640_camera_i2c_device = { I2C_BOARD_INFO("ov3640", 0x3c), .platform_data = &overo_ov3640_platform_data, }; static struct isp_subdev_i2c_board_info ov3640_camera_subdevs[] = { { .board_info = &ov3640_camera_i2c_device, .i2c_adapter_id = 3, }, { NULL, 0, }, }; static struct isp_v4l2_subdevs_group overo_camera_subdevs[] = { { .subdevs = ov3640_camera_subdevs, .interface = ISP_INTERFACE_PARALLEL, .bus = { .parallel = { .data_lane_shift = 0, .hs_pol = 1, .vs_pol = 1, } }, }, { }, }; static struct isp_platform_data overo_isp_platform_data = { .xclks = { [0] = { .dev_id = "3-003c", }, }, .subdevs = overo_camera_subdevs, }; static struct regulator_consumer_supply ov3640_dummy_supplies[] = { REGULATOR_SUPPLY("dvdd", "3-003c"), }; static int __init overo_camera_init(void) { pr_info("BOARD-OVERO -> %s: ENTER\n", __func__); //regulator_register_fixed(0, ov3640_dummy_supplies,ARRAY_SIZE(ov3640_dummy_supplies)); omap_mux_init_gpio(110, OMAP_PIN_OUTPUT); omap_mux_init_gpio(98, OMAP_PIN_OUTPUT); //omap_register_i2c_bus(3, 400, NULL, 0); omap3_init_camera(&overo_isp_platform_data); pr_info("BOARD-OVERO -> %s: LEAVE\n", __func__); return 0; } -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html