Stefano Babic 81687212ee I2C: mxc_i2c: address failure with mx35 processor
There is sporadic failures when more as one I2C slave
is on the bus and the processor tries to communicate
with more as one slave.
The problem was seen on a mx35pdk (two I2C slaves,
PMIC controller and CAN/RTC chip).

The current driver uses the IIF bit in the status register
to check if the bus is busy or not. According to the manual,
this is not correct, because the IIB bit should be checked.
Not only, to check if a transfer is finished must be checked
the ICF bit, and this is not tested at all.

This patch comes from analyse with a corresponding driver
provided by Freescale as part of the LTIB tool. Comparing
the two drivers, it appears that the current u-boot driver checks
the wrong bits, and depending on race condition, the transfer
can be successful or not.

The patch gets rid also of own debug function (DPRINTF),
replaced with the general debug().

Tested on Freescale mx35pdk.

Signed-off-by: Stefano Babic <sbabic@denx.de>
CC: Heiko Schocher <hs@denx.de>
Acked-by: Heiko Schocher <hs@denx.de>
2011-02-02 00:54:43 +01:00
Makefile Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
bfin-twi_i2c.c Blackfin: TWI/I2C: implement multibus support 2010-05-05 10:04:38 +02:00
davinci_i2c.c davinci: move i2c driver to drivers/i2c 2009-03-30 18:58:39 +02:00
fsl_i2c.c fsl_i2c: Added a callpoint for i2c_board_late_init 2010-04-19 07:46:35 +02:00
mvtwsi.c i2c: rewrite mvtwsi, support orion5x and kirkwood 2010-08-30 14:10:35 +02:00
mxc_i2c.c I2C: mxc_i2c: address failure with mx35 processor 2011-02-02 00:54:43 +01:00
omap24xx_i2c.c Move DECLARE_GLOBAL_DATA_PTR to file scope 2010-12-21 11:33:36 +01:00
omap24xx_i2c.h i2c: omap2+: change header guard to be generic 2010-08-23 08:08:31 +02:00
omap1510_i2c.c Cleanup: fix "MHz" spelling 2008-10-21 11:25:39 +02:00
pca9564_i2c.c new PCA9564 i2c bridge driver 2009-10-30 15:10:58 +01:00
ppc4xx_i2c.c ppc4xx: Move ppc4xx headers to powerpc include directory 2010-09-23 09:02:05 +02:00
s3c24x0_i2c.c Add generic support for samsung s3c2440 2010-10-28 15:35:56 +09:00
s3c44b0_i2c.c s3c44b0: move i2c driver to drivers/i2c 2009-03-29 23:01:40 +02:00
soft_i2c.c Fix at91 includes in soft_i2c driver 2011-01-27 07:27:32 +01:00
spr_i2c.c mod change 755 => 644 for multiple files 2010-03-21 22:22:53 +01:00
tsi108_i2c.c i2c: Update references to individual i2c commands 2009-06-12 20:39:46 +02:00