staging: iio: new invensence mpu6050/6500 driver
[firefly-linux-kernel-4.4.55.git] / drivers / staging / iio / imu / inv_mpu / dmpKey.h
1 /*
2  * Copyright (C) 2012 Invensense, Inc.
3  *
4  * This software is licensed under the terms of the GNU General Public
5  * License version 2, as published by the Free Software Foundation, and
6  * may be copied, distributed, and modified under those terms.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  */
14 /**
15  *  @addtogroup  DRIVERS
16  *  @brief       Hardware drivers.
17  *
18  *  @{
19  *      @file    dmpKey.h
20  *      @brief   dmp Key definition
21  *      @details This file is part of invensense mpu driver code
22  *
23  */
24
25 #ifndef DMPKEY_H__
26 #define DMPKEY_H__
27
28 #define KEY_CFG_25                  (0)
29 #define KEY_CFG_24                  (KEY_CFG_25 + 1)
30 #define KEY_CFG_26                  (KEY_CFG_24 + 1)
31 #define KEY_CFG_27                  (KEY_CFG_26 + 1)
32 #define KEY_CFG_21                  (KEY_CFG_27 + 1)
33 #define KEY_CFG_20                  (KEY_CFG_21 + 1)
34 #define KEY_CFG_TAP4                (KEY_CFG_20 + 1)
35 #define KEY_CFG_TAP5                (KEY_CFG_TAP4 + 1)
36 #define KEY_CFG_TAP6                (KEY_CFG_TAP5 + 1)
37 #define KEY_CFG_TAP7                (KEY_CFG_TAP6 + 1)
38 #define KEY_CFG_TAP0                (KEY_CFG_TAP7 + 1)
39 #define KEY_CFG_TAP1                (KEY_CFG_TAP0 + 1)
40 #define KEY_CFG_TAP2                (KEY_CFG_TAP1 + 1)
41 #define KEY_CFG_TAP3                (KEY_CFG_TAP2 + 1)
42 #define KEY_CFG_TAP_QUANTIZE        (KEY_CFG_TAP3 + 1)
43 #define KEY_CFG_TAP_JERK            (KEY_CFG_TAP_QUANTIZE + 1)
44 #define KEY_CFG_DR_INT              (KEY_CFG_TAP_JERK + 1)
45 #define KEY_CFG_AUTH                (KEY_CFG_DR_INT + 1)
46 #define KEY_CFG_TAP_SAVE_ACCB       (KEY_CFG_AUTH + 1)
47 #define KEY_CFG_TAP_CLEAR_STICKY    (KEY_CFG_TAP_SAVE_ACCB + 1)
48 #define KEY_CFG_FIFO_ON_EVENT       (KEY_CFG_TAP_CLEAR_STICKY + 1)
49 #define KEY_FCFG_ACCEL_INPUT        (KEY_CFG_FIFO_ON_EVENT + 1)
50 #define KEY_FCFG_ACCEL_INIT         (KEY_FCFG_ACCEL_INPUT + 1)
51 #define KEY_CFG_23                  (KEY_FCFG_ACCEL_INIT + 1)
52 #define KEY_FCFG_1                  (KEY_CFG_23 + 1)
53 #define KEY_FCFG_3                  (KEY_FCFG_1 + 1)
54 #define KEY_FCFG_2                  (KEY_FCFG_3 + 1)
55 #define KEY_CFG_3D                  (KEY_FCFG_2 + 1)
56 #define KEY_CFG_3B                  (KEY_CFG_3D + 1)
57 #define KEY_CFG_3C                  (KEY_CFG_3B + 1)
58 #define KEY_FCFG_5                  (KEY_CFG_3C + 1)
59 #define KEY_FCFG_4                  (KEY_FCFG_5 + 1)
60 #define KEY_FCFG_7                  (KEY_FCFG_4 + 1)
61 #define KEY_FCFG_FSCALE             (KEY_FCFG_7 + 1)
62 #define KEY_FCFG_AZ                 (KEY_FCFG_FSCALE + 1)
63 #define KEY_FCFG_6                  (KEY_FCFG_AZ + 1)
64 #define KEY_FCFG_LSB4               (KEY_FCFG_6 + 1)
65 #define KEY_CFG_12                  (KEY_FCFG_LSB4 + 1)
66 #define KEY_CFG_14                  (KEY_CFG_12 + 1)
67 #define KEY_CFG_15                  (KEY_CFG_14 + 1)
68 #define KEY_CFG_16                  (KEY_CFG_15 + 1)
69 #define KEY_CFG_18                  (KEY_CFG_16 + 1)
70 #define KEY_CFG_6                   (KEY_CFG_18 + 1)
71 #define KEY_CFG_7                   (KEY_CFG_6 + 1)
72 #define KEY_CFG_4                   (KEY_CFG_7 + 1)
73 #define KEY_CFG_5                   (KEY_CFG_4 + 1)
74 #define KEY_CFG_2                   (KEY_CFG_5 + 1)
75 #define KEY_CFG_3                   (KEY_CFG_2 + 1)
76 #define KEY_CFG_1                   (KEY_CFG_3 + 1)
77 #define KEY_CFG_EXTERNAL            (KEY_CFG_1 + 1)
78 #define KEY_CFG_8                   (KEY_CFG_EXTERNAL + 1)
79 #define KEY_CFG_9                   (KEY_CFG_8 + 1)
80 #define KEY_CFG_ORIENT_3            (KEY_CFG_9 + 1)
81 #define KEY_CFG_ORIENT_2            (KEY_CFG_ORIENT_3 + 1)
82 #define KEY_CFG_ORIENT_1            (KEY_CFG_ORIENT_2 + 1)
83 #define KEY_CFG_GYRO_SOURCE         (KEY_CFG_ORIENT_1 + 1)
84 #define KEY_CFG_ORIENT_IRQ_1        (KEY_CFG_GYRO_SOURCE + 1)
85 #define KEY_CFG_ORIENT_IRQ_2        (KEY_CFG_ORIENT_IRQ_1 + 1)
86 #define KEY_CFG_ORIENT_IRQ_3        (KEY_CFG_ORIENT_IRQ_2 + 1)
87 #define KEY_FCFG_MAG_VAL            (KEY_CFG_ORIENT_IRQ_3 + 1)
88 #define KEY_FCFG_MAG_MOV            (KEY_FCFG_MAG_VAL + 1)
89 #define KEY_CFG_LP_QUAT             (KEY_FCFG_MAG_MOV + 1)
90 #define KEY_CFG_GYRO_RAW_DATA       (KEY_CFG_LP_QUAT + 1)
91 #define KEY_CFG_EXT_GYRO_BIAS       (KEY_CFG_GYRO_RAW_DATA + 1)
92 #define KEY_CFG_EXT_GYRO_BIAS_X     (KEY_CFG_EXT_GYRO_BIAS + 1)
93 #define KEY_CFG_EXT_GYRO_BIAS_Y     (KEY_CFG_EXT_GYRO_BIAS_X + 1)
94 #define KEY_CFG_EXT_GYRO_BIAS_Z     (KEY_CFG_EXT_GYRO_BIAS_Y + 1)
95 #define KEY_bad_compass                         (KEY_CFG_EXT_GYRO_BIAS_Z + 1)
96 #define KEY_COMPASS_CHG_SENSITIVITY (KEY_bad_compass + 1)
97 #define KEY_CCS_HEADING_THLD        (KEY_COMPASS_CHG_SENSITIVITY + 1)
98 #define KEY_CCS_TIME_THLD           (KEY_CCS_HEADING_THLD + 1)
99 #define KEY_CCS_DOTP_THLD           (KEY_CCS_TIME_THLD + 1)
100 #define KEY_CCS_COMP_CNTR           (KEY_CCS_DOTP_THLD + 1)
101 #define KEY_CFG_NM_DET              (KEY_CCS_COMP_CNTR + 1)
102 #define KEY_SMD_ENABLE              (KEY_CFG_NM_DET + 1)
103 #define KEY_SMD_ACCEL_THLD          (KEY_SMD_ENABLE + 1)
104 #define KEY_SMD_DELAY_THLD          (KEY_SMD_ACCEL_THLD + 1)
105 #define KEY_SMD_DELAY2_THLD         (KEY_SMD_DELAY_THLD + 1)
106 #define KEY_SMD_ENABLE_TESTPT1      (KEY_SMD_DELAY2_THLD + 1)
107 #define KEY_SMD_ENABLE_TESTPT2      (KEY_SMD_ENABLE_TESTPT1 + 1)
108 #define KEY_SMD_EXE_STATE           (KEY_SMD_ENABLE_TESTPT2 + 1)
109 #define KEY_SMD_DELAY_CNTR          (KEY_SMD_EXE_STATE + 1)
110
111 #define KEY_BREAK (81)
112 #if KEY_SMD_DELAY_CNTR != KEY_BREAK
113 #error
114 #endif
115
116 /* MPU6050 keys */
117 #define KEY_CFG_ACCEL_FILTER        (KEY_BREAK + 1)
118 #define KEY_CFG_MOTION_BIAS         (KEY_CFG_ACCEL_FILTER + 1)
119 #define KEY_TEMPLABEL               (KEY_CFG_MOTION_BIAS + 1)
120
121 #define KEY_D_0_22                  (KEY_TEMPLABEL + 1)
122 #define KEY_D_0_24                  (KEY_D_0_22 + 1)
123 #define KEY_D_0_36                  (KEY_D_0_24 + 1)
124 #define KEY_D_0_52                  (KEY_D_0_36 + 1)
125 #define KEY_D_0_96                  (KEY_D_0_52 + 1)
126 #define KEY_D_0_104                 (KEY_D_0_96 + 1)
127 #define KEY_D_0_108                 (KEY_D_0_104 + 1)
128 #define KEY_D_0_163                 (KEY_D_0_108 + 1)
129 #define KEY_D_0_188                 (KEY_D_0_163 + 1)
130 #define KEY_D_0_192                 (KEY_D_0_188 + 1)
131 #define KEY_D_0_224                 (KEY_D_0_192 + 1)
132 #define KEY_D_0_228                 (KEY_D_0_224 + 1)
133 #define KEY_D_0_232                 (KEY_D_0_228 + 1)
134 #define KEY_D_0_236                 (KEY_D_0_232 + 1)
135
136 #define KEY_DMP_PREVPTAT            (KEY_D_0_236 + 1)
137 #define KEY_D_1_2                   (KEY_DMP_PREVPTAT + 1)
138 #define KEY_D_1_4                   (KEY_D_1_2 + 1)
139 #define KEY_D_1_8                   (KEY_D_1_4 + 1)
140 #define KEY_D_1_10                  (KEY_D_1_8 + 1)
141 #define KEY_D_1_24                  (KEY_D_1_10 + 1)
142 #define KEY_D_1_28                  (KEY_D_1_24 + 1)
143 #define KEY_D_1_36                  (KEY_D_1_28 + 1)
144 #define KEY_D_1_40                  (KEY_D_1_36 + 1)
145 #define KEY_D_1_44                  (KEY_D_1_40 + 1)
146 #define KEY_D_1_72                  (KEY_D_1_44 + 1)
147 #define KEY_D_1_74                  (KEY_D_1_72 + 1)
148 #define KEY_D_1_79                  (KEY_D_1_74 + 1)
149 #define KEY_D_1_88                  (KEY_D_1_79 + 1)
150 #define KEY_D_1_90                  (KEY_D_1_88 + 1)
151 #define KEY_D_1_92                  (KEY_D_1_90 + 1)
152 #define KEY_D_1_96                  (KEY_D_1_92 + 1)
153 #define KEY_D_1_98                  (KEY_D_1_96 + 1)
154 #define KEY_D_1_100                 (KEY_D_1_98 + 1)
155 #define KEY_D_1_106                 (KEY_D_1_100 + 1)
156 #define KEY_D_1_108                 (KEY_D_1_106 + 1)
157 #define KEY_D_1_112                 (KEY_D_1_108 + 1)
158 #define KEY_D_1_128                 (KEY_D_1_112 + 1)
159 #define KEY_D_1_152                 (KEY_D_1_128 + 1)
160 #define KEY_D_1_160                 (KEY_D_1_152 + 1)
161 #define KEY_D_1_168                 (KEY_D_1_160 + 1)
162 #define KEY_D_1_175                 (KEY_D_1_168 + 1)
163 #define KEY_D_1_176                 (KEY_D_1_175 + 1)
164 #define KEY_D_1_178                 (KEY_D_1_176 + 1)
165 #define KEY_D_1_179                 (KEY_D_1_178 + 1)
166 #define KEY_D_1_218                 (KEY_D_1_179 + 1)
167 #define KEY_D_1_232                 (KEY_D_1_218 + 1)
168 #define KEY_D_1_236                 (KEY_D_1_232 + 1)
169 #define KEY_D_1_240                 (KEY_D_1_236 + 1)
170 #define KEY_D_1_244                 (KEY_D_1_240 + 1)
171 #define KEY_D_1_250                 (KEY_D_1_244 + 1)
172 #define KEY_D_1_252                 (KEY_D_1_250 + 1)
173 #define KEY_D_2_12                  (KEY_D_1_252 + 1)
174 #define KEY_D_2_96                  (KEY_D_2_12 + 1)
175 #define KEY_D_2_108                 (KEY_D_2_96 + 1)
176 #define KEY_D_2_208                 (KEY_D_2_108 + 1)
177 #define KEY_FLICK_MSG               (KEY_D_2_208 + 1)
178 #define KEY_FLICK_COUNTER           (KEY_FLICK_MSG + 1)
179 #define KEY_FLICK_LOWER             (KEY_FLICK_COUNTER + 1)
180 #define KEY_CFG_FLICK_IN            (KEY_FLICK_LOWER + 1)
181 #define KEY_FLICK_UPPER             (KEY_CFG_FLICK_IN + 1)
182 #define KEY_CGNOTICE_INTR           (KEY_FLICK_UPPER + 1)
183 #define KEY_D_2_224                 (KEY_CGNOTICE_INTR + 1)
184 #define KEY_D_2_244                 (KEY_D_2_224 + 1)
185 #define KEY_D_2_248                 (KEY_D_2_244 + 1)
186 #define KEY_D_2_252                 (KEY_D_2_248 + 1)
187
188 #define KEY_D_GYRO_BIAS_X               (KEY_D_2_252 + 1)
189 #define KEY_D_GYRO_BIAS_Y               (KEY_D_GYRO_BIAS_X + 1)
190 #define KEY_D_GYRO_BIAS_Z               (KEY_D_GYRO_BIAS_Y + 1)
191 #define KEY_D_ACC_BIAS_X                (KEY_D_GYRO_BIAS_Z + 1)
192 #define KEY_D_ACC_BIAS_Y                (KEY_D_ACC_BIAS_X + 1)
193 #define KEY_D_ACC_BIAS_Z                (KEY_D_ACC_BIAS_Y + 1)
194 #define KEY_D_GYRO_ENABLE               (KEY_D_ACC_BIAS_Z + 1)
195 #define KEY_D_ACCEL_ENABLE              (KEY_D_GYRO_ENABLE + 1)
196 #define KEY_D_QUAT_ENABLE               (KEY_D_ACCEL_ENABLE + 1)
197 #define KEY_D_OUTPUT_ENABLE             (KEY_D_QUAT_ENABLE + 1)
198 #define KEY_D_ACCEL_CNTR                (KEY_D_OUTPUT_ENABLE + 1)
199 #define KEY_D_GYRO_CNTR                 (KEY_D_ACCEL_CNTR + 1)
200 #define KEY_D_QUAT0_CNTR                (KEY_D_GYRO_CNTR + 1)
201 #define KEY_D_QUAT1_CNTR                (KEY_D_QUAT0_CNTR + 1)
202 #define KEY_D_QUAT2_CNTR                (KEY_D_QUAT1_CNTR + 1)
203 #define KEY_D_CR_TIME_G                 (KEY_D_QUAT2_CNTR + 1)
204 #define KEY_D_CR_TIME_A                 (KEY_D_CR_TIME_G + 1)
205 #define KEY_D_CR_TIME_Q                 (KEY_D_CR_TIME_A + 1)
206 #define KEY_D_CS_TAX                    (KEY_D_CR_TIME_Q + 1)
207 #define KEY_D_CS_TAY                    (KEY_D_CS_TAX + 1)
208 #define KEY_D_CS_TAZ                    (KEY_D_CS_TAY + 1)
209 #define KEY_D_CS_TGX                    (KEY_D_CS_TAZ + 1)
210 #define KEY_D_CS_TGY                    (KEY_D_CS_TGX + 1)
211 #define KEY_D_CS_TGZ                    (KEY_D_CS_TGY + 1)
212 #define KEY_D_CS_TQ0                    (KEY_D_CS_TGZ + 1)
213 #define KEY_D_CS_TQ1                    (KEY_D_CS_TQ0 + 1)
214 #define KEY_D_CS_TQ2                    (KEY_D_CS_TQ1 + 1)
215 #define KEY_D_CS_TQ3                    (KEY_D_CS_TQ2 + 1)
216
217 /* Compass keys */
218 #define KEY_CPASS_GAIN              (KEY_D_CS_TQ3 + 1)
219 #define KEY_CPASS_BIAS_X            (KEY_CPASS_GAIN + 1)
220 #define KEY_CPASS_BIAS_Y            (KEY_CPASS_BIAS_X + 1)
221 #define KEY_CPASS_BIAS_Z            (KEY_CPASS_BIAS_Y + 1)
222 #define KEY_CPASS_MTX_00            (KEY_CPASS_BIAS_Z + 1)
223 #define KEY_CPASS_MTX_01            (KEY_CPASS_MTX_00 + 1)
224 #define KEY_CPASS_MTX_02            (KEY_CPASS_MTX_01 + 1)
225 #define KEY_CPASS_MTX_10            (KEY_CPASS_MTX_02 + 1)
226 #define KEY_CPASS_MTX_11            (KEY_CPASS_MTX_10 + 1)
227 #define KEY_CPASS_MTX_12            (KEY_CPASS_MTX_11 + 1)
228 #define KEY_CPASS_MTX_20            (KEY_CPASS_MTX_12 + 1)
229 #define KEY_CPASS_MTX_21            (KEY_CPASS_MTX_20 + 1)
230 #define KEY_CPASS_MTX_22            (KEY_CPASS_MTX_21 + 1)
231
232 /* Gesture Keys */
233 #define KEY_DMP_TAPW_MIN            (KEY_CPASS_MTX_22 + 1)
234 #define KEY_DMP_TAP_THR_X           (KEY_DMP_TAPW_MIN + 1)
235 #define KEY_DMP_TAP_THR_Y           (KEY_DMP_TAP_THR_X + 1)
236 #define KEY_DMP_TAP_THR_Z           (KEY_DMP_TAP_THR_Y + 1)
237 #define KEY_DMP_SH_TH_Y             (KEY_DMP_TAP_THR_Z + 1)
238 #define KEY_DMP_SH_TH_X             (KEY_DMP_SH_TH_Y + 1)
239 #define KEY_DMP_SH_TH_Z             (KEY_DMP_SH_TH_X + 1)
240 #define KEY_DMP_ORIENT              (KEY_DMP_SH_TH_Z + 1)
241 #define KEY_D_ACT0                  (KEY_DMP_ORIENT + 1)
242 #define KEY_D_ACSX                  (KEY_D_ACT0 + 1)
243 #define KEY_D_ACSY                  (KEY_D_ACSX + 1)
244 #define KEY_D_ACSZ                  (KEY_D_ACSY + 1)
245
246 #define KEY_X_GRT_Y_TMP             (KEY_D_ACSZ + 1)
247 #define KEY_SKIP_X_GRT_Y_TMP        (KEY_X_GRT_Y_TMP + 1)
248 #define KEY_SKIP_END_COMPARE        (KEY_SKIP_X_GRT_Y_TMP + 1)
249 #define KEY_END_COMPARE_Y_X_TMP2    (KEY_SKIP_END_COMPARE + 1)
250 #define KEY_CFG_DISPLAY_ORIENT_INT  (KEY_END_COMPARE_Y_X_TMP2 + 1)
251 #define KEY_NO_ORIENT_INTERRUPT     (KEY_CFG_DISPLAY_ORIENT_INT + 1)
252 #define KEY_END_COMPARE_Y_X_TMP     (KEY_NO_ORIENT_INTERRUPT + 1)
253 #define KEY_END_ORIENT_1            (KEY_END_COMPARE_Y_X_TMP + 1)
254 #define KEY_END_COMPARE_Y_X         (KEY_END_ORIENT_1 + 1)
255 #define KEY_END_ORIENT              (KEY_END_COMPARE_Y_X + 1)
256 #define KEY_X_GRT_Y                 (KEY_END_ORIENT + 1)
257 #define KEY_NOT_TIME_MINUS_1        (KEY_X_GRT_Y + 1)
258 #define KEY_END_COMPARE_Y_X_TMP3    (KEY_NOT_TIME_MINUS_1 + 1)
259 #define KEY_X_GRT_Y_TMP2            (KEY_END_COMPARE_Y_X_TMP3 + 1)
260
261 /*Shake Keys */
262 #define KEY_D_0_64                  (KEY_X_GRT_Y_TMP2 + 1)
263 #define KEY_D_2_4                   (KEY_D_0_64 + 1)
264 #define KEY_D_2_8                   (KEY_D_2_4 + 1)
265 #define KEY_D_2_48                  (KEY_D_2_8 + 1)
266 #define KEY_D_2_92                  (KEY_D_2_48 + 1)
267 #define KEY_D_2_94                  (KEY_D_2_92 + 1)
268 #define KEY_D_2_160                 (KEY_D_2_94 + 1)
269 #define KEY_D_3_180                 (KEY_D_2_160 + 1)
270 #define KEY_D_3_184                 (KEY_D_3_180 + 1)
271 #define KEY_D_3_188                 (KEY_D_3_184 + 1)
272 #define KEY_D_3_208                 (KEY_D_3_188 + 1)
273 #define KEY_D_3_240                 (KEY_D_3_208 + 1)
274 #define KEY_RETRACTION_1            (KEY_D_3_240 + 1)
275 #define KEY_RETRACTION_2            (KEY_RETRACTION_1 + 1)
276 #define KEY_RETRACTION_3            (KEY_RETRACTION_2 + 1)
277 #define KEY_RETRACTION_4            (KEY_RETRACTION_3 + 1)
278 #define KEY_CFG_SHAKE_INT           (KEY_RETRACTION_4 + 1)
279
280 /* Authenticate Keys */
281 #define KEY_D_AUTH_OUT              (KEY_CFG_SHAKE_INT + 1)
282 #define KEY_D_AUTH_IN               (KEY_D_AUTH_OUT + 1)
283 #define KEY_D_AUTH_A                (KEY_D_AUTH_IN + 1)
284 #define KEY_D_AUTH_B                (KEY_D_AUTH_A + 1)
285
286 /* Pedometer standalone only keys */
287 #define KEY_D_PEDSTD_BP_B           (KEY_D_AUTH_B + 1)
288 #define KEY_D_PEDSTD_HP_A           (KEY_D_PEDSTD_BP_B + 1)
289 #define KEY_D_PEDSTD_HP_B           (KEY_D_PEDSTD_HP_A + 1)
290 #define KEY_D_PEDSTD_BP_A4          (KEY_D_PEDSTD_HP_B + 1)
291 #define KEY_D_PEDSTD_BP_A3          (KEY_D_PEDSTD_BP_A4 + 1)
292 #define KEY_D_PEDSTD_BP_A2          (KEY_D_PEDSTD_BP_A3 + 1)
293 #define KEY_D_PEDSTD_BP_A1          (KEY_D_PEDSTD_BP_A2 + 1)
294 #define KEY_D_PEDSTD_INT_THRSH      (KEY_D_PEDSTD_BP_A1 + 1)
295 #define KEY_D_PEDSTD_CLIP           (KEY_D_PEDSTD_INT_THRSH + 1)
296 #define KEY_D_PEDSTD_SB             (KEY_D_PEDSTD_CLIP + 1)
297 #define KEY_D_PEDSTD_SB_TIME        (KEY_D_PEDSTD_SB + 1)
298 #define KEY_D_PEDSTD_PEAKTHRSH      (KEY_D_PEDSTD_SB_TIME + 1)
299 #define KEY_D_PEDSTD_TIML           (KEY_D_PEDSTD_PEAKTHRSH + 1)
300 #define KEY_D_PEDSTD_TIMH           (KEY_D_PEDSTD_TIML + 1)
301 #define KEY_D_PEDSTD_PEAK           (KEY_D_PEDSTD_TIMH + 1)
302 #define KEY_D_PEDSTD_TIMECTR        (KEY_D_PEDSTD_PEAK + 1)
303 #define KEY_D_PEDSTD_STEPCTR        (KEY_D_PEDSTD_TIMECTR + 1)
304 #define KEY_D_PEDSTD_WALKTIME       (KEY_D_PEDSTD_STEPCTR + 1)
305 #define KEY_D_PEDSTD_DECI           (KEY_D_PEDSTD_WALKTIME + 1)
306 #define KEY_CFG_PED_INT             (KEY_D_PEDSTD_DECI + 1)
307 #define KEY_CFG_PED_ENABLE          (KEY_CFG_PED_INT + 1)
308
309 /*Host Based No Motion*/
310 #define KEY_D_HOST_NO_MOT           (KEY_CFG_PED_ENABLE + 1)
311
312 /*Host Based Accel Bias*/
313 #define KEY_D_ACCEL_BIAS            (KEY_D_HOST_NO_MOT + 1)
314
315 /*Screen/Display Orientation Keys*/
316 #define KEY_D_ORIENT_GAP            (KEY_D_ACCEL_BIAS + 1)
317 #define KEY_D_TILT0_H               (KEY_D_ORIENT_GAP + 1)
318 #define KEY_D_TILT0_L               (KEY_D_TILT0_H + 1)
319 #define KEY_D_TILT1_H               (KEY_D_TILT0_L + 1)
320 #define KEY_D_TILT1_L               (KEY_D_TILT1_H + 1)
321 #define KEY_D_TILT2_H               (KEY_D_TILT1_L + 1)
322 #define KEY_D_TILT2_L               (KEY_D_TILT2_H  + 1)
323 #define KEY_D_TILT3_H               (KEY_D_TILT2_L + 1)
324 #define KEY_D_TILT3_L               (KEY_D_TILT3_H + 1)
325
326 /* Stream keys */
327 #define KEY_STREAM_P_GYRO_Z         (KEY_D_TILT3_L + 1)
328 #define KEY_STREAM_P_GYRO_Y         (KEY_STREAM_P_GYRO_Z + 1)
329 #define KEY_STREAM_P_GYRO_X         (KEY_STREAM_P_GYRO_Y + 1)
330 #define KEY_STREAM_P_TEMP           (KEY_STREAM_P_GYRO_X + 1)
331 #define KEY_STREAM_P_AUX_Y          (KEY_STREAM_P_TEMP + 1)
332 #define KEY_STREAM_P_AUX_X          (KEY_STREAM_P_AUX_Y + 1)
333 #define KEY_STREAM_P_AUX_Z          (KEY_STREAM_P_AUX_X + 1)
334 #define KEY_STREAM_P_ACCEL_Y        (KEY_STREAM_P_AUX_Z + 1)
335 #define KEY_STREAM_P_ACCEL_X        (KEY_STREAM_P_ACCEL_Y + 1)
336 #define KEY_STREAM_P_FOOTER         (KEY_STREAM_P_ACCEL_X + 1)
337 #define KEY_STREAM_P_ACCEL_Z        (KEY_STREAM_P_FOOTER + 1)
338
339 /* Batch mode */
340 #define KEY_BM_ENABLE               (KEY_STREAM_P_ACCEL_Z + 1)
341 #define KEY_BM_BATCH_THLD           (KEY_BM_ENABLE + 1)
342 #define KEY_BM_BATCH_CNTR           (KEY_BM_BATCH_THLD + 1)
343 #define KEY_BM_NUMWORD_TOFILL       (KEY_BM_BATCH_CNTR + 1)
344
345 /* Watermark */
346 #define KEY_CFG_WATERMARK_H         (KEY_BM_NUMWORD_TOFILL + 1)
347 #define KEY_CFG_WATERMARK_L         (KEY_CFG_WATERMARK_H + 1)
348
349 /* FIFO output control */
350 #define KEY_CFG_OUT_ACCL            (KEY_CFG_WATERMARK_L + 1)
351 #define KEY_CFG_OUT_GYRO            (KEY_CFG_OUT_ACCL + 1)
352 #define KEY_CFG_OUT_3QUAT           (KEY_CFG_OUT_GYRO + 1)
353 #define KEY_CFG_OUT_6QUAT           (KEY_CFG_OUT_3QUAT + 1)
354 #define KEY_CFG_OUT_PQUAT           (KEY_CFG_OUT_6QUAT + 1)
355 #define KEY_CFG_FIFO_INT            (KEY_CFG_OUT_PQUAT + 1)
356 /* Ped Step detection */
357 #define KEY_CFG_PEDSTEP_DET         (KEY_CFG_FIFO_INT + 1)
358
359 /* Screen Orientation data */
360 #define KEY_SO_DATA                 (KEY_CFG_PEDSTEP_DET + 1)
361
362 /* MPU for DMP Android K */
363 #define KEY_P_HW_ID                 (KEY_SO_DATA + 1)
364
365 #define NUM_KEYS                    (KEY_P_HW_ID + 1)
366
367 struct tKeyLabel  {
368         unsigned short key;
369         unsigned short addr;
370 };
371
372 #define DINA0A 0x0a
373 #define DINA22 0x22
374 #define DINA42 0x42
375 #define DINA5A 0x5a
376
377 #define DINA06 0x06
378 #define DINA0E 0x0e
379 #define DINA16 0x16
380 #define DINA1E 0x1e
381 #define DINA26 0x26
382 #define DINA2E 0x2e
383 #define DINA36 0x36
384 #define DINA3E 0x3e
385 #define DINA46 0x46
386 #define DINA4E 0x4e
387 #define DINA56 0x56
388 #define DINA5E 0x5e
389 #define DINA66 0x66
390 #define DINA6E 0x6e
391 #define DINA76 0x76
392 #define DINA7E 0x7e
393
394 #define DINA00 0x00
395 #define DINA08 0x08
396 #define DINA10 0x10
397 #define DINA18 0x18
398 #define DINA20 0x20
399 #define DINA28 0x28
400 #define DINA30 0x30
401 #define DINA38 0x38
402 #define DINA40 0x40
403 #define DINA48 0x48
404 #define DINA50 0x50
405 #define DINA58 0x58
406 #define DINA60 0x60
407 #define DINA68 0x68
408 #define DINA70 0x70
409 #define DINA78 0x78
410
411 #define DINA04 0x04
412 #define DINA0C 0x0c
413 #define DINA14 0x14
414 #define DINA1C 0x1C
415 #define DINA24 0x24
416 #define DINA2C 0x2c
417 #define DINA34 0x34
418 #define DINA3C 0x3c
419 #define DINA44 0x44
420 #define DINA4C 0x4c
421 #define DINA54 0x54
422 #define DINA5C 0x5c
423 #define DINA64 0x64
424 #define DINA6C 0x6c
425 #define DINA74 0x74
426 #define DINA7C 0x7c
427
428 #define DINA01 0x01
429 #define DINA09 0x09
430 #define DINA11 0x11
431 #define DINA19 0x19
432 #define DINA21 0x21
433 #define DINA29 0x29
434 #define DINA31 0x31
435 #define DINA39 0x39
436 #define DINA41 0x41
437 #define DINA49 0x49
438 #define DINA51 0x51
439 #define DINA59 0x59
440 #define DINA61 0x61
441 #define DINA69 0x69
442 #define DINA71 0x71
443 #define DINA79 0x79
444
445 #define DINA25 0x25
446 #define DINA2D 0x2d
447 #define DINA35 0x35
448 #define DINA3D 0x3d
449 #define DINA4D 0x4d
450 #define DINA55 0x55
451 #define DINA5D 0x5D
452 #define DINA6D 0x6d
453 #define DINA75 0x75
454 #define DINA7D 0x7d
455
456 #define DINADC 0xdc
457 #define DINAF2 0xf2
458 #define DINAAB 0xab
459 #define DINAAA 0xaa
460 #define DINAF1 0xf1
461 #define DINADF 0xdf
462 #define DINADA 0xda
463 #define DINAB1 0xb1
464 #define DINAB9 0xb9
465 #define DINAF3 0xf3
466 #define DINA8B 0x8b
467 #define DINAA3 0xa3
468 #define DINA91 0x91
469 #define DINAB6 0xb6
470 #define DINAB4 0xb4
471
472
473 #define DINC00 0x00
474 #define DINC01 0x01
475 #define DINC02 0x02
476 #define DINC03 0x03
477 #define DINC08 0x08
478 #define DINC09 0x09
479 #define DINC0A 0x0a
480 #define DINC0B 0x0b
481 #define DINC10 0x10
482 #define DINC11 0x11
483 #define DINC12 0x12
484 #define DINC13 0x13
485 #define DINC18 0x18
486 #define DINC19 0x19
487 #define DINC1A 0x1a
488 #define DINC1B 0x1b
489
490 #define DINC20 0x20
491 #define DINC21 0x21
492 #define DINC22 0x22
493 #define DINC23 0x23
494 #define DINC28 0x28
495 #define DINC29 0x29
496 #define DINC2A 0x2a
497 #define DINC2B 0x2b
498 #define DINC30 0x30
499 #define DINC31 0x31
500 #define DINC32 0x32
501 #define DINC33 0x33
502 #define DINC38 0x38
503 #define DINC39 0x39
504 #define DINC3A 0x3a
505 #define DINC3B 0x3b
506
507 #define DINC40 0x40
508 #define DINC41 0x41
509 #define DINC42 0x42
510 #define DINC43 0x43
511 #define DINC48 0x48
512 #define DINC49 0x49
513 #define DINC4A 0x4a
514 #define DINC4B 0x4b
515 #define DINC50 0x50
516 #define DINC51 0x51
517 #define DINC52 0x52
518 #define DINC53 0x53
519 #define DINC58 0x58
520 #define DINC59 0x59
521 #define DINC5A 0x5a
522 #define DINC5B 0x5b
523
524 #define DINC60 0x60
525 #define DINC61 0x61
526 #define DINC62 0x62
527 #define DINC63 0x63
528 #define DINC68 0x68
529 #define DINC69 0x69
530 #define DINC6A 0x6a
531 #define DINC6B 0x6b
532 #define DINC70 0x70
533 #define DINC71 0x71
534 #define DINC72 0x72
535 #define DINC73 0x73
536 #define DINC78 0x78
537 #define DINC79 0x79
538 #define DINC7A 0x7a
539 #define DINC7B 0x7b
540 #define DIND40 0x40
541 #define DINA80 0x80
542 #define DINA90 0x90
543 #define DINAA0 0xa0
544 #define DINAC9 0xc9
545 #define DINACB 0xcb
546 #define DINACD 0xcd
547 #define DINACF 0xcf
548 #define DINAC8 0xc8
549 #define DINACA 0xca
550 #define DINACC 0xcc
551 #define DINACE 0xce
552 #define DINAD8 0xd8
553 #define DINADD 0xdd
554 #define DINAF8 0xf0
555 #define DINAFE 0xfe
556
557 #define DINBF8 0xf8
558 #define DINAC0 0xb0
559 #define DINAC1 0xb1
560 #define DINAC2 0xb4
561 #define DINAC3 0xb5
562 #define DINAC4 0xb8
563 #define DINAC5 0xb9
564 #define DINBC0 0xc0
565 #define DINBC2 0xc2
566 #define DINBC4 0xc4
567 #define DINBC6 0xc6
568
569 #endif