From efa329cb892c8b9a5e453638b3ca57c94b71e9a2 Mon Sep 17 00:00:00 2001 From: wdenk Date: Tue, 23 Mar 2004 20:18:25 +0000 Subject: * Add start-up delay to make sure power has stabilized before attempting to switch on USB on SX1 board. * Patch by Josef Wagner, 18 Mar 2004: - Add support for MicroSys XM250 board (PXA255) - Add support for MicroSys PM828 board (MPC8280) - Add support for 32 MB Flash on PM825/826 - new SDRAM refresh rate for PM825/PM826 - added support for MicroSys PM520 (MPC5200) - replaced Query by Identify command in CPU86/flash.c to support 28F160F3B * Fix wrap around problem with udelay() on ARM920T * Add support for Macronix flash on TRAB board --- cpu/arm920t/interrupts.c | 5 ++--- cpu/mpc5xxx/fec.c | 10 ++++++---- cpu/pxa/i2c.c | 6 +++++- 3 files changed, 13 insertions(+), 8 deletions(-) (limited to 'cpu') 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 */ -- cgit v1.1