public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: dirk.behme at googlemail.com <dirk.behme@googlemail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 09/13 v5] ARM: OMAP3: Add I2C support
Date: Sun,  2 Nov 2008 19:38:30 +0100	[thread overview]
Message-ID: <490df3a8.0c07560a.1694.2f83@mx.google.com> (raw)

Subject: [PATCH 09/13 v5] ARM: OMAP3: Add I2C support

From: Dirk Behme <dirk.behme@gmail.com>

Add I2C support

Signed-off-by: Dirk Behme <dirk.behme@gmail.com>

---
Changes in version v5:

- Split functional changes and coding style clean up as proposed by Jean-Christophe PLAGNIOL-VILLARD.

Changes in version v2:

- Remove SMC911X network init as proposed by Ben Warren. Thanks!

 drivers/i2c/Makefile       |    1 +
 drivers/i2c/omap24xx_i2c.c |   24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+)

Index: u-boot-main/drivers/i2c/Makefile
===================================================================
--- u-boot-main.orig/drivers/i2c/Makefile
+++ u-boot-main/drivers/i2c/Makefile
@@ -29,6 +29,7 @@ COBJS-$(CONFIG_FSL_I2C) += fsl_i2c.o
 COBJS-$(CONFIG_I2C_MXC) += mxc_i2c.o
 COBJS-$(CONFIG_DRIVER_OMAP1510_I2C) += omap1510_i2c.o
 COBJS-$(CONFIG_DRIVER_OMAP24XX_I2C) += omap24xx_i2c.o
+COBJS-$(CONFIG_DRIVER_OMAP34XX_I2C) += omap24xx_i2c.o
 COBJS-$(CONFIG_SOFT_I2C) += soft_i2c.o
 COBJS-$(CONFIG_TSI108_I2C) += tsi108_i2c.o
 
Index: u-boot-main/drivers/i2c/omap24xx_i2c.c
===================================================================
--- u-boot-main.orig/drivers/i2c/omap24xx_i2c.c
+++ u-boot-main/drivers/i2c/omap24xx_i2c.c
@@ -25,6 +25,8 @@
 #include <asm/arch/i2c.h>
 #include <asm/io.h>
 
+#define inb(a) __raw_readb(a)
+#define outb(a, v) __raw_writeb(a, v)
 #define inw(a) __raw_readw(a)
 #define outw(a,v) __raw_writew(a,v)
 
@@ -112,7 +114,11 @@ static int i2c_read_byte (u8 devaddr, u8
 
 		status = wait_for_pin ();
 		if (status & I2C_STAT_RRDY) {
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+			*value = inb(I2C_DATA);
+#else
 			*value = inw (I2C_DATA);
+#endif
 			udelay (20000);
 		} else {
 			i2c_error = 1;
@@ -153,8 +159,22 @@ static int i2c_write_byte (u8 devaddr, u
 	status = wait_for_pin ();
 
 	if (status & I2C_STAT_XRDY) {
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+		/* send out 1 byte */
+		outb(regoffset, I2C_DATA);
+		outw(I2C_STAT_XRDY, I2C_STAT);
+		status = wait_for_pin();
+		if ((status & I2C_STAT_XRDY)) {
+			/* send out next 1 byte */
+			outb(value, I2C_DATA);
+			outw(I2C_STAT_XRDY, I2C_STAT);
+		} else {
+			i2c_error = 1;
+		}
+#else
 		/* send out two bytes */
 		outw ((value << 8) + regoffset, I2C_DATA);
+#endif
 		/* must have enough delay to allow BB bit to go low */
 		udelay (50000);
 		if (inw (I2C_STAT) & I2C_STAT_NACK) {
@@ -191,7 +211,11 @@ static void flush_fifo(void)
 	while(1){
 		stat = inw(I2C_STAT);
 		if(stat == I2C_STAT_RRDY){
+#if defined(CONFIG_OMAP243X) || defined(CONFIG_OMAP34XX)
+			inb(I2C_DATA);
+#else
 			inw(I2C_DATA);
+#endif
 			outw(I2C_STAT_RRDY,I2C_STAT);
 			udelay(1000);
 		}else

         reply	other threads:[~2008-11-02 18:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-02 18:37 [U-Boot] [PATCH 07/13 v5] ARM: OMAP3: Add NAND support dirk.behme at googlemail.com
2008-11-02 18:38 ` [U-Boot] [PATCH 08/13 v5] ARM: OMAP3: Add MMC support dirk.behme at googlemail.com
2008-11-02 18:38   ` dirk.behme at googlemail.com [this message]
2008-11-02 18:38     ` [U-Boot] [PATCH 10/13 v5] ARM: OMAP3: Add BeagleBoard dirk.behme at googlemail.com
2008-11-02 18:39       ` [U-Boot] [PATCH 11/13 v5] ARM: OMAP3: Add EVM board dirk.behme at googlemail.com
2008-11-02 18:39         ` [U-Boot] [PATCH 12/13 v5] ARM: OMAP3: Add Overo board dirk.behme at googlemail.com
2008-11-02 18:40           ` [U-Boot] [PATCH 13/13 v5] ARM: OMAP3: Add Beagle, EVM and Overo configuration and README dirk.behme at googlemail.com
2008-11-09 16:01             ` Jean-Christophe PLAGNIOL-VILLARD
2008-11-09 15:05           ` [U-Boot] [PATCH 12/13 v5] ARM: OMAP3: Add Overo board Jean-Christophe PLAGNIOL-VILLARD
2008-11-09 19:44             ` Wolfgang Denk
2008-11-09 15:03         ` [U-Boot] [PATCH 11/13 v5] ARM: OMAP3: Add EVM board Jean-Christophe PLAGNIOL-VILLARD
2008-11-09 19:43           ` Wolfgang Denk
     [not found]           ` <4917eef4.02a1660a.35ee.72f8SMTPIN_ADDED@mx.google.com>
2008-11-10 19:28             ` Dirk Behme
2008-11-09 14:57       ` [U-Boot] [PATCH 10/13 v5] ARM: OMAP3: Add BeagleBoard Jean-Christophe PLAGNIOL-VILLARD
2008-11-03  0:18     ` [U-Boot] [PATCH 09/13 v5] ARM: OMAP3: Add I2C support Jean-Christophe PLAGNIOL-VILLARD
2008-11-03 20:27       ` Dirk Behme
2008-11-03 22:55         ` Wolfgang Denk
2008-11-02 23:25   ` [U-Boot] [PATCH 08/13 v5] ARM: OMAP3: Add MMC support Kyungmin Park
2008-11-09 14:33   ` Jean-Christophe PLAGNIOL-VILLARD

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=490df3a8.0c07560a.1694.2f83@mx.google.com \
    --to=dirk.behme@googlemail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox