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 9ff06c1..521c4f4 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 04e8001..50499e2 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 cc2c49c..b6155b1 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 */ |