aboutsummaryrefslogtreecommitdiff
path: root/plat/arm/common/arm_timers.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/arm/common/arm_timers.c')
-rw-r--r--plat/arm/common/arm_timers.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/plat/arm/common/arm_timers.c b/plat/arm/common/arm_timers.c
new file mode 100644
index 000000000..c84cb845a
--- /dev/null
+++ b/plat/arm/common/arm_timers.c
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2018, Arm Limited. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <assert.h>
+#include <platform.h>
+#include <stddef.h>
+#include <system_timer.h>
+#include <timer.h>
+
+#pragma weak plat_initialise_timer_ops
+
+static const plat_timer_t plat_timers = {
+ .program = program_systimer,
+ .cancel = cancel_systimer,
+ .handler = handler_systimer,
+ .timer_step_value = 2,
+ .timer_irq = IRQ_CNTPSIRQ1
+};
+
+int plat_initialise_timer_ops(const plat_timer_t **timer_ops)
+{
+ assert(timer_ops != NULL);
+ *timer_ops = &plat_timers;
+
+ /* Initialise the system timer */
+ init_systimer(SYS_CNT_BASE1);
+
+ return 0;
+}