31 #include "drivers/legacy_pc/rtc.h"
32 #include "drivers/legacy_pc/pic.h"
33 #include "drivers/legacy_pc/nmi.h"
35 #include "interrupt.h"
37 #define RTC_INDEX_REGISTER 0x70
38 #define RTC_TARGET_REGISTER 0x71
40 #define RTC_INT PIC_INT(RTC_IRQ)
42 static void (*user_callback)(void);
53 outb(RTC_INDEX_REGISTER, 0x0C);
54 inb(RTC_TARGET_REGISTER);
68 rtc_init(rtc_frequency_t frequency,
void (*callback)(
void))
72 user_callback = callback;
79 outb(RTC_INDEX_REGISTER, 0x8A);
80 reg_a = inb(RTC_TARGET_REGISTER);
83 outb(RTC_INDEX_REGISTER, 0x8A);
84 outb(RTC_TARGET_REGISTER, reg_a);
87 outb(RTC_INDEX_REGISTER, 0x8B);
88 reg_b = inb(RTC_TARGET_REGISTER);
89 outb(RTC_INDEX_REGISTER, 0x8B);
90 outb(RTC_TARGET_REGISTER, reg_b |
BIT(6));
94 pic_unmask_irq(RTC_IRQ);
#define BIT(x)
Useful to reference a single bit of a byte.
static void rtc_handler(nrf_drv_rtc_int_type_t int_type)
Function for handling the RTC0 interrupts.