diff options
Diffstat (limited to 'cpu/mpc5xxx/i2c.c')
| -rw-r--r-- | cpu/mpc5xxx/i2c.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| diff --git a/cpu/mpc5xxx/i2c.c b/cpu/mpc5xxx/i2c.c index 845f7c05e..044db46f6 100644 --- a/cpu/mpc5xxx/i2c.c +++ b/cpu/mpc5xxx/i2c.c @@ -55,8 +55,9 @@ static int  mpc_get_fdr   (int);  static int mpc_reg_in(volatile u32 *reg)  { -	return *reg >> 24; +	int ret = *reg >> 24;  	__asm__ __volatile__ ("eieio"); +	return ret;  }  static void mpc_reg_out(volatile u32 *reg, int val, int mask) @@ -298,7 +299,7 @@ int i2c_probe(uchar chip)  int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)  { -	uchar                xaddr[4]; +	char                xaddr[4];  	struct mpc5xxx_i2c * regs        = (struct mpc5xxx_i2c *)I2C_BASE;  	int                  ret         = -1; @@ -329,7 +330,7 @@ int i2c_read(uchar chip, uint addr, int alen, uchar *buf, int len)  		goto Done;  	} -	if (receive_bytes(chip, buf, len)) { +	if (receive_bytes(chip, (char *)buf, len)) {  		printf("i2c_read: receive_bytes failed\n");  		goto Done;  	} @@ -342,7 +343,7 @@ Done:  int i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len)  { -	uchar               xaddr[4]; +	char               xaddr[4];  	struct mpc5xxx_i2c *regs        = (struct mpc5xxx_i2c *)I2C_BASE;  	int                 ret         = -1; @@ -367,7 +368,7 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buf, int len)  		goto Done;  	} -	if (send_bytes(chip, buf, len)) { +	if (send_bytes(chip, (char *)buf, len)) {  		printf("i2c_write: send_bytes failed\n");  		goto Done;  	} @@ -380,7 +381,7 @@ Done:  uchar i2c_reg_read(uchar chip, uchar reg)  { -	char buf; +	uchar buf;  	i2c_read(chip, reg, 1, &buf, 1); |