u-boot-brain/drivers
Nikita Kiryanov 92c23c9226 arm: omap: i2c: don't zero cnt in i2c_write
Writing zero into I2Ci.I2C_CNT register causes random I2C failures in OMAP3
based devices. This seems to be related to the following advisory which
apears in multiple erratas for OMAP3 SoCs (OMAP35xx, DM37xx), as well as
OMAP4430 TRM:

Advisory:
I2C Module Does Not Allow 0-Byte Data Requests
Details:
When configured as the master, the I2C module does not allow 0-byte data
transfers. Note: Programming I2Ci.I2C_CNT[15:0]: DCOUNT = 0 will cause
undefined behavior.
Workaround(s):
No workaround. Do not use 0-byte data requests.

The writes in question are unnecessary from a functional point of view.
Most of them are done after I/O has finished, and the only one that preceds
I/O (in i2c_probe()) is also unnecessary because a stop bit is sent before
actual data transmission takes place.

Therefore, remove all writes that zero the cnt register.

Cc: Heiko Schocher <hs@denx.de>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Tom Rini <trini@ti.com>
Cc: Lubomir Popov <lpopov@mm-sol.com>
Cc: Enric Balletbo Serra <eballetbo@gmail.com>
Signed-off-by: Nikita Kiryanov <nikita@compulab.co.il>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Lubomir Popov <lpopov@mm-sol.com>
2013-12-05 12:25:02 +01:00
..
bios_emulator bios_emulator: delete an unnecessary include path 2013-11-25 10:41:54 -05:00
block drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
bootcount Merge branch 'iu-boot/master' into 'u-boot-arm/master' 2013-11-09 22:59:47 +01:00
crypto drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
ddr/fsl Driver/DDR: Update DDR driver to allow non-zero base address 2013-11-25 11:43:47 -08:00
dfu usb: dfu: make nand upload working 2013-11-08 20:46:20 +01:00
dma drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
fpga drivers: descend into sub directories only when it is necessary 2013-11-17 14:11:30 -05:00
gpio Add support for SX151x SPI GPIO Expanders 2013-11-08 09:39:13 -05:00
hwmon cosmetic: remove empty lines at the top of file 2013-11-08 09:41:37 -05:00
i2c arm: omap: i2c: don't zero cnt in i2c_write 2013-12-05 12:25:02 +01:00
input drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
misc Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx 2013-12-02 08:38:28 -05:00
mmc drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
mtd Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx 2013-12-02 08:38:28 -05:00
net Merge branch 'master' of git://git.denx.de/u-boot-mpc85xx 2013-12-02 08:38:28 -05:00
pci malta: support for coreFPGA6 boards 2013-11-09 17:21:01 +01:00
pcmcia drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
power drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
qe drivers/qe: move the entry to drivers/Makefile 2013-11-17 14:11:31 -05:00
rtc Merge branch 'master' of git://git.denx.de/u-boot-mips 2013-11-11 09:40:34 -05:00
serial serial: zynq: Remove unused #defines 2013-12-02 11:36:36 +01:00
sound drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
spi spi: omap3: add support for more word lengths 2013-11-12 10:02:44 +01:00
tpm drivers: tpm: clean up unused code 2013-11-17 14:11:30 -05:00
twserial drivers: convert makefiles to Kbuild style 2013-10-31 13:26:01 -04:00
usb Merge branch 'iu-boot/master' into 'u-boot-arm/master' 2013-11-09 22:59:47 +01:00
video lcd: add DataImage SCF0403x LCD panel support 2013-11-12 10:08:48 +01:00
watchdog Merge branch 'iu-boot/master' into 'u-boot-arm/master' 2013-11-09 22:59:47 +01:00
Makefile drivers/qe: move the entry to drivers/Makefile 2013-11-17 14:11:31 -05:00