#ifndef IMU_CMDs
#define IMU_CMDs

#define CMD_READ       0x80
#define CMD_WRITE      0x00
#define ADDR_MASK      0x7F

//Registers
//User bank 0
#define MCLK_RDY 0x00
#define DEVICE_CONFIG 0x01
#define SIGNAL_PATH_RESET 0x02
#define DRIVE_CONFIG1 0x03
#define DRIVE_CONFIG2 0x04
#define DRIVE_CONFIG3 0x05
#define INT_CONFIG 0x06
#define TEMP_DATA1 0x09
#define TEMP_DATA0 0x0A
#define ACCEL_DATA_X1 0x0B
#define ACCEL_DATA_X0 0x0C
#define ACCEL_DATA_Y1 0x0D
#define ACCEL_DATA_Y0 0x0E
#define ACCEL_DATA_Z1 0x0F
#define ACCEL_DATA_Z0 0x10
#define GYRO_DATA_X1 0x11
#define GYRO_DATA_X0 0x12
#define GYRO_DATA_Y1 0x13
#define GYRO_DATA_Y0 0x14
#define GYRO_DATA_Z1 0x15
#define GYRO_DATA_Z0 0x16
#define TMST_FSYNCH 0x17
#define TMST_FSYNCL 0x18
#define APEX_DATA4 0x1D
#define APEX_DATA5 0x1E
#define PWR_MGMT0 0x1F
#define GYRO_CONFIG0 0x20
#define ACCEL_CONFIG0 0x21
#define TEMP_CONFIG0 0x22
#define GYRO_CONFIG1 0x23
#define ACCEL_CONFIG1 0x24
#define APEX_CONFIG0 0x25
#define APEX_CONFIG1 0x26
#define WOM_CONFIG 0x27
#define FIFO_CONFIG1 0x28
#define FIFO_CONFIG2 0x29
#define FIFO_CONFIG3 0x2A
#define INT_SOURCE0 0x2B
#define INT_SOURCE1 0x2C
#define INT_SOURCE3 0x2D
#define INT_SOURCE4 0x2E
#define FIFO_LOST_PKT0 0x2F
#define FIFO_LOST_PKT1 0x30
#define APEX_DATA0 0x31
#define APEX_DATA1 0x32
#define APEX_DATA2 0x33
#define APEX_DATA3 0x34
#define INTF_CONFIG0 0x35
#define INTF_CONFIG1 0x36
#define INT_STATUS_DRDY 0x39
#define INT_STATUS 0x3A
#define INT_STATUS2 0x3B
#define INT_STATUS3 0x3C
#define FIFO_COUNTH 0x3D
#define FIFO_COUNTL 0x3E
#define FIFO_DATA 0x3F
#define WHO_AM_I 0x75
#define BLK_SEL_W 0x79
#define MADDR_W 0x7A
#define M_W 0x7B
#define BLK_SEL_R 0x7C
#define MADDR_R 0x7D
#define M_R 0x7E
#define REG_TEMP_LOW   0x0A
#define REG_TEMP_HIGH  0X09

#define ACCEL_DATA_X_HIGH  0x0B
#define ACCEL_DATA_X_LOW   0x0C
#define ACCEL_DATA_Y_HIGH  0x0D
#define ACCEL_DATA_Y_LOW   0x0E
#define ACCEL_DATA_Z_HIGH  0x0F
#define ACCEL_DATA_Z_LOW   0x10

#define GYRO_DATA_X_HIGH   0x11
#define GYRO_DATA_X_LOW    0x12
#define GYRO_DATA_Y_HIGH   0x13
#define GYRO_DATA_Y_LOW    0x14
#define GYRO_DATA_Z_HIGH   0x15
#define GYRO_DATA_Z_LOW    0x16

#define PWR_MGMT0          0x1F
#define WHO_AM_I           0x75

#define INTF_CONFIG0       0x35

#define BLK_SEL_W          0x79
#define BLK_SEL_R          0x7C
#define MADDR_W            0x7A
#define MADDR_R            0x7D
#define M_W                0x7B
#define M_R                0x7E

#define FIFO_COUNTH        0x3D
#define FIFO_COUNTL        0x3E
#define FIFO_DATA          0x3F
#define FIFO_CONFIG1       0x28
#define FIFO_CONFIG2       0x29

//MREG1
#define FIFO_CONFIG5       0x01
#define TMST_CONFIG1       0x00
#endif