1 /* 2 * (C) Copyright 2001 3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 /* 9 * Generic RTC interface. 10 */ 11 #ifndef _RTC_H_ 12 #define _RTC_H_ 13 14 /* bcd<->bin functions are needed by almost all the RTC drivers, let's include 15 * it there instead of in evey single driver */ 16 17 #include <bcd.h> 18 19 /* 20 * The struct used to pass data from the generic interface code to 21 * the hardware dependend low-level code ande vice versa. Identical 22 * to struct rtc_time used by the Linux kernel. 23 * 24 * Note that there are small but significant differences to the 25 * common "struct time": 26 * 27 * struct time: struct rtc_time: 28 * tm_mon 0 ... 11 1 ... 12 29 * tm_year years since 1900 years since 0 30 */ 31 32 struct rtc_time { 33 int tm_sec; 34 int tm_min; 35 int tm_hour; 36 int tm_mday; 37 int tm_mon; 38 int tm_year; 39 int tm_wday; 40 int tm_yday; 41 int tm_isdst; 42 }; 43 44 int rtc_get (struct rtc_time *); 45 int rtc_set (struct rtc_time *); 46 void rtc_reset (void); 47 48 void GregorianDay (struct rtc_time *); 49 void to_tm (int, struct rtc_time *); 50 unsigned long mktime (unsigned int, unsigned int, unsigned int, 51 unsigned int, unsigned int, unsigned int); 52 53 /** 54 * rtc_init() - Set up the real time clock ready for use 55 */ 56 void rtc_init(void); 57 58 #endif /* _RTC_H_ */ 59