diff options
author | Heiko Schocher <hs@denx.de> | 2008-10-17 13:52:51 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-10-18 21:54:04 +0200 |
commit | a21ca95f8b9dca22714952b348e4905ac157b5cd (patch) | |
tree | 2d1fa9efebc62a32d80d1b79c2783df4d6c75191 | |
parent | cac9cf7875c2a01d63422820ed4732a9bdf5ab7b (diff) | |
download | u-boot-imx-a21ca95f8b9dca22714952b348e4905ac157b5cd.zip u-boot-imx-a21ca95f8b9dca22714952b348e4905ac157b5cd.tar.gz u-boot-imx-a21ca95f8b9dca22714952b348e4905ac157b5cd.tar.bz2 |
mgsuvd: fix compiler warning when using soft_i2c driver
Signed-off-by: Heiko Schocher <hs@denx.de>
-rw-r--r-- | board/keymile/common/common.c | 3 | ||||
-rw-r--r-- | drivers/i2c/soft_i2c.c | 4 | ||||
-rw-r--r-- | include/configs/mgsuvd.h | 18 |
3 files changed, 15 insertions, 10 deletions
diff --git a/board/keymile/common/common.c b/board/keymile/common/common.c index 61276d2..e47928d 100644 --- a/board/keymile/common/common.c +++ b/board/keymile/common/common.c @@ -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) diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c index 508d3d7..ebe60e2 100644 --- a/drivers/i2c/soft_i2c.c +++ b/drivers/i2c/soft_i2c.c @@ -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 */ diff --git a/include/configs/mgsuvd.h b/include/configs/mgsuvd.h index 416e4db..1604285 100644 --- a/include/configs/mgsuvd.h +++ b/include/configs/mgsuvd.h @@ -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 */ |