summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
authorwdenk <wdenk>2004-03-23 20:18:25 +0000
committerwdenk <wdenk>2004-03-23 20:18:25 +0000
commitefa329cb892c8b9a5e453638b3ca57c94b71e9a2 (patch)
treeb8c5361b7054e21662e619100c1a7f53e6d8de0a /cpu
parent7d7ce4125f769a21a321c3df972272c5854d54f7 (diff)
downloadu-boot-efa329cb892c8b9a5e453638b3ca57c94b71e9a2.tar.gz
u-boot-efa329cb892c8b9a5e453638b3ca57c94b71e9a2.tar.bz2
u-boot-efa329cb892c8b9a5e453638b3ca57c94b71e9a2.zip
* 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
Diffstat (limited to 'cpu')
-rw-r--r--cpu/arm920t/interrupts.c5
-rw-r--r--cpu/mpc5xxx/fec.c10
-rw-r--r--cpu/pxa/i2c.c6
3 files changed, 13 insertions, 8 deletions
diff --git a/cpu/arm920t/interrupts.c b/cpu/arm920t/interrupts.c
index 9ff06c1de7..521c4f479d 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 04e8001dfe..50499e214e 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 cc2c49ca73..b6155b137e 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 */