chore: fix almost *ALL* warnings.
[lunaix-os.git] / lunaix-os / includes / hal / rtc.h
index 69bf38e96fcf0434cf17691984d1db2b80a700aa..46283d09fbc18a3ca8dbb96bcad6ad1a061bf0c8 100644 (file)
 #define RTC_REG_C 0xC
 #define RTC_REG_D 0xD
 
-#define RTC_BIN_ENCODED(reg)    (reg & 0x04)
-#define RTC_24HRS_ENCODED(reg)  (reg & 0x02)
-
-typedef struct
-{
-    uint32_t year;      // use int32 as we need to store the 4-digit year
-    uint8_t month;
-    uint8_t day;
-    uint8_t weekday;
-    uint8_t hour;
-    uint8_t minute;
-    uint8_t second;
-} rtc_datetime;
-
-
-uint8_t
-rtc_read_reg(uint8_t reg_selector);
-
-void 
-rtc_get_datetime(rtc_datetime* datetime);
+#define RTC_BIN_ENCODED(reg) (reg & 0x04)
+#define RTC_24HRS_ENCODED(reg) (reg & 0x02)
+
+#define RTC_TIMER_BASE_FREQUENCY 1024
+#define RTC_TIMER_ON 0x40
+
+#define RTC_FREQUENCY_1024HZ 0b110
+#define RTC_DIVIDER_33KHZ (0b010 << 4)
+
+void
+rtc_init();
+
+u8_t
+rtc_read_reg(u8_t reg_selector);
+
+u8_t
+bcd2dec(u8_t bcd);
+
+void
+rtc_write_reg(u8_t reg_selector, u8_t val);
+
+void
+rtc_enable_timer();
+
+void
+rtc_disable_timer();
 
 #endif /* __LUNAIX_RTC_H */