diff options
Diffstat (limited to 'cpu')
| -rw-r--r-- | cpu/arm920t/interrupts.c | 5 | ||||
| -rw-r--r-- | cpu/mpc5xxx/fec.c | 10 | ||||
| -rw-r--r-- | cpu/pxa/i2c.c | 6 | 
3 files changed, 13 insertions, 8 deletions
| diff --git a/cpu/arm920t/interrupts.c b/cpu/arm920t/interrupts.c index 9ff06c1de..521c4f479 100644 --- a/cpu/arm920t/interrupts.c +++ b/cpu/arm920t/interrupts.c @@ -235,14 +235,13 @@ void set_timer (ulong t)  void udelay (unsigned long usec)  {  	ulong tmo; +	ulong start = get_timer(0);  	tmo = usec / 1000;  	tmo *= (timer_load_val * 100);  	tmo /= 1000; -	tmo += get_timer (0); - -	while (get_timer_masked () < tmo) +	while ((ulong)(get_timer_masked () - start) < tmo)  		/*NOP*/;  } diff --git a/cpu/mpc5xxx/fec.c b/cpu/mpc5xxx/fec.c index 04e8001df..50499e214 100644 --- a/cpu/mpc5xxx/fec.c +++ b/cpu/mpc5xxx/fec.c @@ -830,12 +830,14 @@ int mpc5xxx_fec_initialize(bd_t * bis)  	fec->eth = (ethernet_regs *)MPC5XXX_FEC;  	fec->tbdBase = (FEC_TBD *)FEC_BD_BASE;  	fec->rbdBase = (FEC_RBD *)(FEC_BD_BASE + FEC_TBD_NUM * sizeof(FEC_TBD)); -#if defined(CONFIG_ICECUBE) || defined(CONFIG_TOP5200) -#  ifndef CONFIG_FEC_10MBIT +#if defined(CONFIG_ICECUBE) || +    defined(CONFIG_PM520)   || +    defined(CONFIG_TOP5200) +# ifndef CONFIG_FEC_10MBIT  	fec->xcv_type = MII100; -#  else +# else  	fec->xcv_type = MII10; -#  endif +# endif  #else  #error fec->xcv_type not initialized.  #endif diff --git a/cpu/pxa/i2c.c b/cpu/pxa/i2c.c index cc2c49ca7..b6155b137 100644 --- a/cpu/pxa/i2c.c +++ b/cpu/pxa/i2c.c @@ -448,13 +448,17 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)  uchar i2c_reg_read (uchar chip, uchar reg)  { +	char buf; +  	PRINTD(("i2c_reg_read(chip=0x%02x, reg=0x%02x)\n",chip,reg)); -	return 0; +	i2c_read(chip, reg, 1, &buf, 1); +	return (buf);  }  void  i2c_reg_write(uchar chip, uchar reg, uchar val)  {  	PRINTD(("i2c_reg_write(chip=0x%02x, reg=0x%02x, val=0x%02x)\n",chip,reg,val)); +	i2c_write(chip, reg, 1, &val, 1);  }  #endif	/* CONFIG_HARD_I2C */ |