1895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/*
2895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall $License:
3895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall   Copyright 2011 InvenSense, Inc.
4895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
5895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Licensed under the Apache License, Version 2.0 (the "License");
6895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall you may not use this file except in compliance with the License.
7895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall You may obtain a copy of the License at
8895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
9895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall http://www.apache.org/licenses/LICENSE-2.0
10895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
11895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall Unless required by applicable law or agreed to in writing, software
12895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall distributed under the License is distributed on an "AS IS" BASIS,
13895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall See the License for the specific language governing permissions and
15895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall limitations under the License.
16895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall  $
17895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
18895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/***************************************************************************** *
19895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * $Id: dmpDefault.c 5627 2011-06-10 22:34:18Z nroyer $
20895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall ******************************************************************************/
21895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
22895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/* WARNING: autogenerated code, do not modify */
23895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/**
24895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @defgroup DMPDEFAULT
25895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @brief    Data and configuration for MLDmpDefaultOpen.
26895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *
27895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @{
28895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *      @file   inv_setup_dmp.c
29895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *      @brief  Data and configuration for MLDmpDefaultOpen.
30895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
31895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
32895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mltypes.h"
33895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "dmpDefault.h"
34895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "dmpKey.h"
35895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "dmpmap.h"
36895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "ml.h"
37895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mpu.h"
38895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mldl.h"
39895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#include "mldl_cfg.h"
40895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
41895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_25  703
42895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_24  699
43895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_26  707
44895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_21  802
45895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_20  645
46895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_23  814
47895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP4  808
48895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP5  809
49895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP6  810
50895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_1  783
51895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP0  802
52895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP1  804
53895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP2  805
54895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP3  806
55895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_AZ  878
56895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_IRQ_1  715
57895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_IRQ_2  738
58895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_IRQ_3  743
59895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_QUANTIZE  647
60895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_3  936
61895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_CLEAR_STICKY  817
62895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_1  868
63895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ACCEL_FILTER  968
64895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_2  872
65895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3D  521
66895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3B  517
67895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3C  519
68895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_5  942
69895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_4  857
70895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_FSCALE  877
71895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_JERK  639
72895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_6  996
73895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_12  797
74895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_7  930
75895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_14  790
76895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_15  790
77895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_16  815
78895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_18  551
79895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_6  823
80895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_7  564
81895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_4  526
82895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_5  749
83895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_3  515
84895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_GYRO_SOURCE  777
85895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_8  772
86895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_9  778
87895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_2  733
88895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_ORIENT_1  713
89895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_ACCEL_INPUT  904
90895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP7  811
91895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define CFG_TAP_SAVE_ACCB  687
92895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define FCFG_ACCEL_INIT  831
93895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
94895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
95895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_22  (22)
96895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_24  (24)
97895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_36  (36)
98895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_52  (52)
99895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_96  (96)
100895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_104 (104)
101895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_108 (108)
102895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_163 (163)
103895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_188 (188)
104895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_192 (192)
105895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_224 (224)
106895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_228 (228)
107895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_232 (232)
108895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_0_236 (236)
109895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
110895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_2 (256 + 2)
111895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_4 (256 + 4)
112895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_8 (256 + 8)
113895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_10 (256 + 10)
114895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_24 (256 + 24)
115895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_28 (256 + 28)
116895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_92 (256 + 92)
117895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_96 (256 + 96)
118895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_98 (256 + 98)
119895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_106 (256 + 106)
120895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_108 (256 + 108)
121895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_112 (256 + 112)
122895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_128 (256 + 144)
123895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_152 (256 + 12)
124895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_168 (256 + 168)
125895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_175 (256 + 175)
126895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_178 (256 + 178)
127895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_236 (256 + 236)
128895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define D_1_244 (256 + 244)
129895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
130895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
131895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic const tKeyLabel dmpTConfig[] = {
132895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_25, CFG_25},
133895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_24, CFG_24},
134895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_26, CFG_26},
135895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_21, CFG_21},
136895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_20, CFG_20},
137895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_23, CFG_23},
138895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP4, CFG_TAP4},
139895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP5, CFG_TAP5},
140895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP6, CFG_TAP6},
141895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_1, CFG_1},
142895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP0, CFG_TAP0},
143895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP1, CFG_TAP1},
144895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP2, CFG_TAP2},
145895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP3, CFG_TAP3},
146895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_AZ, FCFG_AZ},
147895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_IRQ_1, CFG_ORIENT_IRQ_1},
148895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_IRQ_2, CFG_ORIENT_IRQ_2},
149895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_IRQ_3, CFG_ORIENT_IRQ_3},
150895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_QUANTIZE, CFG_TAP_QUANTIZE},
151895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_3, FCFG_3},
152895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_CLEAR_STICKY, CFG_TAP_CLEAR_STICKY},
153895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_1, FCFG_1},
154895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    //{KEY_CFG_ACCEL_FILTER, CFG_ACCEL_FILTER},
155895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_2, FCFG_2},
156895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3D, CFG_3D},
157895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3B, CFG_3B},
158895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3C, CFG_3C},
159895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_5, FCFG_5},
160895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_4, FCFG_4},
161895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_FSCALE, FCFG_FSCALE},
162895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_JERK, CFG_TAP_JERK},
163895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_6, FCFG_6},
164895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_12, CFG_12},
165895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_7, FCFG_7},
166895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_14, CFG_14},
167895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_15, CFG_15},
168895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_16, CFG_16},
169895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_18, CFG_18},
170895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_6, CFG_6},
171895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_7, CFG_7},
172895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_4, CFG_4},
173895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_5, CFG_5},
174895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_3, CFG_3},
175895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_GYRO_SOURCE, CFG_GYRO_SOURCE},
176895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_8, CFG_8},
177895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_9, CFG_9},
178895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_2, CFG_ORIENT_2},
179895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_ORIENT_1, CFG_ORIENT_1},
180895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_ACCEL_INPUT, FCFG_ACCEL_INPUT},
181895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP7, CFG_TAP7},
182895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_CFG_TAP_SAVE_ACCB, CFG_TAP_SAVE_ACCB},
183895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_FCFG_ACCEL_INIT, FCFG_ACCEL_INIT},
184895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
185895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_22, D_0_22},
186895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_24, D_0_24},
187895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_36, D_0_36},
188895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_52, D_0_52},
189895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_96, D_0_96},
190895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_104, D_0_104},
191895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_108, D_0_108},
192895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_163, D_0_163},
193895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_188, D_0_188},
194895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_192, D_0_192},
195895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_224, D_0_224},
196895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_228, D_0_228},
197895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_232, D_0_232},
198895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_0_236, D_0_236},
199895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
200895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_PREVPTAT, DMP_PREVPTAT},
201895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_2, D_1_2},
202895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_4, D_1_4},
203895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_8, D_1_8},
204895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_10, D_1_10},
205895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_24, D_1_24},
206895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_28, D_1_28},
207895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_92, D_1_92},
208895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_96, D_1_96},
209895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_98, D_1_98},
210895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_106, D_1_106},
211895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_108, D_1_108},
212895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_112, D_1_112},
213895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_128, D_1_128},
214895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_152, D_1_152},
215895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_168, D_1_168},
216895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_175, D_1_175},
217895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_178, D_1_178},
218895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_236, D_1_236},
219895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_D_1_244, D_1_244},
220895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
221895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAPW_MIN, DMP_TAPW_MIN},
222895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAP_THR_X, DMP_TAP_THX},
223895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAP_THR_Y, DMP_TAP_THY},
224895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_TAP_THR_Z, DMP_TAP_THZ},
225895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_SH_TH_Y, DMP_SH_TH_Y},
226895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_SH_TH_X, DMP_SH_TH_X},
227895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_SH_TH_Z, DMP_SH_TH_Z},
228895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {KEY_DMP_ORIENT, DMP_ORIENT}
229895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall};
230895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
231895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define NUM_LOCAL_KEYS (sizeof(dmpTConfig)/sizeof(dmpTConfig[0]))
232895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic const unsigned short sConfig = 0x013f;
233895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall#define SCD (1024)
234895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic const unsigned char dmpMemory[SCD] = {
235895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfb, 0x00, 0x00, 0x3e, 0x00, 0x0b, 0x00, 0x36, 0x5a, 0xd6, 0x96, 0x06, 0x3f, 0xa3, 0x00, 0x00,
236895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x20, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x77, 0x8e, 0x00, 0x01, 0x00, 0x01,
237895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
238895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
239895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x03, 0xe8, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x7f, 0xff, 0xff, 0xfe, 0x80, 0x01,
240895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x02, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00, 0x05, 0x01, 0xe9, 0xa2, 0x0f,
241895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x3e, 0x03, 0x30, 0x40, 0x00, 0x00, 0x00, 0x02, 0xca, 0xe3, 0x09, 0x3e, 0x80, 0x00, 0x00,
242895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
243895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x3e, 0x00, 0x02, 0xb4, 0x8b, 0x00, 0x00, 0x7a, 0xdf, 0x00, 0x02, 0x5b, 0x2f,
244895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfc, 0xba, 0xfa, 0x00, 0x01, 0x00, 0x80, 0x00, 0x02, 0x01, 0x80, 0x00, 0x03, 0x02, 0x80, 0x00,
245895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xb4, 0x8b, 0x00, 0x00, 0x7a, 0xdf, 0x00, 0x02, 0x5b, 0x2f,
246895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x7d, 0x32, 0xba, 0x00, 0x0a, 0x1e, 0xd1, 0x00, 0x3a, 0xe8, 0x25, 0x00, 0x00, 0x00, 0x00,
247895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x3f, 0xd7, 0x96, 0x08, 0xff, 0xb3, 0x39, 0xf5, 0xfe, 0x11, 0x1b, 0x62, 0xfb, 0xf4, 0xb4, 0x52,
248895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfb, 0x8c, 0x6f, 0x5d, 0xfd, 0x5d, 0x08, 0xd9, 0x00, 0x7c, 0x73, 0x3b, 0x00, 0x6c, 0x12, 0xcc,
249895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x32, 0x00, 0x13, 0x9d, 0x32, 0x00, 0xd0, 0xd6, 0x32, 0x00, 0x08, 0x00, 0x40, 0x00, 0x01, 0xf4,
250895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x0d, 0x68, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0xd6, 0x00, 0x00, 0x27, 0x10,
251895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
252895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xfb, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
253895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
254895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0xfa, 0x36, 0xff, 0xbc, 0x30, 0x8e, 0x00, 0x05, 0xfb, 0xf0, 0xff, 0xd9, 0x5b, 0xc8,
255895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x3e, 0x80, 0x00, 0x00, 0x3e, 0x80, 0x00, 0x00, 0x3e, 0x80, 0x00, 0x00, 0x12, 0x82, 0x2d, 0x90,
256895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0xff, 0xff, 0x00, 0x05, 0x02, 0x00, 0x00, 0x0c,
257895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x03, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x03, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00,
258895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x14,
259895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
260895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
261895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xff, 0x00,
262895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
263895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x6a, 0x00, 0x00, 0x00, 0x00,
264895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xff, 0xec, 0x3f, 0xc8, 0xff, 0xee, 0x00, 0x00, 0xff, 0xfe, 0x40, 0x00, 0xff, 0xff, 0xff, 0xc8,
265895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
266895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
267895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x03, 0x65, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x02, 0xf5,
268895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
269895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x9e, 0xc5, 0xa3, 0x8a, 0x22, 0x8a, 0x6e, 0x8a, 0x56, 0x8a, 0x5e, 0x9f, 0xc1, 0x83, 0x06, 0x26,
270895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x46, 0x66, 0x0e, 0x2e, 0x4e, 0x6e, 0x9d, 0xc4, 0xad, 0x00, 0x2c, 0x54, 0x7c, 0xf9, 0xc5, 0xa3,
271895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xc1, 0xc3, 0x8f, 0x96, 0x19, 0xa6, 0x81, 0xda, 0x0c, 0xd9, 0x2e, 0xd8, 0xa3, 0x86, 0x31, 0x81,
272895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa6, 0xd9, 0x30, 0x26, 0xd8, 0xd8, 0xfa, 0xc1, 0x8c, 0xc2, 0x99, 0xc5, 0xa3, 0x2d, 0x55, 0x7d,
273895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x81, 0x91, 0xac, 0x38, 0xad, 0x3a, 0xc3, 0x83, 0x91, 0xac, 0x2d, 0xd9, 0x28, 0xd8, 0x4d, 0xd9,
274895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x48, 0xd8, 0x6d, 0xd9, 0x68, 0xd8, 0x8c, 0x9d, 0xae, 0x29, 0xd9, 0x04, 0xae, 0xd8, 0x51, 0xd9,
275895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x04, 0xae, 0xd8, 0x79, 0xd9, 0x04, 0xd8, 0x81, 0xfb, 0x9d, 0xad, 0x00, 0x8d, 0xae, 0x19, 0x81,
276895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xad, 0xd9, 0x01, 0xd8, 0xfa, 0xae, 0xda, 0x26, 0xd8, 0x8e, 0x91, 0x29, 0x83, 0xa7, 0xd9, 0xad,
277895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xad, 0xad, 0xad, 0xfb, 0x2a, 0xd8, 0xd8, 0xf9, 0xc0, 0xac, 0x89, 0x91, 0x3e, 0x5e, 0x76, 0xfb,
278895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xac, 0x2e, 0x2e, 0xf9, 0xc1, 0x8c, 0x5a, 0x9c, 0xac, 0x2c, 0x28, 0x28, 0x28, 0x9c, 0xac, 0x30,
279895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x18, 0xa8, 0x98, 0x81, 0x28, 0x34, 0x3c, 0x97, 0x24, 0xa7, 0x28, 0x34, 0x3c, 0x9c, 0x24, 0xfa,
280895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xc0, 0x89, 0xac, 0x91, 0x2c, 0x4c, 0x6c, 0x8a, 0x9b, 0x2d, 0xd9, 0xd8, 0xd8, 0x51, 0xd9, 0xd8,
281895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xd8, 0x79, 0xd9, 0xd8, 0xd8, 0xf9, 0x9e, 0x88, 0xa3, 0x31, 0xda, 0xd8, 0xd8, 0x91, 0x2d, 0xd9,
282895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x28, 0xd8, 0x4d, 0xd9, 0x48, 0xd8, 0x6d, 0xd9, 0x68, 0xd8, 0xc1, 0x83, 0x93, 0x35, 0x3d, 0x80,
283895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x25, 0xda, 0xd8, 0xd8, 0x85, 0x69, 0xda, 0xd8, 0xd8, 0xf9, 0xc2, 0x93, 0x81, 0xa3, 0x28, 0x34,
284895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x3c, 0xfb, 0x91, 0xab, 0x8b, 0x18, 0xa3, 0x09, 0xd9, 0xab, 0x97, 0x0a, 0x91, 0x3c, 0xc0, 0x87,
285895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
286895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x9c, 0xc5, 0xa3, 0xdd, 0xf9, 0xa3, 0xa3, 0xa3, 0xa3, 0x95, 0xf9, 0xa3, 0xa3, 0xa3, 0x9d, 0xf9,
287895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0xa3, 0xa3, 0xa3, 0xf9, 0x90, 0xa3, 0xa3, 0xa3, 0xa3, 0x91, 0xc3, 0x99, 0xf9, 0xa3, 0xa3,
288895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0x98, 0xf9, 0xa3, 0xa3, 0xa3, 0xa3, 0x97, 0xa3, 0xa3, 0xa3, 0xa3, 0xfb, 0x9b, 0xa3, 0xa3,
289895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xdc, 0xc5, 0xa7, 0xf9, 0x26, 0x26, 0x26, 0xd8, 0xd8, 0xff, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xc1,
290895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xc2, 0xc4, 0x81, 0xa0, 0x90, 0xfa, 0x2c, 0x80, 0x74, 0xfb, 0x70, 0xfa, 0x7c, 0xc0, 0x86, 0x98,
291895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa8, 0xf9, 0xc9, 0x88, 0xa1, 0xfa, 0x0e, 0x97, 0x80, 0xf9, 0xa9, 0x2e, 0x2e, 0x2e, 0xaa, 0x2e,
292895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x2e, 0x2e, 0xfa, 0xaa, 0xc9, 0x2c, 0xcb, 0xa9, 0x4c, 0xcd, 0x6c, 0xf9, 0x89, 0xa5, 0xca, 0xcd,
293895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xcf, 0xc3, 0x9e, 0xa9, 0x3e, 0x5e, 0x7e, 0x85, 0xa5, 0x1a, 0x3e, 0x5e, 0xc2, 0xa5, 0x99, 0xfb,
294895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x08, 0x34, 0x5c, 0xf9, 0xa9, 0xc9, 0xcb, 0xcd, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
295895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0xa9,
296895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf9, 0x89, 0x26, 0x46, 0x66, 0x8a, 0xa8, 0x96, 0x36, 0x56, 0x76, 0xaa, 0x98, 0x82, 0x87, 0x2d,
297895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x35, 0x3d, 0xc5, 0xa3, 0xc2, 0xc1, 0x97, 0x80, 0x4a, 0x4e, 0x4e, 0xa3, 0xfa, 0x48, 0xcd, 0xc9,
298895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xf9, 0xc4, 0xa9, 0x99, 0x83, 0x0d, 0x35, 0x5d, 0x89, 0xc5, 0xa3, 0x2d, 0x55, 0x7d, 0xc3, 0x93,
299895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0xa3, 0x0e, 0x16, 0x1e, 0xa9, 0x2c, 0x54, 0x7c, 0xc0, 0xc2, 0x83, 0x97, 0xaf, 0x08, 0xc4, 0xa8,
300895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x11, 0xc1, 0x8f, 0xc5, 0xaf, 0x98, 0xf8, 0x24, 0x08, 0x44, 0x10, 0x64, 0x18, 0xf9, 0xa3, 0x29,
301895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    0x55, 0x7d, 0xaf, 0x83, 0xc3, 0x93, 0xaf, 0xf8, 0x00, 0x28, 0x50, 0xc4, 0xc2, 0xc0, 0xf9, 0x97,
302895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall};
303895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic tKeyLabel keys[NUM_KEYS];
304895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
305895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallstatic unsigned short inv_setup_dmpGetAddress(unsigned short key)
306895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall{
307895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    static int isSorted = 0;
308895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if ( !isSorted ) {
309895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        int kk;
310895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        for (kk=0; kk<NUM_KEYS; ++kk) {
311895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            keys[ kk ].addr = 0xffff;
312895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            keys[ kk ].key = kk;
313895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
314895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        for (kk=0; kk<NUM_LOCAL_KEYS; ++kk) {
315895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            keys[ dmpTConfig[kk].key ].addr = dmpTConfig[kk].addr;
316895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
317895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        isSorted = 1;
318895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
319895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if ( key >= NUM_KEYS )
320895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return 0xffff;
321895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    return keys[ key ].addr;
322895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall}
323895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
324895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
325895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/**
326895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @brief
327895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall *  @return INV_SUCCESS or a non-zero error code.
328895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
329895401859313187f15a800e62d43e6bcbf48fadaJP Abgrallinv_error_t inv_setup_dmp(void)
330895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall{
331895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    inv_error_t result;
332895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    inv_set_get_address( inv_setup_dmpGetAddress );
333895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
334895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_clock_source(MPU_CLK_SEL_PLLGYROZ);
335895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
336895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
337895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
338895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
339895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_dl_cfg_sampling(MPU_FILTER_42HZ, 4);
340895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
341895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
342895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
343895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
344895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_set_full_scale(2000.f);
345895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
346895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
347895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
348895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
349895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_load_dmp(dmpMemory, SCD, sConfig);
350895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
351895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
352895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
353895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
354895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    result = inv_set_ignore_system_suspend(FALSE);
355895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    if (result) {
356895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        LOG_RESULT_LOCATION(result);
357895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        return result;
358895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
359895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
360a45503dc4dc8d9331bbc9e3fce1b1c35cb57c39fRosa Chow    if (inv_accel_present())
361895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    {
362895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        struct ext_slave_config config;
363895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        long odr;
364895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.key = MPU_SLAVE_CONFIG_ODR_SUSPEND;
365895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.len = sizeof(long);
366895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.apply = FALSE;
367895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.data = &odr;
368895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
369895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        odr = 0;
370895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        result = inv_mpu_config_accel(inv_get_dl_config(),
371895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  inv_get_serial_handle(),
372895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  inv_get_serial_handle(),
373895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  &config);
374895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        if (result) {
375895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            LOG_RESULT_LOCATION(result);
376895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            return result;
377895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
378895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.key = MPU_SLAVE_CONFIG_ODR_RESUME;
379895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        odr = 200000;
380895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        result = inv_mpu_config_accel(inv_get_dl_config(),
381895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  inv_get_serial_handle(),
382895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  inv_get_serial_handle(),
383895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  &config);
384895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        if (result) {
385895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            LOG_RESULT_LOCATION(result);
386895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            return result;
387895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
388895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.key = MPU_SLAVE_CONFIG_IRQ_SUSPEND;
389895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        odr = MPU_SLAVE_IRQ_TYPE_NONE;
390895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        result = inv_mpu_config_accel(inv_get_dl_config(),
391895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  inv_get_serial_handle(),
392895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  inv_get_serial_handle(),
393895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                                  &config);
394895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        if (result) {
395895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            LOG_RESULT_LOCATION(result);
396895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            return result;
397895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
398895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
399895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        config.key = MPU_SLAVE_CONFIG_IRQ_RESUME;
400895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        odr = MPU_SLAVE_IRQ_TYPE_NONE;
401895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        result = inv_mpu_config_accel(inv_get_dl_config(),
402895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                         inv_get_serial_handle(),
403895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                         inv_get_serial_handle(),
404895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall                         &config);
405895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        if (result) {
406895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            LOG_RESULT_LOCATION(result);
407895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall            return result;
408895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall        }
409895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
410895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    }
411895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
412895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall    return result;
413895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall}
414895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall/**
415895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall * @}
416895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall */
417895401859313187f15a800e62d43e6bcbf48fadaJP Abgrall
418