/*
$License:
Copyright 2011 InvenSense, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
$
*/
#ifndef DMPKEY_H__
#define DMPKEY_H__
#define KEY_CFG_25 0
#define KEY_CFG_24 (KEY_CFG_25+1)
#define KEY_CFG_26 (KEY_CFG_24+1)
#define KEY_CFG_21 (KEY_CFG_26+1)
#define KEY_CFG_20 (KEY_CFG_21+1)
#define KEY_CFG_TAP4 (KEY_CFG_20+1)
#define KEY_CFG_TAP5 (KEY_CFG_TAP4+1)
#define KEY_CFG_TAP6 (KEY_CFG_TAP5+1)
#define KEY_CFG_TAP7 (KEY_CFG_TAP6+1)
#define KEY_CFG_TAP0 (KEY_CFG_TAP7+1)
#define KEY_CFG_TAP1 (KEY_CFG_TAP0+1)
#define KEY_CFG_TAP2 (KEY_CFG_TAP1+1)
#define KEY_CFG_TAP3 (KEY_CFG_TAP2+1)
#define KEY_CFG_TAP_QUANTIZE (KEY_CFG_TAP3+1)
#define KEY_CFG_TAP_JERK (KEY_CFG_TAP_QUANTIZE+1)
#define KEY_CFG_TAP_SAVE_ACCB (KEY_CFG_TAP_JERK+1)
#define KEY_CFG_TAP_CLEAR_STICKY (KEY_CFG_TAP_SAVE_ACCB+1)
#define KEY_FCFG_ACCEL_INPUT (KEY_CFG_TAP_CLEAR_STICKY +1)
#define KEY_FCFG_ACCEL_INIT (KEY_FCFG_ACCEL_INPUT+1)
#define KEY_CFG_23 (KEY_FCFG_ACCEL_INIT+1)
#define KEY_FCFG_1 (KEY_CFG_23+1)
#define KEY_FCFG_3 (KEY_FCFG_1+1)
#define KEY_FCFG_2 (KEY_FCFG_3+1)
#define KEY_CFG_3D (KEY_FCFG_2+1)
#define KEY_CFG_3B (KEY_CFG_3D+1)
#define KEY_CFG_3C (KEY_CFG_3B+1)
#define KEY_FCFG_5 (KEY_CFG_3C+1)
#define KEY_FCFG_4 (KEY_FCFG_5+1)
#define KEY_FCFG_7 (KEY_FCFG_4+1)
#define KEY_FCFG_FSCALE (KEY_FCFG_7+1)
#define KEY_FCFG_AZ (KEY_FCFG_FSCALE+1)
#define KEY_FCFG_6 (KEY_FCFG_AZ+1)
#define KEY_FCFG_LSB4 (KEY_FCFG_6+1)
#define KEY_CFG_12 (KEY_FCFG_LSB4+1)
#define KEY_CFG_14 (KEY_CFG_12+1)
#define KEY_CFG_15 (KEY_CFG_14+1)
#define KEY_CFG_16 (KEY_CFG_15+1)
#define KEY_CFG_18 (KEY_CFG_16+1)
#define KEY_CFG_6 (KEY_CFG_18 + 1)
#define KEY_CFG_7 (KEY_CFG_6+1)
#define KEY_CFG_4 (KEY_CFG_7+1)
#define KEY_CFG_5 (KEY_CFG_4+1)
#define KEY_CFG_2 (KEY_CFG_5+1)
#define KEY_CFG_3 (KEY_CFG_2+1)
#define KEY_CFG_1 (KEY_CFG_3+1)
#define KEY_CFG_EXTERNAL (KEY_CFG_1+1)
#define KEY_CFG_8 (KEY_CFG_EXTERNAL+1)
#define KEY_CFG_9 (KEY_CFG_8+1)
#define KEY_CFG_ORIENT_3 (KEY_CFG_9 + 1)
#define KEY_CFG_ORIENT_2 (KEY_CFG_ORIENT_3 + 1)
#define KEY_CFG_ORIENT_1 (KEY_CFG_ORIENT_2 + 1)
#define KEY_CFG_GYRO_SOURCE (KEY_CFG_ORIENT_1 + 1)
#define KEY_CFG_ORIENT_IRQ_1 (KEY_CFG_GYRO_SOURCE + 1)
#define KEY_CFG_ORIENT_IRQ_2 (KEY_CFG_ORIENT_IRQ_1 + 1)
#define KEY_CFG_ORIENT_IRQ_3 (KEY_CFG_ORIENT_IRQ_2 + 1)
#define KEY_FCFG_MAG_VAL (KEY_CFG_ORIENT_IRQ_3 + 1)
#define KEY_FCFG_MAG_MOV (KEY_FCFG_MAG_VAL + 1)
#define KEY_D_0_22 (KEY_FCFG_MAG_MOV + 1)
#define KEY_D_0_24 (KEY_D_0_22+1)
#define KEY_D_0_36 (KEY_D_0_24+1)
#define KEY_D_0_52 (KEY_D_0_36+1)
#define KEY_D_0_96 (KEY_D_0_52+1)
#define KEY_D_0_104 (KEY_D_0_96+1)
#define KEY_D_0_108 (KEY_D_0_104+1)
#define KEY_D_0_163 (KEY_D_0_108+1)
#define KEY_D_0_188 (KEY_D_0_163+1)
#define KEY_D_0_192 (KEY_D_0_188+1)
#define KEY_D_0_224 (KEY_D_0_192+1)
#define KEY_D_0_228 (KEY_D_0_224+1)
#define KEY_D_0_232 (KEY_D_0_228+1)
#define KEY_D_0_236 (KEY_D_0_232+1)
#define KEY_DMP_PREVPTAT (KEY_D_0_236+1)
#define KEY_D_1_2 (KEY_DMP_PREVPTAT+1)
#define KEY_D_1_4 (KEY_D_1_2 + 1)
#define KEY_D_1_8 (KEY_D_1_4 + 1)
#define KEY_D_1_10 (KEY_D_1_8+1)
#define KEY_D_1_24 (KEY_D_1_10+1)
#define KEY_D_1_28 (KEY_D_1_24+1)
#define KEY_D_1_92 (KEY_D_1_28+1)
#define KEY_D_1_96 (KEY_D_1_92+1)
#define KEY_D_1_98 (KEY_D_1_96+1)
#define KEY_D_1_106 (KEY_D_1_98+1)
#define KEY_D_1_108 (KEY_D_1_106+1)
#define KEY_D_1_112 (KEY_D_1_108+1)
#define KEY_D_1_128 (KEY_D_1_112+1)
#define KEY_D_1_152 (KEY_D_1_128+1)
#define KEY_D_1_168 (KEY_D_1_152+1)
#define KEY_D_1_175 (KEY_D_1_168+1)
#define KEY_D_1_178 (KEY_D_1_175+1)
#define KEY_D_1_179 (KEY_D_1_178+1)
#define KEY_D_1_236 (KEY_D_1_179+1)
#define KEY_D_1_244 (KEY_D_1_236+1)
#define KEY_D_2_12 (KEY_D_1_244+1)
#define KEY_D_2_96 (KEY_D_2_12+1)
#define KEY_D_2_108 (KEY_D_2_96+1)
#define KEY_D_2_244 (KEY_D_2_108+1)
#define KEY_D_2_248 (KEY_D_2_244+1)
#define KEY_D_2_252 (KEY_D_2_248+1)
// Compass Keys
#define KEY_CPASS_BIAS_X (KEY_D_2_252+1)
#define KEY_CPASS_BIAS_Y (KEY_CPASS_BIAS_X+1)
#define KEY_CPASS_BIAS_Z (KEY_CPASS_BIAS_Y+1)
#define KEY_CPASS_MTX_00 (KEY_CPASS_BIAS_Z+1)
#define KEY_CPASS_MTX_01 (KEY_CPASS_MTX_00+1)
#define KEY_CPASS_MTX_02 (KEY_CPASS_MTX_01+1)
#define KEY_CPASS_MTX_10 (KEY_CPASS_MTX_02+1)
#define KEY_CPASS_MTX_11 (KEY_CPASS_MTX_10+1)
#define KEY_CPASS_MTX_12 (KEY_CPASS_MTX_11+1)
#define KEY_CPASS_MTX_20 (KEY_CPASS_MTX_12+1)
#define KEY_CPASS_MTX_21 (KEY_CPASS_MTX_20+1)
#define KEY_CPASS_MTX_22 (KEY_CPASS_MTX_21+1)
// Mantis Keys
#define KEY_CFG_MOTION_BIAS (KEY_CPASS_MTX_22+1)
#define KEY_DMP_TAPW_MIN (KEY_CFG_MOTION_BIAS+1)
#define KEY_DMP_TAP_THR_X (KEY_DMP_TAPW_MIN+1)
#define KEY_DMP_TAP_THR_Y (KEY_DMP_TAP_THR_X+1)
#define KEY_DMP_TAP_THR_Z (KEY_DMP_TAP_THR_Y+1)
#define KEY_DMP_SH_TH_Y (KEY_DMP_TAP_THR_Z+1)
#define KEY_DMP_SH_TH_X (KEY_DMP_SH_TH_Y+1)
#define KEY_DMP_SH_TH_Z (KEY_DMP_SH_TH_X+1)
#define KEY_DMP_ORIENT (KEY_DMP_SH_TH_Z+1)
#define KEY_D_ACT0 (KEY_DMP_ORIENT+1)
#define KEY_D_ACSX (KEY_D_ACT0+1)
#define KEY_D_ACSY (KEY_D_ACSX+1)
#define KEY_D_ACSZ (KEY_D_ACSY+1)
// Pedometer Standalone only keys
#define KEY_D_PEDSTD_BP_B (KEY_D_ACSZ+1)
#define KEY_D_PEDSTD_HP_A (KEY_D_PEDSTD_BP_B+1)
#define KEY_D_PEDSTD_HP_B (KEY_D_PEDSTD_HP_A+1)
#define KEY_D_PEDSTD_BP_A4 (KEY_D_PEDSTD_HP_B+1)
#define KEY_D_PEDSTD_BP_A3 (KEY_D_PEDSTD_BP_A4+1)
#define KEY_D_PEDSTD_BP_A2 (KEY_D_PEDSTD_BP_A3+1)
#define KEY_D_PEDSTD_BP_A1 (KEY_D_PEDSTD_BP_A2+1)
#define KEY_D_PEDSTD_INT_THRSH (KEY_D_PEDSTD_BP_A1+1)
#define KEY_D_PEDSTD_CLIP (KEY_D_PEDSTD_INT_THRSH+1)
#define KEY_D_PEDSTD_SB (KEY_D_PEDSTD_CLIP+1)
#define KEY_D_PEDSTD_SB_TIME (KEY_D_PEDSTD_SB+1)
#define KEY_D_PEDSTD_PEAKTHRSH (KEY_D_PEDSTD_SB_TIME+1)
#define KEY_D_PEDSTD_TIML (KEY_D_PEDSTD_PEAKTHRSH+1)
#define KEY_D_PEDSTD_TIMH (KEY_D_PEDSTD_TIML+1)
#define KEY_D_PEDSTD_PEAK (KEY_D_PEDSTD_TIMH+1)
#define KEY_D_PEDSTD_TIMECTR (KEY_D_PEDSTD_PEAK+1)
#define KEY_D_PEDSTD_STEPCTR (KEY_D_PEDSTD_TIMECTR+1)
#define KEY_D_PEDSTD_WALKTIME (KEY_D_PEDSTD_STEPCTR+1)
// EIS Keys
#define KEY_P_EIS_FIFO_FOOTER (KEY_D_PEDSTD_WALKTIME+1)
#define KEY_P_EIS_FIFO_YSHIFT (KEY_P_EIS_FIFO_FOOTER+1)
#define KEY_P_EIS_DATA_RATE (KEY_P_EIS_FIFO_YSHIFT+1)
#define KEY_P_EIS_FIFO_XSHIFT (KEY_P_EIS_DATA_RATE+1)
#define KEY_P_EIS_FIFO_SYNC (KEY_P_EIS_FIFO_XSHIFT+1)
#define KEY_P_EIS_FIFO_ZSHIFT (KEY_P_EIS_FIFO_SYNC+1)
#define KEY_P_EIS_FIFO_READY (KEY_P_EIS_FIFO_ZSHIFT+1)
#define KEY_DMP_FOOTER (KEY_P_EIS_FIFO_READY+1)
#define KEY_DMP_INTX_HC (KEY_DMP_FOOTER+1)
#define KEY_DMP_INTX_PH (KEY_DMP_INTX_HC+1)
#define KEY_DMP_INTX_SH (KEY_DMP_INTX_PH+1)
#define KEY_DMP_AINV_SH (KEY_DMP_INTX_SH +1)
#define KEY_DMP_A_INV_XH (KEY_DMP_AINV_SH+1)
#define KEY_DMP_AINV_PH (KEY_DMP_A_INV_XH+1)
#define KEY_DMP_CTHX_H (KEY_DMP_AINV_PH+1)
#define KEY_DMP_CTHY_H (KEY_DMP_CTHX_H+1)
#define KEY_DMP_CTHZ_H (KEY_DMP_CTHY_H+1)
#define KEY_DMP_NCTHX_H (KEY_DMP_CTHZ_H+1)
#define KEY_DMP_NCTHY_H (KEY_DMP_NCTHX_H+1)
#define KEY_DMP_NCTHZ_H (KEY_DMP_NCTHY_H+1)
#define KEY_DMP_CTSQ_XH (KEY_DMP_NCTHZ_H+1)
#define KEY_DMP_CTSQ_YH (KEY_DMP_CTSQ_XH+1)
#define KEY_DMP_CTSQ_ZH (KEY_DMP_CTSQ_YH+1)
#define KEY_DMP_INTX_H (KEY_DMP_CTSQ_ZH+1)
#define KEY_DMP_INTY_H (KEY_DMP_INTX_H+1)
#define KEY_DMP_INTZ_H (KEY_DMP_INTY_H+1)
#define KEY_DMP_HPX_H (KEY_DMP_INTZ_H+1)
#define KEY_DMP_HPY_H (KEY_DMP_HPX_H+1)
#define KEY_DMP_HPZ_H (KEY_DMP_HPY_H+1)
// Stream Keys
#define KEY_STREAM_P_GYRO_Z (KEY_DMP_HPZ_H + 1)
#define KEY_STREAM_P_GYRO_Y (KEY_STREAM_P_GYRO_Z+1)
#define KEY_STREAM_P_GYRO_X (KEY_STREAM_P_GYRO_Y+1)
#define KEY_STREAM_P_TEMP (KEY_STREAM_P_GYRO_X+1)
#define KEY_STREAM_P_AUX_Y (KEY_STREAM_P_TEMP+1)
#define KEY_STREAM_P_AUX_X (KEY_STREAM_P_AUX_Y+1)
#define KEY_STREAM_P_AUX_Z (KEY_STREAM_P_AUX_X+1)
#define KEY_STREAM_P_ACCEL_Y (KEY_STREAM_P_AUX_Z+1)
#define KEY_STREAM_P_ACCEL_X (KEY_STREAM_P_ACCEL_Y+1)
#define KEY_STREAM_P_FOOTER (KEY_STREAM_P_ACCEL_X+1)
#define KEY_STREAM_P_ACCEL_Z (KEY_STREAM_P_FOOTER+1)
#define NUM_KEYS (KEY_STREAM_P_ACCEL_Z+1)
typedef struct {
unsigned short key;
unsigned short addr;
} tKeyLabel;
#define DINA0A 0x0a
#define DINA22 0x22
#define DINA42 0x42
#define DINA5A 0x5a
#define DINA06 0x06
#define DINA0E 0x0e
#define DINA16 0x16
#define DINA1E 0x1e
#define DINA26 0x26
#define DINA2E 0x2e
#define DINA36 0x36
#define DINA3E 0x3e
#define DINA46 0x46
#define DINA4E 0x4e
#define DINA56 0x56
#define DINA5E 0x5e
#define DINA66 0x66
#define DINA6E 0x6e
#define DINA76 0x76
#define DINA7E 0x7e
#define DINA00 0x00
#define DINA08 0x08
#define DINA10 0x10
#define DINA18 0x18
#define DINA20 0x20
#define DINA28 0x28
#define DINA30 0x30
#define DINA38 0x38
#define DINA40 0x40
#define DINA48 0x48
#define DINA50 0x50
#define DINA58 0x58
#define DINA60 0x60
#define DINA68 0x68
#define DINA70 0x70
#define DINA78 0x78
#define DINA04 0x04
#define DINA0C 0x0c
#define DINA14 0x14
#define DINA1C 0x1C
#define DINA24 0x24
#define DINA2C 0x2c
#define DINA34 0x34
#define DINA3C 0x3c
#define DINA44 0x44
#define DINA4C 0x4c
#define DINA54 0x54
#define DINA5C 0x5c
#define DINA64 0x64
#define DINA6C 0x6c
#define DINA74 0x74
#define DINA7C 0x7c
#define DINA01 0x01
#define DINA09 0x09
#define DINA11 0x11
#define DINA19 0x19
#define DINA21 0x21
#define DINA29 0x29
#define DINA31 0x31
#define DINA39 0x39
#define DINA41 0x41
#define DINA49 0x49
#define DINA51 0x51
#define DINA59 0x59
#define DINA61 0x61
#define DINA69 0x69
#define DINA71 0x71
#define DINA79 0x79
#define DINA25 0x25
#define DINA2D 0x2d
#define DINA35 0x35
#define DINA3D 0x3d
#define DINA4D 0x4d
#define DINA55 0x55
#define DINA5D 0x5D
#define DINA6D 0x6d
#define DINA75 0x75
#define DINA7D 0x7d
#define DINC00 0x00
#define DINC01 0x01
#define DINC02 0x02
#define DINC03 0x03
#define DINC08 0x08
#define DINC09 0x09
#define DINC0A 0x0a
#define DINC0B 0x0b
#define DINC10 0x10
#define DINC11 0x11
#define DINC12 0x12
#define DINC13 0x13
#define DINC18 0x18
#define DINC19 0x19
#define DINC1A 0x1a
#define DINC1B 0x1b
#define DINC20 0x20
#define DINC21 0x21
#define DINC22 0x22
#define DINC23 0x23
#define DINC28 0x28
#define DINC29 0x29
#define DINC2A 0x2a
#define DINC2B 0x2b
#define DINC30 0x30
#define DINC31 0x31
#define DINC32 0x32
#define DINC33 0x33
#define DINC38 0x38
#define DINC39 0x39
#define DINC3A 0x3a
#define DINC3B 0x3b
#define DINC40 0x40
#define DINC41 0x41
#define DINC42 0x42
#define DINC43 0x43
#define DINC48 0x48
#define DINC49 0x49
#define DINC4A 0x4a
#define DINC4B 0x4b
#define DINC50 0x50
#define DINC51 0x51
#define DINC52 0x52
#define DINC53 0x53
#define DINC58 0x58
#define DINC59 0x59
#define DINC5A 0x5a
#define DINC5B 0x5b
#define DINC60 0x60
#define DINC61 0x61
#define DINC62 0x62
#define DINC63 0x63
#define DINC68 0x68
#define DINC69 0x69
#define DINC6A 0x6a
#define DINC6B 0x6b
#define DINC70 0x70
#define DINC71 0x71
#define DINC72 0x72
#define DINC73 0x73
#define DINC78 0x78
#define DINC79 0x79
#define DINC7A 0x7a
#define DINC7B 0x7b
#if defined CONFIG_MPU_SENSORS_MPU3050
#define DINA80 0x80
#define DINA90 0x90
#define DINAA0 0xa0
#define DINAC9 0xc9
#define DINACB 0xcb
#define DINACD 0xcd
#define DINACF 0xcf
#define DINAC8 0xc8
#define DINACA 0xca
#define DINACC 0xcc
#define DINACE 0xce
#define DINAD8 0xd8
#define DINADD 0xdd
#define DINAF8 0xf8
#define DINAFE 0xfe
#define DINAC0 0xc0
#define DINAC1 0xc1
#define DINAC2 0xc2
#define DINAC3 0xc3
#define DINAC4 0xc4
#define DINAC5 0xc5
#elif defined CONFIG_MPU_SENSORS_MPU6050A2 || \
defined CONFIG_MPU_SENSORS_MPU6050B1
#define DINA80 0x80
#define DINA90 0x90
#define DINAA0 0xa0
#define DINAC9 0xc9
#define DINACB 0xcb
#define DINACD 0xcd
#define DINACF 0xcf
#define DINAC8 0xc8
#define DINACA 0xca
#define DINACC 0xcc
#define DINACE 0xce
#define DINAD8 0xd8
#define DINADD 0xdd
#define DINAF8 0xf0
#define DINAFE 0xfe
#define DINBF8 0xf8
#define DINAC0 0xb0
#define DINAC1 0xb1
#define DINAC2 0xb4
#define DINAC3 0xb5
#define DINAC4 0xb8
#define DINAC5 0xb9
#define DINBC0 0xc0
#define DINBC2 0xc2
#define DINBC4 0xc4
#define DINBC6 0xc6
#else
#error No CONFIG_MPU_SENSORS_xxxx has been defined.
#endif
#endif // DMPKEY_H__