BeagleBone: Setting bus frequency on i2c-3 fails boot up

Hi,

The standard clock frequency for the i2c-3 device is 100 kHz (confirmed with an oscilloscope). I tried to set it up with 400 kHz using the additional boot argument i2c_bus=3,400, but then the BB would not boot up again.
For the i2c-1-bus it works. What seems odd to me, even if I manually set the i2c-3 to its default 100 kHz clock with i2c_bus=3,100, the reboot fails. I use the latest image ubuntu 12.10 image from RoberCNelson.
If have pasted a kernel log here: http://pastebin.com/PavyY03c

There it complains several times that the i2c-3 device already exists and prints out some backtraces, finally it is unable to mount the filesystem (how is that related?) and stops:

[ 1.643585] omap_i2c.3: alias fck already exists
[ 1.648559] ------------[ cut here ]------------
[ 1.653472] WARNING: at fs/sysfs/dir.c:481 sysfs_add_one+0x80/0xa0()
[ 1.660156] sysfs: cannot create duplicate filename ‘/devices/platform/omap/omap_i2c.3’
[ 1.668548] Modules linked in:
[ 1.671783] Backtrace:
[…]
[ 2.081909] kobject_add_internal failed for omap_i2c.3 with -EEXIST, don’t try to register things with the same name in the same directory.
[ 2.095062] Backtrace:
[…]
[ 2.432159] WARNING: at arch/arm/plat-omap/i2c.c:188 omap_i2c_add_bus+0xfc/0x130()
[ 2.440124] Could not build omap_device for omap_i2c
[ 2.445343] Modules linked in:
[ 2.448547] Backtrace:
[…]
Gave up waiting for root device. Common problems:

  • Boot args (cat /proc/cmdline)
  • Check rootdelay= (did the system wait long enough?)
  • Check root= (did the system wait for the right device?)
  • Missing modules (cat /proc/modules; ls /dev)
    ALERT! /dev/mmcblk0p2 does not exist. Dropping to a shell!

I came to that problem after reading this thread (https://groups.google.com/forum/#!msg/beagleboard/Q1pDr1lT7Gk/KBCp9IFE9F4J) where people were arguing about wrong i2c-clock frequencies, which I wanted to check, but there no one complained about boot problems after setting the i2c_bus argument.

Thank you for any suggestions

Best regards,

Jan

Ok.

I thought I might use /dev/i2c-1 in 400 kHz mode if /dev/i2c-3 does not work, but it turns out that it is probably hardware I2C0 which is not accessible through the expansion connectors.

So, is it possible to activate I2C1 (from BB-SRM) in the kernel which should show up as /dev/i2c-2 if I am not mistaken?

And could somebody confirm that setting i2c_bus=3,400 will fail the boot process?
I am using kernel 3.2.33-psp26 #1 . Would another version fix that problem (maybe the 3.8-branch) ?

Best regards,

Still haven’t made any progress. Is there the possibility that a more recent kernel (currently 3.2.33-psp26 #1) could help with that isssue?

Solved.

Look here for the answer: https://groups.google.com/forum/#!category-topic/beagleboard/0I2lIVkyD04