summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorVincenzo Frascino <vincenzo.frascino@linaro.org>2017-01-20 16:07:37 +0000
committerKumar Gala <kumar.gala@linaro.org>2017-01-23 15:15:53 -0600
commit06f6d3837b690cc3b401faccd43117f7e3c00e8f (patch)
tree114b2c65bcc2f00a3fc43732ec27bffbd38f2448 /drivers
parentdee8ef6f4f1cf90b8a57dd6c6c8cdb6bbd65791f (diff)
counter: cmsdk: Add common interface
This patch adds a common interface for timers and counters based on CMSDK APB timers. Jira: ZEP-1300 Change-Id: I1f89f674d31410f19b651cd904c79f8d173a5357 Signed-off-by: Vincenzo Frascino <vincenzo.frascino@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/counter/counter_tmr_cmsdk_apb.c21
-rw-r--r--drivers/counter/timer_cmsdk_apb.h40
2 files changed, 41 insertions, 20 deletions
diff --git a/drivers/counter/counter_tmr_cmsdk_apb.c b/drivers/counter/counter_tmr_cmsdk_apb.c
index cfb409812..98ba80ade 100644
--- a/drivers/counter/counter_tmr_cmsdk_apb.c
+++ b/drivers/counter/counter_tmr_cmsdk_apb.c
@@ -10,26 +10,7 @@
#include <init.h>
#include <soc.h>
-struct timer_cmsdk_apb {
- /* Offset: 0x000 (R/W) control register */
- volatile uint32_t ctrl;
- /* Offset: 0x004 (R/W) current value register */
- volatile uint32_t value;
- /* Offset: 0x008 (R/W) reload value register */
- volatile uint32_t reload;
- union {
- /* Offset: 0x00C (R/ ) interrupt status register */
- volatile uint32_t intstatus;
- /* Offset: 0x00C ( /W) interruptclear register */
- volatile uint32_t intclear;
- } intreg;
-};
-
-#define TIMER_CTRL_IRQ_EN (1 << 3)
-#define TIMER_CTRL_SEL_EXT_CLK (1 << 2)
-#define TIMER_CTRL_SEL_EXT_EN (1 << 1)
-#define TIMER_CTRL_EN (1 << 0)
-#define TIMER_CTRL_INT_CLEAR (1 << 0)
+#include "timer_cmsdk_apb.h"
#define TIMER_MAX_RELOAD 0xFFFFFFFF
diff --git a/drivers/counter/timer_cmsdk_apb.h b/drivers/counter/timer_cmsdk_apb.h
new file mode 100644
index 000000000..57544a66e
--- /dev/null
+++ b/drivers/counter/timer_cmsdk_apb.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2017 Linaro Limited.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+#ifndef _DRIVERS_TIMER_CMSDK_AHB_
+#define _DRIVERS_TIMER_CMSDK_AHB_
+
+#include <counter.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct timer_cmsdk_apb {
+ /* Offset: 0x000 (R/W) control register */
+ volatile uint32_t ctrl;
+ /* Offset: 0x004 (R/W) current value register */
+ volatile uint32_t value;
+ /* Offset: 0x008 (R/W) reload value register */
+ volatile uint32_t reload;
+ union {
+ /* Offset: 0x00C (R/ ) interrupt status register */
+ volatile uint32_t intstatus;
+ /* Offset: 0x00C ( /W) interruptclear register */
+ volatile uint32_t intclear;
+ };
+};
+
+#define TIMER_CTRL_IRQ_EN (1 << 3)
+#define TIMER_CTRL_SEL_EXT_CLK (1 << 2)
+#define TIMER_CTRL_SEL_EXT_EN (1 << 1)
+#define TIMER_CTRL_EN (1 << 0)
+#define TIMER_CTRL_INT_CLEAR (1 << 0)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DRIVERS_TIMER_CMSDK_AHB_ */