import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / pixi3_10 / gyroscope / mpu6050.h
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