summaryrefslogtreecommitdiff
path: root/arch/microblaze/cpu/timer.c
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2012-07-31 22:01:08 +0200
committerWolfgang Denk <wd@denx.de>2012-07-31 22:01:08 +0200
commitd978780b2e676c005460cd561f4f15b5220bdf49 (patch)
treebfec2a887b82f0eb552117e133f78cf44e5d7680 /arch/microblaze/cpu/timer.c
parentb54d1f26ff216ef08307b7652647cc92124c2be1 (diff)
parentbcec8f49d1c5570f806f9cc33eb0bcc56a6551d5 (diff)
downloadu-boot-imx-d978780b2e676c005460cd561f4f15b5220bdf49.zip
u-boot-imx-d978780b2e676c005460cd561f4f15b5220bdf49.tar.gz
u-boot-imx-d978780b2e676c005460cd561f4f15b5220bdf49.tar.bz2
Merge branch 'master' of git://git.denx.de/u-boot-microblaze
* 'master' of git://git.denx.de/u-boot-microblaze: microblaze: Wire up SPI driver spi: microblaze: Adds driver for Xilinx SPI controller microblaze: intc: Clear interrupt code microblaze: Call serial multi initialization microblaze: Move __udelay implementation microblaze: Remove extern from board.c microblaze: Wire up dts configuration fdt: Add board specific dts inclusion microblaze: Move individual board linker scripts to common script in cpu tree. microblaze: Add gpio.h microblaze: Add missing undefs for UBI and UBIFS microblaze: Expand and correct configuration comments microblaze: Enable ubi support microblaze: Avoid compile error on systems without cfi flash microblaze: Remove wrong define CONFIG_SYS_FLASH_PROTECTION Conflicts: drivers/spi/Makefile Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'arch/microblaze/cpu/timer.c')
-rw-r--r--arch/microblaze/cpu/timer.c21
1 files changed, 19 insertions, 2 deletions
diff --git a/arch/microblaze/cpu/timer.c b/arch/microblaze/cpu/timer.c
index 1952804..cc6b897 100644
--- a/arch/microblaze/cpu/timer.c
+++ b/arch/microblaze/cpu/timer.c
@@ -40,7 +40,25 @@ ulong get_timer (ulong base)
}
#endif
-#ifdef CONFIG_SYS_INTC_0
+#ifdef CONFIG_SYS_TIMER_0
+void __udelay(unsigned long usec)
+{
+ int i;
+
+ i = get_timer(0);
+ while ((get_timer(0) - i) < (usec / 1000))
+ ;
+}
+#else
+void __udelay(unsigned long usec)
+{
+ unsigned int i;
+
+ for (i = 0; i < (usec * CONFIG_XILINX_CLOCK_FREQ / 10000000); i++)
+ ;
+}
+#endif
+
#ifdef CONFIG_SYS_TIMER_0
microblaze_timer_t *tmr = (microblaze_timer_t *) (CONFIG_SYS_TIMER_0_ADDR);
@@ -61,7 +79,6 @@ int timer_init (void)
return 0;
}
#endif
-#endif
/*
* This function is derived from PowerPC code (read timebase as long long).