Try changing all i2c->i2c_i2com |= 0x80; /* Begin transmission */ to i2c->i2c_i2com |= 0x80 | 0x01; /* Begin transmission */
That should remove the need to do force_reinit(cpm) I hope. See http://ozlabs.org/pipermail/linuxppc-embedded/2005-August/019600.html for a litte more info. Also, I think you should remove the busy wait code. Its not needed IMHO. Jocke
