[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