27 FXLS896x_INT_STATUS = 0x00,
28 FXLS896x_TEMP_OUT = 0x01,
29 FXLS896x_VECM_LSB = 0x02,
30 FXLS896x_VECM_MSB = 0x03,
31 FXLS896x_OUT_X_LSB = 0x04,
32 FXLS896x_OUT_X_MSB = 0x05,
33 FXLS896x_OUT_Y_LSB = 0x06,
34 FXLS896x_OUT_Y_MSB = 0x07,
35 FXLS896x_OUT_Z_LSB = 0x08,
36 FXLS896x_OUT_Z_MSB = 0x09,
37 FXLS896x_BUF_STATUS = 0x0B,
38 FXLS896x_BUF_X_LSB = 0x0C,
39 FXLS896x_BUF_X_MSB = 0x0D,
40 FXLS896x_BUF_Y_LSB = 0x0E,
41 FXLS896x_BUF_Y_MSB = 0x0F,
42 FXLS896x_BUF_Z_LSB = 0x10,
43 FXLS896x_BUF_Z_MSB = 0x11,
44 FXLS896x_PROD_REV = 0x12,
45 FXLS896x_WHO_AM_I = 0x13,
46 FXLS896x_SYS_MODE = 0x14,
47 FXLS896x_SENS_CONFIG1 = 0x15,
48 FXLS896x_SENS_CONFIG2 = 0x16,
49 FXLS896x_SENS_CONFIG3 = 0x17,
50 FXLS896x_SENS_CONFIG4 = 0x18,
51 FXLS896x_SENS_CONFIG5 = 0x19,
52 FXLS896x_WAKE_IDLE_LSB = 0x1A,
53 FXLS896x_WAKE_IDLE_MSB = 0x1B,
54 FXLS896x_SLEEP_IDLE_LSB = 0x1C,
55 FXLS896x_SLEEP_IDLE_MSB = 0x1D,
56 FXLS896x_ASLP_COUNT_LSB = 0x1E,
57 FXLS896x_ASLP_COUNT_MSB = 0x1F,
58 FXLS896x_INT_EN = 0x20,
59 FXLS896x_INT_PIN_SEL = 0x21,
60 FXLS896x_OFF_X = 0x22,
61 FXLS896x_OFF_Y = 0x23,
62 FXLS896x_OFF_Z = 0x24,
63 FXLS896x_BUF_CONFIG1 = 0x26,
64 FXLS896x_BUF_CONFIG2 = 0x27,
65 FXLS896x_ORIENT_STATUS = 0x28,
66 FXLS896x_ORIENT_CONFIG = 0x29,
67 FXLS896x_ORIENT_DBCOUNT = 0x2A,
68 FXLS896x_ORIENT_BF_ZCOMP = 0x2B,
69 FXLS896x_ORIENT_THS_REG = 0x2C,
70 FXLS896x_SDCD_INT_SRC1 = 0x2D,
71 FXLS896x_SDCD_INT_SRC2 = 0x2E,
72 FXLS896x_SDCD_CONFIG1 = 0x2F,
73 FXLS896x_SDCD_CONFIG2 = 0x30,
74 FXLS896x_SDCD_OT_DBCNT = 0x31,
75 FXLS896x_SDCD_WT_DBCNT = 0x32,
76 FXLS896x_SDCD_LTHS_LSB = 0x33,
77 FXLS896x_SDCD_LTHS_MSB = 0x34,
78 FXLS896x_SDCD_UTHS_LSB = 0x35,
79 FXLS896x_SDCD_UTHS_MSB = 0x36,
80 FXLS896x_SELF_TEST_CONFIG1 = 0x37,
81 FXLS896x_SELF_TEST_CONFIG2 = 0x38,
84#define FXLS896x_DEVICE_ADDRESS_SA0_0 (0x18)
85#define FXLS896x_DEVICE_ADDRESS_SA0_1 (0x19)
86#define FXLS8962_WHOAMI_VALUE (0x62)
87#define FXLS8964_WHOAMI_VALUE (0x84)
88#define FXLS8967_WHOAMI_VALUE (0x87)
89#define FXLS8968_WHOAMI_VALUE (0x88)
90#define FXLS8974_WHOAMI_VALUE (0x86)
91#define FXLS896x_TBOOT_MAX 20
103 uint8_t src_boot : 1;
105 uint8_t src_aslp : 1;
107 uint8_t src_orient : 1;
109 uint8_t src_sdcd_wt : 1;
111 uint8_t src_sdcd_ot : 1;
117 uint8_t src_drdy : 1;
126#define FXLS896x_INT_STATUS_SRC_BOOT_MASK ((uint8_t)0x01)
127#define FXLS896x_INT_STATUS_SRC_BOOT_SHIFT ((uint8_t)0)
129#define FXLS896x_INT_STATUS_SRC_ASLP_MASK ((uint8_t)0x02)
130#define FXLS896x_INT_STATUS_SRC_ASLP_SHIFT ((uint8_t)1)
132#define FXLS896x_INT_STATUS_SRC_ORIENT_MASK ((uint8_t)0x04)
133#define FXLS896x_INT_STATUS_SRC_ORIENT_SHIFT ((uint8_t)2)
135#define FXLS896x_INT_STATUS_SRC_SDCD_WT_MASK ((uint8_t)0x08)
136#define FXLS896x_INT_STATUS_SRC_SDCD_WT_SHIFT ((uint8_t)3)
138#define FXLS896x_INT_STATUS_SRC_SDCD_OT_MASK ((uint8_t)0x10)
139#define FXLS896x_INT_STATUS_SRC_SDCD_OT_SHIFT ((uint8_t)4)
141#define FXLS896x_INT_STATUS_SRC_BUF_MASK ((uint8_t)0x20)
142#define FXLS896x_INT_STATUS_SRC_BUF_SHIFT ((uint8_t)5)
144#define FXLS896x_INT_STATUS_SRC_OVF_MASK ((uint8_t)0x40)
145#define FXLS896x_INT_STATUS_SRC_OVF_SHIFT ((uint8_t)6)
147#define FXLS896x_INT_STATUS_SRC_DRDY_MASK ((uint8_t)0x80)
148#define FXLS896x_INT_STATUS_SRC_DRDY_SHIFT ((uint8_t)7)
158typedef uint8_t FXLS896x_TEMP_OUT_t;
166typedef uint8_t FXLS896x_VECM_LSB_t;
174typedef uint8_t FXLS896x_VECM_MSB_t;
182typedef uint8_t FXLS896x_OUT_X_LSB_t;
190typedef uint8_t FXLS896x_OUT_X_MSB_t;
198typedef uint8_t FXLS896x_OUT_Y_LSB_t;
206typedef uint8_t FXLS896x_OUT_Y_MSB_t;
214typedef uint8_t FXLS896x_OUT_Z_LSB_t;
222typedef uint8_t FXLS896x_OUT_Z_MSB_t;
236 uint8_t buf_wmrk : 1;
246#define FXLS896x_BUF_STATUS_BUF_CNT_MASK ((uint8_t) 0x3F)
247#define FXLS896x_BUF_STATUS_BUF_CNT_SHIFT ((uint8_t) 0)
249#define FXLS896x_BUF_STATUS_BUF_OVF_MASK ((uint8_t) 0x40)
250#define FXLS896x_BUF_STATUS_BUF_OVF_SHIFT ((uint8_t) 6)
252#define FXLS896x_BUF_STATUS_BUF_WMRK_MASK ((uint8_t) 0x80)
253#define FXLS896x_BUF_STATUS_BUF_WMRK_SHIFT ((uint8_t) 7)
263typedef uint8_t FXLS896x_BUF_X_LSB_t;
272typedef uint8_t FXLS896x_BUF_X_MSB_t;
281typedef uint8_t FXLS896x_BUF_Y_LSB_t;
290typedef uint8_t FXLS896x_BUF_Y_MSB_t;
299typedef uint8_t FXLS896x_BUF_Z_LSB_t;
308typedef uint8_t FXLS896x_BUF_Z_MSB_t;
320 uint8_t prod_rev_min : 4;
323 uint8_t prod_rev_maj : 4;
333#define FXLS896x_PROD_REV_PROD_REV_MIN_MASK ((uint8_t)0x0F)
334#define FXLS896x_PROD_REV_PROD_REV_MIN_SHIFT ((uint8_t)0)
336#define FXLS896x_PROD_REV_PROD_REV_MAJ_MASK ((uint8_t)0xF0)
337#define FXLS896x_PROD_REV_PROD_REV_MAJ_SHIFT ((uint8_t)4)
345typedef uint8_t FXLS896x_WHO_AM_I_t;
357 uint8_t sys_mode : 2;
359 uint8_t buf_gate_cnt : 5;
361 uint8_t buf_gate_error : 1;
370#define FXLS896x_SYS_MODE_BUF_GATE_ERROR_MASK ((uint8_t)0x03)
371#define FXLS896x_SYS_MODE_BUF_GATE_ERROR_SHIFT ((uint8_t)0)
373#define FXLS896x_SYS_MODE_BUF_GATE_CNT_MASK ((uint8_t)0x7C)
374#define FXLS896x_SYS_MODE_BUF_GATE_CNT_SHIFT ((uint8_t)2)
376#define FXLS896x_SYS_MODE_SYS_MODE_MASK ((uint8_t)0x80)
377#define FXLS896x_SYS_MODE_SYS_MODE_SHIFT ((uint8_t)7)
382#define FXLS896x_SYS_MODE_BUF_GARE_ERROR_NO ((uint8_t)0x00)
383#define FXLS896x_SYS_MODE_BUF_GARE_ERROR_YES ((uint8_t)0x80)
384#define FXLS896x_SYS_MODE_SYS_MODE_STANDBY ((uint8_t)0x00)
385#define FXLS896x_SYS_MODE_SYS_MODE_WAKE ((uint8_t)0x01)
386#define FXLS896x_SYS_MODE_SYS_MODE_SLEEP ((uint8_t)0x02)
387#define FXLS896x_SYS_MODE_SYS_MODE_EXT_TRIG ((uint8_t)0x03)
409 uint8_t st_axis_sel : 2;
420#define FXLS896x_SENS_CONFIG1_ACTIVE_MASK ((uint8_t)0x01)
421#define FXLS896x_SENS_CONFIG1_ACTIVE_SHIFT ((uint8_t)0)
423#define FXLS896x_SENS_CONFIG1_FSR_MASK ((uint8_t)0x06)
424#define FXLS896x_SENS_CONFIG1_FSR_SHIFT ((uint8_t)1)
426#define FXLS896x_SENS_CONFIG1_SPI_M_MASK ((uint8_t)0x08)
427#define FXLS896x_SENS_CONFIG1_SPI_M_SHIFT ((uint8_t)3)
429#define FXLS896x_SENS_CONFIG1_ST_POL_MASK ((uint8_t)0x10)
430#define FXLS896x_SENS_CONFIG1_ST_POL_SHIFT ((uint8_t)4)
432#define FXLS896x_SENS_CONFIG1_ST_AXIS_SEL_MASK ((uint8_t)0x60)
433#define FXLS896x_SENS_CONFIG1_ST_AXIS_SEL_SHIFT ((uint8_t)5)
435#define FXLS896x_SENS_CONFIG1_RST_MASK ((uint8_t)0x80)
436#define FXLS896x_SENS_CONFIG1_RST_SHIFT ((uint8_t)7)
441#define FXLS896x_SENS_CONFIG1_RST_RST ((uint8_t)0x80)
442#define FXLS896x_SENS_CONFIG1_ST_AXIS_SEL_DISABLED \
444#define FXLS896x_SENS_CONFIG1_ST_AXIS_SEL_EN_X ((uint8_t)0x20)
445#define FXLS896x_SENS_CONFIG1_ST_AXIS_SEL_EN_Y ((uint8_t)0x40)
446#define FXLS896x_SENS_CONFIG1_ST_AXIS_SEL_EN_Z ((uint8_t)0x60)
447#define FXLS896x_SENS_CONFIG1_ST_POL_POSITIVE ((uint8_t)0x00)
449#define FXLS896x_SENS_CONFIG1_ST_POL_NEGATIVE ((uint8_t)0x10)
451#define FXLS896x_SENS_CONFIG1_SPI_M_FOUR ((uint8_t)0x00)
452#define FXLS896x_SENS_CONFIG1_SPI_M_THREE ((uint8_t)0x08)
453#define FXLS896x_SENS_CONFIG1_FSR_2G ((uint8_t)0x00)
455#define FXLS896x_SENS_CONFIG1_FSR_4G ((uint8_t)0x02)
457#define FXLS896x_SENS_CONFIG1_FSR_8G ((uint8_t)0x04)
459#define FXLS896x_SENS_CONFIG1_FSR_16G ((uint8_t)0x06)
461#define FXLS896x_SENS_CONFIG1_ACTIVE_STANDBY ((uint8_t)0x00)
462#define FXLS896x_SENS_CONFIG1_ACTIVE_ACTIVE ((uint8_t)0x01)
477 uint8_t anic_temp : 1;
479 uint8_t _reserved_ : 1;
482 uint8_t sleep_pm : 2;
493#define FXLS896x_SENS_CONFIG2_F_READ_MASK ((uint8_t)0x01)
494#define FXLS896x_SENS_CONFIG2_F_READ_SHIFT ((uint8_t)0)
496#define FXLS896x_SENS_CONFIG2_ANIC_TEMP_MASK ((uint8_t)0x02)
497#define FXLS896x_SENS_CONFIG2_ANIC_TEMP_SHIFT ((uint8_t)1)
499#define FXLS896x_SENS_CONFIG2_LE_BE_MASK ((uint8_t)0x08)
500#define FXLS896x_SENS_CONFIG2_LE_BE_SHIFT ((uint8_t)3)
502#define FXLS896x_SENS_CONFIG2_SLEEP_PM_MASK ((uint8_t)0x30)
503#define FXLS896x_SENS_CONFIG2_SLEEP_PM_SHIFT ((uint8_t)4)
505#define FXLS896x_SENS_CONFIG2_WAKE_PM_MASK ((uint8_t)0xC0)
506#define FXLS896x_SENS_CONFIG2_WAKE_PM_SHIFT ((uint8_t)6)
511#define FXLS896x_SENS_CONFIG2_WAKE_PM_LOW_POWER ((uint8_t)0x00)
512#define FXLS896x_SENS_CONFIG2_WAKE_PM_HIGH_PERF ((uint8_t)0x40)
513#define FXLS896x_SENS_CONFIG2_WAKE_PM_FLEX_PERF ((uint8_t)0x80)
514#define FXLS896x_SENS_CONFIG2_SLEEP_PM_LOW_POWER ((uint8_t)0x00)
515#define FXLS896x_SENS_CONFIG2_SLEEP_PM_HIGH_PERF ((uint8_t)0x10)
516#define FXLS896x_SENS_CONFIG2_SLEEP_PM_FLEX_PERF ((uint8_t)0x20)
517#define FXLS896x_SENS_CONFIG2_LE_BE_LE ((uint8_t)0x00)
518#define FXLS896x_SENS_CONFIG2_LE_BE_BE ((uint8_t)0x08)
519#define FXLS896x_SENS_CONFIG2_ANIC_TEMP_DIS ((uint8_t)0x00)
521#define FXLS896x_SENS_CONFIG2_ANIC_TEMP_EN ((uint8_t)0x02)
523#define FXLS896x_SENS_CONFIG2_F_READ_NORMAL ((uint8_t)0x00)
524#define FXLS896x_SENS_CONFIG2_F_READ_FAST ((uint8_t)0x01)
537 uint8_t sleep_odr : 4;
539 uint8_t wake_odr : 4;
548#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_MASK ((uint8_t)0x0F)
549#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_SHIFT ((uint8_t)0)
551#define FXLS896x_SENS_CONFIG3_WAKE_ODR_MASK ((uint8_t)0xF0)
552#define FXLS896x_SENS_CONFIG3_WAKE_ODR_SHIFT ((uint8_t)4)
557#define FXLS896x_SENS_CONFIG3_WAKE_ODR_3200HZ ((uint8_t)0x00)
558#define FXLS896x_SENS_CONFIG3_WAKE_ODR_1600HZ ((uint8_t)0x10)
559#define FXLS896x_SENS_CONFIG3_WAKE_ODR_800HZ ((uint8_t)0x20)
560#define FXLS896x_SENS_CONFIG3_WAKE_ODR_400HZ ((uint8_t)0x30)
561#define FXLS896x_SENS_CONFIG3_WAKE_ODR_200HZ ((uint8_t)0x40)
562#define FXLS896x_SENS_CONFIG3_WAKE_ODR_100HZ ((uint8_t)0x50)
563#define FXLS896x_SENS_CONFIG3_WAKE_ODR_50HZ ((uint8_t)0x60)
564#define FXLS896x_SENS_CONFIG3_WAKE_ODR_25HZ ((uint8_t)0x70)
565#define FXLS896x_SENS_CONFIG3_WAKE_ODR_12_5HZ ((uint8_t)0x80)
566#define FXLS896x_SENS_CONFIG3_WAKE_ODR_6_25HZ ((uint8_t)0x90)
567#define FXLS896x_SENS_CONFIG3_WAKE_ODR_3_125HZ ((uint8_t)0xa0)
568#define FXLS896x_SENS_CONFIG3_WAKE_ODR_1_563HZ ((uint8_t)0xb0)
569#define FXLS896x_SENS_CONFIG3_WAKE_ODR_0_781HZ ((uint8_t)0xc0)
570#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_3200HZ ((uint8_t)0x00)
571#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_1600HZ ((uint8_t)0x01)
572#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_800HZ ((uint8_t)0x02)
573#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_400HZ ((uint8_t)0x03)
574#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_200HZ ((uint8_t)0x04)
575#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_100HZ ((uint8_t)0x05)
576#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_50HZ ((uint8_t)0x06)
577#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_25HZ ((uint8_t)0x07)
578#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_12_5HZ ((uint8_t)0x08)
579#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_6_25HZ ((uint8_t)0x09)
580#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_3_125HZ ((uint8_t)0x0a)
581#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_1_563HZ ((uint8_t)0x0b)
582#define FXLS896x_SENS_CONFIG3_SLEEP_ODR_0_781HZ ((uint8_t)0x0c)
597 uint8_t int_pp_od : 1;
599 uint8_t int2_func : 1;
601 uint8_t drdy_pul : 1;
603 uint8_t wk_orient : 1;
605 uint8_t wk_sdcd_ot : 1;
607 uint8_t wk_sdcd_wt : 1;
609 uint8_t ext_trig_m : 1;
618#define FXLS896x_SENS_CONFIG4_INT_POL_MASK ((uint8_t)0x01)
619#define FXLS896x_SENS_CONFIG4_INT_POL_SHIFT ((uint8_t)0)
621#define FXLS896x_SENS_CONFIG4_INT_PP_OD_MASK ((uint8_t)0x02)
622#define FXLS896x_SENS_CONFIG4_INT_PP_OD_SHIFT ((uint8_t)1)
624#define FXLS896x_SENS_CONFIG4_INT2_FUNC_MASK ((uint8_t)0x04)
625#define FXLS896x_SENS_CONFIG4_INT2_FUNC_SHIFT ((uint8_t)2)
627#define FXLS896x_SENS_CONFIG4_DRDY_PUL_MASK ((uint8_t)0x08)
628#define FXLS896x_SENS_CONFIG4_DRDY_PUL_SHIFT ((uint8_t)3)
630#define FXLS896x_SENS_CONFIG4_WK_ORIENT_MASK ((uint8_t)0x10)
631#define FXLS896x_SENS_CONFIG4_WK_ORIENT_SHIFT ((uint8_t)4)
633#define FXLS896x_SENS_CONFIG4_WK_SDCD_OT_MASK ((uint8_t)0x20)
634#define FXLS896x_SENS_CONFIG4_WK_SDCD_OT_SHIFT ((uint8_t)5)
636#define FXLS896x_SENS_CONFIG4_WK_SDCD_WT_MASK ((uint8_t)0x40)
637#define FXLS896x_SENS_CONFIG4_WK_SDCD_WT_SHIFT ((uint8_t)6)
639#define FXLS896x_SENS_CONFIG4_EXT_TRIG_M_MASK ((uint8_t)0x80)
640#define FXLS896x_SENS_CONFIG4_EXT_TRIG_M_SHIFT ((uint8_t)7)
645#define FXLS896x_SENS_CONFIG4_EXT_TRIG_M_SINGLE ((uint8_t)0x00)
647#define FXLS896x_SENS_CONFIG4_EXT_TRIG_M_MULTIPLE ((uint8_t)0x80)
649#define FXLS896x_SENS_CONFIG4_WK_SDCD_WT_DIS ((uint8_t)0x00)
651#define FXLS896x_SENS_CONFIG4_WK_SDCD_WT_EN ((uint8_t)0x40)
653#define FXLS896x_SENS_CONFIG4_WK_SDCD_OT_DIS ((uint8_t)0x00)
655#define FXLS896x_SENS_CONFIG4_WK_SDCD_OT_EN ((uint8_t)0x20)
658#define FXLS896x_SENS_CONFIG4_WK_ORIENT_DIS ((uint8_t)0x00)
661#define FXLS896x_SENS_CONFIG4_WK_ORIENT_EN ((uint8_t)0x10)
664#define FXLS896x_SENS_CONFIG4_DRDY_PUL_DIS ((uint8_t)0x00)
666#define FXLS896x_SENS_CONFIG4_DRDY_PUL_EN ((uint8_t)0x08)
668#define FXLS896x_SENS_CONFIG4_INT2_FUNC_INT2 ((uint8_t)0x00)
670#define FXLS896x_SENS_CONFIG4_INT2_FUNC_EXT_TRIG \
674#define FXLS896x_SENS_CONFIG4_INT_PP_OD_PUSH_PULL ((uint8_t)0x00)
675#define FXLS896x_SENS_CONFIG4_INT_PP_OD_OPEN_DRAIN \
678#define FXLS896x_SENS_CONFIG4_INT_POL_ACT_LOW ((uint8_t)0x00)
680#define FXLS896x_SENS_CONFIG4_INT_POL_ACT_HIGH ((uint8_t)0x01)
694 uint8_t hibernate_en : 1;
711#define FXLS896x_SENS_CONFIG5_HIBERNATE_EN_MASK ((uint8_t)0x01)
712#define FXLS896x_SENS_CONFIG5_HIBERNATE_EN_SHIFT ((uint8_t)0)
714#define FXLS896x_SENS_CONFIG5_Z_DIS_MASK ((uint8_t)0x02)
715#define FXLS896x_SENS_CONFIG5_Z_DIS_SHIFT ((uint8_t)1)
717#define FXLS896x_SENS_CONFIG5_Y_DIS_MASK ((uint8_t)0x04)
718#define FXLS896x_SENS_CONFIG5_Y_DIS_SHIFT ((uint8_t)2)
720#define FXLS896x_SENS_CONFIG5_X_DIS_MASK ((uint8_t)0x08)
721#define FXLS896x_SENS_CONFIG5_X_DIS_SHIFT ((uint8_t)3)
723#define FXLS896x_SENS_CONFIG5_VECM_EN_MASK ((uint8_t)0x10)
724#define FXLS896x_SENS_CONFIG5_VECM_EN_SHIFT ((uint8_t)4)
729#define FXLS896x_SENS_CONFIG5_VECM_EN_DIS ((uint8_t)0x00)
731#define FXLS896x_SENS_CONFIG5_VECM_EN_EN ((uint8_t)0x10)
733#define FXLS896x_SENS_CONFIG5_X_DIS_EN ((uint8_t)0x00)
735#define FXLS896x_SENS_CONFIG5_X_DIS_DIS ((uint8_t)0x08)
737#define FXLS896x_SENS_CONFIG5_Y_DIS_EN ((uint8_t)0x00)
739#define FXLS896x_SENS_CONFIG5_Y_DIS_DIS ((uint8_t)0x04)
741#define FXLS896x_SENS_CONFIG5_Z_DIS_EN ((uint8_t)0x00)
743#define FXLS896x_SENS_CONFIG5_Z_DIS_DIS ((uint8_t)0x02)
745#define FXLS896x_SENS_CONFIG5_HIBERNATE_EN_DIS ((uint8_t)0x00)
746#define FXLS896x_SENS_CONFIG5_HIBERNATE_EN_EN ((uint8_t)0x01)
755typedef uint8_t FXLS896x_WAKE_IDLE_LSB_t;
763typedef uint8_t FXLS896x_WAKE_IDLE_MSB_t;
771typedef uint8_t FXLS896x_SLEEP_IDLE_LSB_t;
779typedef uint8_t FXLS896x_SLEEP_IDLE_MSB_t;
787typedef uint8_t FXLS896x_ASLP_COUNT_LSB_t;
795typedef uint8_t FXLS896x_ASLP_COUNT_MSB_t;
807 uint8_t wake_out_en : 1;
809 uint8_t boot_dis : 1;
813 uint8_t orient_en : 1;
815 uint8_t sdcd_wt_en : 1;
817 uint8_t sdcd_ot_en : 1;
829#define FXLS896x_INT_EN_WAKE_OUT_EN_MASK ((uint8_t)0x01)
830#define FXLS896x_INT_EN_WAKE_OUT_EN_SHIFT ((uint8_t)0)
832#define FXLS896x_INT_EN_BOOT_DIS_MASK ((uint8_t)0x02)
833#define FXLS896x_INT_EN_BOOT_DIS_SHIFT ((uint8_t)1)
835#define FXLS896x_INT_EN_ASLP_EN_MASK ((uint8_t)0x04)
836#define FXLS896x_INT_EN_ASLP_EN_SHIFT ((uint8_t)2)
838#define FXLS896x_INT_EN_ORIENT_EN_MASK ((uint8_t)0x08)
839#define FXLS896x_INT_EN_ORIENT_EN_SHIFT ((uint8_t)3)
841#define FXLS896x_INT_EN_SDCD_WT_EN_MASK ((uint8_t)0x10)
842#define FXLS896x_INT_EN_SDCD_WT_EN_SHIFT ((uint8_t)4)
844#define FXLS896x_INT_EN_SDCD_OT_EN_MASK ((uint8_t)0x20)
845#define FXLS896x_INT_EN_SDCD_OT_EN_SHIFT ((uint8_t)5)
847#define FXLS896x_INT_EN_BUF_EN_MASK ((uint8_t)0x40)
848#define FXLS896x_INT_EN_BUF_EN_SHIFT ((uint8_t)6)
850#define FXLS896x_INT_EN_DRDY_EN_MASK ((uint8_t)0x80)
851#define FXLS896x_INT_EN_DRDY_EN_SHIFT ((uint8_t)7)
856#define FXLS896x_INT_EN_DRDY_EN_DIS ((uint8_t)0x00)
857#define FXLS896x_INT_EN_DRDY_EN_EN ((uint8_t)0x80)
858#define FXLS896x_INT_EN_BUF_EN_DIS ((uint8_t)0x00)
859#define FXLS896x_INT_EN_BUF_EN_EN ((uint8_t)0x40)
860#define FXLS896x_INT_EN_SDCD_OT_EN_DIS ((uint8_t)0x00)
861#define FXLS896x_INT_EN_SDCD_OT_EN_EN ((uint8_t)0x20)
862#define FXLS896x_INT_EN_SDCD_WT_EN_DIS ((uint8_t)0x00)
863#define FXLS896x_INT_EN_SDCD_WT_EN_EN ((uint8_t)0x10)
864#define FXLS896x_INT_EN_ORIENT_EN_DIS ((uint8_t)0x00)
865#define FXLS896x_INT_EN_ORIENT_EN_EN ((uint8_t)0x08)
867#define FXLS896x_INT_EN_ASLP_EN_DIS ((uint8_t)0x00)
868#define FXLS896x_INT_EN_ASLP_EN_EN ((uint8_t)0x04)
870#define FXLS896x_INT_EN_BOOT_DIS_EN ((uint8_t)0x00)
872#define FXLS896x_INT_EN_BOOT_DIS_DIS ((uint8_t)0x02)
874#define FXLS896x_INT_EN_WAKE_OUT_EN_DIS ((uint8_t)0x00)
876#define FXLS896x_INT_EN_WAKE_OUT_EN_EN ((uint8_t)0x01)
890 uint8_t wk_out_int2 : 1;
892 uint8_t boot_int2 : 1;
894 uint8_t aslp_int2 : 1;
896 uint8_t orient_int2 : 1;
898 uint8_t sdcd_wt_int2 : 1;
900 uint8_t sdcd_ot_int2 : 1;
902 uint8_t buf_int2 : 1;
904 uint8_t drdy_int2 : 1;
913#define FXLS896x_INT_PIN_SEL_WK_OUT_INT2_MASK ((uint8_t)0x01)
914#define FXLS896x_INT_PIN_SEL_WK_OUT_INT2_SHIFT ((uint8_t)0)
916#define FXLS896x_INT_PIN_SEL_BOOT_INT2_MASK ((uint8_t)0x02)
917#define FXLS896x_INT_PIN_SEL_BOOT_INT2_SHIFT ((uint8_t)1)
919#define FXLS896x_INT_PIN_SEL_ASLP_INT2_MASK ((uint8_t)0x04)
920#define FXLS896x_INT_PIN_SEL_ASLP_INT2_SHIFT ((uint8_t)2)
922#define FXLS896x_INT_PIN_SEL_ORIENT_INT2_MASK ((uint8_t)0x08)
923#define FXLS896x_INT_PIN_SEL_ORIENT_INT2_SHIFT ((uint8_t)3)
925#define FXLS896x_INT_PIN_SEL_SDCD_WT_INT2_MASK ((uint8_t)0x10)
926#define FXLS896x_INT_PIN_SEL_SDCD_WT_INT2_SHIFT ((uint8_t)4)
928#define FXLS896x_INT_PIN_SEL_SDCD_OT_INT2_MASK ((uint8_t)0x20)
929#define FXLS896x_INT_PIN_SEL_SDCD_OT_INT2_SHIFT ((uint8_t)5)
931#define FXLS896x_INT_PIN_SEL_BUF_INT2_MASK ((uint8_t)0x40)
932#define FXLS896x_INT_PIN_SEL_BUF_INT2_SHIFT ((uint8_t)6)
934#define FXLS896x_INT_PIN_SEL_DRDY_INT2_MASK ((uint8_t)0x80)
935#define FXLS896x_INT_PIN_SEL_DRDY_INT2_SHIFT ((uint8_t)7)
940#define FXLS896x_INT_PIN_SEL_DRDY_INT2_DIS ((uint8_t)0x00)
942#define FXLS896x_INT_PIN_SEL_DRDY_INT2_EN ((uint8_t)0x80)
944#define FXLS896x_INT_PIN_SEL_BUF_INT2_DIS ((uint8_t)0x00)
946#define FXLS896x_INT_PIN_SEL_BUF_INT2_EN ((uint8_t)0x40)
948#define FXLS896x_INT_PIN_SEL_SDCD_OT_INT2_DIS ((uint8_t)0x00)
950#define FXLS896x_INT_PIN_SEL_SDCD_OT_INT2_EN ((uint8_t)0x20)
952#define FXLS896x_INT_PIN_SEL_SDCD_WT_INT2_DIS ((uint8_t)0x00)
954#define FXLS896x_INT_PIN_SEL_SDCD_WT_INT2_EN ((uint8_t)0x10)
956#define FXLS896x_INT_PIN_SEL_ORIENT_INT2_DIS ((uint8_t)0x00)
958#define FXLS896x_INT_PIN_SEL_ORIENT_INT2_EN ((uint8_t)0x08)
960#define FXLS896x_INT_PIN_SEL_ASLP_INT2_DIS ((uint8_t)0x00)
962#define FXLS896x_INT_PIN_SEL_ASLP_INT2_EN ((uint8_t)0x04)
964#define FXLS896x_INT_PIN_SEL_BOOT_INT2_DIS ((uint8_t)0x00)
966#define FXLS896x_INT_PIN_SEL_BOOT_INT2_EN ((uint8_t)0x02)
968#define FXLS896x_INT_PIN_SEL_WK_OUT_INT2_DIS ((uint8_t)0x00)
970#define FXLS896x_INT_PIN_SEL_WK_OUT_INT2_EN ((uint8_t)0x01)
980typedef uint8_t FXLS896x_OFF_X_t;
988typedef uint8_t FXLS896x_OFF_Y_t;
996typedef uint8_t FXLS896x_OFF_Z_t;
1008 uint8_t trg_orient : 1;
1010 uint8_t _reserved_ : 1;
1011 uint8_t trg_sdcd_ot : 1;
1013 uint8_t trg_sdcd_wt : 1;
1015 uint8_t buf_gate : 1;
1017 uint8_t buf_mode : 2;
1019 uint8_t buf_type : 1;
1029#define FXLS896x_BUF_CONFIG1_TRG_ORIENT_MASK ((uint8_t) 0x01)
1030#define FXLS896x_BUF_CONFIG1_TRG_ORIENT_SHIFT ((uint8_t) 0)
1032#define FXLS896x_BUF_CONFIG1_TRG_SDCD_OT_MASK ((uint8_t) 0x04)
1033#define FXLS896x_BUF_CONFIG1_TRG_SDCD_OT_SHIFT ((uint8_t) 2)
1035#define FXLS896x_BUF_CONFIG1_TRG_SDCD_WT_MASK ((uint8_t) 0x08)
1036#define FXLS896x_BUF_CONFIG1_TRG_SDCD_WT_SHIFT ((uint8_t) 3)
1038#define FXLS896x_BUF_CONFIG1_BUF_GATE_MASK ((uint8_t) 0x10)
1039#define FXLS896x_BUF_CONFIG1_BUF_GATE_SHIFT ((uint8_t) 4)
1041#define FXLS896x_BUF_CONFIG1_BUF_MODE_MASK ((uint8_t) 0x60)
1042#define FXLS896x_BUF_CONFIG1_BUF_MODE_SHIFT ((uint8_t) 5)
1044#define FXLS896x_BUF_CONFIG1_BUF_TYPE_MASK ((uint8_t) 0x80)
1045#define FXLS896x_BUF_CONFIG1_BUF_TYPE_SHIFT ((uint8_t) 7)
1051#define FXLS896x_BUF_CONFIG1_BUF_TYPE_FIFO ((uint8_t) 0x00)
1052#define FXLS896x_BUF_CONFIG1_BUF_TYPE_FILO ((uint8_t) 0x80)
1053#define FXLS896x_BUF_CONFIG1_BUF_MODE_DIS ((uint8_t) 0x00)
1054#define FXLS896x_BUF_CONFIG1_BUF_MODE_STREAM_MODE ((uint8_t) 0x20)
1055#define FXLS896x_BUF_CONFIG1_BUF_MODE_STOP_MODE ((uint8_t) 0x40)
1056#define FXLS896x_BUF_CONFIG1_BUF_MODE_TRIGGER_MODE ((uint8_t) 0x60)
1057#define FXLS896x_BUF_CONFIG1_BUF_GATE_BY_PASSED ((uint8_t) 0x00)
1058#define FXLS896x_BUF_CONFIG1_BUF_GATE_ENABLED ((uint8_t) 0x10)
1059#define FXLS896x_BUF_CONFIG1_TRG_SDCD_WT_DIS ((uint8_t) 0x00)
1060#define FXLS896x_BUF_CONFIG1_TRG_SDCD_WT_EN ((uint8_t) 0x08)
1061#define FXLS896x_BUF_CONFIG1_TRG_SDCD_OT_DIS ((uint8_t) 0x00)
1062#define FXLS896x_BUF_CONFIG1_TRG_SDCD_OT_EN ((uint8_t) 0x04)
1063#define FXLS896x_BUF_CONFIG1_TRG_ORIENT_DIS ((uint8_t) 0x00)
1064#define FXLS896x_BUF_CONFIG1_TRG_ORIENT_EN ((uint8_t) 0x01)
1077 uint8_t buf_wmrk : 6;
1079 uint8_t wake_src_buf : 1;
1081 uint8_t buf_flush : 1;
1091#define FXLS896x_BUF_CONFIG2_BUF_WMRK_MASK ((uint8_t) 0x3F)
1092#define FXLS896x_BUF_CONFIG2_BUF_WMRK_SHIFT ((uint8_t) 0)
1094#define FXLS896x_BUF_CONFIG2_WAKE_SRC_BUF_MASK ((uint8_t) 0x40)
1095#define FXLS896x_BUF_CONFIG2_WAKE_SRC_BUF_SHIFT ((uint8_t) 6)
1097#define FXLS896x_BUF_CONFIG2_BUF_FLUSH_MASK ((uint8_t) 0x80)
1098#define FXLS896x_BUF_CONFIG2_BUF_FLUSH_SHIFT ((uint8_t) 7)
1104#define FXLS896x_BUF_CONFIG2_BUF_FLUSH_COMPLETED ((uint8_t) 0x00)
1105#define FXLS896x_BUF_CONFIG2_BUF_FLUSH_EN ((uint8_t) 0x80)
1106#define FXLS896x_BUF_CONFIG2_WAKE_SRC_BUF_IGNORED ((uint8_t) 0x00)
1108#define FXLS896x_BUF_CONFIG2_WAKE_SRC_BUF_EN ((uint8_t) 0x40)
1126 uint8_t _reserved_ : 3;
1129 uint8_t new_orient : 1;
1138#define FXLS896x_ORIENT_STATUS_BAFRO_MASK ((uint8_t)0x01)
1139#define FXLS896x_ORIENT_STATUS_BAFRO_SHIFT ((uint8_t)0)
1141#define FXLS896x_ORIENT_STATUS_LAPO_MASK ((uint8_t)0x06)
1142#define FXLS896x_ORIENT_STATUS_LAPO_SHIFT ((uint8_t)1)
1144#define FXLS896x_ORIENT_STATUS_LO_MASK ((uint8_t)0x40)
1145#define FXLS896x_ORIENT_STATUS_LO_SHIFT ((uint8_t)6)
1147#define FXLS896x_ORIENT_STATUS_NEW_ORIENT_MASK ((uint8_t)0x80)
1148#define FXLS896x_ORIENT_STATUS_NEW_ORIENT_SHIFT ((uint8_t)7)
1153#define FXLS896x_ORIENT_STATUS_NEW_ORIENT_NO_CHANGE \
1155#define FXLS896x_ORIENT_STATUS_NEW_ORIENT_CHANGED ((uint8_t)0x80)
1157#define FXLS896x_ORIENT_STATUS_LO_NOT_DETECTED ((uint8_t)0x00)
1158#define FXLS896x_ORIENT_STATUS_LO_DETECTED ((uint8_t)0x40)
1160#define FXLS896x_ORIENT_STATUS_LAPO_UP ((uint8_t)0x00)
1161#define FXLS896x_ORIENT_STATUS_LAPO_DOWN ((uint8_t)0x02)
1162#define FXLS896x_ORIENT_STATUS_LAPO_RIGHT ((uint8_t)0x04)
1163#define FXLS896x_ORIENT_STATUS_LAPO_LEFT ((uint8_t)0x06)
1164#define FXLS896x_ORIENT_STATUS_BAFRO_FRONT ((uint8_t)0x00)
1165#define FXLS896x_ORIENT_STATUS_BAFRO_BACK ((uint8_t)0x01)
1178 uint8_t _reserved_ : 6;
1179 uint8_t orient_enable : 1;
1181 uint8_t orient_dbcntm : 1;
1190#define FXLS896x_ORIENT_CONFIG_ORIENT_ENABLE_MASK ((uint8_t)0x40)
1191#define FXLS896x_ORIENT_CONFIG_ORIENT_ENABLE_SHIFT ((uint8_t)6)
1193#define FXLS896x_ORIENT_CONFIG_ORIENT_DBCNTM_MASK ((uint8_t)0x80)
1194#define FXLS896x_ORIENT_CONFIG_ORIENT_DBCNTM_SHIFT ((uint8_t)7)
1199#define FXLS896x_ORIENT_CONFIG_ORIENT_DBCNTM_DEC ((uint8_t)0x00)
1202#define FXLS896x_ORIENT_CONFIG_ORIENT_DBCNTM_CLR ((uint8_t)0x80)
1205#define FXLS896x_ORIENT_CONFIG_ORIENT_ENABLE_DIS ((uint8_t)0x00)
1206#define FXLS896x_ORIENT_CONFIG_ORIENT_ENABLE_EN ((uint8_t)0x40)
1215typedef uint8_t FXLS896x_ORIENT_DBCOUNT_t;
1227 uint8_t orient_zlock : 3;
1229 uint8_t _reserved_ : 3;
1230 uint8_t orient_bkfr : 2;
1239#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_MASK ((uint8_t)0x07)
1240#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_SHIFT ((uint8_t)0)
1242#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_BKFR_MASK ((uint8_t)0xC0)
1243#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_BKFR_SHIFT ((uint8_t)6)
1248#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_BKFR_BF_80_280_FB_100_260 \
1252#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_BKFR_BF_75_285_FB_105_255 \
1256#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_BKFR_BF_70_290_FB_110_250 \
1260#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_BKFR_BF_65_295_FB_115_245 \
1264#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_13_6 ((uint8_t)0x00)
1265#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_17_1 ((uint8_t)0x01)
1266#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_20_7 ((uint8_t)0x02)
1267#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_24_4 ((uint8_t)0x03)
1268#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_28_1 ((uint8_t)0x04)
1269#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_32_0 ((uint8_t)0x05)
1270#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_36_1 ((uint8_t)0x06)
1271#define FXLS896x_ORIENT_BF_ZCOMP_ORIENT_ZLOCK_40_4 ((uint8_t)0x07)
1286 uint8_t orient_ths : 5;
1295#define FXLS896x_ORIENT_THS_REG_HYS_MASK ((uint8_t)0x07)
1296#define FXLS896x_ORIENT_THS_REG_HYS_SHIFT ((uint8_t)0)
1298#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_MASK ((uint8_t)0xF8)
1299#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_SHIFT ((uint8_t)3)
1304#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_0_0 ((uint8_t)0x00)
1305#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_1_8 ((uint8_t)0x08)
1306#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_3_8 ((uint8_t)0x10)
1307#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_5_9 ((uint8_t)0x18)
1308#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_8_1 ((uint8_t)0x20)
1309#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_10_5 ((uint8_t)0x28)
1310#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_13_0 ((uint8_t)0x30)
1311#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_15_6 ((uint8_t)0x38)
1312#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_18_4 ((uint8_t)0x40)
1313#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_21_4 ((uint8_t)0x48)
1314#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_24_4 ((uint8_t)0x50)
1315#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_27_6 ((uint8_t)0x58)
1316#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_31_0 ((uint8_t)0x60)
1317#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_34_4 ((uint8_t)0x68)
1318#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_37_9 ((uint8_t)0x70)
1319#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_41_4 ((uint8_t)0x78)
1320#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_45_0 ((uint8_t)0x80)
1321#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_48_6 ((uint8_t)0x88)
1322#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_52_1 ((uint8_t)0x90)
1323#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_55_6 ((uint8_t)0x98)
1324#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_59_0 ((uint8_t)0xa0)
1325#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_62_4 ((uint8_t)0xa8)
1326#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_65_6 ((uint8_t)0xb0)
1327#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_68_6 ((uint8_t)0xb8)
1328#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_71_6 ((uint8_t)0xc0)
1329#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_74_4 ((uint8_t)0xc8)
1330#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_77_0 ((uint8_t)0xd0)
1331#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_79_5 ((uint8_t)0xd8)
1332#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_81_9 ((uint8_t)0xe0)
1333#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_84_1 ((uint8_t)0xe8)
1334#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_86_2 ((uint8_t)0xf0)
1335#define FXLS896x_ORIENT_THS_REG_ORIENT_THS_88_2 ((uint8_t)0xf8)
1336#define FXLS896x_ORIENT_THS_REG_HYS_45_45 ((uint8_t)0x00)
1337#define FXLS896x_ORIENT_THS_REG_HYS_49_41 ((uint8_t)0x01)
1338#define FXLS896x_ORIENT_THS_REG_HYS_52_38 ((uint8_t)0x02)
1339#define FXLS896x_ORIENT_THS_REG_HYS_56_34 ((uint8_t)0x03)
1340#define FXLS896x_ORIENT_THS_REG_HYS_59_31 ((uint8_t)0x04)
1341#define FXLS896x_ORIENT_THS_REG_HYS_62_28 ((uint8_t)0x05)
1342#define FXLS896x_ORIENT_THS_REG_HYS_66_24 ((uint8_t)0x06)
1343#define FXLS896x_ORIENT_THS_REG_HYS_69_21 ((uint8_t)0x07)
1356 uint8_t z_ot_pol : 1;
1358 uint8_t z_ot_ef : 1;
1360 uint8_t y_ot_pol : 1;
1362 uint8_t y_ot_ef : 1;
1364 uint8_t x_ot_pol : 1;
1366 uint8_t x_ot_ef : 1;
1368 uint8_t _reserved_ : 1;
1378#define FXLS896x_SDCD_INT_SRC1_Z_OT_POL_MASK ((uint8_t)0x01)
1379#define FXLS896x_SDCD_INT_SRC1_Z_OT_POL_SHIFT ((uint8_t)0)
1381#define FXLS896x_SDCD_INT_SRC1_Z_OT_EF_MASK ((uint8_t)0x02)
1382#define FXLS896x_SDCD_INT_SRC1_Z_OT_EF_SHIFT ((uint8_t)1)
1384#define FXLS896x_SDCD_INT_SRC1_Y_OT_POL_MASK ((uint8_t)0x04)
1385#define FXLS896x_SDCD_INT_SRC1_Y_OT_POL_SHIFT ((uint8_t)2)
1387#define FXLS896x_SDCD_INT_SRC1_Y_OT_EF_MASK ((uint8_t)0x08)
1388#define FXLS896x_SDCD_INT_SRC1_Y_OT_EF_SHIFT ((uint8_t)3)
1390#define FXLS896x_SDCD_INT_SRC1_X_OT_POL_MASK ((uint8_t)0x10)
1391#define FXLS896x_SDCD_INT_SRC1_X_OT_POL_SHIFT ((uint8_t)4)
1393#define FXLS896x_SDCD_INT_SRC1_X_OT_EF_MASK ((uint8_t)0x20)
1394#define FXLS896x_SDCD_INT_SRC1_X_OT_EF_SHIFT ((uint8_t)5)
1396#define FXLS896x_SDCD_INT_SRC1_OT_EA_MASK ((uint8_t)0x80)
1397#define FXLS896x_SDCD_INT_SRC1_OT_EA_SHIFT ((uint8_t)7)
1402#define FXLS896x_SDCD_INT_SRC1_OT_EA_INSIDE ((uint8_t)0x00)
1403#define FXLS896x_SDCD_INT_SRC1_OT_EA_OUTSIDE ((uint8_t)0x80)
1404#define FXLS896x_SDCD_INT_SRC1_X_OT_EF_EVENT_NO ((uint8_t)0x00)
1405#define FXLS896x_SDCD_INT_SRC1_X_OT_EF_EVENT_YES ((uint8_t)0x20)
1406#define FXLS896x_SDCD_INT_SRC1_X_OT_POL_LT_THS ((uint8_t)0x00)
1407#define FXLS896x_SDCD_INT_SRC1_X_OT_POL_GT_THS ((uint8_t)0x10)
1408#define FXLS896x_SDCD_INT_SRC1_Y_OT_EF_EVENT_NO ((uint8_t)0x00)
1409#define FXLS896x_SDCD_INT_SRC1_Y_OT_EF_EVENT_YES ((uint8_t)0x08)
1410#define FXLS896x_SDCD_INT_SRC1_Y_OT_POL_LT_THS ((uint8_t)0x00)
1411#define FXLS896x_SDCD_INT_SRC1_Y_OT_POL_GT_THS ((uint8_t)0x04)
1412#define FXLS896x_SDCD_INT_SRC1_Z_OT_EF_EVENT_NO ((uint8_t)0x00)
1413#define FXLS896x_SDCD_INT_SRC1_Z_OT_EF_EVENT_YES ((uint8_t)0x02)
1414#define FXLS896x_SDCD_INT_SRC1_Z_OT_POL_LT_THS ((uint8_t)0x00)
1415#define FXLS896x_SDCD_INT_SRC1_Z_OT_POL_GT_THS ((uint8_t)0x01)
1428 uint8_t _reserved_ : 1;
1429 uint8_t z_wt_ef : 1;
1431 uint8_t _reserved_1 : 1;
1432 uint8_t y_wt_ef : 1;
1434 uint8_t _reserved_2 : 1;
1435 uint8_t x_wt_ef : 1;
1437 uint8_t _reserved_3 : 1;
1447#define FXLS896x_SDCD_INT_SRC2_Z_WT_EF_MASK ((uint8_t)0x02)
1448#define FXLS896x_SDCD_INT_SRC2_Z_WT_EF_SHIFT ((uint8_t)1)
1450#define FXLS896x_SDCD_INT_SRC2_Y_WT_EF_MASK ((uint8_t)0x08)
1451#define FXLS896x_SDCD_INT_SRC2_Y_WT_EF_SHIFT ((uint8_t)3)
1453#define FXLS896x_SDCD_INT_SRC2_X_WT_EF_MASK ((uint8_t)0x20)
1454#define FXLS896x_SDCD_INT_SRC2_X_WT_EF_SHIFT ((uint8_t)5)
1456#define FXLS896x_SDCD_INT_SRC2_WT_EA_MASK ((uint8_t)0x80)
1457#define FXLS896x_SDCD_INT_SRC2_WT_EA_SHIFT ((uint8_t)7)
1462#define FXLS896x_SDCD_INT_SRC2_WT_EA_EVENT_NO ((uint8_t)0x00)
1463#define FXLS896x_SDCD_INT_SRC2_WT_EA_EVENT_YES ((uint8_t)0x80)
1464#define FXLS896x_SDCD_INT_SRC2_X_WT_EF_IN_RANGE ((uint8_t)0x00)
1466#define FXLS896x_SDCD_INT_SRC2_X_WT_EF_OUT_RANGE ((uint8_t)0x20)
1468#define FXLS896x_SDCD_INT_SRC2_Y_WT_EF_IN_RANGE ((uint8_t)0x00)
1470#define FXLS896x_SDCD_INT_SRC2_Y_WT_EF_OUT_RANGE ((uint8_t)0x08)
1472#define FXLS896x_SDCD_INT_SRC2_Z_WT_EF_IN_RANGE ((uint8_t)0x00)
1474#define FXLS896x_SDCD_INT_SRC2_Z_WT_EF_OUT_RANGE ((uint8_t)0x02)
1488 uint8_t z_wt_en : 1;
1490 uint8_t y_wt_en : 1;
1492 uint8_t x_wt_en : 1;
1494 uint8_t z_ot_en : 1;
1496 uint8_t y_ot_en : 1;
1498 uint8_t x_ot_en : 1;
1511#define FXLS896x_SDCD_CONFIG1_Z_WT_EN_MASK ((uint8_t)0x01)
1512#define FXLS896x_SDCD_CONFIG1_Z_WT_EN_SHIFT ((uint8_t)0)
1514#define FXLS896x_SDCD_CONFIG1_Y_WT_EN_MASK ((uint8_t)0x02)
1515#define FXLS896x_SDCD_CONFIG1_Y_WT_EN_SHIFT ((uint8_t)1)
1517#define FXLS896x_SDCD_CONFIG1_X_WT_EN_MASK ((uint8_t)0x04)
1518#define FXLS896x_SDCD_CONFIG1_X_WT_EN_SHIFT ((uint8_t)2)
1520#define FXLS896x_SDCD_CONFIG1_Z_OT_EN_MASK ((uint8_t)0x08)
1521#define FXLS896x_SDCD_CONFIG1_Z_OT_EN_SHIFT ((uint8_t)3)
1523#define FXLS896x_SDCD_CONFIG1_Y_OT_EN_MASK ((uint8_t)0x10)
1524#define FXLS896x_SDCD_CONFIG1_Y_OT_EN_SHIFT ((uint8_t)4)
1526#define FXLS896x_SDCD_CONFIG1_X_OT_EN_MASK ((uint8_t)0x20)
1527#define FXLS896x_SDCD_CONFIG1_X_OT_EN_SHIFT ((uint8_t)5)
1529#define FXLS896x_SDCD_CONFIG1_WT_ELE_MASK ((uint8_t)0x40)
1530#define FXLS896x_SDCD_CONFIG1_WT_ELE_SHIFT ((uint8_t)6)
1532#define FXLS896x_SDCD_CONFIG1_OT_ELE_MASK ((uint8_t)0x80)
1533#define FXLS896x_SDCD_CONFIG1_OT_ELE_SHIFT ((uint8_t)7)
1538#define FXLS896x_SDCD_CONFIG1_OT_ELE_DIS ((uint8_t)0x00)
1540#define FXLS896x_SDCD_CONFIG1_OT_ELE_EN ((uint8_t)0x80)
1542#define FXLS896x_SDCD_CONFIG1_WT_ELE_DIS ((uint8_t)0x00)
1544#define FXLS896x_SDCD_CONFIG1_WT_ELE_EN ((uint8_t)0x40)
1546#define FXLS896x_SDCD_CONFIG1_X_OT_EN_DIS ((uint8_t)0x00)
1548#define FXLS896x_SDCD_CONFIG1_X_OT_EN_EN ((uint8_t)0x20)
1550#define FXLS896x_SDCD_CONFIG1_Y_OT_EN_DIS ((uint8_t)0x00)
1552#define FXLS896x_SDCD_CONFIG1_Y_OT_EN_EN ((uint8_t)0x10)
1554#define FXLS896x_SDCD_CONFIG1_Z_OT_EN_DIS ((uint8_t)0x00)
1556#define FXLS896x_SDCD_CONFIG1_Z_OT_EN_EN ((uint8_t)0x08)
1558#define FXLS896x_SDCD_CONFIG1_X_WT_EN_DIS ((uint8_t)0x00)
1560#define FXLS896x_SDCD_CONFIG1_X_WT_EN_EN ((uint8_t)0x04)
1562#define FXLS896x_SDCD_CONFIG1_Y_WT_EN_DIS ((uint8_t)0x00)
1564#define FXLS896x_SDCD_CONFIG1_Y_WT_EN_EN ((uint8_t)0x02)
1566#define FXLS896x_SDCD_CONFIG1_Z_WT_EN_DIS ((uint8_t)0x00)
1568#define FXLS896x_SDCD_CONFIG1_Z_WT_EN_EN ((uint8_t)0x01)
1582 uint8_t ref_upd : 1;
1586 uint8_t wt_log_sel : 1;
1588 uint8_t wt_dbctm : 1;
1590 uint8_t ot_dbctm : 1;
1594 uint8_t sdcd_en : 1;
1603#define FXLS896x_SDCD_CONFIG2_REF_UPD_MASK ((uint8_t)0x01)
1604#define FXLS896x_SDCD_CONFIG2_REF_UPD_SHIFT ((uint8_t)0)
1606#define FXLS896x_SDCD_CONFIG2_MODE_MASK ((uint8_t)0x02)
1607#define FXLS896x_SDCD_CONFIG2_MODE_SHIFT ((uint8_t)1)
1609#define FXLS896x_SDCD_CONFIG2_WT_LOG_SEL_MASK ((uint8_t)0x04)
1610#define FXLS896x_SDCD_CONFIG2_WT_LOG_SEL_SHIFT ((uint8_t)2)
1612#define FXLS896x_SDCD_CONFIG2_WT_DBCTM_MASK ((uint8_t)0x08)
1613#define FXLS896x_SDCD_CONFIG2_WT_DBCTM_SHIFT ((uint8_t)3)
1615#define FXLS896x_SDCD_CONFIG2_OT_DBCTM_MASK ((uint8_t)0x10)
1616#define FXLS896x_SDCD_CONFIG2_OT_DBCTM_SHIFT ((uint8_t)4)
1618#define FXLS896x_SDCD_CONFIG2_REF_UPDM_MASK ((uint8_t)0x60)
1619#define FXLS896x_SDCD_CONFIG2_REF_UPDM_SHIFT ((uint8_t)5)
1621#define FXLS896x_SDCD_CONFIG2_SDCD_EN_MASK ((uint8_t)0x80)
1622#define FXLS896x_SDCD_CONFIG2_SDCD_EN_SHIFT ((uint8_t)7)
1627#define FXLS896x_SDCD_CONFIG2_SDCD_EN_DIS ((uint8_t)0x00)
1628#define FXLS896x_SDCD_CONFIG2_SDCD_EN_EN ((uint8_t)0x80)
1629#define FXLS896x_SDCD_CONFIG2_REF_UPDM_12_BIT ((uint8_t)0x00)
1631#define FXLS896x_SDCD_CONFIG2_REF_UPDM_FIRST ((uint8_t)0x20)
1633#define FXLS896x_SDCD_CONFIG2_REF_UPDM_SDCD_REF ((uint8_t)0x40)
1637#define FXLS896x_SDCD_CONFIG2_REF_UPDM_FIXED_VAL ((uint8_t)0x60)
1639#define FXLS896x_SDCD_CONFIG2_OT_DBCTM_DECREMENT ((uint8_t)0x00)
1642#define FXLS896x_SDCD_CONFIG2_OT_DBCTM_CLEARED ((uint8_t)0x10)
1645#define FXLS896x_SDCD_CONFIG2_WT_DBCTM_DECREMENT ((uint8_t)0x00)
1648#define FXLS896x_SDCD_CONFIG2_WT_DBCTM_CLEARED ((uint8_t)0x08)
1651#define FXLS896x_SDCD_CONFIG2_WT_LOG_SEL_AND ((uint8_t)0x00)
1653#define FXLS896x_SDCD_CONFIG2_WT_LOG_SEL_OR ((uint8_t)0x04)
1655#define FXLS896x_SDCD_CONFIG2_MODE_XYZ ((uint8_t)0x00)
1657#define FXLS896x_SDCD_CONFIG2_MODE_VECM ((uint8_t)0x02)
1659#define FXLS896x_SDCD_CONFIG2_REF_UPD_NO_PENDING \
1663#define FXLS896x_SDCD_CONFIG2_REF_UPD_SYNC_UPDATE ((uint8_t)0x01)
1673typedef uint8_t FXLS896x_SDCD_OT_DBCNT_t;
1681typedef uint8_t FXLS896x_SDCD_WT_DBCNT_t;
1689typedef uint8_t FXLS896x_SDCD_LTHS_LSB_t;
1697typedef uint8_t FXLS896x_SDCD_LTHS_MSB_t;
1705typedef uint8_t FXLS896x_SDCD_UTHS_LSB_t;
1713typedef uint8_t FXLS896x_SDCD_UTHS_MSB_t;
1726 uint8_t st_idle : 5;
1735#define FXLS896x_SELF_TEST_CONFIG1_ST_IDLE_MASK ((uint8_t)0x1f)
1736#define FXLS896x_SELF_TEST_CONFIG1_ST_IDLE_SHIFT ((uint8_t)0)
1758#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_MASK ((uint8_t)0x0f)
1759#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_SHIFT ((uint8_t)0)
1764#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_1 ((uint8_t)0x00)
1765#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_2 ((uint8_t)0x01)
1766#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_4 ((uint8_t)0x02)
1767#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_8 ((uint8_t)0x03)
1768#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_16 ((uint8_t)0x04)
1769#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_32 ((uint8_t)0x05)
1770#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_64 ((uint8_t)0x06)
1771#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_128 ((uint8_t)0x07)
1772#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_256 ((uint8_t)0x08)
1773#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_512 ((uint8_t)0x09)
1774#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_1024 ((uint8_t)0x0a)
1775#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_2048 ((uint8_t)0x0b)
1776#define FXLS896x_SELF_TEST_CONFIG2_ST_DEC_4096 ((uint8_t)0x0c)