summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIván Briano <ivan.briano@intel.com>2016-10-27 11:49:19 -0200
committerAnas Nashif <nashif@linux.intel.com>2016-11-02 22:24:28 +0000
commitb63e635a18d24323c20593de9176d8c8e6e035eb (patch)
tree3ef7a46301ddcf4f6f80acd62cd4e5f60c716bd9
parentca7dfd8909d65241550ce7277fcdac038881edc0 (diff)
rtc qmsi: Enable the driver to work on ARC
Jira: ZEP-1030 Change-Id: Ie57b183c9fdf0e0cb70c7d81b92b221d54a32c0f Signed-off-by: Iván Briano <ivan.briano@intel.com>
-rw-r--r--arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig10
-rw-r--r--drivers/rtc/Makefile1
-rw-r--r--drivers/rtc/rtc_qmsi.c9
3 files changed, 15 insertions, 5 deletions
diff --git a/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig b/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig
index 09d083505..7dafea808 100644
--- a/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig
+++ b/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig
@@ -70,6 +70,16 @@ config QMSI
config QMSI_BUILTIN
def_bool y
+if RTC
+
+config RTC_QMSI
+ def_bool y
+
+config RTC_0_IRQ_PRI
+ default 2
+
+endif # RTC
+
if GPIO
config GPIO_QMSI_SS
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 9c6ff3c69..19db6287b 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -1,2 +1 @@
obj-$(CONFIG_RTC_QMSI) += rtc_qmsi.o
-ccflags-$(CONFIG_RTC_QMSI) += -DENABLE_EXTERNAL_ISR_HANDLING
diff --git a/drivers/rtc/rtc_qmsi.c b/drivers/rtc/rtc_qmsi.c
index f4fc424f3..9a507bc40 100644
--- a/drivers/rtc/rtc_qmsi.c
+++ b/drivers/rtc/rtc_qmsi.c
@@ -22,6 +22,7 @@
#include <nanokernel.h>
#include <rtc.h>
#include <power.h>
+#include <soc.h>
#include "qm_isr.h"
#include "qm_rtc.h"
@@ -166,15 +167,15 @@ static int rtc_qmsi_init(struct device *dev)
{
rtc_reentrancy_init(dev);
- IRQ_CONNECT(QM_IRQ_RTC_0_INT, CONFIG_RTC_0_IRQ_PRI,
+ IRQ_CONNECT(IRQ_GET_NUMBER(QM_IRQ_RTC_0_INT), CONFIG_RTC_0_IRQ_PRI,
qm_rtc_0_isr, NULL,
IOAPIC_EDGE | IOAPIC_HIGH);
/* Unmask RTC interrupt */
- irq_enable(QM_IRQ_RTC_0_INT);
+ irq_enable(IRQ_GET_NUMBER(QM_IRQ_RTC_0_INT));
- /* Route RTC interrupt to Lakemont */
- QM_INTERRUPT_ROUTER->rtc_0_int_mask &= ~BIT(0);
+ /* Route watchdog interrupt to the current core */
+ QM_IR_UNMASK_INTERRUPTS(QM_INTERRUPT_ROUTER->rtc_0_int_mask);
rtc_qmsi_set_power_state(dev, DEVICE_PM_ACTIVE_STATE);