diff --git a/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig b/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig index 09d08350501..7dafea808c8 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 9c6ff3c692d..19db6287bd8 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 f4fc424f363..9a507bc40bf 100644 --- a/drivers/rtc/rtc_qmsi.c +++ b/drivers/rtc/rtc_qmsi.c @@ -22,6 +22,7 @@ #include #include #include +#include #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);