diff options
author | Robert Collins <rcollins@nvidia.com> | 2011-03-08 14:58:20 -0800 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-03-10 19:50:08 -0800 |
commit | f7a60fe5866e7e55bab5ebd7f46b9651da65e946 (patch) | |
tree | 12c7e35229de9a83b76ab6c4e8c2add1fb47ab51 /drivers/misc/mpu3050/mldl_cfg.h | |
parent | d1a6fe156ee0a4a8695a71fabfa4d0c61dbf3fa1 (diff) |
[ARM/tegra] : Invensense MPU code update to v3.3.3.
Update Invensense Motion Library (MPL) to production version
v3.3.3. Previous version was engineering release and is not
suitable for mass production. This version of the MPL most
notably fixes problems with suspend/resume where touch screen
would quit working during a suspend/resume cycle.
Cherry-pick from http://git-master/r/#change,22109
Change-Id: Ic2e138ee665453da4c3eaa386a1bec9abf81b7cd
Reviewed-on: http://git-master/r/22190
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Robert R Collins <rcollins@nvidia.com>
Diffstat (limited to 'drivers/misc/mpu3050/mldl_cfg.h')
-rw-r--r-- | drivers/misc/mpu3050/mldl_cfg.h | 79 |
1 files changed, 70 insertions, 9 deletions
diff --git a/drivers/misc/mpu3050/mldl_cfg.h b/drivers/misc/mpu3050/mldl_cfg.h index d714a0ee3ed8..ee3a1e3dd05f 100644 --- a/drivers/misc/mpu3050/mldl_cfg.h +++ b/drivers/misc/mpu3050/mldl_cfg.h @@ -39,12 +39,52 @@ /* - Defines. - */ /* --------------------- */ -#define SAMPLING_PERIOD(mldl_cfg) \ - (((((mldl_cfg->lpf) == 0) || ((mldl_cfg->lpf) == 7)) \ + /*************************************************************************/ + /* Sensors */ + /*************************************************************************/ + +#define ML_X_GYRO (0x0001) +#define ML_Y_GYRO (0x0002) +#define ML_Z_GYRO (0x0004) +#define ML_DMP_PROCESSOR (0x0008) + +#define ML_X_ACCEL (0x0010) +#define ML_Y_ACCEL (0x0020) +#define ML_Z_ACCEL (0x0040) + +#define ML_X_COMPASS (0x0080) +#define ML_Y_COMPASS (0x0100) +#define ML_Z_COMPASS (0x0200) + +#define ML_X_PRESSURE (0x0300) +#define ML_Y_PRESSURE (0x0800) +#define ML_Z_PRESSURE (0x1000) + +#define ML_TEMPERATURE (0x2000) +#define ML_TIME (0x4000) + +#define ML_THREE_AXIS_GYRO (0x000F) +#define ML_THREE_AXIS_ACCEL (0x0070) +#define ML_THREE_AXIS_COMPASS (0x0380) +#define ML_THREE_AXIS_PRESSURE (0x1C00) + +#define ML_FIVE_AXIS (0x007B) +#define ML_SIX_AXIS_GYRO_ACCEL (0x007F) +#define ML_SIX_AXIS_ACCEL_COMPASS (0x03F0) +#define ML_NINE_AXIS (0x03FF) +#define ML_ALL_SENSORS (0x7FFF) + +#define SAMPLING_RATE_HZ(mldl_cfg) \ + ((((((mldl_cfg)->lpf) == 0) || (((mldl_cfg)->lpf) == 7)) \ ? (8000) \ : (1000)) \ - / (mldl_cfg->divider + 1)) + / ((mldl_cfg)->divider + 1)) +#define SAMPLING_PERIOD_US(mldl_cfg) \ + ((1000000L * ((mldl_cfg)->divider + 1)) / \ + (((((mldl_cfg)->lpf) == 0) || (((mldl_cfg)->lpf) == 7)) \ + ? (8000) \ + : (1000))) /* --------------------- */ /* - Variables. - */ /* --------------------- */ @@ -52,6 +92,7 @@ /* Platform data for the MPU */ struct mldl_cfg { /* MPU related configuration */ + unsigned long requested_sensors; unsigned char addr; unsigned char int_config; unsigned char ext_sync; @@ -74,13 +115,20 @@ struct mldl_cfg { unsigned short trim; /* Driver/Kernel related state information */ - int is_suspended; + int gyro_is_bypassed; + int dmp_is_running; + int gyro_is_suspended; + int accel_is_suspended; + int compass_is_suspended; + int pressure_is_suspended; + int gyro_needs_reset; /* Slave related information */ struct ext_slave_descr *accel; struct ext_slave_descr *compass; struct ext_slave_descr *pressure; + /* Platform Data */ struct mpu3050_platform_data *pdata; }; @@ -96,20 +144,23 @@ int mpu3050_close(struct mldl_cfg *mldl_cfg, void *compass_handle, void *pressure_handle); int mpu3050_resume(struct mldl_cfg *mldl_cfg, - void *mlsl_handle, + void *gyro_handle, void *accel_handle, void *compass_handle, void *pressure_handle, + bool resume_gyro, bool resume_accel, bool resume_compass, bool resume_pressure); -int mpu3050_suspend(struct mldl_cfg *mldl_cfg, void *mlsl_handle, +int mpu3050_suspend(struct mldl_cfg *mldl_cfg, + void *gyro_handle, void *accel_handle, void *compass_handle, void *pressure_handle, - bool resume_accel, - bool resume_compass, - bool resume_pressure); + bool suspend_gyro, + bool suspend_accel, + bool suspend_compass, + bool suspend_pressure); int mpu3050_read_accel(struct mldl_cfg *mldl_cfg, void *accel_handle, unsigned char *data); @@ -129,6 +180,16 @@ int mpu3050_config_pressure(struct mldl_cfg *mldl_cfg, void *pressure_handle, struct ext_slave_config *data); +int mpu3050_get_config_accel(struct mldl_cfg *mldl_cfg, + void *accel_handle, + struct ext_slave_config *data); +int mpu3050_get_config_compass(struct mldl_cfg *mldl_cfg, + void *compass_handle, + struct ext_slave_config *data); +int mpu3050_get_config_pressure(struct mldl_cfg *mldl_cfg, + void *pressure_handle, + struct ext_slave_config *data); + #endif /* __MLDL_CFG_H__ */ |