Merge tag 'v3.10.55' into update
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / kr076_nand / gyroscope / mpu6050.h
CommitLineData
6fa3eb70
S
1#ifndef MPU6050_H
2#define MPU6050_H
3
4#include <linux/ioctl.h>
5
6#define MPU6050_ACCESS_BY_GSE_I2C
7
8#ifdef MPU6050_ACCESS_BY_GSE_I2C
9 #define MPU6050_I2C_SLAVE_ADDR (0xD2) /* mtk i2c not allow to probe two same address */
10#else
11 #define MPU6050_I2C_SLAVE_ADDR 0xD0
12#endif
13
14
15/* MPU6050 Register Map (Please refer to MPU6050 Specifications) */
16
17#define MPU6050_REG_DEVID 0x75
18#define MPU6050_REG_FIFO_EN 0x23
19#define MPU6050_REG_AUX_VDD 0x01
20
21#define MPU6050_REG_SAMRT_DIV 0x19
22#define MPU6050_REG_CFG 0x1A //set external sync, full-scale range and sample rate, low pass filter bandwidth
23#define MPU6050_REG_GYRO_CFG 0x1B // full-scale range and sample rate,
24
25
26#define MPU6050_REG_GYRO_XH 0x43
27
28#define MPU6050_REG_TEMPH 0x41
29
30
31#define MPU6050_REG_FIFO_CNTH 0x72
32#define MPU6050_REG_FIFO_CNTL 0x73
33#define MPU6050_REG_FIFO_DATA 0x74
34#define MPU6050_REG_FIFO_CTL 0x6A
35#define MPU6050_REG_PWR_CTL 0x6B
36#define MPU6050_REG_PWR_CTL2 0x6C
37
38
39/*MPU6050 Register Bit definitions*/
40
41#define MPU6050_FIFO_GYROX_EN 0x40 //insert the X Gyro data into FIFO
42#define MPU6050_FIFO_GYROY_EN 0x20 //insert the Y Gyro data into FIFO
43#define MPU6050_FIFO_GYROZ_EN 0x10 //insert the Z Gyro data into FIFO
44
45#define MPU6050_AUX_VDDIO_DIS 0x00 //disable VDD level for the secondary I2C bus clock and data lines
46
47// for MPU6050_REG_CFG
48#define MPU6050_EXT_SYNC 0x03 //0x05 //captue the state of external frame sync input pin to insert into LSB of registers
49#define MPU6050_SYNC_GYROX 0x02
50
51// for MPU6050_REG_GYRO_CFG
52#define MPU6050_FS_RANGE 0x03 //set the full-scale range of the gyro sensors
53#define MPU6050_FS_1000 0x02
54
55
56#define MPU6050_FS_1000_LSB 33
57#define MPU6050_FS_MAX_LSB 131
58
59#define MPU6050_RATE_1K_LPFB_188HZ 0x01
60#define MPU6050_RATE_1K_LPFB_256HZ 0x00
61
62#define MPU6050_FIFO_EN 0x40 //enable FIFO operation for sensor data
63
64#define MPU6050_FIFO_RST 0x40 //reset FIFO function
65
66#define MPU6050_SLEEP 0x40 //enable low power sleep mode
67
68
69#define MPU6050_SUCCESS 0
70#define MPU6050_ERR_I2C -1
71#define MPU6050_ERR_STATUS -3
72#define MPU6050_ERR_SETUP_FAILURE -4
73#define MPU6050_ERR_GETGSENSORDATA -5
74#define MPU6050_ERR_IDENTIFICATION -6
75
76
77#define MPU6050_BUFSIZE 60
78
79// 1 rad = 180/PI degree, MAX_LSB = 131,
80// 180*131/PI = 7506
81#define DEGREE_TO_RAD 7506
82
83#endif //MPU6050_H
84