149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/*
249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow $License:
349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow    Copyright (C) 2011 InvenSense Corporation, All Rights Reserved.
449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow $
549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow */
649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/**
849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @defgroup MLERROR
949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @brief  Motion Library - Error definitions.
1049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          Definition of the error codes used within the MPL and
1149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          returned to the user.
1249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          Every function tries to return a meaningful error code basing
1349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          on the occuring error condition. The error code is numeric.
1449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *
1549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          The available error codes and their associated values are:
1649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (0)               INV_SUCCESS
1749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (32)              INV_ERROR
1849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (22 / EINVAL)     INV_ERROR_INVALID_PARAMETER
1949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (1  / EPERM)      INV_ERROR_FEATURE_NOT_ENABLED
2049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (36)              INV_ERROR_FEATURE_NOT_IMPLEMENTED
2149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (38)              INV_ERROR_DMP_NOT_STARTED
2249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (39)              INV_ERROR_DMP_STARTED
2349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (40)              INV_ERROR_NOT_OPENED
2449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (41)              INV_ERROR_OPENED
2549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (19 / ENODEV)     INV_ERROR_INVALID_MODULE
2649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (12 / ENOMEM)     INV_ERROR_MEMORY_EXAUSTED
2749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (44)              INV_ERROR_DIVIDE_BY_ZERO
2849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (45)              INV_ERROR_ASSERTION_FAILURE
2949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (46)              INV_ERROR_FILE_OPEN
3049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (47)              INV_ERROR_FILE_READ
3149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (48)              INV_ERROR_FILE_WRITE
3249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (49)              INV_ERROR_INVALID_CONFIGURATION
3349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (52)              INV_ERROR_SERIAL_CLOSED
3449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (53)              INV_ERROR_SERIAL_OPEN_ERROR
3549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (54)              INV_ERROR_SERIAL_READ
3649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (55)              INV_ERROR_SERIAL_WRITE
3749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (56)              INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED
3849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (57)              INV_ERROR_SM_TRANSITION
3949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (58)              INV_ERROR_SM_IMPROPER_STATE
4049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (62)              INV_ERROR_FIFO_OVERFLOW
4149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (63)              INV_ERROR_FIFO_FOOTER
4249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (64)              INV_ERROR_FIFO_READ_COUNT
4349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (65)              INV_ERROR_FIFO_READ_DATA
4449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (72)              INV_ERROR_MEMORY_SET
4549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (82)              INV_ERROR_LOG_MEMORY_ERROR
4649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (83)              INV_ERROR_LOG_OUTPUT_ERROR
4749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (92)              INV_ERROR_OS_BAD_PTR
4849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (93)              INV_ERROR_OS_BAD_HANDLE
4949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (94)              INV_ERROR_OS_CREATE_FAILED
5049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (95)              INV_ERROR_OS_LOCK_FAILED
5149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (102)             INV_ERROR_COMPASS_DATA_OVERFLOW
5249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (103)             INV_ERROR_COMPASS_DATA_UNDERFLOW
5349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (104)             INV_ERROR_COMPASS_DATA_NOT_READY
5449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (105)             INV_ERROR_COMPASS_DATA_ERROR
5549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (107)             INV_ERROR_CALIBRATION_LOAD
5649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (108)             INV_ERROR_CALIBRATION_STORE
5749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (109)             INV_ERROR_CALIBRATION_LEN
5849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (110)             INV_ERROR_CALIBRATION_CHECKSUM
5949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (111)             INV_ERROR_ACCEL_DATA_OVERFLOW
6049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (112)             INV_ERROR_ACCEL_DATA_UNDERFLOW
6149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (113)             INV_ERROR_ACCEL_DATA_NOT_READY
6249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (114)             INV_ERROR_ACCEL_DATA_ERROR
6349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *
6449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          The available warning codes and their associated values are:
6549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (115)             INV_WARNING_MOTION_RACE
6649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *          - (116)             INV_WARNING_QUAT_TRASHED
6749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *
6849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @{
6949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *      @file mltypes.h
7049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @}
7149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow */
7249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
7349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef MLTYPES_H
7449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define MLTYPES_H
7549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
7649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifdef __KERNEL__
7749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <linux/types.h>
7849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <asm-generic/errno-base.h>
7949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#else
8049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include "stdint_invensense.h"
8149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <errno.h>
8249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
8349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <limits.h>
8449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
8549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef REMOVE_INV_ERROR_T
8649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/*---------------------------
8749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *    ML Types
8849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *--------------------------*/
8949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
9049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/**
9149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @struct inv_error_t mltypes.h "mltypes"
9249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @brief  The MPL Error Code return type.
9349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *
9449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @code
9549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *      typedef unsigned char inv_error_t;
9649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *  @endcode
9749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow */
9849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow//typedef unsigned char inv_error_t;
9949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef int inv_error_t;
10049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
10149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
10249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef long long inv_time_t;
10349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
10449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#if !defined __GNUC__ && !defined __KERNEL__
10549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef int8_t   __s8;
10649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef int16_t  __s16;
10749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef int32_t  __s32;
10849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef int32_t  __s64;
10949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
11049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef uint8_t   __u8;
11149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef uint16_t  __u16;
11249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef uint32_t  __u32;
11349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef uint64_t  __u64;
11449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#elif !defined __KERNEL__
11549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#include <sys/types.h>
11649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
11749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
11849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef __cplusplus
11949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef __KERNEL__
12049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chowtypedef int_fast8_t bool;
12149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
12249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef false
12349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define false 0
12449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
12549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
12649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef true
12749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define true 1
12849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
12949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
13049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
13149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
13249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
13349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/*---------------------------
13449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *    ML Defines
13549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow *--------------------------*/
13649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
13749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef NULL
13849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define NULL 0
13949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
14049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
14149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef __KERNEL__
14249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef ARRAY_SIZE
14349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Dimension of an array */
14449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define ARRAY_SIZE(array) (sizeof(array)/sizeof((array)[0]))
14549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
14649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
14749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* - ML Errors. - */
14849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define ERROR_NAME(x)   (#x)
14949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define ERROR_CHECK_FIRST(first, x) \
15049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow	{ if (INV_SUCCESS == first) first = x; }
15149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
15249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_SUCCESS                       (0)
15349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Generic Error code.  Proprietary Error Codes only */
15449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_BASE                    (0x20)
15549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR                         (INV_ERROR_BASE)
15649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
15749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Compatibility and other generic error codes */
15849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_INVALID_PARAMETER             (EINVAL)
15949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FEATURE_NOT_ENABLED           (EPERM)
16049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FEATURE_NOT_IMPLEMENTED       (INV_ERROR_BASE + 4)
16149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_DMP_NOT_STARTED               (INV_ERROR_BASE + 6)
16249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_DMP_STARTED                   (INV_ERROR_BASE + 7)
16349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_NOT_OPENED                    (INV_ERROR_BASE + 8)
16449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_OPENED                        (INV_ERROR_BASE + 9)
16549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_INVALID_MODULE                (ENODEV)
16649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_MEMORY_EXAUSTED               (ENOMEM)
16749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_DIVIDE_BY_ZERO                (INV_ERROR_BASE + 12)
16849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_ASSERTION_FAILURE             (INV_ERROR_BASE + 13)
16949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FILE_OPEN                     (INV_ERROR_BASE + 14)
17049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FILE_READ                     (INV_ERROR_BASE + 15)
17149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FILE_WRITE                    (INV_ERROR_BASE + 16)
17249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_INVALID_CONFIGURATION         (INV_ERROR_BASE + 17)
17349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_NOT_AUTHORIZED                (INV_ERROR_BASE + 18)
17449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
17549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Serial Communication */
17649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SERIAL_CLOSED                 (INV_ERROR_BASE + 20)
17749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SERIAL_OPEN_ERROR             (INV_ERROR_BASE + 21)
17849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SERIAL_READ                   (INV_ERROR_BASE + 22)
17949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SERIAL_WRITE                  (INV_ERROR_BASE + 23)
18049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SERIAL_DEVICE_NOT_RECOGNIZED  (INV_ERROR_BASE + 24)
18149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
18249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* SM = State Machine */
18349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SM_TRANSITION                 (INV_ERROR_BASE + 25)
18449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_SM_IMPROPER_STATE             (INV_ERROR_BASE + 26)
18549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
18649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Fifo */
18749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FIFO_OVERFLOW                 (INV_ERROR_BASE + 30)
18849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FIFO_FOOTER                   (INV_ERROR_BASE + 31)
18949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FIFO_READ_COUNT               (INV_ERROR_BASE + 32)
19049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_FIFO_READ_DATA                (INV_ERROR_BASE + 33)
19149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
19249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Memory & Registers, Set & Get */
19349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_MEMORY_SET                    (INV_ERROR_BASE + 40)
19449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
19549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_LOG_MEMORY_ERROR              (INV_ERROR_BASE + 50)
19649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_LOG_OUTPUT_ERROR              (INV_ERROR_BASE + 51)
19749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
19849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* OS interface errors */
19949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_OS_BAD_PTR                    (INV_ERROR_BASE + 60)
20049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_OS_BAD_HANDLE                 (INV_ERROR_BASE + 61)
20149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_OS_CREATE_FAILED              (INV_ERROR_BASE + 62)
20249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_OS_LOCK_FAILED                (INV_ERROR_BASE + 63)
20349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
20449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Compass errors */
20549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_COMPASS_DATA_OVERFLOW         (INV_ERROR_BASE + 70)
20649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_COMPASS_DATA_UNDERFLOW        (INV_ERROR_BASE + 71)
20749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_COMPASS_DATA_NOT_READY        (INV_ERROR_BASE + 72)
20849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_COMPASS_DATA_ERROR            (INV_ERROR_BASE + 73)
20949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
21049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Load/Store calibration */
21149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_CALIBRATION_LOAD              (INV_ERROR_BASE + 75)
21249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_CALIBRATION_STORE             (INV_ERROR_BASE + 76)
21349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_CALIBRATION_LEN               (INV_ERROR_BASE + 77)
21449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_CALIBRATION_CHECKSUM          (INV_ERROR_BASE + 78)
21549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
21649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* Accel errors */
21749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_ACCEL_DATA_OVERFLOW           (INV_ERROR_BASE + 79)
21849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_ACCEL_DATA_UNDERFLOW          (INV_ERROR_BASE + 80)
21949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_ACCEL_DATA_NOT_READY          (INV_ERROR_BASE + 81)
22049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_ERROR_ACCEL_DATA_ERROR              (INV_ERROR_BASE + 82)
22149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
22249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* No Motion Warning States */
22349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_WARNING_MOTION_RACE                 (INV_ERROR_BASE + 83)
22449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_WARNING_QUAT_TRASHED                (INV_ERROR_BASE + 84)
22549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_WARNING_GYRO_MAG                    (INV_ERROR_BASE + 85)
22649ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
22749ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define INV_WARNING_SEMAPHORE_TIMEOUT           (INV_ERROR_BASE + 86)
22849ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
22949ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
23049ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow/* For Linux coding compliance */
23149ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#ifndef __KERNEL__
23249ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#define EXPORT_SYMBOL(x)
23349ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif
23449ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow
23549ea3e26ca3c6a779e527a0322e49a663333350aRosa Chow#endif				/* MLTYPES_H */
236