]>
Commit | Line | Data |
---|---|---|
f30c2269 | 1 | /* include/asm-m68k/rtc.h |
1da177e4 LT |
2 | * |
3 | * Copyright Richard Zidlicky | |
4 | * implementation details for genrtc/q40rtc driver | |
5 | */ | |
6 | /* permission is hereby granted to copy, modify and redistribute this code | |
7 | * in terms of the GNU Library General Public License, Version 2 or later, | |
8 | * at your option. | |
9 | */ | |
10 | ||
11 | #ifndef _ASM_RTC_H | |
12 | #define _ASM_RTC_H | |
13 | ||
14 | #ifdef __KERNEL__ | |
15 | ||
16 | #include <linux/rtc.h> | |
17 | #include <asm/errno.h> | |
18 | #include <asm/machdep.h> | |
19 | ||
20 | #define RTC_PIE 0x40 /* periodic interrupt enable */ | |
21 | #define RTC_AIE 0x20 /* alarm interrupt enable */ | |
22 | #define RTC_UIE 0x10 /* update-finished interrupt enable */ | |
23 | ||
24 | /* some dummy definitions */ | |
25 | #define RTC_BATT_BAD 0x100 /* battery bad */ | |
26 | #define RTC_SQWE 0x08 /* enable square-wave output */ | |
27 | #define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */ | |
28 | #define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */ | |
29 | #define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */ | |
30 | ||
31 | static inline unsigned int get_rtc_time(struct rtc_time *time) | |
32 | { | |
33 | /* | |
34 | * Only the values that we read from the RTC are set. We leave | |
35 | * tm_wday, tm_yday and tm_isdst untouched. Even though the | |
36 | * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated | |
37 | * by the RTC when initially set to a non-zero value. | |
38 | */ | |
39 | mach_hwclk(0, time); | |
40 | return RTC_24H; | |
41 | } | |
42 | ||
43 | static inline int set_rtc_time(struct rtc_time *time) | |
44 | { | |
45 | return mach_hwclk(1, time); | |
46 | } | |
47 | ||
48 | static inline unsigned int get_rtc_ss(void) | |
49 | { | |
50 | if (mach_get_ss) | |
51 | return mach_get_ss(); | |
52 | else{ | |
53 | struct rtc_time h; | |
54 | ||
55 | get_rtc_time(&h); | |
56 | return h.tm_sec; | |
57 | } | |
58 | } | |
59 | ||
60 | static inline int get_rtc_pll(struct rtc_pll_info *pll) | |
61 | { | |
62 | if (mach_get_rtc_pll) | |
63 | return mach_get_rtc_pll(pll); | |
64 | else | |
65 | return -EINVAL; | |
66 | } | |
67 | static inline int set_rtc_pll(struct rtc_pll_info *pll) | |
68 | { | |
69 | if (mach_set_rtc_pll) | |
70 | return mach_set_rtc_pll(pll); | |
71 | else | |
72 | return -EINVAL; | |
73 | } | |
74 | #endif /* __KERNEL__ */ | |
75 | ||
76 | #endif /* _ASM__RTC_H */ |