diff --git a/board/edb93xx/early_udelay.h b/board/edb93xx/early_udelay.h index 3b26b3f16c..185283d98d 100644 --- a/board/edb93xx/early_udelay.h +++ b/board/edb93xx/early_udelay.h @@ -26,7 +26,7 @@ static inline void early_udelay(uint32_t usecs) { /* loop takes 4 cycles at 5.0ns (fastest case, running at 200MHz) */ - register uint32_t loops = (usecs * 1000) / 20; + register uint32_t loops = usecs * (1000 / 20); __asm__ volatile ("1:\n" "subs %0, %1, #1\n" diff --git a/board/edb93xx/edb93xx.c b/board/edb93xx/edb93xx.c index 4df2246bd7..dde30ffdc2 100644 --- a/board/edb93xx/edb93xx.c +++ b/board/edb93xx/edb93xx.c @@ -64,6 +64,12 @@ int board_init(void) value |= SYSCON_PWRCNT_UART_BAUD; writel(value, &syscon->pwrcnt); + /* Enable the uart in devicecfg */ + value = readl(&syscon->devicecfg); + value |= 1<<18 /* U1EN */; + writel(0xAA, &syscon->sysswlock); + writel(value, &syscon->devicecfg); + /* Machine number, as defined in linux/arch/arm/tools/mach-types */ gd->bd->bi_arch_number = CONFIG_MACH_TYPE; diff --git a/include/asm-arm/arch-ep93xx/ep93xx.h b/include/asm-arm/arch-ep93xx/ep93xx.h index 6cafe54fbe..806557a50e 100644 --- a/include/asm-arm/arch-ep93xx/ep93xx.h +++ b/include/asm-arm/arch-ep93xx/ep93xx.h @@ -558,8 +558,9 @@ struct syscon_regs { uint32_t i2sclkdiv; uint32_t keytchclkdiv; uint32_t chipid; + uint32_t reserved4; uint32_t syscfg; - uint32_t reserved4[8]; + uint32_t reserved5[8]; uint32_t sysswlock; }; #else