summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/samsung/exynos5250/clk.h1
-rw-r--r--src/cpu/samsung/exynos5250/mct.c12
-rw-r--r--src/cpu/samsung/exynos5250/monotonic_timer.c1
3 files changed, 11 insertions, 3 deletions
diff --git a/src/cpu/samsung/exynos5250/clk.h b/src/cpu/samsung/exynos5250/clk.h
index 828e7d8832..1894c006d2 100644
--- a/src/cpu/samsung/exynos5250/clk.h
+++ b/src/cpu/samsung/exynos5250/clk.h
@@ -585,7 +585,6 @@ int clock_get_mem_selection(enum ddr_mode *mem_type,
unsigned *frequency_mhz, unsigned *arm_freq,
enum mem_manuf *mem_manuf);
-void mct_start(void);
uint64_t mct_raw_value(void);
#endif
diff --git a/src/cpu/samsung/exynos5250/mct.c b/src/cpu/samsung/exynos5250/mct.c
index db76e9d0b4..4216643140 100644
--- a/src/cpu/samsung/exynos5250/mct.c
+++ b/src/cpu/samsung/exynos5250/mct.c
@@ -22,7 +22,7 @@
#include <arch/io.h>
#include <stdint.h>
-
+#include <time.h>
#include "clk.h"
struct __attribute__((packed)) mct_regs
@@ -101,8 +101,16 @@ uint64_t mct_raw_value(void)
return (upper << 32) | lower;
}
-void mct_start(void)
+void timer_start(void)
{
writel(readl(&mct->g_tcon) | (0x1 << 8), &mct->g_tcon);
enabled = 1;
}
+
+u32 timer_us(void)
+{
+ uint64_t raw = mct_raw_value();
+ static uint32_t ticks_per_microsecond = MCT_HZ/1000000;
+ uint32_t usec = raw / ticks_per_microsecond;
+ return usec;
+}
diff --git a/src/cpu/samsung/exynos5250/monotonic_timer.c b/src/cpu/samsung/exynos5250/monotonic_timer.c
index 7c6229b38e..85fb2082b3 100644
--- a/src/cpu/samsung/exynos5250/monotonic_timer.c
+++ b/src/cpu/samsung/exynos5250/monotonic_timer.c
@@ -20,6 +20,7 @@
#include <stdint.h>
#include <delay.h>
#include <timer.h>
+#include <time.h> /* TODO: deprecate in favor of monotonic timer stuff */
#include "clk.h"