Use of I2C2

Can anyone share if they've successfully been able to get I2C2 working
on the expansion connector - and how?

There's a few other dated discussions on this, but they didn't contain
anything thats worked for me so far. I have two boards (B5 & C3) and
both behave the same when trying to use I2C2; I2C2_SCL stays low while
I2C2_SDA toggles. So far, I've...

1. Verified mux settings for both pins. Can also toggle both pins in
GPIO mode (mode 4) and see on scope.
2. Tried numerous different drops on
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
3. Enabled I2C2 with menuconfig in releases where it was disabled by
default.
4. Also tried the very latest release on git and applied patches from
OE recipes per this site http://elinux.org/BeagleBoardLinuxKernel, but
still the same behavior.
5. Confirmed I2C2 was in the kernel and set for 100khz by doing "#
dmesg | grep -i i2c2" once kernel booted up.
6. Verified my user-space program is OK by using dev/i2c1, instead of
dev/i2c2, and it works fine on beagleboard. However, this required
soldering wires to the bottom of the board for I2C1 - not what I want
and not easy to do if your hand shakes at all. :wink:

Thanks!

ScottH

Any comments?

Anyone working on the expansion connector's I2C2?

Hi Scott,

I have it working. I am using TI's TCA6408 I2C port expander. I use 10K
pull-up on both SCL and SDA line. If you use the u-boot.bin from
http://www.angstrom-distribution.org/demo/beagleboard/, you do not need
to change any PINMUX and you are good to go. For the kernel, I am uing
bitbake recipe linux-omap-2.6.29. Again, this recipe will apply the
necessary patches and the driver for I2C-2 will be installed. After
booting up, you can do 'ls /dev | grep i2c' to check if i2c-2 is present
or not.

--Eric
__ <http://www.angstrom-distribution.org/demo/beagleboard/>
ScottH wrote:

Eric,

Thanks for the reply. I added 4.7K external resistors and that did
the trick.

Previously, I just had scope probes connected to I2C-2 SCL & SDA (no
slave device) thinking the internal I/O pull-ups (when enabled) were
enough that I could at least see the lines move and verify operation
before moving on. Apparently those weren't strong enough.

Thanks again.

Scott

Hi Scott,

I'm running I2C2 with only the internal resistors, and that working with no
problems. Are you sure you actually enabled PullUp and not PullDown or
PullDisable by a mistake in the pin-muxing?
  Søren

Hi Scott,

I assume that you are aware of the VIO of the I2C-2 pins on the OMAP is
1.8V. I am using TI's TCA6408 to get 3.3V GPIO from the I2C expander.

--Eric

ScottH wrote: