1
2
3
4
5
6
7
8
9
10
11
12#ifndef _UAPI_LINUX_RTC_H_
13#define _UAPI_LINUX_RTC_H_
14
15#include <linux/const.h>
16#include <linux/ioctl.h>
17#include <linux/types.h>
18
19
20
21
22
23
24
25struct rtc_time {
26 int tm_sec;
27 int tm_min;
28 int tm_hour;
29 int tm_mday;
30 int tm_mon;
31 int tm_year;
32 int tm_wday;
33 int tm_yday;
34 int tm_isdst;
35};
36
37
38
39
40
41struct rtc_wkalrm {
42 unsigned char enabled;
43 unsigned char pending;
44 struct rtc_time time;
45};
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60struct rtc_pll_info {
61 int pll_ctrl;
62 int pll_value;
63 int pll_max;
64 int pll_min;
65 int pll_posmult;
66 int pll_negmult;
67 long pll_clock;
68};
69
70struct rtc_param {
71 __u64 param;
72 union {
73 __u64 uvalue;
74 __s64 svalue;
75 __u64 ptr;
76 };
77 __u32 index;
78 __u32 __pad;
79};
80
81
82
83
84
85
86#define RTC_AIE_ON _IO('p', 0x01)
87#define RTC_AIE_OFF _IO('p', 0x02)
88#define RTC_UIE_ON _IO('p', 0x03)
89#define RTC_UIE_OFF _IO('p', 0x04)
90#define RTC_PIE_ON _IO('p', 0x05)
91#define RTC_PIE_OFF _IO('p', 0x06)
92#define RTC_WIE_ON _IO('p', 0x0f)
93#define RTC_WIE_OFF _IO('p', 0x10)
94
95#define RTC_ALM_SET _IOW('p', 0x07, struct rtc_time)
96#define RTC_ALM_READ _IOR('p', 0x08, struct rtc_time)
97#define RTC_RD_TIME _IOR('p', 0x09, struct rtc_time)
98#define RTC_SET_TIME _IOW('p', 0x0a, struct rtc_time)
99#define RTC_IRQP_READ _IOR('p', 0x0b, unsigned long)
100#define RTC_IRQP_SET _IOW('p', 0x0c, unsigned long)
101#define RTC_EPOCH_READ _IOR('p', 0x0d, unsigned long)
102#define RTC_EPOCH_SET _IOW('p', 0x0e, unsigned long)
103
104#define RTC_WKALM_SET _IOW('p', 0x0f, struct rtc_wkalrm)
105#define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)
106
107#define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info)
108#define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info)
109
110#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param)
111#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param)
112
113#define RTC_VL_DATA_INVALID _BITUL(0)
114#define RTC_VL_BACKUP_LOW _BITUL(1)
115#define RTC_VL_BACKUP_EMPTY _BITUL(2)
116#define RTC_VL_ACCURACY_LOW _BITUL(3)
117#define RTC_VL_BACKUP_SWITCH _BITUL(4)
118
119#define RTC_VL_READ _IOR('p', 0x13, unsigned int)
120#define RTC_VL_CLR _IO('p', 0x14)
121
122
123#define RTC_IRQF 0x80
124#define RTC_PF 0x40
125#define RTC_AF 0x20
126#define RTC_UF 0x10
127
128
129#define RTC_FEATURE_ALARM 0
130#define RTC_FEATURE_ALARM_RES_MINUTE 1
131#define RTC_FEATURE_NEED_WEEK_DAY 2
132#define RTC_FEATURE_ALARM_RES_2S 3
133#define RTC_FEATURE_UPDATE_INTERRUPT 4
134#define RTC_FEATURE_CORRECTION 5
135#define RTC_FEATURE_BACKUP_SWITCH_MODE 6
136#define RTC_FEATURE_ALARM_WAKEUP_ONLY 7
137#define RTC_FEATURE_CNT 8
138
139
140#define RTC_PARAM_FEATURES 0
141#define RTC_PARAM_CORRECTION 1
142#define RTC_PARAM_BACKUP_SWITCH_MODE 2
143
144#define RTC_BSM_DISABLED 0
145#define RTC_BSM_DIRECT 1
146#define RTC_BSM_LEVEL 2
147#define RTC_BSM_STANDBY 3
148
149#define RTC_MAX_FREQ 8192
150
151
152#endif
153