32 #define BMA250E_DEFAULT_I2C_BUS 0    33 #define BMA250E_DEFAULT_SPI_BUS 0    34 #define BMA250E_DEFAULT_ADDR 0x18    37 #define BMA250E_RESET_BYTE 0xb6    48         BMA250E_REG_CHIP_ID                      = 0x00,
    52         BMA250E_REG_ACCD_X_LSB                   = 0x02,
    53         BMA250E_REG_ACCD_X_MSB                   = 0x03,
    54         BMA250E_REG_ACCD_Y_LSB                   = 0x04,
    55         BMA250E_REG_ACCD_Y_MSB                   = 0x05,
    56         BMA250E_REG_ACCD_Z_LSB                   = 0x06,
    57         BMA250E_REG_ACCD_Z_MSB                   = 0x07,
    59         BMA250E_REG_TEMP                         = 0x08,
    61         BMA250E_REG_INT_STATUS_0                 = 0x09,
    62         BMA250E_REG_INT_STATUS_1                 = 0x0a,
    63         BMA250E_REG_INT_STATUS_2                 = 0x0b,
    64         BMA250E_REG_INT_STATUS_3                 = 0x0c,
    68         BMA250E_REG_FIFO_STATUS                  = 0x0e,
    70         BMA250E_REG_PMU_RANGE                    = 0x0f,
    71         BMA250E_REG_PMU_BW                       = 0x10,
    72         BMA250E_REG_PMU_LPW                      = 0x11,
    73         BMA250E_REG_PMU_LOW_POWER                = 0x12,
    75         BMA250E_REG_ACC_HBW                      = 0x13,
    77         BMA250E_REG_SOFTRESET                    = 0x14,
    81         BMA250E_REG_INT_EN_0                     = 0x16,
    82         BMA250E_REG_INT_EN_1                     = 0x17,
    83         BMA250E_REG_INT_EN_2                     = 0x18,
    85         BMA250E_REG_INT_MAP_0                    = 0x19,
    86         BMA250E_REG_INT_MAP_1                    = 0x1a,
    87         BMA250E_REG_INT_MAP_2                    = 0x1b,
    91         BMA250E_REG_INT_SRC                      = 0x1e,
    95         BMA250E_REG_INT_OUT_CTRL                 = 0x20,
    96         BMA250E_REG_INT_RST_LATCH                = 0x21,
    98         BMA250E_REG_INT_0                        = 0x22,
    99         BMA250E_REG_INT_1                        = 0x23,
   100         BMA250E_REG_INT_2                        = 0x24,
   101         BMA250E_REG_INT_3                        = 0x25,
   102         BMA250E_REG_INT_4                        = 0x26,
   103         BMA250E_REG_INT_5                        = 0x27,
   104         BMA250E_REG_INT_6                        = 0x28,
   105         BMA250E_REG_INT_7                        = 0x29,
   106         BMA250E_REG_INT_8                        = 0x2a,
   107         BMA250E_REG_INT_9                        = 0x2b,
   108         BMA250E_REG_INT_A                        = 0x2c,
   109         BMA250E_REG_INT_B                        = 0x2d,
   110         BMA250E_REG_INT_C                        = 0x2e,
   111         BMA250E_REG_INT_D                        = 0x2f,
   113         BMA250E_REG_FIFO_CONFIG_0                = 0x30,
   117         BMA250E_REG_PMU_SELFTEST                 = 0x32,
   119         BMA250E_REG_TRIM_NVM_CTRL                = 0x33,
   121         BMA250E_REG_SPI3_WDT                     = 0x34,
   125         BMA250E_REG_OFC_CTRL                     = 0x36,
   126         BMA250E_REG_OFC_SETTING                  = 0x37,
   128         BMA250E_REG_OFC_OFFSET_X                 = 0x38,
   129         BMA250E_REG_OFC_OFFSET_Y                 = 0x39,
   130         BMA250E_REG_OFC_OFFSET_Z                 = 0x3a,
   132         BMA250E_REG_TRIM_GP0                     = 0x3b,
   133         BMA250E_REG_TRIM_GP1                     = 0x3c,
   137         BMA250E_REG_FIFO_CONFIG_1                = 0x3e,
   138         BMA250E_REG_FIFO_DATA                    = 0x3f
   147         BMA250E_ACCD10_LSB_NEW_DATA              = 0x01, 
   154         BMA250E_ACCD10_LSB0                      = 0x40, 
   157         BMA250E_ACCD10_LSB1                      = 0x80,
   158         _BMA250E_ACCD10_LSB_MASK                 = 3,
   159         _BMA250E_ACCD10_LSB_SHIFT                = 6
   160     } BMA250E_ACCD10_LSB_BITS_T;
   167         BMA250E_ACCD12_LSB_NEW_DATA              = 0x01, 
   174         BMA250E_ACCD12_LSB0                      = 0x10, 
   177         BMA250E_ACCD12_LSB1                      = 0x20,
   178         BMA250E_ACCD12_LSB2                      = 0x40,
   179         BMA250E_ACCD12_LSB3                      = 0x80,
   180         _BMA250E_ACCD12_LSB_MASK                 = 15,
   181         _BMA250E_ACCD12_LSB_SHIFT                = 4
   182     } BMA250E_ACCD12_LSB_BITS_T;
   188         BMA250E_INT_STATUS_0_LOW                 = 0x01,
   189         BMA250E_INT_STATUS_0_HIGH                = 0x02,
   190         BMA250E_INT_STATUS_0_SLOPE               = 0x04,
   191         BMA250E_INT_STATUS_0_SLO_NOT_MOT         = 0x08,
   192         BMA250E_INT_STATUS_0_D_TAP               = 0x10,
   193         BMA250E_INT_STATUS_0_S_TAP               = 0x20,
   194         BMA250E_INT_STATUS_0_ORIENT              = 0x40,
   195         BMA250E_INT_STATUS_0_FLAT                = 0x80
   196     } BMA250E_INT_STATUS_0_BITS_T;
   202         _BMA250E_INT_STATUS_1_RESERVED_BITS      = 0x0f | 0x10,
   204         BMA250E_INT_STATUS_1_FIFO_FULL           = 0x20,
   205         BMA250E_INT_STATUS_1_FIFO_WM             = 0x40,
   206         BMA250E_INT_STATUS_1_DATA                = 0x80 
   207     } BMA250E_INT_STATUS_1_BITS_T;
   213         BMA250E_INT_STATUS_2_SLOPE_FIRST_X       = 0x01,
   214         BMA250E_INT_STATUS_2_SLOPE_FIRST_Y       = 0x02,
   215         BMA250E_INT_STATUS_2_SLOPE_FIRST_Z       = 0x04,
   216         BMA250E_INT_STATUS_2_SLOPE_SIGN          = 0x08,
   217         BMA250E_INT_STATUS_2_TAP_FIRST_X         = 0x10,
   218         BMA250E_INT_STATUS_2_TAP_FIRST_Y         = 0x20,
   219         BMA250E_INT_STATUS_2_TAP_FIRST_Z         = 0x40,
   220         BMA250E_INT_STATUS_2_TAP_SIGN            = 0x80
   221     } BMA250E_INT_STATUS_2_BITS_T;
   227         BMA250E_INT_STATUS_3_HIGH_FIRST_X        = 0x01,
   228         BMA250E_INT_STATUS_3_HIGH_FIRST_Y        = 0x02,
   229         BMA250E_INT_STATUS_3_HIGH_FIRST_Z        = 0x04,
   230         BMA250E_INT_STATUS_3_HIGH_SIGN           = 0x08,
   232         BMA250E_INT_STATUS_3_ORIENT0             = 0x10,
   233         BMA250E_INT_STATUS_3_ORIENT1             = 0x20,
   234         BMA250E_INT_STATUS_3_ORIENT2             = 0x40,
   235         _BMA250E_INT_STATUS_3_ORIENT_MASK        = 7,
   236         _BMA250E_INT_STATUS_3_ORIENT_SHIFT       = 4,
   238         BMA250E_INT_STATUS_3_FLAT                = 0x80
   239     } INT_STATUS_3_BITS_T;
   245         BMA250E_ORIENT_POTRAIT_UPRIGHT           = 0,
   246         BMA250E_ORIENT_POTRAIT_UPSIDE_DOWN       = 1,
   247         BMA250E_ORIENT_LANDSCAPE_LEFT            = 2,
   248         BMA250E_ORIENT_LANDSCAPE_RIGHT           = 3,
   255         BMA250E_FIFO_STATUS_FRAME_COUNTER0       = 0x01,
   256         BMA250E_FIFO_STATUS_FRAME_COUNTER1       = 0x02,
   257         BMA250E_FIFO_STATUS_FRAME_COUNTER2       = 0x04,
   258         BMA250E_FIFO_STATUS_FRAME_COUNTER3       = 0x08,
   259         BMA250E_FIFO_STATUS_FRAME_COUNTER4       = 0x10,
   260         BMA250E_FIFO_STATUS_FRAME_COUNTER5       = 0x20,
   261         BMA250E_FIFO_STATUS_FRAME_COUNTER6       = 0x40,
   262         _BMA250E_FIFO_STATUS_FRAME_COUNTER_MASK  = 127,
   263         _BMA250E_FIFO_STATUS_FRAME_COUNTER_SHIFT = 0,
   265         BMA250E_FIFO_STATUS_FIFO_OVERRUN         = 0x80
   266     } BMA250E_FIFO_STATUS_BITS_T;
   272         BMA250E_PMU_RANGE0                       = 0x01,
   273         BMA250E_PMU_RANGE1                       = 0x02,
   274         BMA250E_PMU_RANGE2                       = 0x04,
   275         BMA250E_PMU_RANGE3                       = 0x08,
   276         _BMA250E_PMU_RANGE_MASK                  = 15,
   277         _BMA250E_PMU_RANGE_SHIFT                 = 0
   280     } BMA250E_PMU_RANGE_BITS_T;
   286         BMA250E_RANGE_2G                         = 3,
   287         BMA250E_RANGE_4G                         = 5,
   288         BMA250E_RANGE_8G                         = 8,
   289         BMA250E_RANGE_16G                        = 12
   296         BMA250E_PMU_BW0                          = 0x01,
   297         BMA250E_PMU_BW1                          = 0x02,
   298         BMA250E_PMU_BW2                          = 0x04,
   299         BMA250E_PMU_BW3                          = 0x08,
   300         BMA250E_PMU_BW4                          = 0x10,
   301         _BMA250E_PMU_BW_MASK                     = 31,
   302         _BMA250E_PMU_BW_SHIFT                    = 0
   305     } BMA250E_PMU_BW_BITS_T;
   312         BMA250E_BW_15_63                         = 9,
   313         BMA250E_BW_31_25                         = 10,
   314         BMA250E_BW_62_5                          = 11,
   326         _BMA250E_PMU_LPW_RESERVED_MASK           = 0x01,
   328         BMA250E_PMU_LPW_SLEEP_DUR0               = 0x02, 
   331         BMA250E_PMU_LPW_SLEEP_DUR1               = 0x04,
   332         BMA250E_PMU_LPW_SLEEP_DUR2               = 0x08,
   333         BMA250E_PMU_LPW_SLEEP_DUR3               = 0x10,
   334         _BMA250E_PMU_LPW_SLEEP_MASK              = 15,
   335         _BMA250E_PMU_LPW_SLEEP_SHIFT             = 1,
   341         BMA250E_PMU_LPW_POWER_MODE0              = 0x20, 
   342         BMA250E_PMU_LPW_POWER_MODE1              = 0x40, 
   343         BMA250E_PMU_LPW_POWER_MODE2              = 0x80, 
   344         _BMA250E_PMU_LPW_POWER_MODE_MASK         = 7,
   345         _BMA250E_PMU_LPW_POWER_MODE_SHIFT        = 5
   346     } BMA250E_PMU_LPW_BITS_T;
   352         BMA250E_SLEEP_DUR_0_5                    = 0, 
   353         BMA250E_SLEEP_DUR_1                      = 6,
   354         BMA250E_SLEEP_DUR_2                      = 7,
   355         BMA250E_SLEEP_DUR_4                      = 8,
   356         BMA250E_SLEEP_DUR_6                      = 9,
   357         BMA250E_SLEEP_DUR_10                     = 10,
   358         BMA250E_SLEEP_DUR_25                     = 11,
   359         BMA250E_SLEEP_DUR_50                     = 12,
   360         BMA250E_SLEEP_DUR_100                    = 13,
   361         BMA250E_SLEEP_DUR_500                    = 14,
   362         BMA250E_SLEEP_DUR_1000                   = 15
   363     } BMA250E_SLEEP_DUR_T;
   369         BMA250E_POWER_MODE_NORMAL                = 0,
   370         BMA250E_POWER_MODE_DEEP_SUSPEND          = 1,
   371         BMA250E_POWER_MODE_LOW_POWER             = 2,
   372         BMA250E_POWER_MODE_SUSPEND               = 4
   373     } BMA250E_POWER_MODE_T;
   379         _BMA250E_LOW_POWER_RESERVED_BITS         = 0x0f | 0x10 | 0x80,
   382         BMA250E_LOW_POWER_SLEEPTIMER_MODE        = 0x20,
   383         BMA250E_LOW_POWER_LOWPOWER_MODE          = 0x40  
   388     } BMA250E_LOW_POWER_BITS_T;
   394         _BMA250E_ACC_HBW_RESERVED_BITS           = 0x0f | 0x10 | 0x20,
   397         BMA250E_ACC_HBW_SHADOW_DIS               = 0x40,
   398         BMA250E_ACC_HBW_DATA_HIGH_BW             = 0x80
   399     } BMA250E_ACC_HBW_BITS_T;
   405         _BMA250E_INT_EN_0_RESERVED_BITS          = 0x08,
   407         BMA250E_INT_EN_0_SLOPE_EN_X              = 0x01,
   408         BMA250E_INT_EN_0_SLOPE_EN_Y              = 0x02,
   409         BMA250E_INT_EN_0_SLOPE_EN_Z              = 0x04,
   413         BMA250E_INT_EN_0_D_TAP_EN                = 0x10,
   414         BMA250E_INT_EN_0_S_TAP_EN                = 0x20,
   415         BMA250E_INT_EN_0_ORIENT_EN               = 0x40,
   416         BMA250E_INT_EN_0_FLAT_EN                 = 0x80
   417     } BMA250E_INT_EN_0_BITS_T;
   423         _BMA250E_INT_EN_1_RESERVED_BITS          = 0x80,
   425         BMA250E_INT_EN_1_HIGH_EN_X               = 0x01,
   426         BMA250E_INT_EN_1_HIGH_EN_Y               = 0x02,
   427         BMA250E_INT_EN_1_HIGH_EN_Z               = 0x04,
   428         BMA250E_INT_EN_1_LOW_EN                  = 0x08,
   429         BMA250E_INT_EN_1_DATA_EN                 = 0x10,
   430         BMA250E_INT_EN_1_INT_FFULL_EN            = 0x20, 
   431         BMA250E_INT_EN_1_INT_FWM_EN              = 0x40  
   434     } BMA250E_INT_EN_1_BITS_T;
   440         _BMA250E_INT_EN_2_RESERVED_BITS          = 0xf0,
   442         BMA250E_INT_EN_2_SLO_NO_MOT_EN_X         = 0x01,
   443         BMA250E_INT_EN_2_SLO_NO_MOT_EN_Y         = 0x02,
   444         BMA250E_INT_EN_2_SLO_NO_MOT_EN_Z         = 0x04,
   445         BMA250E_INT_EN_2_SLO_NO_MOT_SEL          = 0x08
   448     } BMA250E_INT_EN_2_BITS_T;
   454         BMA250E_INT_MAP_0_INT1_LOW               = 0x01,
   455         BMA250E_INT_MAP_0_INT1_HIGH              = 0x02,
   456         BMA250E_INT_MAP_0_INT1_SLOPE             = 0x04,
   457         BMA250E_INT_MAP_0_INT1_SLO_NO_MOT        = 0x08,
   458         BMA250E_INT_MAP_0_INT1_D_TAP             = 0x10,
   459         BMA250E_INT_MAP_0_INT1_S_TAP             = 0x20,
   460         BMA250E_INT_MAP_0_INT1_ORIENT            = 0x40,
   461         BMA250E_INT_MAP_0_INT1_FLAT              = 0x80
   462     } BMA250E_INT_MAP_0_BITS_T;
   468         _BMA250E_INT_MAP_1_INT1_RESERVED_BITS    = 0x08 | 0x10,
   470         BMA250E_INT_MAP_1_INT1_DATA              = 0x01,
   471         BMA250E_INT_MAP_1_INT1_FWM               = 0x02,
   472         BMA250E_INT_MAP_1_INT1_FFULL             = 0x04,
   476         BMA250E_INT_MAP_1_INT2_FFULL             = 0x20,
   477         BMA250E_INT_MAP_1_INT2_FWM               = 0x40,
   478         BMA250E_INT_MAP_1_INT2_DATA              = 0x80
   479     } BMA250E_INT_MAP_1_BITS_T;
   485         BMA250E_INT_MAP_2_INT2_LOW               = 0x01,
   486         BMA250E_INT_MAP_2_INT2_HIGH              = 0x02,
   487         BMA250E_INT_MAP_2_INT2_SLOPE             = 0x04,
   488         BMA250E_INT_MAP_2_INT2_SLO_NO_MOT        = 0x08,
   489         BMA250E_INT_MAP_2_INT2_D_TAP             = 0x10,
   490         BMA250E_INT_MAP_2_INT2_S_TAP             = 0x20,
   491         BMA250E_INT_MAP_2_INT2_ORIENT            = 0x40,
   492         BMA250E_INT_MAP_2_INT2_FLAT              = 0x80
   493     } BMA250E_INT_MAP_2_BITS_T;
   499         _BMA250E_INT_SRC_RESERVED_BITS           = 0x40 | 0x80,
   501         BMA250E_INT_SRC_LOW                      = 0x01,
   502         BMA250E_INT_SRC_HIGH                     = 0x02,
   503         BMA250E_INT_SRC_SLO_NO_MOT               = 0x04,
   504         BMA250E_INT_SRC_SLOPE                    = 0x08,
   505         BMA250E_INT_SRC_TAP                      = 0x10,
   506         BMA250E_INT_SRC_DATA                     = 0x20
   509     } BMA250E_INT_SRC_BITS_T;
   515         _BMA250E_INT_OUT_CTRL_INT1_RESERVED_BITS = 0xf0,
   517         BMA250E_INT_OUT_CTRL_INT1_LVL            = 0x01, 
   518         BMA250E_INT_OUT_CTRL_INT1_OD             = 0x02, 
   521         BMA250E_INT_OUT_CTRL_INT2_LVL            = 0x04,
   522         BMA250E_INT_OUT_CTRL_INT2_OD             = 0x08
   525     } BMA250E_INT_OUT_CTRL_BITS_T;
   531         _BMA250E_INT_RST_LATCH_RESERVED_BITS     = 0x10 | 0x20 | 0x40,
   533         BMA250E_INT_RST_LATCH0                   = 0x01,
   534         BMA250E_INT_RST_LATCH1                   = 0x02,
   535         BMA250E_INT_RST_LATCH2                   = 0x04,
   536         BMA250E_INT_RST_LATCH3                   = 0x08,
   537         _BMA250E_INT_RST_LATCH_MASK              = 15,
   538         _BMA250E_INT_RST_LATCH_SHIFT             = 0,
   542         BMA250E_INT_RST_LATCH_RESET_INT          = 0x80
   543     } BMA250E_INT_RST_LATCH_BITS_T;
   549         BMA250E_RST_LATCH_NON_LATCHED            = 0,
   550         BMA250E_RST_LATCH_TEMPORARY_250MS        = 1,
   551         BMA250E_RST_LATCH_TEMPORARY_500MS        = 2,
   552         BMA250E_RST_LATCH_TEMPORARY_1S           = 3,
   553         BMA250E_RST_LATCH_TEMPORARY_2S           = 4,
   554         BMA250E_RST_LATCH_TEMPORARY_4S           = 5,
   555         BMA250E_RST_LATCH_TEMPORARY_8S           = 6,
   556         BMA250E_RST_LATCH_LATCHED                = 7,
   560         BMA250E_RST_LATCH_TEMPORARY_250US        = 9,
   561         BMA250E_RST_LATCH_TEMPORARY_500US        = 10,
   562         BMA250E_RST_LATCH_TEMPORARY_1MS          = 11,
   563         BMA250E_RST_LATCH_TEMPORARY_12_5MS       = 12,
   564         BMA250E_RST_LATCH_TEMPORARY_25MS         = 13,
   565         BMA250E_RST_LATCH_TEMPORARY_50MS         = 14
   568     } BMA250E_RST_LATCH_T;
   574         BMA250E_INT_2_LOW_HY0                    = 0x01,
   575         BMA250E_INT_2_LOW_HY1                    = 0x02,
   576         _BMA250E_INT_2_LOW_HY_MASK               = 3,
   577         _BMA250E_INT_2_LOW_HY_SHIFT              = 0,
   579         BMA250E_INT_2_LOW_MODE                   = 0x04,
   583         BMA250E_INT_2_HIGH_HY0                   = 0x40,
   584         BMA250E_INT_2_HIGH_HY1                   = 0x80,
   585         _BMA250E_INT_2_HIGH_HY_MASK              = 3,
   586         _BMA250E_INT_2_HIGH_HY_SHIFT             = 6
   587     } BMA250E_INT_2_BITS_T;
   593         BMA250E_INT_5_SLOPE_DUR0                 = 0x01,
   594         BMA250E_INT_5_SLOPE_DUR1                 = 0x02,
   595         _BMA250E_INT_5_SLOPE_DUR_MASK            = 3,
   596         _BMA250E_INT_5_SLOPE_DUR_SHIFT           = 0,
   598         BMA250E_INT_5_SLO_NO_MOT_DUR0            = 0x04,
   599         BMA250E_INT_5_SLO_NO_MOT_DUR1            = 0x08,
   600         BMA250E_INT_5_SLO_NO_MOT_DUR2            = 0x10,
   601         BMA250E_INT_5_SLO_NO_MOT_DUR3            = 0x20,
   602         BMA250E_INT_5_SLO_NO_MOT_DUR4            = 0x40,
   603         BMA250E_INT_5_SLO_NO_MOT_DUR5            = 0x80,
   604         _BMA250E_INT_5_SLO_NO_MOT_DUR_MASK       = 63,
   605         _BMA250E_INT_5_SLO_NO_MOT_DUR_SHIFT      = 2
   606     } BMA250E_INT_5_BITS_T;
   612         BMA250E_INT_8_TAP_DUR0                   = 0x01,
   613         BMA250E_INT_8_TAP_DUR1                   = 0x02,
   614         BMA250E_INT_8_TAP_DUR2                   = 0x04,
   615         _BMA250E_INT_8_TAP_DUR_MASK              = 7,
   616         _BMA250E_INT_8_TAP_DUR_SHIFT             = 0,
   620         BMA250E_INT_8_TAP_SHOCK                  = 0x40,
   621         BMA250E_INT_8_TAP_QUIET                  = 0x80
   622     } BMA250E_INT_8_BITS_T;
   628         BMA250E_INT_9_TAP_TH0                    = 0x01,
   629         BMA250E_INT_9_TAP_TH1                    = 0x02,
   630         BMA250E_INT_9_TAP_TH2                    = 0x04,
   631         BMA250E_INT_9_TAP_TH3                    = 0x08,
   632         BMA250E_INT_9_TAP_TH4                    = 0x10,
   633         _BMA250E_INT_5_TAP_TH_MASK               = 31,
   634         _BMA250E_INT_5_TAP_TH_SHIFT              = 0,
   638         BMA250E_INT_9_TAP_SAMP0                  = 0x40,
   639         BMA250E_INT_9_TAP_SAMP1                  = 0x80,
   640         BMA250E_INT_9_TAP_SAMP1_MASK             = 3,
   641         BMA250E_INT_9_TAP_SAMP1_SHIFT            = 6
   642     } BMA250E_INT_9_BITS_T;
   648         BMA250E_INT_A_ORIENT_MODE0               = 0x01,
   649         BMA250E_INT_A_ORIENT_MODE1               = 0x02,
   650         _BMA250E_INT_A_ORIENT_MODE_MASK          = 3,
   651         _BMA250E_INT_A_ORIENT_MODE_SHIFT         = 0,
   653         BMA250E_INT_A_ORIENT_BLOCKING0           = 0x04,
   654         BMA250E_INT_A_ORIENT_BLOCKING1           = 0x08,
   655         _BMA250E_INT_A_ORIENT_BLOCKING_MASK      = 3,
   656         _BMA250E_INT_A_ORIENT_BLOCKING_SHIFT     = 2,
   658         BMA250E_INT_A_ORIENT_HYST0               = 0x10,
   659         BMA250E_INT_A_ORIENT_HYST1               = 0x20,
   660         BMA250E_INT_A_ORIENT_HYST2               = 0x40,
   661         _BMA250E_INT_A_ORIENT_HYST_MASK          = 7,
   662         _BMA250E_INT_A_ORIENT_HYST_SHIFT         = 4
   665     } BMA250E_INT_A_BITS_T;
   671         BMA250E_ORIENT_MODE_SYMETRICAL           = 0,
   672         BMA250E_ORIENT_MODE_HIGH_ASYMETRICAL     = 1,
   673         BMA250E_ORIENT_MODE_LOW_ASYMETRICAL      = 2
   674     } BMA250E_ORIENT_MODE_T;
   680         BMA250E_ORIENT_BLOCKING_NONE             = 0,
   681         BMA250E_ORIENT_BLOCKING_THETA_ACC_1_5G   = 1,
   682         BMA250E_ORIENT_BLOCKING_THETA_ACC_0_2G_1_5G = 2,
   683         BMA250E_ORIENT_BLOCKING_THETA_ACC_0_4G_1_5G = 3
   684     } BMA250E_ORIENT_BLOCKING_T;
   690         BMA250E_INT_B_ORIENT_THETA0              = 0x01,
   691         BMA250E_INT_B_ORIENT_THETA1              = 0x02,
   692         BMA250E_INT_B_ORIENT_THETA2              = 0x04,
   693         BMA250E_INT_B_ORIENT_THETA3              = 0x08,
   694         BMA250E_INT_B_ORIENT_THETA4              = 0x10,
   695         BMA250E_INT_B_ORIENT_THETA5              = 0x20,
   696         _BMA250E_INT_B_ORIENT_THETA_MASK         = 63,
   697         _BMA250E_INT_B_ORIENT_THETA_SHIFT        = 0,
   699         BMA250E_INT_B_ORIENT_UD_EN               = 0x40
   701     } BMA250E_INT_B_BITS_T;
   707         BMA250E_INT_B_FLAT_THETA0               = 0x01,
   708         BMA250E_INT_B_FLAT_THETA1               = 0x02,
   709         BMA250E_INT_B_FLAT_THETA2               = 0x04,
   710         BMA250E_INT_B_FLAT_THETA3               = 0x08,
   711         BMA250E_INT_B_FLAT_THETA4               = 0x10,
   712         BMA250E_INT_B_FLAT_THETA5               = 0x20,
   713         _BMA250E_INT_B_FLAT_THETA_MASK          = 63,
   714         _BMA250E_INT_B_FLAT_THETA_SHIFT         = 0,
   717     } BMA250E_INT_C_BITS_T;
   723         BMA250E_INT_D_FLAT_HY0                  = 0x01,
   724         BMA250E_INT_D_FLAT_HY1                  = 0x02,
   725         BMA250E_INT_D_FLAT_HY2                  = 0x04,
   726         _BMA250E_INT_B_FLAT_HY_MASK             = 7,
   727         _BMA250E_INT_B_FLAT_HY_SHIFT            = 0,
   731         BMA250E_INT_D_FLAT_HOLD_TIME0           = 0x10,
   732         BMA250E_INT_D_FLAT_HOLD_TIME1           = 0x20,
   733         _BMA250E_INT_B_FLAT_HOLD_TIME_MASK      = 3,
   734         _BMA250E_INT_B_FLAT_HOLD_TIME_SHIFT     = 4
   737     } BMA250E_INT_D_BITS_T;
   743         _BMA250E_FIFO_CONFIG_0_RESERVED_BITS    = 0x80 | 0x40,
   745         BMA250E_FIFO_CONFIG_0_WATER_MARK0       = 0x01,
   746         BMA250E_FIFO_CONFIG_0_WATER_MARK1       = 0x02,
   747         BMA250E_FIFO_CONFIG_0_WATER_MARK2       = 0x04,
   748         BMA250E_FIFO_CONFIG_0_WATER_MARK3       = 0x08,
   749         BMA250E_FIFO_CONFIG_0_WATER_MARK4       = 0x10,
   750         BMA250E_FIFO_CONFIG_0_WATER_MARK5       = 0x20,
   751         _BMA250E_FIFO_CONFIG_0_WATER_MARK_MASK  = 63,
   752         _BMA250E_FIFO_CONFIG_0_WATER_MARK_SHIFT = 0
   753     } BMA250E_FIFO_CONFIG_0_BITS_T;
   759         BMA250E_PMU_SELFTTEST_AXIS0             = 0x01,
   760         BMA250E_PMU_SELFTTEST_AXIS1             = 0x02,
   761         _BMA250E_PMU_SELFTTEST_AXIS_MASK        = 3,
   762         _BMA250E_PMU_SELFTTEST_AXIS_SHIFT       = 0,
   764         BMA250E_PMU_SELFTTEST_SIGN              = 0x04,
   768         BMA250E_PMU_SELFTTEST_AMP               = 0x10,
   771     } BMA250E_PMU_SELFTTEST_BITS_T;
   777         BMA250E_SELFTTEST_AXIS_NONE             = 0,
   778         BMA250E_SELFTTEST_AXIS_X                = 1,
   779         BMA250E_SELFTTEST_AXIS_Y                = 2,
   780         BMA250E_SELFTTEST_AXIS_Z                = 3,
   781     } BMA250E_SELFTTEST_AXIS_T;
   787         BMA250E_TRIM_NVM_CTRL_NVM_PROG_MODE     = 0x01,
   788         BMA250E_TRIM_NVM_CTRL_NVM_PROG_TRIG     = 0x02,
   789         BMA250E_TRIM_NVM_CTRL_NVM_PROG_RDY      = 0x04,
   790         BMA250E_TRIM_NVM_CTRL_NVM_PROG_LOAD     = 0x08,
   792         BMA250E_TRIM_NVM_CTRL_NVM_REMAIN0       = 0x10,
   793         BMA250E_TRIM_NVM_CTRL_NVM_REMAIN1       = 0x20,
   794         BMA250E_TRIM_NVM_CTRL_NVM_REMAIN2       = 0x40,
   795         BMA250E_TRIM_NVM_CTRL_NVM_REMAIN3       = 0x80,
   796         _BMA250E_TRIM_NVM_CTRL_NVM_REMAIN_MASK  = 15,
   797         _BMA250E_TRIM_NVM_CTRL_NVM_REMAIN_SHIFT = 4
   798     } BMA250E_TRIM_NVM_CTRL_BITS_T;
   804         _BMA250E_SPI3_WDT_RESERVED_BITS         = 0xf0 | 0x08,
   806         BMA250E_SPI3_WDT_SPI3                   = 0x01, 
   810         BMA250E_SPI3_WDT_I2C_WDT_SEL            = 0x02,
   811         BMA250E_SPI3_WDT_I2C_WDT_EN             = 0x04
   814     } BMA250E_SPI3_WDT_BITS_T;
   820         BMA250E_OFC_CTRL_HP_X_EN                = 0x01,
   821         BMA250E_OFC_CTRL_HP_Y_EN                = 0x02,
   822         BMA250E_OFC_CTRL_HP_Z_EN                = 0x04,
   826         BMA250E_OFC_CTRL_CAL_RDY                = 0x10,
   828         BMA250E_OFC_CTRL_CAL_TRIGGER0           = 0x20,
   829         BMA250E_OFC_CTRL_CAL_TRIGGER1           = 0x40,
   830         _BMA250E_OFC_CTRL_CAL_TRIGGER_MASK      = 3,
   831         _BMA250E_OFC_CTRL_CAL_TRIGGER_SHIFT     = 5,
   833         BMA250E_OFC_CTRL_OFFSET_RESET           = 0x80
   835     } BMA250E_OFC_CTRL_BITS_T;
   841         BMA250E_CAL_TRIGGER_NONE                = 0,
   842         BMA250E_CAL_TRIGGER_X                   = 1,
   843         BMA250E_CAL_TRIGGER_Y                   = 2,
   844         BMA250E_CAL_TRIGGER_Z                   = 3
   845     } BMA250E_CAL_TRIGGER_T;
   851         BMA250E_OFC_SETTING_CUT_OFF             = 0x01,
   853         BMA250E_OFC_SETTING_OFFSET_TARGET_X0    = 0x02,
   854         BMA250E_OFC_SETTING_OFFSET_TARGET_X1    = 0x04,
   855         _BMA250E_OFC_SETTING_OFFSET_TARGET_X_MASK = 3,
   856         _BMA250E_OFC_SETTING_OFFSET_TARGET_X_SHIFT = 1,
   858         BMA250E_OFC_SETTING_OFFSET_TARGET_Y0    = 0x08,
   859         BMA250E_OFC_SETTING_OFFSET_TARGET_Y1    = 0x10,
   860         _BMA250E_OFC_SETTING_OFFSET_TARGET_Y_MASK = 3,
   861         _BMA250E_OFC_SETTING_OFFSET_TARGET_Y_SHIFT = 3,
   863         BMA250E_OFC_SETTING_OFFSET_TARGET_Z0    = 0x20,
   864         BMA250E_OFC_SETTING_OFFSET_TARGET_Z1    = 0x40,
   865         _BMA250E_OFC_SETTING_OFFSET_TARGET_Z_MASK = 3,
   866         _BMA250E_OFC_SETTING_OFFSET_TARGET_Z_SHIFT = 5
   869     } BMA250E_OFC_SETTING_BITS_T;
   875         BMA250E_OFFSET_TARGET_0G                = 0,
   876         BMA250E_OFFSET_TARGET_PLUS_1G           = 1,
   877         BMA250E_OFFSET_TARGET_MINUS_1G          = 2,
   879     } BMA250E_OFFSET_TARGET_T;
   885         BMA250E_FIFO_CONFIG_1_FIFO_DATA_SEL0     = 0x01,
   886         BMA250E_FIFO_CONFIG_1_FIFO_DATA_SEL1     = 0x02,
   887         _BMA250E_FIFO_CONFIG_1_FIFO_DATA_SEL     = 3,
   888         _BMA250E_FIFO_CONFIG_1_FIFO_DATA_SHIFT   = 0,
   892         BMA250E_FIFO_CONFIG_1_FIFO_MODE0         = 0x40,
   893         BMA250E_FIFO_CONFIG_1_FIFO_MODE1         = 0x80,
   894         _BMA250E_FIFO_CONFIG_1_FIFO_MODE_MASK    = 3,
   895         _BMA250E_FIFO_CONFIG_1_FIFO_MODE_SHIFT   = 5
   896     } BMA250E_FIFO_CONFIG_1_BITS_T;
   902         BMA250E_FIFO_DATA_SEL_XYZ               = 0,
   903         BMA250E_FIFO_DATA_SEL_X                 = 1,
   904         BMA250E_FIFO_DATA_SEL_Y                 = 2,
   905         BMA250E_FIFO_DATA_SEL_Z                 = 3
   906     } BMA250E_FIFO_DATA_SEL_T;
   912         BMA250E_FIFO_MODE_BYPASS                = 0,
   913         BMA250E_FIFO_MODE_FIFO                  = 1,
   914         BMA250E_FIFO_MODE_STREAM                = 2
   917     } BMA250E_FIFO_MODE_T;
   921         BMA250E_INTERRUPT_INT1,
   922         BMA250E_INTERRUPT_INT2
   923     } BMA250E_INTERRUPT_PINS_T;
   929         BMA250E_RESOLUTION_10BITS,
   930         BMA250E_RESOLUTION_12BITS
   931     } BMA250E_RESOLUTION_T;