Skip to contentSkip to conversation

mgsuvd: fix compiler warning when using soft_i2c driver

PATCH New Heiko Schocher 2 participants 2 messages Oct 17, 2008 I2C

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/1 mgsuvd: fix compiler warning when using soft_i2c driver

---
 board/keymile/common/common.c |    3 ++-
 drivers/i2c/soft_i2c.c        |    4 ++++
 include/configs/mgsuvd.h      |   18 +++++++++---------
 3 files changed, 15 insertions(+), 10 deletions(-)
board/keymile/common/common.c +2 -1
index 61276d2..e47928d 100644
@@ -34,6 +34,7 @@
 #if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C)
 #include <i2c.h>
 #endif
+#include <asm/io.h>
 
 extern int i2c_soft_read_pin (void);
 
@@ -400,7 +401,7 @@ static void set_scl (int state)
 
 static int get_sda (void)
 {
-	return i2c_soft_read_pin ();
+	return I2C_READ;
 }
 
 static int get_scl (void)
drivers/i2c/soft_i2c.c +4 -0
index 508d3d7..ebe60e2 100644
@@ -28,6 +28,7 @@
 #include <common.h>
 #ifdef	CONFIG_MPC8260			/* only valid for MPC8260 */
 #include <ioports.h>
+#include <asm/io.h>
 #endif
 #ifdef	CONFIG_AT91RM9200		/* need this for the at91rm9200 */
 #include <asm/io.h>
@@ -39,6 +40,9 @@
 #ifdef CONFIG_LPC2292
 #include <asm/arch/hardware.h>
 #endif
+#ifdef	CONFIG_MPC866			/* only valid for MPC866 */
+#include <asm/io.h>
+#endif
 #include <i2c.h>
 
 /* #define	DEBUG_I2C	*/
include/configs/mgsuvd.h +9 -9
index 416e4db..1604285 100644
@@ -346,8 +346,8 @@
 /*
  * Software (bit-bang) I2C driver configuration
  */
-#define I2C_BASE_DIR	(CONFIG_SYS_PIGGY_BASE + 0x04)
-#define I2C_BASE_PORT	(CONFIG_SYS_PIGGY_BASE + 0x09)
+#define I2C_BASE_DIR	((u16 *)(CONFIG_SYS_PIGGY_BASE + 0x04))
+#define I2C_BASE_PORT	((u8 *)(CONFIG_SYS_PIGGY_BASE + 0x09))
 
 #define SDA_BIT		0x40
 #define SCL_BIT		0x80
@@ -356,18 +356,18 @@
 
 #define I2C_ACTIVE	do {} while (0)
 #define I2C_TRISTATE	do {} while (0)
-#define I2C_READ	i2c_soft_read_pin ()
+#define I2C_READ	((in_8(I2C_BASE_PORT) & SDA_BIT) == SDA_BIT)
 #define I2C_SDA(bit)	if(bit) { \
-				*(unsigned short *)(I2C_BASE_DIR) &=  ~SDA_CONF; \
+				clrbits(be16, I2C_BASE_DIR, SDA_CONF); \
 			} else { \
-				*(unsigned char *)(I2C_BASE_PORT) &= ~SDA_BIT; \
-				*(unsigned short *)(I2C_BASE_DIR) |= SDA_CONF; \
+				clrbits(8, I2C_BASE_PORT, SDA_BIT); \
+				setbits(be16, I2C_BASE_DIR, SDA_CONF); \
 			}
 #define I2C_SCL(bit)	if(bit) { \
-				*(unsigned short *)(I2C_BASE_DIR) &=  ~SCL_CONF; \
+				clrbits(be16, I2C_BASE_DIR, SCL_CONF); \
 			} else { \
-				*(unsigned char *)(I2C_BASE_PORT) &= ~SCL_BIT; \
-				*(unsigned short *)(I2C_BASE_DIR) |= SCL_CONF; \
+				clrbits(8, I2C_BASE_PORT, SCL_BIT); \
+				setbits(be16, I2C_BASE_DIR, SCL_CONF); \
 			}
 #define I2C_DELAY	udelay(50)	/* 1/4 I2C clock duration */
 
Signature · 5 lines
1.5.6.1

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#1 lore raw

PATCH v4 1/1 mgsuvd: fix compiler warning when using soft_i2c driver

Dear Heiko,

Quoted 7 lines · In message <[email protected]> you wrote:
---
 board/keymile/common/common.c |    3 ++-
 drivers/i2c/soft_i2c.c        |    4 ++++
 include/configs/mgsuvd.h      |   18 +++++++++---------
 3 files changed, 15 insertions(+), 10 deletions(-)

Applied to "next" branch, thanks.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The joys of love made her human and the  agonies  of  love  destroyed
her.
	-- Spock, "Requiem for Methuselah", stardate 5842.8