diff options
author | Iván Briano <ivan.briano@intel.com> | 2016-10-27 11:49:19 -0200 |
---|---|---|
committer | Anas Nashif <nashif@linux.intel.com> | 2016-11-02 22:24:28 +0000 |
commit | b63e635a18d24323c20593de9176d8c8e6e035eb (patch) | |
tree | 3ef7a46301ddcf4f6f80acd62cd4e5f60c716bd9 | |
parent | ca7dfd8909d65241550ce7277fcdac038881edc0 (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.defconfig | 10 | ||||
-rw-r--r-- | drivers/rtc/Makefile | 1 | ||||
-rw-r--r-- | drivers/rtc/rtc_qmsi.c | 9 |
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); |