I2C read failed : LI-5M03 + BeagleBoard-xM Rev C2

Hi,

I have Li-5M03 rev 3.1 and BB-xM rev C2.

root@beagleboard:~# uname -a :

Linux beagleboard 2.6.32 #3 PREEMPT Tue Jul 26 10:56:56 CEST 2011 armv7l unknown

I have follow this instructions to install kernel and have a mt9p031 working (http://caganarslan.wordpress.com/2013/07/04/second-post/).

I can take snapshot and video with :

mplayer tv:// -tv driver=v4l2:width=1280:height=720:device=/dev/video0:fps=5 -vo jpeg

or

mplayer tv:// -tv driver=v4l2:width=640:height=480:device=/dev/video0:fps=10 -vo x11

And it works perfectly.

But i have a problem, i can’t read/write in register with i2c-tools. I have tried :

root@beagleboard:~# 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: – -- – -- – -- – -- – -- – -- –

10: – -- – -- – -- – -- – -- – -- – -- – --

20: – -- – -- – -- – -- – -- – -- – -- – --

30: – -- – -- – -- – -- – -- – -- – -- – --

40: – -- – -- – -- – -- UU – -- – -- – -- –

50: – -- – -- – -- – -- – -- – -- – -- – --

60: – -- – -- – -- – -- – -- – -- – -- – --

70: – -- – -- – -- – --

Sensor is well detect on 0x48 address.

But when i tried to modify gain or exposure, i get :

root@beagleboard:~# echo 22 > /sys/devices/platform/i2c_omap.2/i2c-2/2-0048/gain_val

[ 3638.106781] mt9p031 2-0048: Error setting gain.-121

[ 3638.111511] mt9p031: Global gain write failed

root@beagleboard:~/Desktop# dmesg | grep mt9

[ 3304.832366] mt9p031 2-0048: mt9p031 chip ID 1801

[ 3638.106781] mt9p031 2-0048: Error setting gain.-121

[ 3638.111511] mt9p031: Global gain write failed

root@beagleboard:~/Desktop# i2cget -y 2 0x48 000 w

Error: Could not set address to 0x48: Device or resource busy

Any ideas ?

Thank you