We use this one on our MPC8245 board: http://www.humboldt.co.uk/mpc10xi2c.html
On Tue, 2004-04-20 at 14:29, xiaogeng_jin at agilent.com wrote: > Hi, > > Is anyone aware of the compatibility of I2C controller in MPC8245 and > MPC8240? Now DENX supports i2c-algo-8240.c in its distribution. Is this > algorithm working for MPC8245's I2C controller? It should be. > > However I have some problem using this module on my custom MPC8245 board. > There is no problem for write. Data seems to be written into SEEPROM. The > following message is captured by the i2c monitor. > Msg 3 [Start]#A0[W][A]00[A]00[A]01[A]02[A]03[A]04[A][Stop] > > But for read, only the first byte is returned when I try to read multiple > bytes. The following messages show that I try to read 4 bytes at the > beginning of SEEPROM. > Msg 14 [Start]#A0[W][A]00[A]00[A][Stop] > Msg 15 [Start]#A0[R][A]01[N]FF[N]FF[N]FF[N]FF[N][Stop] > > I suspect that the i2c controller doesn't generate the ack bit, which is > supposed to do so. Why does the controller generate ACK automatically for > write operations but not for read operations? > > Then I go back to check the code of i2c-algo-8240.c and find > m8240_readbytes() has confused me. > //m8240_iic_write(&i2c->i2ccr, M8240_I2CCR_TXAK, M8240_I2CCR_TXAK); > Why is TXAK set only after all multiple bytes are read? I think the ACK > should be generated after each byte is read if the ACK is generated by the > driver instead of the controller itself. Should TXAK be set during the > initialization? > > Thanks, > -Shawn. > ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
