aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Kurtz <djkurtz@chromium.org>2012-11-15 07:13:33 -0500
committerWolfram Sang <w.sang@pengutronix.de>2012-11-16 07:09:39 -0500
commit79f678edfe48db1f234b8de41e24987d6d25ac1a (patch)
treeae2e3e61ee8668aa01714477722ccd65b9ec1acb
parentfe724bf9f023384eb14431c0e49ec46017ba8e30 (diff)
i2c: s3c2410: do not special case HDMIPHY stuck bus detection
Commit "i2c-s3c2410: Add HDMIPHY quirk for S3C2440" added support for HDMIPHY with some special handling in s3c24xx_i2c_set_master: "due to unknown reason (probably HW bug in HDMIPHY and/or the controller) a transfer fails to finish. The controller hangs after sending the last byte, the workaround for this bug is resetting the controller after each transfer" The "unknown reason" was that the proper sequence for generating a STOP condition wasn't being followed as per the datasheet. Since this is fixed by "PATCH: i2c-s3c2410: do not generate STOP for QUIRK_HDMIPHY buses", remove the special handling. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Naveen Krishna Chatradhi <ch.naveen@samsung.com> Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c16
1 files changed, 0 insertions, 16 deletions
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index dd93d3d6510a..081e261ac847 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -532,13 +532,6 @@ static int s3c24xx_i2c_set_master(struct s3c24xx_i2c *i2c)
532 unsigned long iicstat; 532 unsigned long iicstat;
533 int timeout = 400; 533 int timeout = 400;
534 534
535 /* the timeout for HDMIPHY is reduced to 10 ms because
536 * the hangup is expected to happen, so waiting 400 ms
537 * causes only unnecessary system hangup
538 */
539 if (i2c->quirks & QUIRK_HDMIPHY)
540 timeout = 10;
541
542 while (timeout-- > 0) { 535 while (timeout-- > 0) {
543 iicstat = readl(i2c->regs + S3C2410_IICSTAT); 536 iicstat = readl(i2c->regs + S3C2410_IICSTAT);
544 537
@@ -548,15 +541,6 @@ static int s3c24xx_i2c_set_master(struct s3c24xx_i2c *i2c)
548 msleep(1); 541 msleep(1);
549 } 542 }
550 543
551 /* hang-up of bus dedicated for HDMIPHY occurred, resetting */
552 if (i2c->quirks & QUIRK_HDMIPHY) {
553 writel(0, i2c->regs + S3C2410_IICCON);
554 writel(0, i2c->regs + S3C2410_IICSTAT);
555 writel(0, i2c->regs + S3C2410_IICDS);
556
557 return 0;
558 }
559
560 return -ETIMEDOUT; 544 return -ETIMEDOUT;
561} 545}
562 546