summaryrefslogtreecommitdiff
path: root/include/linux/mfd/da9052/rtc.h
blob: c7fc87dd7eb22384efe0e53c75b77586cd36bf1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
/*
 * da9052 RTC module declarations.
 *
 * Copyright(c) 2009 Dialog Semiconductor Ltd.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 */

#ifndef __LINUX_MFD_DA9052_RTC_H
#define __LINUX_MFD_DA9052_RTC_H

#define DA9052_RTC_DEVICE_NAME				"da9052_rtc"

/*  Limit values */
#define DA9052_RTC_SECONDS_LIMIT			59
#define DA9052_RTC_MINUTES_LIMIT			59
#define DA9052_RTC_HOURS_LIMIT				23
#define DA9052_RTC_DAYS_LIMIT				31
#define DA9052_RTC_MONTHS_LIMIT				12
#define DA9052_RTC_YEARS_LIMIT				63

/* Months */
#define FEBRUARY					2
#define APRIL						4
#define JUNE						6
#define	SEPTEMBER					9
#define NOVEMBER					11

/* BYTE shifts */
#define DA9052_RTC_FOURTH_BYTE				24
#define DA9052_RTC_THIRD_BYTE				16
#define DA9052_RTC_SECOND_BYTE				8
#define DA9052_RTC_FIRST_BYTE				0

/* Oscillator trim values */
#define DA9052_RTC_OSC_FRQ_0_0ppm			0
#define DA9052_RTC_OSC_FRQ_1_9ppm			1
#define DA9052_RTC_OSC_FRQ_3_8ppm			2
#define DA9052_RTC_OSC_FRQ_5_7ppm			3
#define DA9052_RTC_OSC_FRQ_7_6ppm			4
#define DA9052_RTC_OSC_FRQ_9_5ppm			5
#define DA9052_RTC_OSC_FRQ_11_4ppm			6
#define DA9052_RTC_OSC_FRQ_13_3ppm			7
#define DA9052_RTC_OSC_FRQ_15_2ppm			8
#define DA9052_RTC_OSC_FRQ_17_1ppm			9
#define DA9052_RTC_OSC_FRQ_19_0ppm			10
#define DA9052_RTC_OSC_FRQ_20_9ppm			11
#define DA9052_RTC_OSC_FRQ_22_8ppm			12
#define DA9052_RTC_OSC_FRQ_24_7ppm			13
#define DA9052_RTC_OSC_FRQ_26_7ppm			14
#define DA9052_RTC_OSC_FRQ_28_6ppm			15
#define DA9052_RTC_OSC_FRQ_30_5ppm			16
#define DA9052_RTC_OSC_FRQ_32_4ppm			17
#define DA9052_RTC_OSC_FRQ_34_3ppm			18
#define DA9052_RTC_OSC_FRQ_36_2ppm			19
#define DA9052_RTC_OSC_FRQ_38_1ppm			20
#define DA9052_RTC_OSC_FRQ_40_0ppm			21
#define DA9052_RTC_OSC_FRQ_41_9ppm			22
#define DA9052_RTC_OSC_FRQ_43_8ppm			23
#define DA9052_RTC_OSC_FRQ_45_7ppm			24
#define DA9052_RTC_OSC_FRQ_47_6ppm			25
#define DA9052_RTC_OSC_FRQ_49_5ppm			26
#define DA9052_RTC_OSC_FRQ_51_4ppm			27
#define DA9052_RTC_OSC_FRQ_53_4ppm			28
#define DA9052_RTC_OSC_FRQ_55_3ppm			29
#define DA9052_RTC_OSC_FRQ_57_2ppm			30
#define DA9052_RTC_OSC_FRQ_59_1ppm			31
#define DA9052_RTC_OSC_FRQ_61_0ppm			32
#define DA9052_RTC_OSC_FRQ_62_9ppm			33
#define DA9052_RTC_OSC_FRQ_64_8ppm			34
#define DA9052_RTC_OSC_FRQ_66_7ppm			35
#define DA9052_RTC_OSC_FRQ_68_6ppm			36
#define DA9052_RTC_OSC_FRQ_70_5ppm			37
#define DA9052_RTC_OSC_FRQ_72_4ppm			38
#define DA9052_RTC_OSC_FRQ_74_3ppm			39
#define DA9052_RTC_OSC_FRQ_76_2ppm			40
#define DA9052_RTC_OSC_FRQ_78_2ppm			41
#define DA9052_RTC_OSC_FRQ_80_1ppm			42
#define DA9052_RTC_OSC_FRQ_82_0ppm			43
#define DA9052_RTC_OSC_FRQ_83_9ppm			44
#define DA9052_RTC_OSC_FRQ_85_8ppm			45
#define DA9052_RTC_OSC_FRQ_87_7ppm			46
#define DA9052_RTC_OSC_FRQ_89_6ppm			47
#define DA9052_RTC_OSC_FRQ_91_5ppm			48
#define DA9052_RTC_OSC_FRQ_93_4ppm			49
#define DA9052_RTC_OSC_FRQ_95_3ppm			50
#define DA9052_RTC_OSC_FRQ_97_2ppm			51
#define DA9052_RTC_OSC_FRQ_99_1ppm			52
#define DA9052_RTC_OSC_FRQ_101_0ppm			53
#define DA9052_RTC_OSC_FRQ_102_9ppm			54
#define DA9052_RTC_OSC_FRQ_104_9ppm			55
#define DA9052_RTC_OSC_FRQ_106_8ppm			56
#define DA9052_RTC_OSC_FRQ_108_7ppm			57
#define DA9052_RTC_OSC_FRQ_110_6ppm			58
#define DA9052_RTC_OSC_FRQ_112_5ppm			59
#define DA9052_RTC_OSC_FRQ_114_4ppm			60
#define DA9052_RTC_OSC_FRQ_116_3ppm			61
#define DA9052_RTC_OSC_FRQ_118_2ppm			62
#define DA9052_RTC_OSC_FRQ_120_1ppm			63
#define DA9052_RTC_OSC_FRQ_122_0ppm			64
#define DA9052_RTC_OSC_FRQ_123_9ppm			65
#define DA9052_RTC_OSC_FRQ_125_8ppm			66
#define DA9052_RTC_OSC_FRQ_127_7ppm			67
#define DA9052_RTC_OSC_FRQ_129_6ppm			68
#define DA9052_RTC_OSC_FRQ_131_6ppm			69
#define DA9052_RTC_OSC_FRQ_133_5ppm			70
#define DA9052_RTC_OSC_FRQ_135_4ppm			71
#define DA9052_RTC_OSC_FRQ_137_3ppm			72
#define DA9052_RTC_OSC_FRQ_139_2ppm			73
#define DA9052_RTC_OSC_FRQ_141_1ppm			74
#define DA9052_RTC_OSC_FRQ_143_0ppm			75
#define DA9052_RTC_OSC_FRQ_144_9ppm			76
#define DA9052_RTC_OSC_FRQ_146_8ppm			77
#define DA9052_RTC_OSC_FRQ_148_7ppm			78
#define DA9052_RTC_OSC_FRQ_150_6ppm			79
#define DA9052_RTC_OSC_FRQ_152_5ppm			80
#define DA9052_RTC_OSC_FRQ_154_4ppm			81
#define DA9052_RTC_OSC_FRQ_156_4ppm			82
#define DA9052_RTC_OSC_FRQ_158_3ppm			83
#define DA9052_RTC_OSC_FRQ_160_2ppm			84
#define DA9052_RTC_OSC_FRQ_162_1ppm			85
#define DA9052_RTC_OSC_FRQ_164_0ppm			86
#define DA9052_RTC_OSC_FRQ_165_9ppm			87
#define DA9052_RTC_OSC_FRQ_167_8ppm			88
#define DA9052_RTC_OSC_FRQ_169_7ppm			89
#define DA9052_RTC_OSC_FRQ_171_6ppm			90
#define DA9052_RTC_OSC_FRQ_173_5ppm			91
#define DA9052_RTC_OSC_FRQ_175_4ppm			92
#define DA9052_RTC_OSC_FRQ_177_3ppm			93
#define DA9052_RTC_OSC_FRQ_179_2ppm			94
#define DA9052_RTC_OSC_FRQ_181_1ppm			95
#define DA9052_RTC_OSC_FRQ_183_1ppm			96
#define DA9052_RTC_OSC_FRQ_185_0ppm			97
#define DA9052_RTC_OSC_FRQ_186_9ppm			98
#define DA9052_RTC_OSC_FRQ_188_8ppm			99
#define DA9052_RTC_OSC_FRQ_190_7ppm			100
#define DA9052_RTC_OSC_FRQ_192_6ppm			101
#define DA9052_RTC_OSC_FRQ_194_5ppm			102
#define DA9052_RTC_OSC_FRQ_196_4ppm			103
#define DA9052_RTC_OSC_FRQ_198_3ppm			104
#define DA9052_RTC_OSC_FRQ_200_2ppm			105
#define DA9052_RTC_OSC_FRQ_202_1ppm			106
#define DA9052_RTC_OSC_FRQ_204_0ppm			107
#define DA9052_RTC_OSC_FRQ_205_9ppm			108
#define DA9052_RTC_OSC_FRQ_207_9ppm			109
#define DA9052_RTC_OSC_FRQ_209_8ppm			110
#define DA9052_RTC_OSC_FRQ_211_7ppm			111
#define DA9052_RTC_OSC_FRQ_213_6ppm			112
#define DA9052_RTC_OSC_FRQ_215_5ppm			113
#define DA9052_RTC_OSC_FRQ_217_4ppm			114
#define DA9052_RTC_OSC_FRQ_219_3ppm			115
#define DA9052_RTC_OSC_FRQ_221_2ppm			116
#define DA9052_RTC_OSC_FRQ_223_1ppm			117
#define DA9052_RTC_OSC_FRQ_225_0ppm			118
#define DA9052_RTC_OSC_FRQ_226_9ppm			119
#define DA9052_RTC_OSC_FRQ_228_8ppm			120
#define DA9052_RTC_OSC_FRQ_230_7ppm			121
#define DA9052_RTC_OSC_FRQ_232_6ppm			122
#define DA9052_RTC_OSC_FRQ_234_6ppm			123
#define DA9052_RTC_OSC_FRQ_236_5ppm			124
#define DA9052_RTC_OSC_FRQ_238_4ppm			125
#define DA9052_RTC_OSC_FRQ_240_3ppm			126
#define DA9052_RTC_OSC_FRQ_242_2ppm			127
#define DA9052_RTC_OSC_FRQ_MINUS_244_1ppm		128
#define DA9052_RTC_OSC_FRQ_MINUS_242_2ppm		129
#define DA9052_RTC_OSC_FRQ_MINUS_240_3ppm		130
#define DA9052_RTC_OSC_FRQ_MINUS_238_4ppm		131
#define DA9052_RTC_OSC_FRQ_MINUS_236_5ppm		132
#define DA9052_RTC_OSC_FRQ_MINUS_234_6ppm		133
#define DA9052_RTC_OSC_FRQ_MINUS_232_6ppm		134
#define DA9052_RTC_OSC_FRQ_MINUS_230_7ppm		135
#define DA9052_RTC_OSC_FRQ_MINUS_228_8ppm		136
#define DA9052_RTC_OSC_FRQ_MINUS_226_9ppm		137
#define DA9052_RTC_OSC_FRQ_MINUS_225_0ppm		138
#define DA9052_RTC_OSC_FRQ_MINUS_223_1ppm		139
#define DA9052_RTC_OSC_FRQ_MINUS_221_2ppm		140
#define DA9052_RTC_OSC_FRQ_MINUS_219_3ppm		141
#define DA9052_RTC_OSC_FRQ_MINUS_217_4ppm		142
#define DA9052_RTC_OSC_FRQ_MINUS_215_5ppm		143
#define DA9052_RTC_OSC_FRQ_MINUS_213_6ppm		144
#define DA9052_RTC_OSC_FRQ_MINUS_211_7ppm		145
#define DA9052_RTC_OSC_FRQ_MINUS_209_8ppm		146
#define DA9052_RTC_OSC_FRQ_MINUS_207_9ppm		147
#define DA9052_RTC_OSC_FRQ_MINUS_205_9ppm		148
#define DA9052_RTC_OSC_FRQ_MINUS_204_0ppm		149
#define DA9052_RTC_OSC_FRQ_MINUS_202_1ppm		150
#define DA9052_RTC_OSC_FRQ_MINUS_200_2ppm		151
#define DA9052_RTC_OSC_FRQ_MINUS_198_3ppm		152
#define DA9052_RTC_OSC_FRQ_MINUS_196_4ppm		153
#define DA9052_RTC_OSC_FRQ_MINUS_194_5ppm		154
#define DA9052_RTC_OSC_FRQ_MINUS_192_6ppm		155
#define DA9052_RTC_OSC_FRQ_MINUS_190_7ppm		156
#define DA9052_RTC_OSC_FRQ_MINUS_188_8ppm		157
#define DA9052_RTC_OSC_FRQ_MINUS_186_9ppm		158
#define DA9052_RTC_OSC_FRQ_MINUS_185_0ppm		159
#define DA9052_RTC_OSC_FRQ_MINUS_183_1ppm		160
#define DA9052_RTC_OSC_FRQ_MINUS_181_1ppm		161
#define DA9052_RTC_OSC_FRQ_MINUS_179_2ppm		162
#define DA9052_RTC_OSC_FRQ_MINUS_177_3ppm		163
#define DA9052_RTC_OSC_FRQ_MINUS_175_4ppm		164
#define DA9052_RTC_OSC_FRQ_MINUS_173_5ppm		165
#define DA9052_RTC_OSC_FRQ_MINUS_171_6ppm		166
#define DA9052_RTC_OSC_FRQ_MINUS_169_7ppm		167
#define DA9052_RTC_OSC_FRQ_MINUS_167_8ppm		168
#define DA9052_RTC_OSC_FRQ_MINUS_165_9ppm		169
#define DA9052_RTC_OSC_FRQ_MINUS_164_0ppm		170
#define DA9052_RTC_OSC_FRQ_MINUS_162_1ppm		171
#define DA9052_RTC_OSC_FRQ_MINUS_160_2ppm		172
#define DA9052_RTC_OSC_FRQ_MINUS_158_3ppm		173
#define DA9052_RTC_OSC_FRQ_MINUS_156_4ppm		174
#define DA9052_RTC_OSC_FRQ_MINUS_154_4ppm		175
#define DA9052_RTC_OSC_FRQ_MINUS_152_5ppm		176
#define DA9052_RTC_OSC_FRQ_MINUS_150_6ppm		177
#define DA9052_RTC_OSC_FRQ_MINUS_148_7ppm		178
#define DA9052_RTC_OSC_FRQ_MINUS_146_8ppm		179
#define DA9052_RTC_OSC_FRQ_MINUS_144_9ppm		180
#define DA9052_RTC_OSC_FRQ_MINUS_143_0ppm		181
#define DA9052_RTC_OSC_FRQ_MINUS_141_1ppm		182
#define DA9052_RTC_OSC_FRQ_MINUS_139_2ppm		183
#define DA9052_RTC_OSC_FRQ_MINUS_137_3ppm		184
#define DA9052_RTC_OSC_FRQ_MINUS_135_4ppm		185
#define DA9052_RTC_OSC_FRQ_MINUS_133_5ppm		186
#define DA9052_RTC_OSC_FRQ_MINUS_131_6ppm		187
#define DA9052_RTC_OSC_FRQ_MINUS_129_6ppm		188
#define DA9052_RTC_OSC_FRQ_MINUS_127_7ppm		189
#define DA9052_RTC_OSC_FRQ_MINUS_125_8ppm		190
#define DA9052_RTC_OSC_FRQ_MINUS_123_9ppm		191
#define DA9052_RTC_OSC_FRQ_MINUS_122_0ppm		192
#define DA9052_RTC_OSC_FRQ_MINUS_120_1ppm		193
#define DA9052_RTC_OSC_FRQ_MINUS_118_2ppm		194
#define DA9052_RTC_OSC_FRQ_MINUS_116_3ppm		195
#define DA9052_RTC_OSC_FRQ_MINUS_114_4ppm		196
#define DA9052_RTC_OSC_FRQ_MINUS_112_5ppm		197
#define DA9052_RTC_OSC_FRQ_MINUS_110_6ppm		198
#define DA9052_RTC_OSC_FRQ_MINUS_108_7ppm		199
#define DA9052_RTC_OSC_FRQ_MINUS_106_8ppm		200
#define DA9052_RTC_OSC_FRQ_MINUS_104_9ppm		201
#define DA9052_RTC_OSC_FRQ_MINUS_102_9ppm		202
#define DA9052_RTC_OSC_FRQ_MINUS_101_0ppm		203
#define DA9052_RTC_OSC_FRQ_MINUS_99_1ppm		204
#define DA9052_RTC_OSC_FRQ_MINUS_97_2ppm		205
#define DA9052_RTC_OSC_FRQ_MINUS_95_3ppm		206
#define DA9052_RTC_OSC_FRQ_MINUS_93_4ppm		207
#define DA9052_RTC_OSC_FRQ_MINUS_91_5ppm		208
#define DA9052_RTC_OSC_FRQ_MINUS_89_6ppm		209
#define DA9052_RTC_OSC_FRQ_MINUS_87_7ppm		210
#define DA9052_RTC_OSC_FRQ_MINUS_85_8ppm		211
#define DA9052_RTC_OSC_FRQ_MINUS_83_9ppm		212
#define DA9052_RTC_OSC_FRQ_MINUS_82_0ppm		213
#define DA9052_RTC_OSC_FRQ_MINUS_80_1ppm		214
#define DA9052_RTC_OSC_FRQ_MINUS_78_2ppm		215
#define DA9052_RTC_OSC_FRQ_MINUS_76_2ppm		216
#define DA9052_RTC_OSC_FRQ_MINUS_74_3ppm		217
#define DA9052_RTC_OSC_FRQ_MINUS_72_4ppm		218
#define DA9052_RTC_OSC_FRQ_MINUS_70_5ppm		219
#define DA9052_RTC_OSC_FRQ_MINUS_68_6ppm		220
#define DA9052_RTC_OSC_FRQ_MINUS_66_7ppm		221
#define DA9052_RTC_OSC_FRQ_MINUS_64_8ppm		222
#define DA9052_RTC_OSC_FRQ_MINUS_62_9ppm		223
#define DA9052_RTC_OSC_FRQ_MINUS_61_0ppm		224
#define DA9052_RTC_OSC_FRQ_MINUS_59_1ppm		225
#define DA9052_RTC_OSC_FRQ_MINUS_57_2ppm		226
#define DA9052_RTC_OSC_FRQ_MINUS_55_3ppm		227
#define DA9052_RTC_OSC_FRQ_MINUS_53_4ppm		228
#define DA9052_RTC_OSC_FRQ_MINUS_51_4ppm		229
#define DA9052_RTC_OSC_FRQ_MINUS_49_5ppm		230
#define DA9052_RTC_OSC_FRQ_MINUS_47_6ppm		231
#define DA9052_RTC_OSC_FRQ_MINUS_45_7ppm		232
#define DA9052_RTC_OSC_FRQ_MINUS_43_8ppm		233
#define DA9052_RTC_OSC_FRQ_MINUS_41_9ppm		234
#define DA9052_RTC_OSC_FRQ_MINUS_40_0ppm		235
#define DA9052_RTC_OSC_FRQ_MINUS_38_1ppm		236
#define DA9052_RTC_OSC_FRQ_MINUS_36_2ppm		237
#define DA9052_RTC_OSC_FRQ_MINUS_34_3ppm		238
#define DA9052_RTC_OSC_FRQ_MINUS_32_4ppm		239
#define DA9052_RTC_OSC_FRQ_MINUS_30_5ppm		240
#define DA9052_RTC_OSC_FRQ_MINUS_28_6ppm		241
#define DA9052_RTC_OSC_FRQ_MINUS_26_7ppm		242
#define DA9052_RTC_OSC_FRQ_MINUS_24_7ppm		243
#define DA9052_RTC_OSC_FRQ_MINUS_22_8ppm		244
#define DA9052_RTC_OSC_FRQ_MINUS_20_9ppm		245
#define DA9052_RTC_OSC_FRQ_MINUS_19_0ppm		246
#define DA9052_RTC_OSC_FRQ_MINUS_17_1ppm		247
#define DA9052_RTC_OSC_FRQ_MINUS_15_2ppm		248
#define DA9052_RTC_OSC_FRQ_MINUS_13_3ppm		249
#define DA9052_RTC_OSC_FRQ_MINUS_11_4ppm		250
#define DA9052_RTC_OSC_FRQ_MINUS_9_5ppm			251
#define DA9052_RTC_OSC_FRQ_MINUS_7_6ppm			252
#define DA9052_RTC_OSC_FRQ_MINUS_5_7ppm			253
#define DA9052_RTC_OSC_FRQ_MINUS_3_8ppm			254
#define DA9052_RTC_OSC_FRQ_MINUS_1_9ppm			255

/* RTC error codes */
#define DA9052_RTC_INVALID_SECONDS			3
#define DA9052_RTC_INVALID_MINUTES			4
#define DA9052_RTC_INVALID_HOURS			5
#define DA9052_RTC_INVALID_DAYS				6
#define DA9052_RTC_INVALID_MONTHS			7
#define DA9052_RTC_INVALID_YEARS			8
#define DA9052_RTC_INVALID_EVENT			9
#define DA9052_RTC_INVALID_IOCTL			10
#define DA9052_RTC_INVALID_SETTING			11
#define DA9052_RTC_EVENT_ALREADY_REGISTERED		12
#define DA9052_RTC_EVENT_UNREGISTERED			13
#define DA9052_RTC_EVENT_REGISTRATION_FAILED		14
#define DA9052_RTC_EVENT_UNREGISTRATION_FAILED		15

#endif 
/* __LINUX_MFD_DA9052_RTC_H */