How do I get my Aptina camera (mt9m114) to work in kernel 3.14?

628 views
Skip to first unread message

Sergi D

unread,
Nov 11, 2015, 6:06:11 AM11/11/15
to BeagleBoard
Hi All,

I am trying to get work my Aptina camera MT9M114 in the 3.14 kernel for a Beaglebone Black.

I'm using the RobertCNelson github's kernel and also the dtb-builder. But I had no lucky because working on I realized that there's no driver for that sensor in the kernel. I tried to import it from kernel 3.8. I copied the files and modified the Kconfig and Makefile. I obtained the corresponding menu entry in menuconfig. I'm able to select the driver as module or built-in. 

Anyone knows if the sensor driver is compatible with my actual kernel version? There are other drivers compatible with the mt9m114 sensor?

I'm trying to create a device tree include (dtsi) based on the BB-BONE-VVDN-00A0.dts but making it static and not with overlays to add as include in am335x-boneblack.dts. (attached file: am335x-bone-cam-vvdn-00a0.dtsi)

The kernel, modules and dtbs compiles without errors but when I install all in the BBB nothing related to /dev/video0 or media/i2c appears during the boot or dmesg.

Porting from 3.8 to 3.14 may create pin conflicts? It is possible that device tree is not calling the driver? 

Any help will be appreciated!
Sergi.


am335x-bone-cam-vvdn-00a0.dtsi

Maxim Podbereznyy

unread,
Nov 12, 2015, 11:06:42 PM11/12/15
to beagleboard

Did this sensor work in 3.8?

11 Ноя 2015 г. 14:08 пользователь "Sergi D" <serg...@gmail.com> написал:
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Sergi D

unread,
Nov 13, 2015, 2:19:56 AM11/13/15
to BeagleBoard
Yes. In kernel 3.8 worked perfectly.
Message has been deleted

Sergi D

unread,
Nov 17, 2015, 9:59:25 AM11/17/15
to BeagleBoard
Hi again,
The custom device tree configuration produce some errors on boot up. The most significant errors are:

[    2.360604] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.719239] slave hdmi: could not get i2c
[    3.279978] omap_vout:Could not register Video driver
[    3.292445] sr_init: platform driver register failed for SR
[    3.847739] systemd[1]: Failed to enumerate cgroup controllers: No such file or directory
[   15.711163] systemd[1]: Failed to start Load Kernel Modules.
[   19.921960]  remoteproc0: failed to load am335x-pm-firmware.elf
[   20.097918]  remoteproc0: request_firmware failed: -2
[   20.103564] wkup_m3 44d00000.wkup_m3: rproc_boot failed
[   25.486841] libphy: PHY 4a101000.mdio:01 not found
[   25.492142] net eth0: phy 4a101000.mdio:01 not found on slave 1
[   97.760166] omap_i2c 4819c000.i2c: controller timed out
[   98.761749] omap_i2c 4819c000.i2c: controller timed out
[   99.760158] omap_i2c 4819c000.i2c: controller timed out
[  100.760159] omap_i2c 4819c000.i2c: controller timed out


The problem seems to be related with I2C communication. The camera cape is an i2c soc_camera and interacts through i2c-2 (bus 2).

Testing that bus communication I get a "controlled timed out" error. Is not responding.

root@beaglebone:~# i2cdetect -r 2
WARNING
! This program can confuse your I2C bus, cause data loss and worse!
I will probe file
/dev/i2c-2 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:          [10856.560130] omap_i2c 4819c000.i2c: controller timed out
-- [10857.560188] omap_i2c 4819c000.i2c: controller timed out
-- [10858.580154] omap_i2c 4819c000.i2c: controller timed out
-- [10859.600173] omap_i2c 4819c000.i2c: controller timed out


So, now I'm trying to wake up that i2c bus in order to activate the communication with the camera cape. To do so I'm modifying the device tree attached in the first comment. 

Also added a 'new' cape instance in "am335x-bone-i2c2-cape-eeprom.dtsi" with  the sensor's information and deleted from the custom device tree.

cape_cam0: cape_vddn_cam@58 {
                compatible
= "aptina, mt9m114";
                reg
= <0x58>;
               
#address-cells = <1>;
               
#size-cells = <0>;
               
/* dummy pll flags m, n, p1-7, PLL hardcoded in Driver */
               
/*flags = <0>;
                pll-divider = <0 0 0 0 0 0 0 0 0>;*/

};



Any help will be appreciated!
Sergi.

El viernes, 13 de noviembre de 2015, 8:19:56 (UTC+1), Sergi D escribió:
Yes. In kernel 3.8 worked perfectly.

El viernes, 13 de noviembre de 2015, 5:06:42 (UTC+1), lisarden escribió:
Did this sensor work in 3.8?
11 Ноя 2015 г. 14:08 пользователь "Sergi D" <serg...@gmail.com> написал:
Hi All,

I am trying to get work my Aptina camera MT9M114 in the 3.14 kernel for a Beaglebone Black.

I'm using the RobertCNelson github's kernel and also the dtb-builder. But I had no lucky because working on I realized that there's no driver for that sensor in the kernel. I tried to import it from kernel 3.8. I copied the files and modified the Kconfig and Makefile. I obtained the corresponding menu entry in menuconfig. I'm able to select the driver as module or built-in. 

Anyone knows if the sensor driver is compatible with my actual kernel version? There are other drivers compatible with the mt9m114 sensor?

I'm trying to create a device tree include (dtsi) based on the BB-BONE-VVDN-00A0.dts but making it static and not with overlays to add as include in am335x-boneblack.dts. (attached file: am335x-bone-cam-vvdn-00a0.dtsi)

The kernel, modules and dtbs compiles without errors but when I install all in the BBB nothing related to /dev/video0 or media/i2c appears during the boot or dmesg.

Porting from 3.8 to 3.14 may create pin conflicts? It is possible that device tree is not calling the driver? 

Any help will be appreciated!
Sergi.

am335x-bone-cam-vvdn-00a0.dtsi

byc...@gmail.com

unread,
Jan 16, 2016, 9:58:47 PM1/16/16
to BeagleBoard
Hello Sergi,

I'm using the same on imx.6 linux 3.14.28 kernel and would like to integrate the mt9m114 sensor.
Have you managed to write a suitable driver?

The debate I have currently is whether to register the sensor as 'v4l2 subdev' or 'v4l2 int-device'.

I'll appreciate your help.

Thanks
Yechiel
Reply all
Reply to author
Forward
0 new messages