]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-omap2/timer.c
ARM: OMAP5/DRA7: realtime_counter: Configure CNTFRQ register
[karo-tx-linux.git] / arch / arm / mach-omap2 / timer.c
index d0f80c020423b7af301fdc0ca884a7c585aaf529..87259dc82aa2846dd63cd45a9d4c26bf78114107 100644 (file)
@@ -55,6 +55,7 @@
 #include "soc.h"
 #include "common.h"
 #include "powerdomain.h"
+#include "omap-secure.h"
 
 #define REALTIME_COUNTER_BASE                          0x48243200
 #define INCREMENTER_NUMERATOR_OFFSET                   0x10
 
 static struct omap_dm_timer clkev;
 static struct clock_event_device clockevent_gpt;
+static unsigned long arch_timer_freq;
+
+void set_cntfreq(void)
+{
+       omap_smc1(OMAP5_DRA7_MON_SET_CNTFRQ_INDEX, arch_timer_freq);
+}
 
 static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
 {
@@ -546,6 +553,9 @@ static void __init realtime_counter_init(void)
        reg |= den;
        __raw_writel(reg, base + INCREMENTER_DENUMERATOR_RELOAD_OFFSET);
 
+       arch_timer_freq = (rate / den) * num;
+       set_cntfreq();
+
        iounmap(base);
 }
 #else