[MinnowBoard] MinnoboardMax I2C and Kernel 3.18.1 ACK problem

Michael Jones mike at proclivis.com
Fri Jan 2 20:03:32 UTC 2015


I am having some problems getting I2C to work with Kernel 3.18.1.

Has anyone made I2C work on MinnowboardMax with 3.18.1 release? Where works means, i2cdetect can see devices on /dev/i2c-7 or can run extras.

In my case, I am seeing bad behavior on the bus when monitoring with a scope. An ADDRESS + R is placed on the bus, then the clock line remains high for 15ms during the ACK, followed by a STOP. I see similar behavior with my own application where ADDRESS + W does the same thing, and it looks like it retries multiple times. All with known working hardware and code that runs on a Wandboard with Yocto Linux.

To test further I ran minnow-max-extras/hse/hse-i2c-eeprom.sh and it fails to write. It actually prints:

Error: Write failed
Error: Write failed
Error: Read failed

My code can ioctl the /dev/i2c-7 and get a reasonable return from FUNCS. I am pretty sure the driver is all in place, or I would not get back a reasonable FUNCS list.

Details on my version of OS.

Installed Ubuntu 14.04.

Compiled new 3.18.1 kernel  after merging http://www.elinux.org/images/e/e2/Minnowmax-3.18.txt

I used the release candidate version of this kernel for some UART code which worked fine. That confirms no general IO problems.

I am not a kernel expert, so I am at a loss as to how to debug. Is there some logging I can turn on that might give some clues about what is going on in the driver? Perhaps there is a weblink with info on debugging the i2c driver?


More information about the elinux-MinnowBoard mailing list