ARM: tegra12: loki: Fix regulator warnings
[linux-3.10.git] / drivers / misc / mpu3050 / mltypes.h
1 /*
2  $License:
3     Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
4
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14
15     You should have received a copy of the GNU General Public License
16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
17   $
18  */
19
20 /**
21  *  @defgroup MLERROR
22  *  @brief  Motion Library - Error definitions.
23  *          Definition of the error codes used within the MPL and returned
24  *          to the user.
25  *          Every function tries to return a meaningful error code basing
26  *          on the occuring error condition. The error code is numeric.
27  *
28  *          The available error codes and their associated values are:
29  *          - (0)       ML_SUCCESS
30  *          - (1)       ML_ERROR
31  *          - (2)       ML_ERROR_INVALID_PARAMETER
32  *          - (3)       ML_ERROR_FEATURE_NOT_ENABLED
33  *          - (4)       ML_ERROR_FEATURE_NOT_IMPLEMENTED
34  *          - (6)       ML_ERROR_DMP_NOT_STARTED
35  *          - (7)       ML_ERROR_DMP_STARTED
36  *          - (8)       ML_ERROR_NOT_OPENED
37  *          - (9)       ML_ERROR_OPENED
38  *          - (10)      ML_ERROR_INVALID_MODULE
39  *          - (11)      ML_ERROR_MEMORY_EXAUSTED
40  *          - (12)      ML_ERROR_DIVIDE_BY_ZERO
41  *          - (13)      ML_ERROR_ASSERTION_FAILURE
42  *          - (14)      ML_ERROR_FILE_OPEN
43  *          - (15)      ML_ERROR_FILE_READ
44  *          - (16)      ML_ERROR_FILE_WRITE
45  *          - (20)      ML_ERROR_SERIAL_CLOSED
46  *          - (21)      ML_ERROR_SERIAL_OPEN_ERROR
47  *          - (22)      ML_ERROR_SERIAL_READ
48  *          - (23)      ML_ERROR_SERIAL_WRITE
49  *          - (24)      ML_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED
50  *          - (25)      ML_ERROR_SM_TRANSITION
51  *          - (26)      ML_ERROR_SM_IMPROPER_STATE
52  *          - (30)      ML_ERROR_FIFO_OVERFLOW
53  *          - (31)      ML_ERROR_FIFO_FOOTER
54  *          - (32)      ML_ERROR_FIFO_READ_COUNT
55  *          - (33)      ML_ERROR_FIFO_READ_DATA
56  *          - (40)      ML_ERROR_MEMORY_SET
57  *          - (50)      ML_ERROR_LOG_MEMORY_ERROR
58  *          - (51)      ML_ERROR_LOG_OUTPUT_ERROR
59  *          - (60)      ML_ERROR_OS_BAD_PTR
60  *          - (61)      ML_ERROR_OS_BAD_HANDLE
61  *          - (62)      ML_ERROR_OS_CREATE_FAILED
62  *          - (63)      ML_ERROR_OS_LOCK_FAILED
63  *          - (70)      ML_ERROR_COMPASS_DATA_OVERFLOW
64  *          - (71)      ML_ERROR_COMPASS_DATA_UNDERFLOW
65  *          - (72)      ML_ERROR_COMPASS_DATA_NOT_READY
66  *          - (73)      ML_ERROR_COMPASS_DATA_ERROR
67  *          - (75)      ML_ERROR_CALIBRATION_LOAD
68  *          - (76)      ML_ERROR_CALIBRATION_STORE
69  *          - (77)      ML_ERROR_CALIBRATION_LEN
70  *          - (78)      ML_ERROR_CALIBRATION_CHECKSUM
71  *
72  *  @{
73  *      @file mltypes.h
74  *  @}
75  */
76
77 #ifndef MLTYPES_H
78 #define MLTYPES_H
79
80 #ifdef __KERNEL__
81 #include <linux/types.h>
82 #else
83 #include "stdint_invensense.h"
84 #endif
85 #include "log.h"
86
87 /*---------------------------
88     ML Types
89 ---------------------------*/
90
91 /**
92  *  @struct tMLError mltypes.h "mltypes"
93  *  @brief  The MPL Error Code return type.
94  *
95  *  @code
96  *      typedef unsigned char tMLError;
97  *  @endcode
98  */
99 typedef unsigned char tMLError;
100
101 #if defined(LINUX) || defined(__KERNEL__)
102 typedef unsigned int HANDLE;
103 #endif
104
105 #ifdef __KERNEL__
106 typedef HANDLE FILE;
107 #endif
108
109 #ifndef __cplusplus
110 #ifndef __KERNEL__
111 typedef int_fast8_t bool;
112 #endif
113 #endif
114
115 /*---------------------------
116     ML Defines
117 ---------------------------*/
118
119 #ifndef NULL
120 #define NULL 0
121 #endif
122
123 #ifndef TRUE
124 #define TRUE 1
125 #endif
126
127 #ifndef FALSE
128 #define FALSE 0
129 #endif
130
131 /* Dimension of an array */
132 #ifndef DIM
133 #define DIM(array) (sizeof(array)/sizeof((array)[0]))
134 #endif
135
136 /* - ML Errors. - */
137 #define ERROR_NAME(x)   (#x)
138 #define ERROR_CHECK(x)                                                  \
139         do {                                                            \
140                 if (ML_SUCCESS != x) {                                  \
141                         MPL_LOGE("%s|%s|%d returning %d\n",             \
142                                 __FILE__, __func__, __LINE__, x);       \
143                         return x;                                       \
144                 }                                                       \
145         } while (0)
146
147 #define ERROR_CHECK_FIRST(first, x)                                     \
148         { if (ML_SUCCESS == first) first = x; }
149
150 #define ML_SUCCESS                       (0)
151 /* Generic Error code.  Proprietary Error Codes only */
152 #define ML_ERROR                         (1)
153
154 /* Compatibility and other generic error codes */
155 #define ML_ERROR_INVALID_PARAMETER       (2)
156 #define ML_ERROR_FEATURE_NOT_ENABLED     (3)
157 #define ML_ERROR_FEATURE_NOT_IMPLEMENTED (4)
158 #define ML_ERROR_DMP_NOT_STARTED         (6)
159 #define ML_ERROR_DMP_STARTED             (7)
160 #define ML_ERROR_NOT_OPENED              (8)
161 #define ML_ERROR_OPENED                  (9)
162 #define ML_ERROR_INVALID_MODULE         (10)
163 #define ML_ERROR_MEMORY_EXAUSTED        (11)
164 #define ML_ERROR_DIVIDE_BY_ZERO         (12)
165 #define ML_ERROR_ASSERTION_FAILURE      (13)
166 #define ML_ERROR_FILE_OPEN              (14)
167 #define ML_ERROR_FILE_READ              (15)
168 #define ML_ERROR_FILE_WRITE             (16)
169 #define ML_ERROR_INVALID_CONFIGURATION  (17)
170
171 /* Serial Communication */
172 #define ML_ERROR_SERIAL_CLOSED          (20)
173 #define ML_ERROR_SERIAL_OPEN_ERROR      (21)
174 #define ML_ERROR_SERIAL_READ            (22)
175 #define ML_ERROR_SERIAL_WRITE           (23)
176 #define ML_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED  (24)
177
178 /* SM = State Machine */
179 #define ML_ERROR_SM_TRANSITION          (25)
180 #define ML_ERROR_SM_IMPROPER_STATE      (26)
181
182 /* Fifo */
183 #define ML_ERROR_FIFO_OVERFLOW          (30)
184 #define ML_ERROR_FIFO_FOOTER            (31)
185 #define ML_ERROR_FIFO_READ_COUNT        (32)
186 #define ML_ERROR_FIFO_READ_DATA         (33)
187
188 /* Memory & Registers, Set & Get */
189 #define ML_ERROR_MEMORY_SET             (40)
190
191 #define ML_ERROR_LOG_MEMORY_ERROR       (50)
192 #define ML_ERROR_LOG_OUTPUT_ERROR       (51)
193
194 /* OS interface errors */
195 #define ML_ERROR_OS_BAD_PTR             (60)
196 #define ML_ERROR_OS_BAD_HANDLE          (61)
197 #define ML_ERROR_OS_CREATE_FAILED       (62)
198 #define ML_ERROR_OS_LOCK_FAILED         (63)
199
200 /* Compass errors */
201 #define ML_ERROR_COMPASS_DATA_OVERFLOW  (70)
202 #define ML_ERROR_COMPASS_DATA_UNDERFLOW (71)
203 #define ML_ERROR_COMPASS_DATA_NOT_READY (72)
204 #define ML_ERROR_COMPASS_DATA_ERROR     (73)
205
206 /* Load/Store calibration */
207 #define ML_ERROR_CALIBRATION_LOAD       (75)
208 #define ML_ERROR_CALIBRATION_STORE      (76)
209 #define ML_ERROR_CALIBRATION_LEN        (77)
210 #define ML_ERROR_CALIBRATION_CHECKSUM   (78)
211
212 /* Accel errors */
213 #define ML_ERROR_ACCEL_DATA_OVERFLOW    (79)
214 #define ML_ERROR_ACCEL_DATA_UNDERFLOW   (80)
215 #define ML_ERROR_ACCEL_DATA_NOT_READY   (81)
216 #define ML_ERROR_ACCEL_DATA_ERROR       (82)
217
218 /* For Linux coding compliance */
219 #ifndef __KERNEL__
220 #define EXPORT_SYMBOL(x)
221 #endif
222
223 /*---------------------------
224     p-Types
225 ---------------------------*/
226
227 #endif                          /* MLTYPES_H */