Commit | Line | Data |
---|---|---|
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 |