diff options
Diffstat (limited to 'src/drivers/ao_mpu9250.h')
| -rw-r--r-- | src/drivers/ao_mpu9250.h | 71 | 
1 files changed, 71 insertions, 0 deletions
diff --git a/src/drivers/ao_mpu9250.h b/src/drivers/ao_mpu9250.h index df1be7c7..5e8e0885 100644 --- a/src/drivers/ao_mpu9250.h +++ b/src/drivers/ao_mpu9250.h @@ -130,6 +130,12 @@  #define MPU9250_I2C_SLV0_REG	0x26  #define MPU9250_I2C_SLV0_CTRL	0x27 +#define  MPU9250_I2C_SLV0_CTRL_I2C_SLV0_EN	7 +#define  MPU9250_I2C_SLV0_CTRL_I2C_SLV0_BYTE_SW	6 +#define  MPU9250_I2C_SLV0_CTRL_I2C_SLV0_REG_DIS	5 +#define  MPU9250_I2C_SLV0_CTRL_I2C_SLV0_GRP	4 +#define  MPU9250_I2C_SLV0_CTRL_I2C_SLV0_LENG	0 +  #define MPU9250_I2C_SLV1_ADDR	0x28  #define MPU9250_I2C_SLV1_REG	0x29  #define MPU9250_I2C_SLV1_CTRL	0x2a @@ -146,6 +152,11 @@  #define MPU9250_I2C_SLV4_REG	0x32  #define MPU9250_I2C_SLV4_DO	0x33  #define MPU9250_I2C_SLV4_CTRL	0x34 +#define  MPU9250_I2C_SLV4_CTRL_I2C_SLV4_EN	7 +#define  MPU9250_I2C_SLV4_CTRL_SLV4_DONE_INT_EN	6 +#define  MPU9250_I2C_SLV4_CTRL_I2C_SLV4_REG_DIS	5 +#define  MPU9250_I2C_SLV4_CTRL_I2C_MST_DLY	0 +  #define MPU9250_I2C_SLV4_DI	0x35  #define MPU9250_I2C_MST_STATUS	0x36 @@ -179,6 +190,15 @@  #define MPU9250_GYRO_ZOUT_H		0x47  #define MPU9250_GYRO_ZOUT_L		0x48 +#define MPU9250_I2C_MST_DELAY_CTRL	0x67 + +#define  MPU9250_I2C_MST_DELAY_CTRL_DELAY_ES_SHADOW	7 +#define  MPU9250_I2C_MST_DELAY_CTRL_I2C_SLV4_DLY_EN	4 +#define  MPU9250_I2C_MST_DELAY_CTRL_I2C_SLV3_DLY_EN	3 +#define  MPU9250_I2C_MST_DELAY_CTRL_I2C_SLV2_DLY_EN	2 +#define  MPU9250_I2C_MST_DELAY_CTRL_I2C_SLV1_DLY_EN	1 +#define  MPU9250_I2C_MST_DELAY_CTRL_I2C_SLV0_DLY_EN	0 +  #define MPU9250_SIGNAL_PATH_RESET	0x68  #define MPU9250_SIGNAL_PATH_RESET_GYRO_RESET	2  #define MPU9250_SIGNAL_PATH_RESET_ACCEL_RESET	1 @@ -212,6 +232,57 @@  #define MPU9250_WHO_AM_I	0x75  #define MPU9250_I_AM_9250	0x71 +/* AK8963 mag sensor on the I2C bus */ + +#define MPU9250_MAG_ADDR	0x0c + +#define MPU9250_MAG_WIA		0x00 +#define  MPU9250_MAG_WIA_VALUE		0x48 + +#define MPU9250_MAG_INFO	0x01 +#define MPU9250_MAG_ST1	0x02 +#define  MPU9250_MAG_ST1_DOR		1 +#define  MPU9250_MAG_ST1_DRDY		0 + +#define MPU9250_MAG_HXL		0x03 +#define MPU9250_MAG_HXH		0x04 +#define MPU9250_MAG_HYL		0x05 +#define MPU9250_MAG_HYH		0x06 +#define MPU9250_MAG_HZL		0x07 +#define MPU9250_MAG_HZH		0x08 +#define MPU9250_MAG_ST2		0x09 +#define  MPU9250_MAG_ST2_BITM		4 +#define  MPU9250_MAG_ST2_HOFL		3 + +#define MPU9250_MAG_CNTL1	0x0a +#define  MPU9250_MAG_CNTL1_MODE		0 +#define  MPU9250_MAG_CNTL1_MODE_POWER_DOWN	0x0 +#define  MPU9250_MAG_CNTL1_MODE_SINGLE		0x1 +#define  MPU9250_MAG_CNTL1_MODE_CONT_1		0x2	/* 8Hz */ +#define  MPU9250_MAG_CNTL1_MODE_CONT_2		0x6	/* 100Hz */ +#define  MPU9250_MAG_CNTL1_MODE_EXTERNAL	0x4 +#define  MPU9250_MAG_CNTL1_MODE_SELF_TEST	0x8 +#define  MPU9250_MAG_CNTL1_MODE_FUSE_ACCESS	0xf + +#define  MPU9250_MAG_CNTL1_BIT		4 +#define  MPU9250_MAG_CNTL1_BIT_14		0 +#define  MPU9250_MAG_CNTL1_BIT_16		1 + +#define MPU9250_MAG_CNTL2	0x0b +#define  MPU9250_MAG_CNTL2_SRST		0 + +#define MPU9250_MAG_ASTC	0x0c +#define  MPU9250_MAG_ASTC_SELF		6 + +#define MPU9250_MAG_TS1		0x0d +#define MPU9250_MAG_TS2		0x0e +#define MPU9250_MAG_I2CDIS	0x0f +#define  MPU9250_MAG_I2CDIS_VALUE	0x1d + +#define MPU9250_MAG_ASAX	0x10 +#define MPU9250_MAG_ASAY	0x11 +#define MPU9250_MAG_ASAZ	0x12 +  /* Self test acceleration is approximately 0.5g */  #define MPU9250_ST_ACCEL(full_scale)	(32767 / ((full_scale) * 2))  | 
