32 #define BMG160_DEFAULT_I2C_BUS 0    33 #define BMG160_DEFAULT_SPI_BUS 0    34 #define BMG160_DEFAULT_ADDR 0x68    37 #define BMG160_RESET_BYTE 0xb6    39 #define BMG160_CHIPID 0x0f    50         BMG160_REG_CHIP_ID                      = 0x00,
    54         BMG160_REG_RATE_X_LSB                   = 0x02,
    55         BMG160_REG_RATE_X_MSB                   = 0x03,
    56         BMG160_REG_RATE_Y_LSB                   = 0x04,
    57         BMG160_REG_RATE_Y_MSB                   = 0x05,
    58         BMG160_REG_RATE_Z_LSB                   = 0x06,
    59         BMG160_REG_RATE_Z_MSB                   = 0x07,
    61         BMG160_REG_TEMP                         = 0x08,
    63         BMG160_REG_INT_STATUS_0                 = 0x09,
    64         BMG160_REG_INT_STATUS_1                 = 0x0a,
    65         BMG160_REG_INT_STATUS_2                 = 0x0b,
    66         BMG160_REG_INT_STATUS_3                 = 0x0c,
    70         BMG160_REG_FIFO_STATUS                  = 0x0e,
    72         BMG160_REG_GYR_RANGE                    = 0x0f,
    73         BMG160_REG_GYR_BW                       = 0x10,
    74         BMG160_REG_LPM1                         = 0x11,
    75         BMG160_REG_LPM2                         = 0x12,
    77         BMG160_REG_RATE_HBW                     = 0x13,
    79         BMG160_REG_SOFTRESET                    = 0x14,
    81         BMG160_REG_INT_EN_0                     = 0x15,
    82         BMG160_REG_INT_EN_1                     = 0x16,
    84         BMG160_REG_INT_MAP_0                    = 0x17,
    85         BMG160_REG_INT_MAP_1                    = 0x18,
    86         BMG160_REG_INT_MAP_2                    = 0x19,
    88         BMG160_REG_INT_1A                       = 0x1a,
    89         BMG160_REG_INT_1B                       = 0x1b,
    90         BMG160_REG_INT_1C                       = 0x1c,
    94         BMG160_REG_INT_1E                       = 0x1e,
    98         BMG160_REG_INT_RST_LATCH                = 0x21,
   100         BMG160_REG_HIGH_TH_X                    = 0x22,
   101         BMG160_REG_HIGH_DUR_X                   = 0x23,
   102         BMG160_REG_HIGH_TH_Y                    = 0x24,
   103         BMG160_REG_HIGH_DUR_Y                   = 0x25,
   104         BMG160_REG_HIGH_TH_Z                    = 0x26,
   105         BMG160_REG_HIGH_DUR_Z                   = 0x27,
   109         BMG160_REG_SOC                          = 0x31,
   110         BMG160_REG_A_FOC                        = 0x32,
   112         BMG160_REG_TRIM_NVM_CTRL                = 0x33,
   114         BMG160_REG_SPI3_WDT                     = 0x34,
   118         BMG160_REG_OFC1                         = 0x36,
   119         BMG160_REG_OFC2                         = 0x37,
   120         BMG160_REG_OFC3                         = 0x38,
   121         BMG160_REG_OFC4                         = 0x39,
   123         BMG160_REG_TRIM_GP0                     = 0x3a,
   124         BMG160_REG_TRIM_GP1                     = 0x3b,
   126         BMG160_REG_BIST                         = 0x3c,
   128         BMG160_REG_FIFO_CONFIG_0                = 0x3d,
   129         BMG160_REG_FIFO_CONFIG_1                = 0x3e,
   131         BMG160_REG_FIFO_DATA                    = 0x3f
   139         _BMG160_INT_STATUS_0_RESERVED_BITS      = 0xf0 | 0x08 | 0x01,
   141         BMG160_INT_STATUS_0_HIGH_INT            = 0x02,
   142         BMG160_INT_STATUS_0_ANY_INT             = 0x04
   143     } BMG160_INT_STATUS_0_BITS_T;
   149         _BMG160_INT_STATUS_1_RESERVED_BITS      = 0x0f,
   151         BMG160_INT_STATUS_1_FIFO_INT            = 0x10,
   152         BMG160_INT_STATUS_1_FAST_OFFSET_INT     = 0x20,
   153         BMG160_INT_STATUS_1_AUTO_OFFSET_INT     = 0x40,
   154         BMG160_INT_STATUS_1_DATA_INT            = 0x80
   155     } BMG160_INT_STATUS_1_BITS_T;
   161         _BMG160_INT_STATUS_2_RESERVED_BITS      = 0xf0,
   163         BMG160_INT_STATUS_2_ANY_FIRST_X         = 0x01,
   164         BMG160_INT_STATUS_2_ANY_FIRST_Y         = 0x02,
   165         BMG160_INT_STATUS_2_ANY_FIRST_Z         = 0x04,
   166         BMG160_INT_STATUS_2_ANY_SIGN            = 0x08
   167     } BMG160_INT_STATUS_2_BITS_T;
   173         _BMG160_INT_STATUS_3_RESERVED_BITS      = 0xf0,
   175         BMG160_INT_STATUS_3_HIGH_FIRST_X        = 0x01,
   176         BMG160_INT_STATUS_3_HIGH_FIRST_Y        = 0x02,
   177         BMG160_INT_STATUS_3_HIGH_FIRST_Z        = 0x04,
   178         BMG160_INT_STATUS_3_HIGH_SIGN           = 0x08
   179     } BMG160_INT_STATUS_3_BITS_T;
   185         BMG160_FIFO_STATUS_FRAME_COUNTER0       = 0x01,
   186         BMG160_FIFO_STATUS_FRAME_COUNTER1       = 0x02,
   187         BMG160_FIFO_STATUS_FRAME_COUNTER2       = 0x04,
   188         BMG160_FIFO_STATUS_FRAME_COUNTER3       = 0x08,
   189         BMG160_FIFO_STATUS_FRAME_COUNTER4       = 0x10,
   190         BMG160_FIFO_STATUS_FRAME_COUNTER5       = 0x20,
   191         BMG160_FIFO_STATUS_FRAME_COUNTER6       = 0x40,
   192         _BMG160_FIFO_STATUS_FRAME_COUNTER_MASK  = 127,
   193         _BMG160_FIFO_STATUS_FRAME_COUNTER_SHIFT = 0,
   195         BMG160_FIFO_STATUS_FIFO_OVERRUN         = 0x80
   196     } BMG160_FIFO_STATUS_BITS_T;
   202         _BMG160_GYR_RANGE_RESERVED_BITS         = 0x20 | 0x10 | 0x08,
   204         BMG160_GYR_RANGE0                       = 0x01,
   205         BMG160_GYR_RANGE1                       = 0x02,
   206         BMG160_GYR_RANGE2                       = 0x04,
   207         _BMG160_GYR_RANGE_MASK                  = 7,
   208         _BMG160_GYR_RANGE_SHIFT                 = 0,
   210         BMG160_GYR_RANGE_FIXED0                 = 0x40, 
   213         BMG160_GYR_RANGE_FIXED1                 = 0x80, 
   216         _BMG160_GYR_RANGE_FIXED_MASK            = 3,
   217         _BMG160_GYR_RANGE_FIXED_SHIFT           = 6,
   218         _BMG160_GYR_RANGE_FIXED_VALUE           = 2    
   219     } BMG160_GYR_RANGE_BITS_T;
   225         BMG160_RANGE_2000                       = 0, 
   226         BMG160_RANGE_1000                       = 1,
   227         BMG160_RANGE_500                        = 2,
   228         BMG160_RANGE_250                        = 3,
   236         _BMG160_GYR_BW_RESERVED_BITS            = 0xf0,
   238         BMG160_GYR_BW0                          = 0x01,
   239         BMG160_GYR_BW1                          = 0x02,
   240         BMG160_GYR_BW2                          = 0x04,
   241         BMG160_GYR_BW3                          = 0x08,
   242         _BMG160_GYR_BW_MASK                     = 15,
   243         _BMG160_GYR_BW_SHIFT                    = 0
   244     } BMG160_GYR_BW_BITS_T;
   250         BMG160_BW_2000_UNFILTERED               = 0, 
   251         BMG160_BW_2000_230                      = 1, 
   254         BMG160_BW_1000_116                      = 2,
   255         BMG160_BW_400_47                        = 3,
   256         BMG160_BW_200_23                        = 4,
   257         BMG160_BW_100_12                        = 5,
   258         BMG160_BW_200_64                        = 6,
   267         _BMG160_LPM1_RESERVED_BITS              = 0x40 | 0x10 | 0x01,
   269         BMG160_LPM1_SLEEP_DUR0                  = 0x02, 
   272         BMG160_LPM1_SLEEP_DUR1                  = 0x04,
   273         BMG160_LPM1_SLEEP_DUR2                  = 0x08,
   274         _BMG160_LPM1_SLEEP_MASK                 = 7,
   275         _BMG160_LPM1_SLEEP_SHIFT                = 1,
   280         BMG160_LPM1_POWER_MODE0                 = 0x20, 
   281         BMG160_LPM1_POWER_MODE1                 = 0x40, 
   282         BMG160_LPM1_POWER_MODE2                 = 0x80, 
   283         _BMG160_LPM1_POWER_MODE_MASK            = 7,
   284         _BMG160_LPM1_POWER_MODE_SHIFT           = 5
   285     } BMG160_LPM1_BITS_T;
   291         BMG160_SLEEP_DUR_2                      = 0, 
   292         BMG160_SLEEP_DUR_4                      = 1,
   293         BMG160_SLEEP_DUR_5                      = 2,
   294         BMG160_SLEEP_DUR_8                      = 3,
   295         BMG160_SLEEP_DUR_10                     = 4,
   296         BMG160_SLEEP_DUR_15                     = 5,
   297         BMG160_SLEEP_DUR_18                     = 6,
   298         BMG160_SLEEP_DUR_20                     = 7
   299     } BMG160_SLEEP_DUR_T;
   305         BMG160_POWER_MODE_NORMAL                = 0,
   306         BMG160_POWER_MODE_DEEP_SUSPEND          = 1,
   307         BMG160_POWER_MODE_SUSPEND               = 4
   308     } BMG160_POWER_MODE_T;
   314         _BMG160_LPM2_RESERVED_BITS              = 0x08,
   316         BMG160_LPM2_AUTOSLEEP_DUR0              = 0x01,
   317         BMG160_LPM2_AUTOSLEEP_DUR1              = 0x02,
   318         BMG160_LPM2_AUTOSLEEP_DUR2              = 0x04,
   319         _BMG160_LPM2_AUTOSLEEP_DUR_MASK         = 7,
   320         _BMG160_LPM2_AUTOSLEEP_DUR_SHIFT        = 0,
   322         BMG160_LPM2_EXT_TRIG_SEL0               = 0x10,
   323         BMG160_LPM2_EXT_TRIG_SEL1               = 0x20,
   324         _BMG160_LPM2_EXT_TRIG_SEL_MASK          = 3,
   325         _BMG160_LPM2_EXT_TRIG_SEL_SHIFT         = 4,
   327         BMG160_LPM2_POWER_SAVE_MODE             = 0x40,
   328         BMG160_LPM2_FAST_POWERUP                = 0x80
   329     } BMG160_LPM2_BITS_T;
   336         BMG160_AUTOSLEEP_DUR_NONE               = 0,
   337         BMG160_AUTOSLEEP_DUR_4MS                = 1,
   338         BMG160_AUTOSLEEP_DUR_5MS                = 2,
   339         BMG160_AUTOSLEEP_DUR_8MS                = 3,
   340         BMG160_AUTOSLEEP_DUR_10MS               = 4,
   341         BMG160_AUTOSLEEP_DUR_15MS               = 5,
   342         BMG160_AUTOSLEEP_DUR_20MS               = 6,
   343         BMG160_AUTOSLEEP_DUR_40MS               = 7
   344     } BMG160_AUTOSLEEP_DUR_T;
   350         BMG160_EXT_TRIG_SEL_NONE                = 0,
   351         BMG160_EXT_TRIG_SEL_INT1                = 1,
   352         BMG160_EXT_TRIG_SEL_INT2                = 2,
   353         BMG160_EXT_TRIG_SEL_SDO                 = 3 
   355     } BMG160_EXT_TRIG_SEL_T;
   361         _BMG160_RATE_HBW_RESERVED_BITS          = 0x0f | 0x10 | 0x20,
   363         BMG160_RATE_HBW_SHADOW_DIS              = 0x40,
   364         BMG160_RATE_HBW_DATA_HIGH_BW            = 0x80
   365     } BMG160_RATE_HBW_BITS_T;
   371         _BMG160_INT_EN_0_RESERVED_BITS          = 0x20 | 0x10 | 0x08 | 0x02
   374         BMG160_INT_EN_0_AUTO_OFFSET_EN          = 0x04,
   376         BMG160_INT_EN_0_FIFO_EN                 = 0x40,
   377         BMG160_INT_EN_0_DATA_EN                 = 0x80
   378     } BMG160_INT_EN_0_BITS_T;
   384         _BMG160_INT_EN_1_INT1_RESERVED_BITS     = 0xf0,
   386         BMG160_INT_EN_1_INT1_LVL                = 0x01, 
   387         BMG160_INT_EN_1_INT1_OD                 = 0x02, 
   390         BMG160_INT_EN_1_INT2_LVL                = 0x04,
   391         BMG160_INT_EN_1_INT2_OD                 = 0x08
   392     } BMG160_INT_EN_1_BITS_T;
   398         _BMG160_INT_MAP_0_RESERVED_BITS         = 0xf0 | 0x04 | 0x01,
   400         BMG160_INT_MAP_0_INT1_ANY               = 0x02,
   401         BMG160_INT_MAP_0_INT1_HIGH              = 0x08
   402     } BMG160_INT_MAP_0_BITS_T;
   408         BMG160_INT_MAP_1_INT1_DATA              = 0x01,
   409         BMG160_INT_MAP_1_INT1_FAST_OFFSET       = 0x02,
   410         BMG160_INT_MAP_1_INT1_FIFO              = 0x04,
   411         BMG160_INT_MAP_1_INT1_AUTO_OFFSET       = 0x08,
   412         BMG160_INT_MAP_1_INT2_AUTO_OFFSET       = 0x10,
   413         BMG160_INT_MAP_1_INT2_FIFO              = 0x20,
   414         BMG160_INT_MAP_1_INT2_FAST_OFFSET       = 0x40,
   415         BMG160_INT_MAP_1_INT2_DATA              = 0x80
   416     } BMG160_INT_MAP_1_BITS_T;
   422         _BMG160_INT_1A_RESERVED_BITS           = 0xd5,
   424         BMG160_INT_1A_ANY_UNFILT_DATA          = 0x02,
   425         BMG160_INT_1A_HIGH_UNFILT_DATA         = 0x08,
   426         BMG160_INT_1A_SLOW_OFFSET_UNFILT       = 0x20
   427     } BMG160_INT_1A_BITS_T;
   433         BMG160_INT_1B_ANY_TH0                  = 0x01,
   434         BMG160_INT_1B_ANY_TH1                  = 0x02,
   435         BMG160_INT_1B_ANY_TH2                  = 0x04,
   436         BMG160_INT_1B_ANY_TH3                  = 0x08,
   437         BMG160_INT_1B_ANY_TH4                  = 0x10,
   438         BMG160_INT_1B_ANY_TH5                  = 0x20,
   439         BMG160_INT_1B_ANY_TH6                  = 0x40,
   440         _BMG160_INT_1B_ANY_TH_MASK             = 127,
   441         _BMG160_INT_1B_ANY_TH_SHIFT            = 0,
   443         BMG160_INT_1B_FAST_OFFSET_UNFILT       = 0x80
   444     } BMG160_INT_1B_BITS_T;
   450         _BMG160_INT_1C_RESERVED_BITS           = 0x08,
   452         BMG160_INT_1C_ANY_EN_X                 = 0x01,
   453         BMG160_INT_1C_ANY_EN_Y                 = 0x02,
   454         BMG160_INT_1C_ANY_EN_Z                 = 0x04,
   456         BMG160_INT_1C_ANY_DUR_SAMPLE0          = 0x10,
   457         BMG160_INT_1C_ANY_DUR_SAMPLE1          = 0x20,
   458         BMG160_INT_1C_ANY_DUR_SAMPLE_MASK      = 3,
   459         BMG160_INT_1C_ANY_DUR_SAMPLE_SHIFT     = 4,
   461         BMG160_INT_1C_AWAKE_DUR0               = 0x40,
   462         BMG160_INT_1C_AWAKE_DUR1               = 0x80,
   463         BMG160_INT_1C_AWAKE_DUR_MASK           = 3,
   464         BMG160_INT_1C_AWAKE_DUR_SHIFT          = 6
   465     } BMG160_INT_1C_BITS_T;
   471         BMG160_ANY_DUR_SAMPLE_4                 = 0, 
   472         BMG160_ANY_DUR_SAMPLE_8                 = 1,
   473         BMG160_ANY_DUR_SAMPLE_12                = 2,
   474         BMG160_ANY_DUR_SAMPLE_16                = 3
   475     } BMG160_ANY_DUR_SAMPLE_T;
   481         BMG160_AWAKE_DUR_SAMPLE_8               = 0, 
   482         BMG160_AWAKE_DUR_SAMPLE_16              = 1,
   483         BMG160_AWAKE_DUR_SAMPLE_32              = 2,
   484         BMG160_AWAKE_DUR_SAMPLE_64              = 3
   485     } BMG160_AWAKE_DUR_SAMPLE_T;
   491         _BMG160_INT_1E_RESERVED_BITS           = 0x7f,
   493         BMG160_INT_1E_FIFO_WM_EN               = 0x80
   494     } BMG160_INT_1E_BITS_T;
   500         _BMG160_INT_RST_LATCH_RESERVED_BITS     = 0x20,
   502         BMG160_INT_RST_LATCH0                   = 0x01,
   503         BMG160_INT_RST_LATCH1                   = 0x02,
   504         BMG160_INT_RST_LATCH2                   = 0x04,
   505         BMG160_INT_RST_LATCH3                   = 0x08,
   506         _BMG160_INT_RST_LATCH_MASK              = 15,
   507         _BMG160_INT_RST_LATCH_SHIFT             = 0,
   509         BMG160_INT_RST_LATCH_STATUS_BIT         = 0x10,
   511         BMG160_INT_RST_LATCH_OFFSET_RESET       = 0x40,
   512         BMG160_INT_RST_LATCH_RESET_INT          = 0x80
   513     } BMG160_INT_RST_LATCH_BITS_T;
   519         BMG160_RST_LATCH_NON_LATCHED            = 0,
   520         BMG160_RST_LATCH_TEMPORARY_250MS        = 1,
   521         BMG160_RST_LATCH_TEMPORARY_500MS        = 2,
   522         BMG160_RST_LATCH_TEMPORARY_1S           = 3,
   523         BMG160_RST_LATCH_TEMPORARY_2S           = 4,
   524         BMG160_RST_LATCH_TEMPORARY_4S           = 5,
   525         BMG160_RST_LATCH_TEMPORARY_8S           = 6,
   526         BMG160_RST_LATCH_LATCHED                = 7,
   530         BMG160_RST_LATCH_TEMPORARY_250US        = 9,
   531         BMG160_RST_LATCH_TEMPORARY_500US        = 10,
   532         BMG160_RST_LATCH_TEMPORARY_1MS          = 11,
   533         BMG160_RST_LATCH_TEMPORARY_12_5MS       = 12,
   534         BMG160_RST_LATCH_TEMPORARY_25MS         = 13,
   535         BMG160_RST_LATCH_TEMPORARY_50MS         = 14
   538     } BMG160_RST_LATCH_T;
   544         BMG160_HIGH_TH_EN                       = 0x01,
   546         BMG160_HIGH_TH_TH0                      = 0x02,
   547         BMG160_HIGH_TH_TH1                      = 0x04,
   548         BMG160_HIGH_TH_TH2                      = 0x08,
   549         BMG160_HIGH_TH_TH3                      = 0x10,
   550         BMG160_HIGH_TH_TH4                      = 0x20,
   551         _BMG160_HIGH_TH_TH_MASK                 = 31,
   552         _BMG160_HIGH_TH_TH_SHIFT                = 1,
   554         BMG160_HIGH_TH_HY0                      = 0x40,
   555         BMG160_HIGH_TH_HY1                      = 0x80,
   556         _BMG160_HIGH_TH_HY_MASK                 = 3,
   557         _BMG160_HIGH_TH_HY_SHIFT                = 6
   558     } BMG160_HIGH_TH_BITS_T;
   564         BMG160_SOC_SLOW_OFFSET_EN_X             = 0x01,
   565         BMG160_SOC_SLOW_OFFSET_EN_Y             = 0x02,
   566         BMG160_SOC_SLOW_OFFSET_EN_Z             = 0x04,
   568         BMG160_SOC_SLOW_OFFSET_DUR0             = 0x08,
   569         BMG160_SOC_SLOW_OFFSET_DUR1             = 0x10,
   570         BMG160_SOC_SLOW_OFFSET_DUR2             = 0x20,
   571         _BMG160_SOC_SLOW_OFFSET_DUR_MASK        = 7,
   572         _BMG160_SOC_SLOW_OFFSET_DUR_SHIFT       = 3,
   574         BMG160_SOC_SLOW_OFFSET_TH0              = 0x40,
   575         BMG160_SOC_SLOW_OFFSET_TH1              = 0x80,
   576         _BMG160_SOC_SLOW_OFFSET_TH_MASK         = 3,
   577         _BMG160_SOC_SLOW_OFFSET_TH_SHIFT        = 6
   584         BMG160_SLOW_OFFSET_DUR_40MS             = 0, 
   585         BMG160_SLOW_OFFSET_DUR_80MS             = 1,
   586         BMG160_SLOW_OFFSET_DUR_160MS            = 2,
   587         BMG160_SLOW_OFFSET_DUR_320MS            = 3,
   588         BMG160_SLOW_OFFSET_DUR_640MS            = 4,
   589         BMG160_SLOW_OFFSET_DUR_1280MS           = 5
   590     } BMG160_SLOW_OFFSET_DUR_T;
   596         BMG160_SLOW_OFFSET_TH_0_1               = 0, 
   597         BMG160_SLOW_OFFSET_TH_0_2               = 1,
   598         BMG160_SLOW_OFFSET_TH_0_5               = 2,
   599         BMG160_SLOW_OFFSET_TH_1                 = 3
   600     } BMG160_SLOW_OFFSET_TH_T;
   606         BMG160_A_FOC_FAST_OFFSET_EN_X           = 0x01,
   607         BMG160_A_FOC_FAST_OFFSET_EN_Y           = 0x02,
   608         BMG160_A_FOC_FAST_OFFSET_EN_Z           = 0x04,
   610         BMG160_A_FOC_FAST_OFFSET_EN             = 0x08,
   612         BMG160_A_FOC_FAST_OFFSET_WORDLENGTH0    = 0x10,
   613         BMG160_A_FOC_FAST_OFFSET_WORDLENGTH1    = 0x20,
   614         _BMG160_A_FOC_FAST_OFFSET_WORDLENGTH_MASK = 3,
   615         _BMG160_A_FOC_FAST_OFFSET_WORDLENGTH_SHIFT = 4,
   617         BMG160_A_FOC_AUTO_OFFSET_WORDLENGTH0    = 0x40,
   618         BMG160_A_FOC_AUTO_OFFSET_WORDLENGTH1    = 0x80,
   619         _BMG160_A_FOC_AUTO_OFFSET_WORDLENGTH_MASK = 3,
   620         _BMG160_A_FOC_AUTO_OFFSET_WORDLENGTH_SHIFT = 6
   621     } BMG160_A_FOC_BITS_T;
   627         BMG160_FAST_OFFSET_WORDLENGTH_32        = 0, 
   628         BMG160_FAST_OFFSET_WORDLENGTH_64        = 1,
   629         BMG160_FAST_OFFSET_WORDLENGTH_128       = 2,
   630         BMG160_FAST_OFFSET_WORDLENGTH_256       = 3
   631     } BMG160_FAST_OFFSET_WORDLENGTH_T;
   637         BMG160_AUTO_OFFSET_WORDLENGTH_32        = 0, 
   638         BMG160_AUTO_OFFSET_WORDLENGTH_64        = 1,
   639         BMG160_AUTO_OFFSET_WORDLENGTH_128       = 2,
   640         BMG160_AUTO_OFFSET_WORDLENGTH_256       = 3
   641     } BMG160_AUTO_OFFSET_WORDLENGTH_T;
   647         BMG160_TRIM_NVM_CTRL_NVM_PROG_MODE     = 0x01,
   648         BMG160_TRIM_NVM_CTRL_NVM_PROG_TRIG     = 0x02,
   649         BMG160_TRIM_NVM_CTRL_NVM_PROG_RDY      = 0x04,
   650         BMG160_TRIM_NVM_CTRL_NVM_PROG_LOAD     = 0x08,
   652         BMG160_TRIM_NVM_CTRL_NVM_REMAIN0       = 0x10,
   653         BMG160_TRIM_NVM_CTRL_NVM_REMAIN1       = 0x20,
   654         BMG160_TRIM_NVM_CTRL_NVM_REMAIN2       = 0x40,
   655         BMG160_TRIM_NVM_CTRL_NVM_REMAIN3       = 0x80,
   656         _BMG160_TRIM_NVM_CTRL_NVM_REMAIN_MASK  = 15,
   657         _BMG160_TRIM_NVM_CTRL_NVM_REMAIN_SHIFT = 4
   658     } BMG160_TRIM_NVM_CTRL_BITS_T;
   664         _BMG160_SPI3_WDT_RESERVED_BITS         = 0xf0 | 0x08,
   666         BMG160_SPI3_WDT_SPI3                   = 0x01, 
   670         BMG160_SPI3_WDT_I2C_WDT_SEL            = 0x02,
   671         BMG160_SPI3_WDT_I2C_WDT_EN             = 0x04
   674     } BMG160_SPI3_WDT_BITS_T;
   680         BMG160_OFC1_OFFSET_Z0                  = 0x01, 
   681         BMG160_OFC1_OFFSET_Z1                  = 0x02,
   682         BMG160_OFC1_OFFSET_Z2                  = 0x04,
   683         _BMG160_OFC1_OFFSET_Z_MASK             = 7,
   684         _BMG160_OFC1_OFFSET_Z_SHIFT            = 0,
   686         BMG160_OFC1_OFFSET_Y0                  = 0x08, 
   687         BMG160_OFC1_OFFSET_Y1                  = 0x10,
   688         BMG160_OFC1_OFFSET_Y2                  = 0x20,
   689         _BMG160_OFC1_OFFSET_Y_MASK             = 7,
   690         _BMG160_OFC1_OFFSET_Y_SHIFT            = 3,
   692         BMG160_OFC1_OFFSET_X0                  = 0x08, 
   694         BMG160_OFC1_OFFSET_X1                  = 0x10,
   695         _BMG160_OFC1_OFFSET_X_MASK             = 3,
   696         _BMG160_OFC1_OFFSET_X_SHIFT            = 6
   697     } BMG160_OFC1_OFFSET_BITS_T;
   703         BMG160_GP0_OFFSET_Z                    = 0x01, 
   704         BMG160_GP0_OFFSET_Y                    = 0x02, 
   706         BMG160_GP0_OFFSET_X0                   = 0x04, 
   707         BMG160_GP0_OFFSET_X1                   = 0x08,
   708         _BMG160_GP0_OFFSET_X_MASK              = 3,
   709         _BMG160_GP0_OFFSET_X_SHIFT             = 2,
   711         BMG160_GP0_GP00                        = 0x10,
   712         BMG160_GP0_GP01                        = 0x20,
   713         BMG160_GP0_GP02                        = 0x40,
   714         BMG160_GP0_GP03                        = 0x80,
   715         _BMG160_GP0_GP0_MASK                   = 15,
   716         _BMG160_GP0_GP0_SHIFT                  = 4
   723         _BMG160_BIST_RESERVED_BITS             = 0x80 | 0x40 | 0x20 | 0x08,
   725         BMG160_BIST_TRIG_BIST                  = 0x01,
   726         BMG160_BIST_BIST_RDY                   = 0x02,
   727         BMG160_BIST_BIST_FAIL                  = 0x04,
   729         BMG160_BIST_RATE_OK                    = 0x10
   730     } BMG160_BIST_BITS_T;
   736         BMG160_FIFO_CONFIG_0_WATER_MARK0       = 0x01,
   737         BMG160_FIFO_CONFIG_0_WATER_MARK1       = 0x02,
   738         BMG160_FIFO_CONFIG_0_WATER_MARK2       = 0x04,
   739         BMG160_FIFO_CONFIG_0_WATER_MARK3       = 0x08,
   740         BMG160_FIFO_CONFIG_0_WATER_MARK4       = 0x10,
   741         BMG160_FIFO_CONFIG_0_WATER_MARK5       = 0x20,
   742         BMG160_FIFO_CONFIG_0_WATER_MARK6       = 0x40,
   743         _BMG160_FIFO_CONFIG_0_WATER_MARK_MASK  = 127,
   744         _BMG160_FIFO_CONFIG_0_WATER_MARK_SHIFT = 0,
   746         BMG160_FIFO_CONFIG_0_TAG               = 0x80
   747     } BMG160_FIFO_CONFIG_0_BITS_T;
   753         _BMG160_FIFO_CONFIG_1_RESERVED_BITS     = 0x20 | 0x10 |0x08 | 0x04,
   755         BMG160_FIFO_CONFIG_1_FIFO_DATA_SEL0     = 0x01,
   756         BMG160_FIFO_CONFIG_1_FIFO_DATA_SEL1     = 0x02,
   757         _BMG160_FIFO_CONFIG_1_FIFO_DATA_SEL     = 3,
   758         _BMG160_FIFO_CONFIG_1_FIFO_DATA_SHIFT   = 0,
   760         BMG160_FIFO_CONFIG_1_FIFO_MODE0         = 0x40,
   761         BMG160_FIFO_CONFIG_1_FIFO_MODE1         = 0x80,
   762         _BMG160_FIFO_CONFIG_1_FIFO_MODE_MASK    = 3,
   763         _BMG160_FIFO_CONFIG_1_FIFO_MODE_SHIFT   = 6
   764     } BMG160_FIFO_CONFIG_1_BITS_T;
   770         BMG160_FIFO_DATA_SEL_XYZ               = 0,
   771         BMG160_FIFO_DATA_SEL_X                 = 1,
   772         BMG160_FIFO_DATA_SEL_Y                 = 2,
   773         BMG160_FIFO_DATA_SEL_Z                 = 3
   774     } BMG160_FIFO_DATA_SEL_T;
   780         BMG160_FIFO_MODE_BYPASS                = 0,
   781         BMG160_FIFO_MODE_FIFO                  = 1,
   782         BMG160_FIFO_MODE_STREAM                = 2
   783     } BMG160_FIFO_MODE_T;
   787         BMG160_INTERRUPT_INT1,
   788         BMG160_INTERRUPT_INT2
   789     } BMG160_INTERRUPT_PINS_T;