blob: d11aa8baf91b7370bf40a18f5785522448933386
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 |