i2c: fix i2c-sh_mobile timing issues
authorMagnus Damm <damm@igel.co.jp>
Wed, 27 Aug 2008 09:33:56 +0000 (18:33 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Fri, 5 Sep 2008 05:54:13 +0000 (14:54 +0900)
commit4eb00c9f92202a759aadbce73ea4a947b639b5e6
treeb1c94bcc53924b6a90c3ed82ea645bfa482c923f
parentdbce1f649e3d22aa7ddc0fdbfa6a7470047b61bd
i2c: fix i2c-sh_mobile timing issues

This patch teaches the i2c-sh_mobile driver to make use of wait irqs.
Without this patch only dte irqs are used which may lead to overruns
and cases of missing stop and extra bytes being read on the i2c bus.

Use of wait irqs forces the hardware to pause and wait until the cpu
is ready. Polling is also reworked in this patch to fix ms delay issues.

Verified with bus analyzer and tested on MigoR and AP325RXA boards.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/i2c/busses/i2c-sh_mobile.c