aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/gyroscope/mpu6515/mpu6515.h
blob: b418f49768a04f46e30bc20e37de5f285f3e8e52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#ifndef MPU6515_H
#define MPU6515_H

#include <linux/ioctl.h>

#define MPU6515_ACCESS_BY_GSE_I2C

#ifdef MPU6515_ACCESS_BY_GSE_I2C
    #define MPU6515_I2C_SLAVE_ADDR		(0xD2)   /* mtk i2c not allow to probe two same address */
#else
    #define MPU6515_I2C_SLAVE_ADDR		0xD0
#endif


/* MPU6515 Register Map  (Please refer to MPU6515 Specifications) */

#define MPU6515_REG_DEVID           0x75
#define MPU6515_REG_FIFO_EN         0x23    
#define MPU6515_REG_AUX_VDD         0x01    

#define MPU6515_REG_SAMRT_DIV       0x19    
#define MPU6515_REG_CFG             0x1A	  //set external sync, full-scale range and sample rate, low pass filter bandwidth
#define MPU6515_REG_GYRO_CFG        0x1B	  // full-scale range and sample rate, 


#define MPU6515_REG_GYRO_XH         0x43    

#define MPU6515_REG_TEMPH           0x41    


#define MPU6515_REG_FIFO_CNTH       0x72    
#define MPU6515_REG_FIFO_CNTL       0x73    
#define MPU6515_REG_FIFO_DATA       0x74    
#define MPU6515_REG_FIFO_CTL        0x6A    
#define MPU6515_REG_PWR_CTL	        0x6B    
#define MPU6515_REG_PWR_CTL2        0x6C


/*MPU6515 Register Bit definitions*/ 

#define MPU6515_FIFO_GYROX_EN       0x40	//insert the X Gyro data into FIFO
#define MPU6515_FIFO_GYROY_EN       0x20	//insert the Y Gyro data into FIFO
#define MPU6515_FIFO_GYROZ_EN       0x10	//insert the Z Gyro data into FIFO

#define MPU6515_AUX_VDDIO_DIS       0x00	//disable VDD level for the secondary I2C bus clock and data lines

// for MPU6515_REG_CFG
#define MPU6515_EXT_SYNC			0x03	//0x05	//captue the state of external frame sync input pin to insert into LSB of registers
#define MPU6515_SYNC_GYROX			0x02

// for MPU6515_REG_GYRO_CFG
#define MPU6515_FS_RANGE			0x03	//set the full-scale range of the gyro sensors
#define MPU6515_FS_1000				0x02


#define MPU6515_FS_1000_LSB			33
#define MPU6515_FS_MAX_LSB			131

#define MPU6515_RATE_1K_LPFB_188HZ	0x01
#define MPU6515_RATE_1K_LPFB_256HZ	0x00

#define MPU6515_FIFO_EN				0x40	//enable FIFO operation for sensor data

#define MPU6515_FIFO_RST			0x40    //reset FIFO function

#define MPU6515_SLEEP               0x40	//enable low power sleep mode


#define MPU6515_SUCCESS             0
#define MPU6515_ERR_I2C             -1
#define MPU6515_ERR_STATUS          -3
#define MPU6515_ERR_SETUP_FAILURE   -4
#define MPU6515_ERR_GETGSENSORDATA  -5
#define MPU6515_ERR_IDENTIFICATION  -6


#define MPU6515_BUFSIZE 60

// 1 rad = 180/PI degree, MAX_LSB = 131,
// 180*131/PI = 7506
#define DEGREE_TO_RAD	7506

#endif //MPU6515_H