22#ifndef ISM330DHCX_REGS_H
23#define ISM330DHCX_REGS_H
48#define DRV_LITTLE_ENDIAN 1234
49#define DRV_BIG_ENDIAN 4321
54#define DRV_BYTE_ORDER DRV_BIG_ENDIAN
59#define DRV_LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
60#define DRV_BIG_ENDIAN __ORDER_BIG_ENDIAN__
61#define DRV_BYTE_ORDER __BYTE_ORDER__
76#ifndef MEMS_SHARED_TYPES
77#define MEMS_SHARED_TYPES
81#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
90#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
102#define PROPERTY_DISABLE (0U)
103#define PROPERTY_ENABLE (1U)
132#ifndef MEMS_UCF_SHARED_TYPES
133#define MEMS_UCF_SHARED_TYPES
170#define ISM330DHCX_I2C_ADD_L 0xD5U
171#define ISM330DHCX_I2C_ADD_H 0xD7U
174#define ISM330DHCX_ID 0x6BU
181#define ISM330DHCX_FUNC_CFG_ACCESS 0x01U
184#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
188#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
195#define ISM330DHCX_PIN_CTRL 0x02U
198#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
202#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
209#define ISM330DHCX_FIFO_CTRL1 0x07U
215#define ISM330DHCX_FIFO_CTRL2 0x08U
218#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
226#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
237#define ISM330DHCX_FIFO_CTRL3 0x09U
240#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
243#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
249#define ISM330DHCX_FIFO_CTRL4 0x0AU
252#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
257#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
265#define ISM330DHCX_COUNTER_BDR_REG1 0x0BU
268#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
274#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
283#define ISM330DHCX_COUNTER_BDR_REG2 0x0CU
289#define ISM330DHCX_INT1_CTRL 0x0DU
292#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
301#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
313#define ISM330DHCX_INT2_CTRL 0x0EU
316#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
325#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
337#define ISM330DHCX_WHO_AM_I 0x0FU
338#define ISM330DHCX_CTRL1_XL 0x10U
341#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
346#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
354#define ISM330DHCX_CTRL2_G 0x11U
357#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
360#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
366#define ISM330DHCX_CTRL3_C 0x12U
369#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
378#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
390#define ISM330DHCX_CTRL4_C 0x13U
393#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
402#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
414#define ISM330DHCX_CTRL5_C 0x14U
417#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
423#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
432#define ISM330DHCX_CTRL6_C 0x15U
435#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
441#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
450#define ISM330DHCX_CTRL7_G 0x16U
453#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
461#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
472#define ISM330DHCX_CTRL8_XL 0x17U
475#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
482#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
492#define ISM330DHCX_CTRL9_XL 0x18U
495#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
503#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
514#define ISM330DHCX_CTRL10_C 0x19U
517#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
521#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
528#define ISM330DHCX_ALL_INT_SRC 0x1AU
531#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
540#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
552#define ISM330DHCX_WAKE_UP_SRC 0x1BU
555#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
564#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
576#define ISM330DHCX_TAP_SRC 0x1CU
579#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
588#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
600#define ISM330DHCX_D6D_SRC 0x1DU
603#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
612#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
624#define ISM330DHCX_STATUS_REG 0x1EU
627#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
632#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
640#define ISM330DHCX_STATUS_SPIAUX 0x1EU
643#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
648#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
656#define ISM330DHCX_OUT_TEMP_L 0x20U
657#define ISM330DHCX_OUT_TEMP_H 0x21U
658#define ISM330DHCX_OUTX_L_G 0x22U
659#define ISM330DHCX_OUTX_H_G 0x23U
660#define ISM330DHCX_OUTY_L_G 0x24U
661#define ISM330DHCX_OUTY_H_G 0x25U
662#define ISM330DHCX_OUTZ_L_G 0x26U
663#define ISM330DHCX_OUTZ_H_G 0x27U
664#define ISM330DHCX_OUTX_L_A 0x28U
665#define ISM330DHCX_OUTX_H_A 0x29U
666#define ISM330DHCX_OUTY_L_A 0x2AU
667#define ISM330DHCX_OUTY_H_A 0x2BU
668#define ISM330DHCX_OUTZ_L_A 0x2CU
669#define ISM330DHCX_OUTZ_H_A 0x2DU
670#define ISM330DHCX_EMB_FUNC_STATUS_MAINPAGE 0x35U
673#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
680#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
690#define ISM330DHCX_FSM_STATUS_A_MAINPAGE 0x36U
693#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
702#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
714#define ISM330DHCX_FSM_STATUS_B_MAINPAGE 0x37U
717#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
726#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
738#define ISM330DHCX_MLC_STATUS_MAINPAGE 0x38U
741#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
750#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
762#define ISM330DHCX_STATUS_MASTER_MAINPAGE 0x39U
765#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
773#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
784#define ISM330DHCX_FIFO_STATUS1 0x3AU
790#define ISM330DHCX_FIFO_STATUS2 0x3BU
793#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
801#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
812#define ISM330DHCX_TIMESTAMP0 0x40U
813#define ISM330DHCX_TIMESTAMP1 0x41U
814#define ISM330DHCX_TIMESTAMP2 0x42U
815#define ISM330DHCX_TIMESTAMP3 0x43U
816#define ISM330DHCX_TAP_CFG0 0x56U
819#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
828#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
840#define ISM330DHCX_TAP_CFG1 0x57U
843#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
846#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
852#define ISM330DHCX_TAP_CFG2 0x58U
855#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
859#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
866#define ISM330DHCX_TAP_THS_6D 0x59U
869#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
873#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
880#define ISM330DHCX_INT_DUR2 0x5AU
883#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
887#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
894#define ISM330DHCX_WAKE_UP_THS 0x5BU
897#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
901#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
908#define ISM330DHCX_WAKE_UP_DUR 0x5CU
911#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
916#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
924#define ISM330DHCX_FREE_FALL 0x5DU
927#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
930#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
936#define ISM330DHCX_MD1_CFG 0x5EU
939#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
948#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
960#define ISM330DHCX_MD2_CFG 0x5FU
963#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
972#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
984#define ISM330DHCX_INTERNAL_FREQ_FINE 0x63U
990#define ISM330DHCX_INT_OIS 0x6FU
993#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
999#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1008#define ISM330DHCX_CTRL1_OIS 0x70U
1011#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1019#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1030#define ISM330DHCX_CTRL2_OIS 0x71U
1033#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1039#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1048#define ISM330DHCX_CTRL3_OIS 0x72U
1051#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1056#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1064#define ISM330DHCX_X_OFS_USR 0x73U
1065#define ISM330DHCX_Y_OFS_USR 0x74U
1066#define ISM330DHCX_Z_OFS_USR 0x75U
1067#define ISM330DHCX_FIFO_DATA_OUT_TAG 0x78U
1070#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1074#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1081#define ISM330DHCX_FIFO_DATA_OUT_X_L 0x79U
1082#define ISM330DHCX_FIFO_DATA_OUT_X_H 0x7AU
1083#define ISM330DHCX_FIFO_DATA_OUT_Y_L 0x7BU
1084#define ISM330DHCX_FIFO_DATA_OUT_Y_H 0x7CU
1085#define ISM330DHCX_FIFO_DATA_OUT_Z_L 0x7DU
1086#define ISM330DHCX_FIFO_DATA_OUT_Z_H 0x7EU
1087#define ISM330DHCX_PAGE_SEL 0x02U
1090#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1093#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1099#define ISM330DHCX_EMB_FUNC_EN_A 0x04U
1102#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1108#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1117#define ISM330DHCX_EMB_FUNC_EN_B 0x05U
1120#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1126#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1135#define ISM330DHCX_PAGE_ADDRESS 0x08U
1141#define ISM330DHCX_PAGE_VALUE 0x09U
1147#define ISM330DHCX_EMB_FUNC_INT1 0x0AU
1150#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1157#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1167#define ISM330DHCX_FSM_INT1_A 0x0BU
1170#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1179#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1191#define ISM330DHCX_FSM_INT1_B 0x0CU
1194#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1203#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1215#define ISM330DHCX_MLC_INT1 0x0DU
1218#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1227#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1239#define ISM330DHCX_EMB_FUNC_INT2 0x0EU
1242#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1249#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1259#define ISM330DHCX_FSM_INT2_A 0x0FU
1262#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1271#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1283#define ISM330DHCX_FSM_INT2_B 0x10U
1286#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1295#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1307#define ISM330DHCX_MLC_INT2 0x11U
1310#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1319#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1331#define ISM330DHCX_EMB_FUNC_STATUS 0x12U
1334#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1341#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1351#define ISM330DHCX_FSM_STATUS_A 0x13U
1354#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1363#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1375#define ISM330DHCX_FSM_STATUS_B 0x14U
1378#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1387#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1399#define ISM330DHCX_MLC_STATUS 0x15U
1402#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1411#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1423#define ISM330DHCX_PAGE_RW 0x17U
1426#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1430#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1437#define ISM330DHCX_EMB_FUNC_FIFO_CFG 0x44U
1440#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1444#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1451#define ISM330DHCX_FSM_ENABLE_A 0x46U
1454#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1463#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1475#define ISM330DHCX_FSM_ENABLE_B 0x47U
1478#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1487#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1499#define ISM330DHCX_FSM_LONG_COUNTER_L 0x48U
1500#define ISM330DHCX_FSM_LONG_COUNTER_H 0x49U
1501#define ISM330DHCX_FSM_LONG_COUNTER_CLEAR 0x4AU
1504#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1508#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1515#define ISM330DHCX_FSM_OUTS1 0x4CU
1518#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1527#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1539#define ISM330DHCX_FSM_OUTS2 0x4DU
1542#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1551#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1563#define ISM330DHCX_FSM_OUTS3 0x4EU
1566#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1575#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1587#define ISM330DHCX_FSM_OUTS4 0x4FU
1590#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1599#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1611#define ISM330DHCX_FSM_OUTS5 0x50U
1614#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1623#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1635#define ISM330DHCX_FSM_OUTS6 0x51U
1638#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1647#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1659#define ISM330DHCX_FSM_OUTS7 0x52U
1662#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1671#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1683#define ISM330DHCX_FSM_OUTS8 0x53U
1686#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1695#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1707#define ISM330DHCX_FSM_OUTS9 0x54U
1710#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1719#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1731#define ISM330DHCX_FSM_OUTS10 0x55U
1734#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1743#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1755#define ISM330DHCX_FSM_OUTS11 0x56U
1758#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1767#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1779#define ISM330DHCX_FSM_OUTS12 0x57U
1782#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1791#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1803#define ISM330DHCX_FSM_OUTS13 0x58U
1806#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1815#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1827#define ISM330DHCX_FSM_OUTS14 0x59U
1830#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1839#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1851#define ISM330DHCX_FSM_OUTS15 0x5AU
1854#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1863#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1875#define ISM330DHCX_FSM_OUTS16 0x5BU
1878#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1887#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1899#define ISM330DHCX_EMB_FUNC_ODR_CFG_B 0x5FU
1902#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1906#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1913#define ISM330DHCX_EMB_FUNC_ODR_CFG_C 0x60U
1916#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1920#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1927#define ISM330DHCX_STEP_COUNTER_L 0x62U
1928#define ISM330DHCX_STEP_COUNTER_H 0x63U
1929#define ISM330DHCX_EMB_FUNC_SRC 0x64U
1932#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1940#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1951#define ISM330DHCX_EMB_FUNC_INIT_A 0x66U
1954#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1960#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1969#define ISM330DHCX_EMB_FUNC_INIT_B 0x67U
1972#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
1978#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
1987#define ISM330DHCX_MLC0_SRC 0x70U
1988#define ISM330DHCX_MLC1_SRC 0x71U
1989#define ISM330DHCX_MLC2_SRC 0x72U
1990#define ISM330DHCX_MLC3_SRC 0x73U
1991#define ISM330DHCX_MLC4_SRC 0x74U
1992#define ISM330DHCX_MLC5_SRC 0x75U
1993#define ISM330DHCX_MLC6_SRC 0x76U
1994#define ISM330DHCX_MLC7_SRC 0x77U
1995#define ISM330DHCX_MAG_SENSITIVITY_L 0xBAU
1996#define ISM330DHCX_MAG_SENSITIVITY_H 0xBBU
1997#define ISM330DHCX_MAG_OFFX_L 0xC0U
1998#define ISM330DHCX_MAG_OFFX_H 0xC1U
1999#define ISM330DHCX_MAG_OFFY_L 0xC2U
2000#define ISM330DHCX_MAG_OFFY_H 0xC3U
2001#define ISM330DHCX_MAG_OFFZ_L 0xC4U
2002#define ISM330DHCX_MAG_OFFZ_H 0xC5U
2003#define ISM330DHCX_MAG_SI_XX_L 0xC6U
2004#define ISM330DHCX_MAG_SI_XX_H 0xC7U
2005#define ISM330DHCX_MAG_SI_XY_L 0xC8U
2006#define ISM330DHCX_MAG_SI_XY_H 0xC9U
2007#define ISM330DHCX_MAG_SI_XZ_L 0xCAU
2008#define ISM330DHCX_MAG_SI_XZ_H 0xCBU
2009#define ISM330DHCX_MAG_SI_YY_L 0xCCU
2010#define ISM330DHCX_MAG_SI_YY_H 0xCDU
2011#define ISM330DHCX_MAG_SI_YZ_L 0xCEU
2012#define ISM330DHCX_MAG_SI_YZ_H 0xCFU
2013#define ISM330DHCX_MAG_SI_ZZ_L 0xD0U
2014#define ISM330DHCX_MAG_SI_ZZ_H 0xD1U
2015#define ISM330DHCX_MAG_CFG_A 0xD4U
2018#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2023#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2031#define ISM330DHCX_MAG_CFG_B 0xD5U
2034#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2037#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2043#define ISM330DHCX_FSM_LC_TIMEOUT_L 0x17AU
2044#define ISM330DHCX_FSM_LC_TIMEOUT_H 0x17BU
2045#define ISM330DHCX_FSM_PROGRAMS 0x17CU
2046#define ISM330DHCX_FSM_START_ADD_L 0x17EU
2047#define ISM330DHCX_FSM_START_ADD_H 0x17FU
2048#define ISM330DHCX_PEDO_CMD_REG 0x183U
2051#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2055#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2062#define ISM330DHCX_PEDO_DEB_STEPS_CONF 0x184U
2063#define ISM330DHCX_PEDO_SC_DELTAT_L 0x1D0U
2064#define ISM330DHCX_PEDO_SC_DELTAT_H 0x1D1U
2065#define ISM330DHCX_MLC_MAG_SENSITIVITY_L 0x1E8U
2066#define ISM330DHCX_MLC_MAG_SENSITIVITY_H 0x1E9U
2067#define ISM330DHCX_SENSOR_HUB_1 0x02U
2070#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2079#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2091#define ISM330DHCX_SENSOR_HUB_2 0x03U
2094#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2103#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2115#define ISM330DHCX_SENSOR_HUB_3 0x04U
2118#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2127#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2139#define ISM330DHCX_SENSOR_HUB_4 0x05U
2142#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2151#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2163#define ISM330DHCX_SENSOR_HUB_5 0x06U
2166#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2175#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2187#define ISM330DHCX_SENSOR_HUB_6 0x07U
2190#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2199#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2211#define ISM330DHCX_SENSOR_HUB_7 0x08U
2214#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2223#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2235#define ISM330DHCX_SENSOR_HUB_8 0x09U
2238#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2247#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2259#define ISM330DHCX_SENSOR_HUB_9 0x0AU
2262#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2271#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2283#define ISM330DHCX_SENSOR_HUB_10 0x0BU
2286#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2295#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2307#define ISM330DHCX_SENSOR_HUB_11 0x0CU
2310#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2319#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2331#define ISM330DHCX_SENSOR_HUB_12 0x0DU
2334#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2343#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2355#define ISM330DHCX_SENSOR_HUB_13 0x0EU
2358#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2367#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2379#define ISM330DHCX_SENSOR_HUB_14 0x0FU
2382#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2391#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2403#define ISM330DHCX_SENSOR_HUB_15 0x10U
2406#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2415#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2427#define ISM330DHCX_SENSOR_HUB_16 0x11U
2430#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2439#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2451#define ISM330DHCX_SENSOR_HUB_17 0x12U
2454#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2463#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2475#define ISM330DHCX_SENSOR_HUB_18 0x13U
2478#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2487#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2499#define ISM330DHCX_MASTER_CONFIG 0x14U
2502#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2510#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2522#define ISM330DHCX_SLV0_ADD 0x15U
2525#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2528#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2535#define ISM330DHCX_SLV0_SUBADD 0x16U
2541#define ISM330DHCX_SLV0_CONFIG 0x17U
2544#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2549#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2558#define ISM330DHCX_SLV1_ADD 0x18U
2561#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2564#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2570#define ISM330DHCX_SLV1_SUBADD 0x19U
2576#define ISM330DHCX_SLV1_CONFIG 0x1AU
2579#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2583#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2590#define ISM330DHCX_SLV2_ADD 0x1BU
2593#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2596#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2602#define ISM330DHCX_SLV2_SUBADD 0x1CU
2608#define ISM330DHCX_SLV2_CONFIG 0x1DU
2611#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2615#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2622#define ISM330DHCX_SLV3_ADD 0x1EU
2625#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2628#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2634#define ISM330DHCX_SLV3_SUBADD 0x1FU
2640#define ISM330DHCX_SLV3_CONFIG 0x20U
2643#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2647#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
2654#define ISM330DHCX_DATAWRITE_SLV0 0x21U
2660#define ISM330DHCX_STATUS_MASTER 0x22U
2663#if DRV_BYTE_ORDER == DRV_LITTLE_ENDIAN
2671#elif DRV_BYTE_ORDER == DRV_BIG_ENDIAN
3051 uint8_t *buf, uint8_t len);
ism330dhcx_sleep_status_on_int_t
int32_t ism330dhcx_pedo_int_mode_set(stmdev_ctx_t *ctx, ism330dhcx_carry_count_en_t val)
Set when user wants to generate interrupt on count overflow event/every step.
int32_t ism330dhcx_aux_gy_lp1_bandwidth_set(stmdev_ctx_t *ctx, ism330dhcx_ftype_ois_t val)
Selects gyroscope digital LPF1 filter bandwidth.
int32_t ism330dhcx_device_conf_get(stmdev_ctx_t *ctx, uint8_t *val)
DEVICE_CONF bit configuration[get].
int32_t ism330dhcx_fifo_mode_get(stmdev_ctx_t *ctx, ism330dhcx_fifo_mode_t *val)
FIFO mode selection.
int32_t ism330dhcx_tap_threshold_x_get(stmdev_ctx_t *ctx, uint8_t *val)
X-axis tap recognition threshold.
ism330dhcx_carry_count_en_t
int32_t ism330dhcx_tap_axis_priority_get(stmdev_ctx_t *ctx, ism330dhcx_tap_priority_t *val)
Selection of axis priority for TAP detection[get].
int32_t ism330dhcx_den_mode_set(stmdev_ctx_t *ctx, ism330dhcx_den_mode_t val)
DEN functionality marking mode.
int32_t ism330dhcx_den_polarity_set(stmdev_ctx_t *ctx, ism330dhcx_den_lh_t val)
DEN active level configuration.
int32_t ism330dhcx_aux_gy_clamp_set(stmdev_ctx_t *ctx, ism330dhcx_st_ois_clampdis_t val)
Enable / Disables OIS chain clamp.
ism330dhcx_trig_counter_bdr_t
int32_t ism330dhcx_ff_dur_set(stmdev_ctx_t *ctx, uint8_t val)
Free-fall duration event(1LSb = 1 / ODR).
int32_t ism330dhcx_fifo_xl_batch_set(stmdev_ctx_t *ctx, ism330dhcx_bdr_xl_t val)
Selects Batching Data Rate (writing frequency in FIFO) for accelerometer data.
int32_t ism330dhcx_sh_status_get(stmdev_ctx_t *ctx, ism330dhcx_status_master_t *val)
Sensor hub source register.
int32_t ism330dhcx_sh_master_get(stmdev_ctx_t *ctx, uint8_t *val)
Sensor hub I2C master enable.
int32_t ism330dhcx_fifo_temp_batch_set(stmdev_ctx_t *ctx, ism330dhcx_odr_t_batch_t val)
Selects Batching Data Rate (writing frequency in FIFO) for temperature data.
float ism330dhcx_from_fs8g_to_mg(int16_t lsb)
int32_t ism330dhcx_act_pin_notification_set(stmdev_ctx_t *ctx, ism330dhcx_sleep_status_on_int_t val)
Drives the sleep status instead of sleep change on INT pins (only if INT1_SLEEP_CHANGE or INT2_SLEEP_...
int32_t ism330dhcx_act_sleep_dur_get(stmdev_ctx_t *ctx, uint8_t *val)
Duration to go in sleep mode.
int32_t ism330dhcx_xl_hp_path_internal_get(stmdev_ctx_t *ctx, ism330dhcx_slope_fds_t *val)
HPF or SLOPE filter selection on wake-up and Activity/Inactivity functions.
int32_t ism330dhcx_gy_self_test_get(stmdev_ctx_t *ctx, ism330dhcx_st_g_t *val)
Angular rate sensor self-test enable.
int32_t ism330dhcx_aux_xl_self_test_set(stmdev_ctx_t *ctx, ism330dhcx_st_xl_ois_t val)
Selects accelerometer self-test.
int32_t ism330dhcx_sh_batch_slave_0_set(stmdev_ctx_t *ctx, uint8_t val)
Enable FIFO batching data of first slave.
int32_t ism330dhcx_fifo_gy_batch_set(stmdev_ctx_t *ctx, ism330dhcx_bdr_gy_t val)
Selects Batching Data Rate (writing frequency in FIFO) for gyroscope data.
float ism330dhcx_from_fs4000dps_to_mdps(int16_t lsb)
int32_t ism330dhcx_mag_offset_set(stmdev_ctx_t *ctx, int16_t *val)
Offset for hard-iron compensation register (r/w).
int32_t ism330dhcx_wkup_threshold_get(stmdev_ctx_t *ctx, uint8_t *val)
Threshold for wakeup: 1 LSB weight depends on WAKE_THS_W in WAKE_UP_DUR.
int32_t ism330dhcx_xl_offset_weight_get(stmdev_ctx_t *ctx, ism330dhcx_usr_off_w_t *val)
Weight of XL user offset bits of registers X_OFS_USR (73h), Y_OFS_USR (74h), Z_OFS_USR (75h).
int32_t ism330dhcx_xl_usr_offset_x_set(stmdev_ctx_t *ctx, uint8_t *buff)
Accelerometer X-axis user offset correction expressed in two’s complement, weight depends on USR_OFF_...
int32_t ism330dhcx_mlc_data_rate_get(stmdev_ctx_t *ctx, ism330dhcx_mlc_odr_t *val)
Machine Learning Core data rate selection.
int32_t ism330dhcx_xl_full_scale_get(stmdev_ctx_t *ctx, ism330dhcx_fs_xl_t *val)
Accelerometer full-scale selection.
int32_t ism330dhcx_tilt_sens_set(stmdev_ctx_t *ctx, uint8_t val)
Enable tilt calculation.
int32_t ism330dhcx_fifo_pedo_batch_set(stmdev_ctx_t *ctx, uint8_t val)
Enable FIFO batching of pedometer embedded function values.
int32_t ism330dhcx_pin_int2_route_set(stmdev_ctx_t *ctx, ism330dhcx_pin_int2_route_t *val)
Select the signal that need to route on int2 pad[set].
int32_t ism330dhcx_gy_full_scale_get(stmdev_ctx_t *ctx, ism330dhcx_fs_g_t *val)
Gyroscope UI chain full-scale selection.
int32_t ism330dhcx_den_mark_axis_z_get(stmdev_ctx_t *ctx, uint8_t *val)
DEN value stored in LSB of Z-axis.
int32_t ism330dhcx_wkup_ths_weight_get(stmdev_ctx_t *ctx, ism330dhcx_wake_ths_w_t *val)
Weight of 1 LSB of wakeup threshold.
int32_t ism330dhcx_gy_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
Gyroscope new data available.
int32_t ism330dhcx_compression_algo_get(stmdev_ctx_t *ctx, ism330dhcx_uncoptr_rate_t *val)
Enable and configure compression algo.
ism330dhcx_single_double_tap_t
int32_t ism330dhcx_angular_rate_raw_get(stmdev_ctx_t *ctx, int16_t *val)
Angular rate sensor.
int32_t ism330dhcx_timestamp_raw_get(stmdev_ctx_t *ctx, uint32_t *val)
Timestamp first data output register (r).
float ism330dhcx_from_fs2g_to_mg(int16_t lsb)
int32_t ism330dhcx_gy_filter_lp1_set(stmdev_ctx_t *ctx, uint8_t val)
Enables gyroscope digital LPF1 if auxiliary SPI is disabled; the bandwidth can be selected through FT...
int32_t ism330dhcx_aux_mode_set(stmdev_ctx_t *ctx, ism330dhcx_ois_en_spi2_t val)
Enables OIS chain data processing for gyro in Mode 3 and Mode 4 (mode4_en = 1) and accelerometer data...
int32_t ism330dhcx_fsm_number_of_programs_set(stmdev_ctx_t *ctx, uint8_t *buff)
FSM number of programs register.
int32_t ism330dhcx_gy_power_mode_get(stmdev_ctx_t *ctx, ism330dhcx_g_hm_mode_t *val)
gy_power_mode: [get] Operating mode for gyroscope.
int32_t ism330dhcx_wkup_threshold_set(stmdev_ctx_t *ctx, uint8_t val)
Threshold for wakeup: 1 LSB weight depends on WAKE_THS_W in WAKE_UP_DUR.
int32_t ism330dhcx_long_clr_get(stmdev_ctx_t *ctx, ism330dhcx_fsm_lc_clr_t *val)
Clear FSM long counter value.
int32_t ism330dhcx_device_id_get(stmdev_ctx_t *ctx, uint8_t *buff)
Device Who am I.
int32_t ism330dhcx_tap_detection_on_y_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable Y direction in tap recognition.
int32_t ism330dhcx_gy_hp_path_internal_get(stmdev_ctx_t *ctx, ism330dhcx_hpm_g_t *val)
Enables gyroscope digital high-pass filter.
int32_t ism330dhcx_filter_settling_mask_set(stmdev_ctx_t *ctx, uint8_t val)
Mask DRDY on pin (both XL & Gyro) until filter settling ends (XL and Gyro independently masked).
int32_t ism330dhcx_aux_den_polarity_set(stmdev_ctx_t *ctx, ism330dhcx_den_lh_ois_t val)
Indicates polarity of DEN signal on OIS chain.
ism330dhcx_uncoptr_rate_t
int32_t ism330dhcx_sh_data_rate_get(stmdev_ctx_t *ctx, ism330dhcx_shub_odr_t *val)
Rate at which the master communicates.
float ism330dhcx_from_fs4g_to_mg(int16_t lsb)
int32_t ism330dhcx_mag_offset_get(stmdev_ctx_t *ctx, int16_t *val)
Offset for hard-iron compensation register (r/w).
int32_t ism330dhcx_xl_self_test_get(stmdev_ctx_t *ctx, ism330dhcx_st_xl_t *val)
Linear acceleration sensor self-test enable.
int32_t ism330dhcx_fifo_watermark_get(stmdev_ctx_t *ctx, uint16_t *val)
FIFO watermark level selection.
int32_t ism330dhcx_ln_pg_read(stmdev_ctx_t *ctx, uint16_t address, uint8_t *val)
ism330dhcx_hp_slope_xl_en_t
int32_t ism330dhcx_xl_power_mode_get(stmdev_ctx_t *ctx, ism330dhcx_xl_hm_mode_t *val)
Accelerometer power mode[get].
int32_t ism330dhcx_tap_shock_set(stmdev_ctx_t *ctx, uint8_t val)
Maximum duration is the maximum time of an overthreshold signal detection to be recognized as a tap e...
ism330dhcx_dataready_pulsed_t
int32_t ism330dhcx_long_cnt_int_value_get(stmdev_ctx_t *ctx, uint16_t *val)
FSM long counter timeout register (r/w).
int32_t ism330dhcx_wkup_ths_weight_set(stmdev_ctx_t *ctx, ism330dhcx_wake_ths_w_t val)
Weight of 1 LSB of wakeup threshold.
int32_t ism330dhcx_sh_slv2_cfg_read(stmdev_ctx_t *ctx, ism330dhcx_sh_cfg_read_t *val)
Configure slave 2 for perform a write/read.
int32_t ism330dhcx_odr_cal_reg_set(stmdev_ctx_t *ctx, uint8_t val)
Difference in percentage of the effective ODR (and timestamp rate) with respect to the typical.
int32_t ism330dhcx_xl_usr_offset_y_set(stmdev_ctx_t *ctx, uint8_t *buff)
Accelerometer Y-axis user offset correction expressed in two’s complement, weight depends on USR_OFF_...
int32_t ism330dhcx_aux_xl_self_test_get(stmdev_ctx_t *ctx, ism330dhcx_st_xl_ois_t *val)
Selects accelerometer self-test.
int32_t ism330dhcx_xl_power_mode_set(stmdev_ctx_t *ctx, ism330dhcx_xl_hm_mode_t val)
Accelerometer power mode.
int32_t ism330dhcx_xl_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
Accelerometer new data available.
int32_t ism330dhcx_mag_y_orient_set(stmdev_ctx_t *ctx, ism330dhcx_mag_y_axis_t val)
Magnetometer Y-axis coordinates rotation (to be aligned to accelerometer/gyroscope axes orientation).
int32_t ism330dhcx_mag_x_orient_set(stmdev_ctx_t *ctx, ism330dhcx_mag_x_axis_t val)
Magnetometer X-axis coordinates rotation (to be aligned to accelerometer/gyroscope axes orientation).
int32_t ism330dhcx_sh_batch_slave_1_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable FIFO batching data of second slave.
int32_t ism330dhcx_aux_status_reg_get(stmdev_ctx_t *ctx, ism330dhcx_status_spiaux_t *val)
The STATUS_SPIAux register is read by the auxiliary SPI.
int32_t ism330dhcx_pedo_int_mode_get(stmdev_ctx_t *ctx, ism330dhcx_carry_count_en_t *val)
Set when user wants to generate interrupt on count overflow event/every step.
int32_t ism330dhcx_fifo_watermark_set(stmdev_ctx_t *ctx, uint16_t val)
FIFO watermark level selection.
int32_t ism330dhcx_wkup_dur_set(stmdev_ctx_t *ctx, uint8_t val)
Wake up duration event(1LSb = 1 / ODR).
int32_t ism330dhcx_fifo_virtual_sens_odr_chg_set(stmdev_ctx_t *ctx, uint8_t val)
Enables ODR CHANGE virtual sensor to be batched in FIFO.
ism330dhcx_start_config_t
int32_t ism330dhcx_xl_offset_weight_set(stmdev_ctx_t *ctx, ism330dhcx_usr_off_w_t val)
Weight of XL user offset bits of registers X_OFS_USR (73h), Y_OFS_USR (74h), Z_OFS_USR (75h).
int32_t ism330dhcx_aux_gy_lp1_bandwidth_get(stmdev_ctx_t *ctx, ism330dhcx_ftype_ois_t *val)
Selects gyroscope digital LPF1 filter bandwidth.
int32_t ism330dhcx_gy_lp1_bandwidth_set(stmdev_ctx_t *ctx, ism330dhcx_ftype_t val)
Gyroscope low pass filter 1 bandwidth.
int32_t ism330dhcx_compression_algo_real_time_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables/Disables compression algorithm runtime.
ism330dhcx_filter_xl_conf_ois_t
int32_t ism330dhcx_sh_pin_mode_set(stmdev_ctx_t *ctx, ism330dhcx_shub_pu_en_t val)
Master I2C pull-up enable.
int32_t ism330dhcx_pin_polarity_get(stmdev_ctx_t *ctx, ism330dhcx_h_lactive_t *val)
Interrupt active-high/low.
int32_t ism330dhcx_sh_pass_through_set(stmdev_ctx_t *ctx, uint8_t val)
I2C interface pass-through.
int32_t ism330dhcx_int_notification_get(stmdev_ctx_t *ctx, ism330dhcx_lir_t *val)
All interrupt signals notification mode.
int32_t ism330dhcx_mlc_set(stmdev_ctx_t *ctx, uint8_t val)
Enable Machine Learning Core.
int32_t ism330dhcx_gy_full_scale_set(stmdev_ctx_t *ctx, ism330dhcx_fs_g_t val)
Gyroscope UI chain full-scale selection.
int32_t ism330dhcx_sh_data_rate_set(stmdev_ctx_t *ctx, ism330dhcx_shub_odr_t val)
Rate at which the master communicates.
float ism330dhcx_from_lsb_to_celsius(int16_t lsb)
int32_t ism330dhcx_tilt_sens_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable tilt calculation.
int32_t ism330dhcx_tap_axis_priority_set(stmdev_ctx_t *ctx, ism330dhcx_tap_priority_t val)
Selection of axis priority for TAP detection.
int32_t ism330dhcx_4d_mode_get(stmdev_ctx_t *ctx, uint8_t *val)
4D orientation detection enable.
int32_t ism330dhcx_aux_drdy_on_int2_set(stmdev_ctx_t *ctx, uint8_t val)
Enables/Disable OIS chain DRDY on INT2 pin.
int32_t ism330dhcx_pin_polarity_set(stmdev_ctx_t *ctx, ism330dhcx_h_lactive_t val)
Interrupt active-high/low.
int32_t ism330dhcx_aux_spi_mode_get(stmdev_ctx_t *ctx, ism330dhcx_sim_ois_t *val)
SPI2 3- or 4-wire interface.
int32_t ism330dhcx_tilt_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
Interrupt status bit for tilt detection.
int32_t ism330dhcx_gy_sleep_mode_set(stmdev_ctx_t *ctx, uint8_t val)
Enables gyroscope Sleep mode.
int32_t ism330dhcx_tap_threshold_y_get(stmdev_ctx_t *ctx, uint8_t *val)
Y-axis tap recognition threshold.
int32_t ism330dhcx_sh_slv1_cfg_read(stmdev_ctx_t *ctx, ism330dhcx_sh_cfg_read_t *val)
Configure slave 0 for perform a write/read.
int32_t ism330dhcx_sh_master_set(stmdev_ctx_t *ctx, uint8_t val)
Sensor hub I2C master enable.
int32_t ism330dhcx_read_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Read generic device register.
int32_t ism330dhcx_fifo_ovr_flag_get(stmdev_ctx_t *ctx, uint8_t *val)
FIFO overrun status.
int32_t ism330dhcx_fifo_temp_batch_get(stmdev_ctx_t *ctx, ism330dhcx_odr_t_batch_t *val)
Selects Batching Data Rate (writing frequency in FIFO) for temperature data.
int32_t ism330dhcx_emb_fsm_en_set(stmdev_ctx_t *ctx, uint8_t val)
Embedded final state machine functions mode.
int32_t ism330dhcx_aux_xl_bandwidth_get(stmdev_ctx_t *ctx, ism330dhcx_filter_xl_conf_ois_t *val)
Selects accelerometer OIS channel bandwidth.
int32_t ism330dhcx_all_on_int1_set(stmdev_ctx_t *ctx, uint8_t val)
All interrupt signals become available on INT1 pin.
int32_t ism330dhcx_aux_den_polarity_get(stmdev_ctx_t *ctx, ism330dhcx_den_lh_ois_t *val)
Indicates polarity of DEN signal on OIS chain.
int32_t ism330dhcx_timestamp_set(stmdev_ctx_t *ctx, uint8_t val)
Enables timestamp counter.
float ism330dhcx_from_fs250dps_to_mdps(int16_t lsb)
int32_t ism330dhcx_all_on_int1_get(stmdev_ctx_t *ctx, uint8_t *val)
All interrupt signals become available on INT1 pin.
int32_t ism330dhcx_pedo_steps_period_set(stmdev_ctx_t *ctx, uint16_t val)
Time period register for step detection on delta time (r/w).
int32_t ism330dhcx_den_mark_axis_y_set(stmdev_ctx_t *ctx, uint8_t val)
DEN value stored in LSB of Y-axis.
int32_t ism330dhcx_motion_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
Interrupt status bit for significant motion detection.
int32_t ism330dhcx_rounding_mode_get(stmdev_ctx_t *ctx, ism330dhcx_rounding_t *val)
Gyroscope UI chain full-scale selection.
int32_t ism330dhcx_fifo_out_raw_get(stmdev_ctx_t *ctx, uint8_t *buff)
FIFO data output.
int32_t ism330dhcx_status_reg_get(stmdev_ctx_t *ctx, ism330dhcx_status_reg_t *val)
The STATUS_REG register is read by the primary interface.
int32_t ism330dhcx_sh_reset_set(stmdev_ctx_t *ctx)
Reset Master logic and output registers.
int32_t ism330dhcx_fifo_sensor_tag_get(stmdev_ctx_t *ctx, ism330dhcx_fifo_tag_t *val)
Identifies the sensor in FIFO_DATA_OUT.
int32_t ism330dhcx_temp_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
Temperature new data available.
int32_t ism330dhcx_spi_mode_get(stmdev_ctx_t *ctx, ism330dhcx_sim_t *val)
SPI Serial Interface Mode selection.
int32_t ism330dhcx_tap_detection_on_x_set(stmdev_ctx_t *ctx, uint8_t val)
Enable X direction in tap recognition.
int32_t ism330dhcx_ln_pg_write_byte(stmdev_ctx_t *ctx, uint16_t address, uint8_t *val)
Write a line(byte) in a page.
int32_t ism330dhcx_den_mode_get(stmdev_ctx_t *ctx, ism330dhcx_den_mode_t *val)
DEN functionality marking mode.
int32_t ism330dhcx_ff_dur_get(stmdev_ctx_t *ctx, uint8_t *val)
Free-fall duration event(1LSb = 1 / ODR).
int32_t ism330dhcx_aux_gy_self_test_set(stmdev_ctx_t *ctx, ism330dhcx_st_ois_t val)
Selects gyroscope OIS chain self-test.
int32_t ism330dhcx_auto_increment_set(stmdev_ctx_t *ctx, uint8_t val)
Register address automatically incremented during a multiple byte access with a serial interface.
float ism330dhcx_from_fs125dps_to_mdps(int16_t lsb)
int32_t ism330dhcx_fsm_number_of_programs_get(stmdev_ctx_t *ctx, uint8_t *buff)
FSM number of programs register.
int32_t ism330dhcx_boot_get(stmdev_ctx_t *ctx, uint8_t *val)
Reboot memory content.
int32_t ism330dhcx_pin_int1_route_get(stmdev_ctx_t *ctx, ism330dhcx_pin_int1_route_t *val)
Select the signal that need to route on int1 pad.
int32_t ism330dhcx_tap_threshold_y_set(stmdev_ctx_t *ctx, uint8_t val)
Y-axis tap recognition threshold.
int32_t ism330dhcx_pedo_step_detect_get(stmdev_ctx_t *ctx, uint8_t *val)
Interrupt status bit for step detection.
int32_t ism330dhcx_den_mark_axis_x_get(stmdev_ctx_t *ctx, uint8_t *val)
DEN value stored in LSB of X-axis.
int32_t ism330dhcx_block_data_update_get(stmdev_ctx_t *ctx, uint8_t *val)
Block data update.
int32_t ism330dhcx_fifo_pedo_batch_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable FIFO batching of pedometer embedded function values.
int32_t ism330dhcx_motion_sens_set(stmdev_ctx_t *ctx, uint8_t val)
Enable significant motion detection function.
float ism330dhcx_from_fs2000dps_to_mdps(int16_t lsb)
int32_t ism330dhcx_aux_gy_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
AUX gyroscope data available.
int32_t ism330dhcx_sh_slv0_cfg_read(stmdev_ctx_t *ctx, ism330dhcx_sh_cfg_read_t *val)
Configure slave 0 for perform a write/read.
int32_t ism330dhcx_aux_gy_hp_bandwidth_get(stmdev_ctx_t *ctx, ism330dhcx_hpm_ois_t *val)
Selects gyroscope OIS chain digital high-pass filter cutoff.
int32_t ism330dhcx_mlc_data_rate_set(stmdev_ctx_t *ctx, ism330dhcx_mlc_odr_t val)
Machine Learning Core data rate selection.
int32_t ism330dhcx_aux_xl_bandwidth_set(stmdev_ctx_t *ctx, ism330dhcx_filter_xl_conf_ois_t val)
Selects accelerometer OIS channel bandwidth.
int32_t ism330dhcx_act_mode_set(stmdev_ctx_t *ctx, ism330dhcx_inact_en_t val)
Enable inactivity function.
int32_t ism330dhcx_reset_get(stmdev_ctx_t *ctx, uint8_t *val)
Software reset.
int32_t ism330dhcx_sh_write_mode_get(stmdev_ctx_t *ctx, ism330dhcx_write_once_t *val)
Slave 0 write operation is performed only at the first sensor hub cycle.
int32_t ism330dhcx_data_ready_mode_get(stmdev_ctx_t *ctx, ism330dhcx_dataready_pulsed_t *val)
Data-ready pulsed / letched mode.
int32_t ism330dhcx_sdo_sa0_mode_set(stmdev_ctx_t *ctx, ism330dhcx_sdo_pu_en_t val)
Connect/Disconnect SDO/SA0 internal pull-up.
int32_t ism330dhcx_sh_batch_slave_2_set(stmdev_ctx_t *ctx, uint8_t val)
Enable FIFO batching data of third slave.
int32_t ism330dhcx_xl_full_scale_set(stmdev_ctx_t *ctx, ism330dhcx_fs_xl_t val)
Accelerometer full-scale selection[set].
int32_t ism330dhcx_sh_batch_slave_1_set(stmdev_ctx_t *ctx, uint8_t val)
Enable FIFO batching data of second slave.
int32_t ism330dhcx_mag_z_orient_set(stmdev_ctx_t *ctx, ism330dhcx_mag_z_axis_t val)
Magnetometer Z-axis coordinates rotation (to be aligned to accelerometer/gyroscope axes orientation).
int32_t ism330dhcx_pedo_sens_set(stmdev_ctx_t *ctx, uint8_t val)
Enable pedometer algorithm.
int32_t ism330dhcx_gy_lp1_bandwidth_get(stmdev_ctx_t *ctx, ism330dhcx_ftype_t *val)
Gyroscope low pass filter 1 bandwidth.
int32_t ism330dhcx_aux_sdo_ocs_mode_set(stmdev_ctx_t *ctx, ism330dhcx_ois_pu_dis_t val)
On auxiliary interface connect/disconnect SDO and OCS internal pull-up.
int32_t ism330dhcx_timestamp_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables timestamp counter.
int32_t ism330dhcx_sh_syncro_mode_get(stmdev_ctx_t *ctx, ism330dhcx_start_config_t *val)
Sensor hub trigger signal selection.
int32_t ism330dhcx_compression_algo_real_time_set(stmdev_ctx_t *ctx, uint8_t val)
Enables/Disables compression algorithm runtime[set].
int32_t ism330dhcx_tap_threshold_z_set(stmdev_ctx_t *ctx, uint8_t val)
Z-axis recognition threshold.
int32_t ism330dhcx_tap_threshold_z_get(stmdev_ctx_t *ctx, uint8_t *val)
Z-axis recognition threshold.
int32_t ism330dhcx_fsm_enable_set(stmdev_ctx_t *ctx, ism330dhcx_emb_fsm_enable_t *val)
Embedded final state machine functions mode.
int32_t ism330dhcx_aux_pw_on_ctrl_set(stmdev_ctx_t *ctx, ism330dhcx_ois_on_t val)
OIS chain on aux interface power on mode.
int32_t ism330dhcx_rst_batch_counter_set(stmdev_ctx_t *ctx, uint8_t val)
Resets the internal counter of batching events for a single sensor.
int32_t ism330dhcx_xl_usr_offset_on_wkup_set(stmdev_ctx_t *ctx, uint8_t val)
Wake up duration event( 1LSb = 1 / ODR ).
int32_t ism330dhcx_batch_counter_threshold_get(stmdev_ctx_t *ctx, uint16_t *val)
Batch data rate counter.
int32_t ism330dhcx_mem_bank_get(stmdev_ctx_t *ctx, ism330dhcx_reg_access_t *val)
Enable access to the embedded functions/sensor hub configuration registers.
int32_t ism330dhcx_aux_gy_clamp_get(stmdev_ctx_t *ctx, ism330dhcx_st_ois_clampdis_t *val)
Enable / Disables OIS chain clamp.
int32_t ism330dhcx_sh_pin_mode_get(stmdev_ctx_t *ctx, ism330dhcx_shub_pu_en_t *val)
Master I2C pull-up enable.
int32_t ism330dhcx_fifo_wtm_flag_get(stmdev_ctx_t *ctx, uint8_t *val)
FIFO watermark status.
int32_t ism330dhcx_tap_detection_on_x_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable X direction in tap recognition.
int32_t ism330dhcx_den_enable_set(stmdev_ctx_t *ctx, ism330dhcx_den_xl_g_t val)
DEN configuration.
int32_t ism330dhcx_ff_threshold_get(stmdev_ctx_t *ctx, ism330dhcx_ff_ths_t *val)
Free fall threshold setting.
int32_t ism330dhcx_pin_mode_get(stmdev_ctx_t *ctx, ism330dhcx_pp_od_t *val)
Push-pull/open drain selection on interrupt pads.
int32_t ism330dhcx_pedo_steps_period_get(stmdev_ctx_t *ctx, uint16_t *val)
Time period register for step detection on delta time (r/w).
int32_t ism330dhcx_xl_lp2_on_6d_set(stmdev_ctx_t *ctx, uint8_t val)
Low pass filter 2 on 6D function selection.
int32_t ism330dhcx_xl_data_rate_set(stmdev_ctx_t *ctx, ism330dhcx_odr_xl_t val)
Accelerometer UI data rate selection.
int32_t ism330dhcx_aux_den_mode_set(stmdev_ctx_t *ctx, ism330dhcx_lvl2_ois_t val)
Configure DEN mode on the OIS chain.
int32_t ism330dhcx_tap_dur_get(stmdev_ctx_t *ctx, uint8_t *val)
When double tap recognition is enabled, this register expresses the maximum time between two consecut...
int32_t ism330dhcx_pin_mode_set(stmdev_ctx_t *ctx, ism330dhcx_pp_od_t val)
Push-pull/open drain selection on interrupt pads.
int32_t ism330dhcx_boot_set(stmdev_ctx_t *ctx, uint8_t val)
Reboot memory content.
int32_t ism330dhcx_fsm_start_address_get(stmdev_ctx_t *ctx, uint16_t *val)
FSM start address register (r/w).
int32_t ism330dhcx_aux_spi_mode_set(stmdev_ctx_t *ctx, ism330dhcx_sim_ois_t val)
SPI2 3- or 4-wire interface.
int32_t ism330dhcx_aux_xl_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
AUX accelerometer data available.
int32_t ism330dhcx_fifo_cnt_event_batch_get(stmdev_ctx_t *ctx, ism330dhcx_trig_counter_bdr_t *val)
Selects the trigger for the internal counter of batching events between XL and gyro.
float ism330dhcx_from_fs500dps_to_mdps(int16_t lsb)
float ism330dhcx_from_fs1000dps_to_mdps(int16_t lsb)
int32_t ism330dhcx_pedo_debounce_steps_set(stmdev_ctx_t *ctx, uint8_t *buff)
Pedometer debounce configuration register (r/w).
int32_t ism330dhcx_rst_batch_counter_get(stmdev_ctx_t *ctx, uint8_t *val)
Resets the internal counter of batching events for a single sensor.
int32_t ism330dhcx_6d_threshold_set(stmdev_ctx_t *ctx, ism330dhcx_sixd_ths_t val)
Threshold for 4D/6D function.
int32_t ism330dhcx_6d_threshold_get(stmdev_ctx_t *ctx, ism330dhcx_sixd_ths_t *val)
Threshold for 4D/6D function.
int32_t ism330dhcx_compression_algo_init_set(stmdev_ctx_t *ctx, uint8_t val)
FIFO compression feature initialization request.
int32_t ism330dhcx_mag_soft_iron_get(stmdev_ctx_t *ctx, uint16_t *val)
Soft-iron (3x3 symmetric) matrix correction register (r/w).
int32_t ism330dhcx_xl_usr_offset_x_get(stmdev_ctx_t *ctx, uint8_t *buff)
Accelerometer X-axis user offset correction expressed in two’s complement, weight depends on USR_OFF_...
int32_t ism330dhcx_fifo_xl_batch_get(stmdev_ctx_t *ctx, ism330dhcx_bdr_xl_t *val)
Selects Batching Data Rate (writing frequency in FIFO) for accelerometer data.
int32_t ism330dhcx_gy_self_test_set(stmdev_ctx_t *ctx, ism330dhcx_st_g_t val)
Angular rate sensor self-test enable.
int32_t ism330dhcx_fifo_full_flag_get(stmdev_ctx_t *ctx, uint8_t *val)
Smart FIFO full status.
int32_t ism330dhcx_mag_x_orient_get(stmdev_ctx_t *ctx, ism330dhcx_mag_x_axis_t *val)
Magnetometer X-axis coordinates rotation (to be aligned to accelerometer/gyroscope axes orientation).
ism330dhcx_tap_priority_t
int32_t ism330dhcx_tap_detection_on_y_set(stmdev_ctx_t *ctx, uint8_t val)
Enable Y direction in tap recognition.
int32_t ism330dhcx_aux_gy_flag_settling_get(stmdev_ctx_t *ctx, uint8_t *val)
High when the gyroscope output is in the settling phase.
int32_t ism330dhcx_tap_detection_on_z_set(stmdev_ctx_t *ctx, uint8_t val)
Enable Z direction in tap recognition.
int32_t ism330dhcx_xl_lp2_on_6d_get(stmdev_ctx_t *ctx, uint8_t *val)
Low pass filter 2 on 6D function selection.
int32_t ism330dhcx_steps_reset(stmdev_ctx_t *ctx)
Reset step counter register.
int32_t ism330dhcx_temperature_raw_get(stmdev_ctx_t *ctx, int16_t *val)
Temperature data output register (r).
int32_t ism330dhcx_xl_filter_lp2_get(stmdev_ctx_t *ctx, uint8_t *val)
Accelerometer output from LPF2 filtering stage selection.
int32_t ism330dhcx_aux_mode_get(stmdev_ctx_t *ctx, ism330dhcx_ois_en_spi2_t *val)
Enables OIS chain data processing for gyro in Mode 3 and Mode 4 (mode4_en = 1) and accelerometer data...
int32_t ism330dhcx_gy_data_rate_set(stmdev_ctx_t *ctx, ism330dhcx_odr_g_t val)
Gyroscope data rate.
int32_t ism330dhcx_xl_usr_offset_z_get(stmdev_ctx_t *ctx, uint8_t *buff)
Accelerometer X-axis user offset correction expressed in two’s complement, weight depends on USR_OFF_...
int32_t ism330dhcx_tap_dur_set(stmdev_ctx_t *ctx, uint8_t val)
When double tap recognition is enabled, this register expresses the maximum time between two consecut...
int32_t ism330dhcx_fifo_timestamp_decimation_set(stmdev_ctx_t *ctx, ism330dhcx_odr_ts_batch_t val)
Selects decimation for timestamp batching in FIFO.
int32_t ism330dhcx_ff_threshold_set(stmdev_ctx_t *ctx, ism330dhcx_ff_ths_t val)
Free fall threshold setting.
int32_t ism330dhcx_ln_pg_read_byte(stmdev_ctx_t *ctx, uint16_t add, uint8_t *val)
Read a line(byte) in a page.
int32_t ism330dhcx_long_cnt_set(stmdev_ctx_t *ctx, uint16_t val)
FSM long counter status register.
int32_t ism330dhcx_mlc_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable Machine Learning Core.
int32_t ism330dhcx_xl_usr_offset_on_wkup_get(stmdev_ctx_t *ctx, uint8_t *val)
Wake up duration event( 1LSb = 1 / ODR ).
int32_t ism330dhcx_xl_data_rate_get(stmdev_ctx_t *ctx, ism330dhcx_odr_xl_t *val)
Accelerometer UI data rate selection.
int32_t ism330dhcx_xl_fast_settling_set(stmdev_ctx_t *ctx, uint8_t val)
Enables accelerometer LPF2 and HPF fast-settling mode.
int32_t ism330dhcx_aux_sdo_ocs_mode_get(stmdev_ctx_t *ctx, ism330dhcx_ois_pu_dis_t *val)
On auxiliary interface connect/disconnect SDO and OCS internal pull-up.
int32_t ism330dhcx_fifo_mode_set(stmdev_ctx_t *ctx, ism330dhcx_fifo_mode_t val)
FIFO mode selection.
int32_t ism330dhcx_aux_xl_full_scale_get(stmdev_ctx_t *ctx, ism330dhcx_fs_xl_ois_t *val)
Selects accelerometer OIS channel full-scale.
int32_t ism330dhcx_fifo_data_level_get(stmdev_ctx_t *ctx, uint16_t *val)
Number of unread sensor data (TAG + 6 bytes) stored in FIFO.
int32_t ism330dhcx_sh_write_mode_set(stmdev_ctx_t *ctx, ism330dhcx_write_once_t val)
Slave 0 write operation is performed only at the first sensor hub cycle.
int32_t ism330dhcx_fifo_status_get(stmdev_ctx_t *ctx, ism330dhcx_fifo_status2_t *val)
Smart FIFO status.
int32_t ism330dhcx_fifo_stop_on_wtm_set(stmdev_ctx_t *ctx, uint8_t val)
Sensing chain FIFO stop values memorization at threshold level.
int32_t ism330dhcx_timestamp_rst(stmdev_ctx_t *ctx)
Reset timestamp counter.
int32_t ism330dhcx_gy_data_rate_get(stmdev_ctx_t *ctx, ism330dhcx_odr_g_t *val)
Gyroscope data rate.
int32_t ism330dhcx_data_ready_mode_set(stmdev_ctx_t *ctx, ism330dhcx_dataready_pulsed_t val)
Data-ready pulsed / letched mode.
int32_t ism330dhcx_tap_quiet_get(stmdev_ctx_t *ctx, uint8_t *val)
Quiet time is the time after the first detected tap in which there must not be any overthreshold even...
int32_t ism330dhcx_tap_mode_get(stmdev_ctx_t *ctx, ism330dhcx_single_double_tap_t *val)
Single/double-tap event enable.
int32_t ism330dhcx_sh_batch_slave_3_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable FIFO batching data of fourth slave.
int32_t ism330dhcx_mag_soft_iron_set(stmdev_ctx_t *ctx, uint16_t *val)
Soft-iron (3x3 symmetric) matrix correction register (r/w).
int32_t ism330dhcx_mag_sensitivity_set(stmdev_ctx_t *ctx, uint16_t val)
External magnetometer sensitivity value register.
int32_t ism330dhcx_xl_usr_offset_z_set(stmdev_ctx_t *ctx, uint8_t *buff)
Accelerometer Z-axis user offset correction expressed in two’s complement, weight depends on USR_OFF_...
int32_t ism330dhcx_tap_threshold_x_set(stmdev_ctx_t *ctx, uint8_t val)
X-axis tap recognition threshold.
int32_t ism330dhcx_4d_mode_set(stmdev_ctx_t *ctx, uint8_t val)
4D orientation detection enable.
int32_t ism330dhcx_emb_fsm_en_get(stmdev_ctx_t *ctx, uint8_t *val)
Embedded final state machine functions mode.
int32_t ism330dhcx_den_mark_axis_z_set(stmdev_ctx_t *ctx, uint8_t val)
DEN value stored in LSB of Z-axis.
int32_t ism330dhcx_pedo_debounce_steps_get(stmdev_ctx_t *ctx, uint8_t *buff)
Pedometer debounce configuration register (r/w).
int32_t ism330dhcx_filter_settling_mask_get(stmdev_ctx_t *ctx, uint8_t *val)
Mask DRDY on pin (both XL & Gyro) until filter settling ends (XL and Gyro independently masked).
int32_t ism330dhcx_batch_counter_threshold_set(stmdev_ctx_t *ctx, uint16_t val)
Batch data rate counter.
int32_t ism330dhcx_pin_int2_route_get(stmdev_ctx_t *ctx, ism330dhcx_pin_int2_route_t *val)
Select the signal that need to route on int2 pad.
int32_t ism330dhcx_tap_mode_set(stmdev_ctx_t *ctx, ism330dhcx_single_double_tap_t val)
Single/double-tap event enable.
int32_t ism330dhcx_int_notification_set(stmdev_ctx_t *ctx, ism330dhcx_lir_t val)
All interrupt signals notification mode.
int32_t ism330dhcx_compression_algo_init_get(stmdev_ctx_t *ctx, uint8_t *val)
FIFO compression feature initialization request.
int32_t ism330dhcx_den_mark_axis_y_get(stmdev_ctx_t *ctx, uint8_t *val)
DEN value stored in LSB of Y-axis.
int32_t ism330dhcx_gy_filter_lp1_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables gyroscope digital LPF1 if auxiliary SPI is disabled; the bandwidth can be selected through FT...
ism330dhcx_st_ois_clampdis_t
int32_t ism330dhcx_fsm_out_get(stmdev_ctx_t *ctx, ism330dhcx_fsm_out_t *val)
FSM output registers.
ism330dhcx_odr_ts_batch_t
int32_t ism330dhcx_den_enable_get(stmdev_ctx_t *ctx, ism330dhcx_den_xl_g_t *val)
DEN configuration.
int32_t ism330dhcx_tap_detection_on_z_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable Z direction in tap recognition.
int32_t ism330dhcx_xl_hp_path_on_out_set(stmdev_ctx_t *ctx, ism330dhcx_hp_slope_xl_en_t val)
Accelerometer slope filter / high-pass filter selection on output.
int32_t ism330dhcx_gy_sleep_mode_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables gyroscope Sleep mode.
int32_t ism330dhcx_aux_gy_full_scale_get(stmdev_ctx_t *ctx, ism330dhcx_fs_g_ois_t *val)
Selects gyroscope OIS chain full-scale.
int32_t ism330dhcx_xl_usr_offset_set(stmdev_ctx_t *ctx, uint8_t val)
Enables user offset on out.
int32_t ism330dhcx_long_cnt_flag_data_ready_get(stmdev_ctx_t *ctx, uint8_t *val)
Interrupt status bit for FSM long counter timeout interrupt event.
int32_t ism330dhcx_sh_slave_connected_get(stmdev_ctx_t *ctx, ism330dhcx_aux_sens_on_t *val)
Number of external sensors to be read by the sensor hub.
int32_t ism330dhcx_sh_slave_connected_set(stmdev_ctx_t *ctx, ism330dhcx_aux_sens_on_t val)
Number of external sensors to be read by the sensor hub.
int32_t ism330dhcx_rounding_mode_set(stmdev_ctx_t *ctx, ism330dhcx_rounding_t val)
Circular burst-mode (rounding) read of the output registers.
int32_t ism330dhcx_auto_increment_get(stmdev_ctx_t *ctx, uint8_t *val)
Register address automatically incremented during a multiple byte access with a serial interface.
int32_t ism330dhcx_fifo_gy_batch_get(stmdev_ctx_t *ctx, ism330dhcx_bdr_gy_t *val)
Selects Batching Data Rate (writing frequency in FIFO) for gyroscope data.
int32_t ism330dhcx_fifo_cnt_event_batch_set(stmdev_ctx_t *ctx, ism330dhcx_trig_counter_bdr_t val)
Selects the trigger for the internal counter of batching events between XL and gyro.
int32_t ism330dhcx_act_pin_notification_get(stmdev_ctx_t *ctx, ism330dhcx_sleep_status_on_int_t *val)
Drives the sleep status instead of sleep change on INT pins (only if INT1_SLEEP_CHANGE or INT2_SLEEP_...
int32_t ism330dhcx_mag_z_orient_get(stmdev_ctx_t *ctx, ism330dhcx_mag_z_axis_t *val)
Magnetometer Z-axis coordinates rotation (to be aligned to accelerometer/gyroscope axes orientation).
int32_t ism330dhcx_sh_batch_slave_2_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable FIFO batching data of third slave.
int32_t ism330dhcx_sdo_sa0_mode_get(stmdev_ctx_t *ctx, ism330dhcx_sdo_pu_en_t *val)
Connect/Disconnect SDO/SA0 internal pull-up.
int32_t ism330dhcx_aux_drdy_on_int2_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables/Disable OIS chain DRDY on INT2 pin.
int32_t ism330dhcx_fifo_stop_on_wtm_get(stmdev_ctx_t *ctx, uint8_t *val)
Sensing chain FIFO stop values memorization at threshold level.
int32_t ism330dhcx_xl_fast_settling_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables accelerometer LPF2 and HPF fast-settling mode.
float ism330dhcx_from_fs16g_to_mg(int16_t lsb)
int32_t ism330dhcx_fsm_data_rate_get(stmdev_ctx_t *ctx, ism330dhcx_fsm_odr_t *val)
Finite State Machine ODR configuration.
int32_t ism330dhcx_mag_y_orient_get(stmdev_ctx_t *ctx, ism330dhcx_mag_y_axis_t *val)
Magnetometer Y-axis coordinates rotation (to be aligned to accelerometer/gyroscope axes orientation).
int32_t ism330dhcx_motion_sens_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable significant motion detection function.
int32_t ism330dhcx_wkup_dur_get(stmdev_ctx_t *ctx, uint8_t *val)
Wake up duration event(1LSb = 1 / ODR).
int32_t ism330dhcx_reset_set(stmdev_ctx_t *ctx, uint8_t val)
Software reset.
int32_t ism330dhcx_act_mode_get(stmdev_ctx_t *ctx, ism330dhcx_inact_en_t *val)
Enable inactivity function.
int32_t ism330dhcx_fsm_init_get(stmdev_ctx_t *ctx, uint8_t *val)
FSM initialization request.
int32_t ism330dhcx_xl_hp_path_on_out_get(stmdev_ctx_t *ctx, ism330dhcx_hp_slope_xl_en_t *val)
Accelerometer slope filter / high-pass filter selection on output.
int32_t ism330dhcx_block_data_update_set(stmdev_ctx_t *ctx, uint8_t val)
Block data update.
int32_t ism330dhcx_sh_slv3_cfg_read(stmdev_ctx_t *ctx, ism330dhcx_sh_cfg_read_t *val)
Configure slave 3 for perform a write/read.
int32_t ism330dhcx_xl_hp_path_internal_set(stmdev_ctx_t *ctx, ism330dhcx_slope_fds_t val)
HPF or SLOPE filter selection on wake-up and Activity/Inactivity functions.
int32_t ism330dhcx_aux_gy_self_test_get(stmdev_ctx_t *ctx, ism330dhcx_st_ois_t *val)
Selects gyroscope OIS chain self-test.
int32_t ism330dhcx_mlc_out_get(stmdev_ctx_t *ctx, uint8_t *buff)
prgsens_out: [get] Output value of all MLCx decision trees.
int32_t ism330dhcx_xl_self_test_set(stmdev_ctx_t *ctx, ism330dhcx_st_xl_t val)
Linear acceleration sensor self-test enable.
int32_t ism330dhcx_xl_filter_lp2_set(stmdev_ctx_t *ctx, uint8_t val)
Accelerometer output from LPF2 filtering stage selection.
int32_t ism330dhcx_aux_den_mode_get(stmdev_ctx_t *ctx, ism330dhcx_lvl2_ois_t *val)
Configure DEN mode on the OIS chain.
int32_t ism330dhcx_fsm_start_address_set(stmdev_ctx_t *ctx, uint16_t val)
FSM start address register (r/w).
int32_t ism330dhcx_sh_cfg_write(stmdev_ctx_t *ctx, ism330dhcx_sh_cfg_write_t *val)
Configure slave 0 for perform a write.
int32_t ism330dhcx_compression_algo_set(stmdev_ctx_t *ctx, ism330dhcx_uncoptr_rate_t val)
Enable and configure compression algo.
int32_t ism330dhcx_gy_power_mode_set(stmdev_ctx_t *ctx, ism330dhcx_g_hm_mode_t val)
Operating mode for gyroscope.
int32_t ism330dhcx_fsm_data_rate_set(stmdev_ctx_t *ctx, ism330dhcx_fsm_odr_t val)
Finite State Machine ODR configuration.
int32_t ism330dhcx_pin_int1_route_set(stmdev_ctx_t *ctx, ism330dhcx_pin_int1_route_t *val)
Select the signal that need to route on int1 pad[set].
int32_t ism330dhcx_xl_usr_offset_y_get(stmdev_ctx_t *ctx, uint8_t *buff)
Accelerometer Y-axis user offset correction expressed in two’s complement, weight depends on USR_OFF_...
int32_t ism330dhcx_tap_shock_get(stmdev_ctx_t *ctx, uint8_t *val)
Maximum duration is the maximum time of an overthreshold signal detection to be recognized as a tap e...
int32_t ism330dhcx_sh_reset_get(stmdev_ctx_t *ctx, uint8_t *val)
Reset Master logic and output registers.
int32_t ism330dhcx_fsm_enable_get(stmdev_ctx_t *ctx, ism330dhcx_emb_fsm_enable_t *val)
Embedded final state machine functions mode.
int32_t ism330dhcx_den_mark_axis_x_set(stmdev_ctx_t *ctx, uint8_t val)
DEN value stored in LSB of X-axis.
int32_t ism330dhcx_acceleration_raw_get(stmdev_ctx_t *ctx, int16_t *val)
Linear acceleration output register.
int32_t ism330dhcx_fifo_virtual_sens_odr_chg_get(stmdev_ctx_t *ctx, uint8_t *val)
Enables ODR CHANGE virtual sensor to be batched in FIFO.
int32_t ism330dhcx_aux_pw_on_ctrl_get(stmdev_ctx_t *ctx, ism330dhcx_ois_on_t *val)
OIS chain on aux interface power on mode[get].
int32_t ism330dhcx_sh_batch_slave_0_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable FIFO batching data of first slave.
int32_t ism330dhcx_fifo_timestamp_decimation_get(stmdev_ctx_t *ctx, ism330dhcx_odr_ts_batch_t *val)
Selects decimation for timestamp batching in FIFO.
int32_t ism330dhcx_fsm_init_set(stmdev_ctx_t *ctx, uint8_t val)
FSM initialization request.
int32_t ism330dhcx_tap_quiet_set(stmdev_ctx_t *ctx, uint8_t val)
Quiet time is the time after the first detected tap in which there must not be any overthreshold even...
float ism330dhcx_from_lsb_to_nsec(int32_t lsb)
int32_t ism330dhcx_mag_sensitivity_get(stmdev_ctx_t *ctx, uint16_t *val)
External magnetometer sensitivity value register.
int32_t ism330dhcx_i2c_interface_set(stmdev_ctx_t *ctx, ism330dhcx_i2c_disable_t val)
Disable / Enable I2C interface.
int32_t ism330dhcx_mem_bank_set(stmdev_ctx_t *ctx, ism330dhcx_reg_access_t val)
Enable access to the embedded functions/sensor hub configuration registers.
int32_t ism330dhcx_sh_pass_through_get(stmdev_ctx_t *ctx, uint8_t *val)
I2C interface pass-through.
int32_t ism330dhcx_mlc_status_get(stmdev_ctx_t *ctx, ism330dhcx_mlc_status_mainpage_t *val)
Machine Learning Core status register[get].
int32_t ism330dhcx_write_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Write generic device register.
int32_t ism330dhcx_aux_gy_full_scale_set(stmdev_ctx_t *ctx, ism330dhcx_fs_g_ois_t val)
Selects gyroscope OIS chain full-scale.
int32_t ism330dhcx_gy_hp_path_internal_set(stmdev_ctx_t *ctx, ism330dhcx_hpm_g_t val)
Enables gyroscope digital high-pass filter.
int32_t ism330dhcx_spi_mode_set(stmdev_ctx_t *ctx, ism330dhcx_sim_t val)
SPI Serial Interface Mode selection.
int32_t ism330dhcx_all_sources_get(stmdev_ctx_t *ctx, ism330dhcx_all_sources_t *val)
Read all the interrupt flag of the device.
int32_t ism330dhcx_number_of_steps_get(stmdev_ctx_t *ctx, uint16_t *val)
Step counter output register.
int32_t ism330dhcx_sh_read_data_raw_get(stmdev_ctx_t *ctx, ism330dhcx_emb_sh_read_t *val, uint8_t len)
Sensor hub output registers.
int32_t ism330dhcx_sh_syncro_mode_set(stmdev_ctx_t *ctx, ism330dhcx_start_config_t val)
Sensor hub trigger signal selection.
int32_t ism330dhcx_device_conf_set(stmdev_ctx_t *ctx, uint8_t val)
DEVICE_CONF bit configuration[set].
int32_t ism330dhcx_odr_cal_reg_get(stmdev_ctx_t *ctx, uint8_t *val)
Difference in percentage of the effective ODR (and timestamp rate) with respect to the typical.
int32_t ism330dhcx_den_polarity_get(stmdev_ctx_t *ctx, ism330dhcx_den_lh_t *val)
DEN active level configuration.
int32_t ism330dhcx_xl_usr_offset_get(stmdev_ctx_t *ctx, uint8_t *val)
Get user offset on out flag.
int32_t ism330dhcx_long_cnt_get(stmdev_ctx_t *ctx, uint16_t *val)
FSM long counter status register.
int32_t ism330dhcx_long_cnt_int_value_set(stmdev_ctx_t *ctx, uint16_t val)
FSM long counter timeout register (r/w).
int32_t ism330dhcx_sh_batch_slave_3_set(stmdev_ctx_t *ctx, uint8_t val)
Enable FIFO batching data of fourth slave.
int32_t ism330dhcx_aux_gy_hp_bandwidth_set(stmdev_ctx_t *ctx, ism330dhcx_hpm_ois_t val)
Selects gyroscope OIS chain digital high-pass filter cutoff.
int32_t ism330dhcx_long_clr_set(stmdev_ctx_t *ctx, ism330dhcx_fsm_lc_clr_t val)
Clear FSM long counter value.
int32_t ism330dhcx_aux_xl_full_scale_set(stmdev_ctx_t *ctx, ism330dhcx_fs_xl_ois_t val)
Selects accelerometer OIS channel full-scale.
int32_t ism330dhcx_i2c_interface_get(stmdev_ctx_t *ctx, ism330dhcx_i2c_disable_t *val)
Disable / Enable I2C interface.
int32_t ism330dhcx_act_sleep_dur_set(stmdev_ctx_t *ctx, uint8_t val)
Duration to go in sleep mode (1 LSb = 512 / ODR).
int32_t ism330dhcx_ln_pg_write(stmdev_ctx_t *ctx, uint16_t address, uint8_t *buf, uint8_t len)
Write buffer in a page.
int32_t ism330dhcx_pedo_sens_get(stmdev_ctx_t *ctx, uint8_t *val)
Enable pedometer algorithm.
@ ISM330DHCX_DRIVE_SLEEP_CHG_EVENT
@ ISM330DHCX_DRIVE_SLEEP_STATUS
@ ISM330DHCX_COUNT_OVERFLOW
@ ISM330DHCX_DEN_ACT_HIGH
@ ISM330DHCX_AUX_DEN_ACTIVE_HIGH
@ ISM330DHCX_AUX_DEN_ACTIVE_LOW
@ ISM330DHCX_AUX_ON_BY_AUX_INTERFACE
@ ISM330DHCX_AUX_SPI_3_WIRE
@ ISM330DHCX_AUX_SPI_4_WIRE
@ ISM330DHCX_GYRO_BATCH_EVENT
@ ISM330DHCX_XL_BATCH_EVENT
@ ISM330DHCX_LSb_FS_DIV_64
@ ISM330DHCX_LSb_FS_DIV_256
@ ISM330DHCX_GY_BATCHED_AT_208Hz
@ ISM330DHCX_GY_NOT_BATCHED
@ ISM330DHCX_GY_BATCHED_6Hz5
@ ISM330DHCX_GY_BATCHED_AT_104Hz
@ ISM330DHCX_GY_BATCHED_AT_12Hz5
@ ISM330DHCX_GY_BATCHED_AT_6667Hz
@ ISM330DHCX_GY_BATCHED_AT_3333Hz
@ ISM330DHCX_GY_BATCHED_AT_52Hz
@ ISM330DHCX_GY_BATCHED_AT_833Hz
@ ISM330DHCX_GY_BATCHED_AT_26Hz
@ ISM330DHCX_GY_BATCHED_AT_417Hz
@ ISM330DHCX_GY_BATCHED_AT_1667Hz
@ ISM330DHCX_AUX_DEN_LEVEL_TRIG
@ ISM330DHCX_AUX_DEN_LEVEL_LATCH
@ ISM330DHCX_AUX_DEN_DISABLE
@ ISM330DHCX_STEP_CPUNTER_TAG
@ ISM330DHCX_GEOMAG_ROTATION_TAG
@ ISM330DHCX_SENSORHUB_SLAVE1_TAG
@ ISM330DHCX_GYRO_3XC_TAG
@ ISM330DHCX_TEMPERATURE_TAG
@ ISM330DHCX_XL_NC_T_2_TAG
@ ISM330DHCX_CFG_CHANGE_TAG
@ ISM330DHCX_SENSORHUB_SLAVE0_TAG
@ ISM330DHCX_ROTATION_TAG
@ ISM330DHCX_GYRO_NC_T_2_TAG
@ ISM330DHCX_XL_NC_T_1_TAG
@ ISM330DHCX_SENSORHUB_SLAVE2_TAG
@ ISM330DHCX_GAME_ROTATION_TAG
@ ISM330DHCX_TIMESTAMP_TAG
@ ISM330DHCX_GYRO_2XC_TAG
@ ISM330DHCX_SENSORHUB_SLAVE3_TAG
@ ISM330DHCX_GYRO_NC_T_1_TAG
@ ISM330DHCX_SENSORHUB_NACK_TAG
@ ISM330DHCX_GY_ODR_104Hz
@ ISM330DHCX_GY_ODR_3332Hz
@ ISM330DHCX_GY_ODR_416Hz
@ ISM330DHCX_GY_ODR_1666Hz
@ ISM330DHCX_GY_ODR_6667Hz
@ ISM330DHCX_GY_ODR_833Hz
@ ISM330DHCX_GY_ODR_208Hz
@ ISM330DHCX_GY_ODR_12Hz5
@ ISM330DHCX_BOTH_SINGLE_DOUBLE
@ ISM330DHCX_XL_AND_GY_NOT_AFFECTED
@ ISM330DHCX_XL_12Hz5_GY_NOT_AFFECTED
@ ISM330DHCX_XL_12Hz5_GY_SLEEP
@ ISM330DHCX_XL_12Hz5_GY_PD
@ ISM330DHCX_STAMP_IN_XL_DATA
@ ISM330DHCX_STAMP_IN_GY_DATA
@ ISM330DHCX_STAMP_IN_GY_XL_DATA
@ ISM330DHCX_HP_REF_MD_ODR_DIV_20
@ ISM330DHCX_HP_REF_MD_ODR_DIV_200
@ ISM330DHCX_SLOPE_ODR_DIV_4
@ ISM330DHCX_HP_ODR_DIV_45
@ ISM330DHCX_LP_ODR_DIV_200
@ ISM330DHCX_LP_ODR_DIV_45
@ ISM330DHCX_HP_PATH_DISABLE_ON_OUT
@ ISM330DHCX_HP_REF_MD_ODR_DIV_800
@ ISM330DHCX_HP_REF_MD_ODR_DIV_100
@ ISM330DHCX_HP_ODR_DIV_10
@ ISM330DHCX_HP_REF_MD_ODR_DIV_10
@ ISM330DHCX_HP_REF_MD_ODR_DIV_400
@ ISM330DHCX_HP_ODR_DIV_20
@ ISM330DHCX_LP_ODR_DIV_400
@ ISM330DHCX_HP_REF_MD_ODR_DIV_45
@ ISM330DHCX_LP_ODR_DIV_10
@ ISM330DHCX_LP_ODR_DIV_20
@ ISM330DHCX_HP_ODR_DIV_100
@ ISM330DHCX_HP_ODR_DIV_800
@ ISM330DHCX_HP_ODR_DIV_400
@ ISM330DHCX_LP_ODR_DIV_800
@ ISM330DHCX_LP_ODR_DIV_100
@ ISM330DHCX_HP_ODR_DIV_200
@ ISM330DHCX_DRDY_LATCHED
@ ISM330DHCX_EXT_ON_INT2_PIN
@ ISM330DHCX_HIGH_PERFORMANCE_MD
@ ISM330DHCX_LOW_NORMAL_POWER_MD
@ ISM330DHCX_ODR_PRGS_12Hz5
@ ISM330DHCX_ODR_PRGS_52Hz
@ ISM330DHCX_ODR_PRGS_26Hz
@ ISM330DHCX_ODR_PRGS_104Hz
@ ISM330DHCX_BYPASS_TO_FIFO_MODE
@ ISM330DHCX_BYPASS_TO_STREAM_MODE
@ ISM330DHCX_STREAM_TO_FIFO_MODE
@ ISM330DHCX_ALL_INT_LATCHED
@ ISM330DHCX_BASE_PULSED_EMB_LATCHED
@ ISM330DHCX_ALL_INT_PULSED
@ ISM330DHCX_BASE_LATCHED_EMB_PULSED
@ ISM330DHCX_HP_FILTER_16mHz
@ ISM330DHCX_HP_FILTER_260mHz
@ ISM330DHCX_HP_FILTER_1Hz04
@ ISM330DHCX_HP_FILTER_NONE
@ ISM330DHCX_HP_FILTER_65mHz
@ ISM330DHCX_GY_HIGH_PERFORMANCE
@ ISM330DHCX_TEMP_NOT_BATCHED
@ ISM330DHCX_TEMP_BATCHED_AT_1Hz6
@ ISM330DHCX_TEMP_BATCHED_AT_52Hz
@ ISM330DHCX_TEMP_BATCHED_AT_12Hz5
@ ISM330DHCX_MODE_4_GY_XL
@ ISM330DHCX_AUX_HP_Hz065
@ ISM330DHCX_AUX_HP_Hz260
@ ISM330DHCX_AUX_HP_Hz016
@ ISM330DHCX_AUX_HP_DISABLE
@ ISM330DHCX_AUX_HP_1Hz040
@ ISM330DHCX_SH_ODR_104Hz
@ ISM330DHCX_ONLY_FIRST_CYCLE
@ ISM330DHCX_EACH_SH_CYCLE
@ ISM330DHCX_AUX_GY_DISABLE
@ ISM330DHCX_ODR_FSM_52Hz
@ ISM330DHCX_ODR_FSM_104Hz
@ ISM330DHCX_ODR_FSM_12Hz5
@ ISM330DHCX_ODR_FSM_26Hz
@ ISM330DHCX_SENSOR_HUB_BANK
@ ISM330DHCX_EMBEDDED_FUNC_BANK
@ ISM330DHCX_INTERNAL_PULL_UP
@ ISM330DHCX_PULL_UP_DISC
@ ISM330DHCX_PULL_UP_CONNECT
@ ISM330DHCX_AUX_PULL_UP_DISC
@ ISM330DHCX_AUX_PULL_UP_CONNECT
@ ISM330DHCX_XL_BATCHED_AT_26Hz
@ ISM330DHCX_XL_BATCHED_AT_3333Hz
@ ISM330DHCX_XL_BATCHED_AT_6Hz5
@ ISM330DHCX_XL_BATCHED_AT_833Hz
@ ISM330DHCX_XL_BATCHED_AT_417Hz
@ ISM330DHCX_XL_BATCHED_AT_1667Hz
@ ISM330DHCX_XL_BATCHED_AT_104Hz
@ ISM330DHCX_XL_NOT_BATCHED
@ ISM330DHCX_XL_BATCHED_AT_6667Hz
@ ISM330DHCX_XL_BATCHED_AT_52Hz
@ ISM330DHCX_XL_BATCHED_AT_12Hz5
@ ISM330DHCX_XL_BATCHED_AT_208Hz
@ ISM330DHCX_XL_ODR_104Hz
@ ISM330DHCX_XL_ODR_1666Hz
@ ISM330DHCX_XL_ODR_208Hz
@ ISM330DHCX_XL_ODR_833Hz
@ ISM330DHCX_XL_ODR_6667Hz
@ ISM330DHCX_XL_ODR_416Hz
@ ISM330DHCX_XL_ODR_3332Hz
@ ISM330DHCX_XL_ODR_12Hz5
@ ISM330DHCX_ENABLE_CLAMP
@ ISM330DHCX_DISABLE_CLAMP
@ ISM330DHCX_NO_DECIMATION
@ ISM330DHCX_AUX_XL_DISABLE
@ ISM330DHCX_GY_ST_DISABLE
@ ISM330DHCX_GY_ST_POSITIVE
@ ISM330DHCX_GY_ST_NEGATIVE
@ ISM330DHCX_FF_TSH_219mg
@ ISM330DHCX_FF_TSH_344mg
@ ISM330DHCX_FF_TSH_469mg
@ ISM330DHCX_FF_TSH_500mg
@ ISM330DHCX_FF_TSH_250mg
@ ISM330DHCX_FF_TSH_156mg
@ ISM330DHCX_FF_TSH_312mg
@ ISM330DHCX_FF_TSH_406mg
@ ISM330DHCX_LC_CLEAR_DONE
@ ISM330DHCX_XL_ST_NEGATIVE
@ ISM330DHCX_XL_ST_DISABLE
@ ISM330DHCX_XL_ST_POSITIVE
@ ISM330DHCX_LEVEL_TRIGGER
@ ISM330DHCX_LEVEL_LETCHED
@ ISM330DHCX_EDGE_TRIGGER
int32_t(* stmdev_read_ptr)(void *, uint8_t, uint8_t *, uint16_t)
int32_t(* stmdev_write_ptr)(void *, uint8_t, const uint8_t *, uint16_t)
uint8_t timestamp_endcount
ism330dhcx_status_reg_t status_reg
ism330dhcx_wake_up_src_t wake_up_src
ism330dhcx_fsm_status_a_t fsm_status_a
ism330dhcx_emb_func_status_t emb_func_status
ism330dhcx_d6d_src_t d6d_src
ism330dhcx_all_int_src_t all_int_src
ism330dhcx_fsm_status_b_t fsm_status_b
ism330dhcx_tap_src_t tap_src
uint8_t filter_xl_conf_ois
uint8_t fastsettl_mode_xl
ism330dhcx_fsm_enable_b_t fsm_enable_b
ism330dhcx_fsm_enable_a_t fsm_enable_a
uint8_t int1_step_detector
uint8_t int2_step_detector
uint8_t stepcounter_bit_set
uint8_t step_count_delta_ia
ism330dhcx_sensor_hub_15_t sh_byte_15
ism330dhcx_sensor_hub_2_t sh_byte_2
ism330dhcx_sensor_hub_17_t sh_byte_17
ism330dhcx_sensor_hub_10_t sh_byte_10
ism330dhcx_sensor_hub_14_t sh_byte_14
ism330dhcx_sensor_hub_5_t sh_byte_5
ism330dhcx_sensor_hub_8_t sh_byte_8
ism330dhcx_sensor_hub_4_t sh_byte_4
ism330dhcx_sensor_hub_13_t sh_byte_13
ism330dhcx_sensor_hub_1_t sh_byte_1
ism330dhcx_sensor_hub_18_t sh_byte_18
ism330dhcx_sensor_hub_9_t sh_byte_9
ism330dhcx_sensor_hub_6_t sh_byte_6
ism330dhcx_sensor_hub_12_t sh_byte_12
ism330dhcx_sensor_hub_3_t sh_byte_3
ism330dhcx_sensor_hub_16_t sh_byte_16
ism330dhcx_sensor_hub_7_t sh_byte_7
ism330dhcx_sensor_hub_11_t sh_byte_11
ism330dhcx_fsm_outs5_t fsm_outs5
ism330dhcx_fsm_outs8_t fsm_outs8
ism330dhcx_fsm_outs13_t fsm_outs13
ism330dhcx_fsm_outs10_t fsm_outs10
ism330dhcx_fsm_outs15_t fsm_outs15
ism330dhcx_fsm_outs9_t fsm_outs9
ism330dhcx_fsm_outs16_t fsm_outs16
ism330dhcx_fsm_outs3_t fsm_outs3
ism330dhcx_fsm_outs6_t fsm_outs6
ism330dhcx_fsm_outs1_t fsm_outs1
ism330dhcx_fsm_outs14_t fsm_outs14
ism330dhcx_fsm_outs12_t fsm_outs12
ism330dhcx_fsm_outs4_t fsm_outs4
ism330dhcx_fsm_outs7_t fsm_outs7
ism330dhcx_fsm_outs11_t fsm_outs11
ism330dhcx_fsm_outs2_t fsm_outs2
uint8_t pass_through_mode
uint8_t int1_sleep_change
uint8_t int2_sleep_change
ism330dhcx_int1_ctrl_t int1_ctrl
ism330dhcx_md1_cfg_t md1_cfg
ism330dhcx_fsm_int1_b_t fsm_int1_b
ism330dhcx_emb_func_int1_t emb_func_int1
ism330dhcx_mlc_int1_t mlc_int1
ism330dhcx_fsm_int1_a_t fsm_int1_a
ism330dhcx_emb_func_int2_t emb_func_int2
ism330dhcx_md2_cfg_t md2_cfg
ism330dhcx_fsm_int2_a_t fsm_int2_a
ism330dhcx_fsm_int2_b_t fsm_int2_b
ism330dhcx_int2_ctrl_t int2_ctrl
ism330dhcx_mlc_int2_t mlc_int2
uint8_t batch_ext_sens_0_en
uint8_t batch_ext_sens_1_en
uint8_t batch_ext_sens_2_en
uint8_t batch_ext_sens_3_en
uint8_t sleep_status_on_int
uint8_t interrupts_enable
uint8_t single_double_tap
stmdev_write_ptr write_reg
Component mandatory fields.
void * handle
Customizable optional pointer.
ism330dhcx_int_dur2_t int_dur2
ism330dhcx_slv3_add_t slv3_add
ism330dhcx_datawrite_slv0_t datawrite_slv0
ism330dhcx_sensor_hub_17_t sensor_hub_17
ism330dhcx_sensor_hub_11_t sensor_hub_11
ism330dhcx_slv2_add_t slv2_add
ism330dhcx_emb_func_status_t emb_func_status
ism330dhcx_slv0_config_t slv0_config
ism330dhcx_int1_ctrl_t int1_ctrl
ism330dhcx_fsm_status_b_t fsm_status_b
ism330dhcx_slv2_config_t slv2_config
ism330dhcx_wake_up_ths_t wake_up_ths
ism330dhcx_emb_func_odr_cfg_b_t emb_func_odr_cfg_b
ism330dhcx_slv0_subadd_t slv0_subadd
ism330dhcx_sensor_hub_4_t sensor_hub_4
ism330dhcx_ctrl9_xl_t ctrl9_xl
ism330dhcx_fsm_outs14_t fsm_outs14
ism330dhcx_ctrl2_g_t ctrl2_g
ism330dhcx_fsm_int1_b_t fsm_int1_b
ism330dhcx_fifo_ctrl4_t fifo_ctrl4
ism330dhcx_func_cfg_access_t func_cfg_access
ism330dhcx_fsm_outs11_t fsm_outs11
ism330dhcx_slv3_config_t slv3_config
ism330dhcx_page_address_t page_address
ism330dhcx_page_value_t page_value
ism330dhcx_sensor_hub_2_t sensor_hub_2
ism330dhcx_sensor_hub_18_t sensor_hub_18
ism330dhcx_ctrl6_c_t ctrl6_c
ism330dhcx_internal_freq_fine_t internal_freq_fine
ism330dhcx_mag_cfg_b_t mag_cfg_b
ism330dhcx_fsm_outs7_t fsm_outs7
ism330dhcx_int2_ctrl_t int2_ctrl
ism330dhcx_fifo_status1_t fifo_status1
ism330dhcx_counter_bdr_reg1_t counter_bdr_reg1
ism330dhcx_status_reg_t status_reg
ism330dhcx_slv1_subadd_t slv1_subadd
ism330dhcx_ctrl2_ois_t ctrl2_ois
ism330dhcx_status_spiaux_t status_spiaux
ism330dhcx_fsm_outs8_t fsm_outs8
ism330dhcx_ctrl5_c_t ctrl5_c
ism330dhcx_fsm_int2_b_t fsm_int2_b
ism330dhcx_sensor_hub_3_t sensor_hub_3
ism330dhcx_emb_func_int2_t emb_func_int2
ism330dhcx_sensor_hub_14_t sensor_hub_14
ism330dhcx_fsm_enable_a_t fsm_enable_a
ism330dhcx_emb_func_src_t emb_func_src
ism330dhcx_sensor_hub_12_t sensor_hub_12
ism330dhcx_fsm_outs4_t fsm_outs4
ism330dhcx_ctrl10_c_t ctrl10_c
ism330dhcx_fsm_outs12_t fsm_outs12
ism330dhcx_sensor_hub_16_t sensor_hub_16
ism330dhcx_wake_up_dur_t wake_up_dur
ism330dhcx_ctrl3_ois_t ctrl3_ois
ism330dhcx_fifo_data_out_tag_t fifo_data_out_tag
ism330dhcx_emb_func_fifo_cfg_t emb_func_fifo_cfg
ism330dhcx_ctrl3_c_t ctrl3_c
ism330dhcx_tap_cfg1_t tap_cfg1
ism330dhcx_tap_cfg2_t tap_cfg2
ism330dhcx_fsm_outs2_t fsm_outs2
ism330dhcx_int_ois_t int_ois
ism330dhcx_free_fall_t free_fall
ism330dhcx_fsm_int2_a_t fsm_int2_a
ism330dhcx_fifo_ctrl3_t fifo_ctrl3
ism330dhcx_fsm_outs9_t fsm_outs9
ism330dhcx_wake_up_src_t wake_up_src
ism330dhcx_ctrl1_ois_t ctrl1_ois
ism330dhcx_slv0_add_t slv0_add
ism330dhcx_ctrl8_xl_t ctrl8_xl
ism330dhcx_sensor_hub_5_t sensor_hub_5
ism330dhcx_page_sel_t page_sel
ism330dhcx_emb_func_int1_t emb_func_int1
ism330dhcx_fifo_ctrl1_t fifo_ctrl1
ism330dhcx_sensor_hub_15_t sensor_hub_15
ism330dhcx_fsm_outs10_t fsm_outs10
ism330dhcx_emb_func_init_b_t emb_func_init_b
ism330dhcx_fsm_outs5_t fsm_outs5
ism330dhcx_fsm_outs15_t fsm_outs15
ism330dhcx_sensor_hub_8_t sensor_hub_8
ism330dhcx_fifo_status2_t fifo_status2
ism330dhcx_fsm_outs6_t fsm_outs6
ism330dhcx_md1_cfg_t md1_cfg
ism330dhcx_slv3_subadd_t slv3_subadd
ism330dhcx_tap_src_t tap_src
ism330dhcx_page_rw_t page_rw
ism330dhcx_tap_ths_6d_t tap_ths_6d
ism330dhcx_md2_cfg_t md2_cfg
ism330dhcx_d6d_src_t d6d_src
ism330dhcx_fsm_status_a_t fsm_status_a
ism330dhcx_fsm_outs1_t fsm_outs1
ism330dhcx_sensor_hub_1_t sensor_hub_1
ism330dhcx_fsm_outs13_t fsm_outs13
ism330dhcx_sensor_hub_10_t sensor_hub_10
ism330dhcx_slv1_config_t slv1_config
ism330dhcx_tap_cfg0_t tap_cfg0
ism330dhcx_ctrl1_xl_t ctrl1_xl
ism330dhcx_pin_ctrl_t pin_ctrl
ism330dhcx_fsm_enable_b_t fsm_enable_b
ism330dhcx_emb_func_en_b_t emb_func_en_b
ism330dhcx_master_config_t master_config
ism330dhcx_ctrl7_g_t ctrl7_g
ism330dhcx_emb_func_odr_cfg_c_t emb_func_odr_cfg_c_t
ism330dhcx_fsm_long_counter_clear_t fsm_long_counter_clear
ism330dhcx_fsm_int1_a_t fsm_int1_a
ism330dhcx_sensor_hub_6_t sensor_hub_6
ism330dhcx_sensor_hub_7_t sensor_hub_7
ism330dhcx_sensor_hub_9_t sensor_hub_9
ism330dhcx_fifo_ctrl2_t fifo_ctrl2
ism330dhcx_mag_cfg_a_t mag_cfg_a
ism330dhcx_ctrl4_c_t ctrl4_c
ism330dhcx_slv2_subadd_t slv2_subadd
ism330dhcx_all_int_src_t all_int_src
ism330dhcx_pedo_cmd_reg_t pedo_cmd_reg
ism330dhcx_slv1_add_t slv1_add
ism330dhcx_fsm_outs3_t fsm_outs3
ism330dhcx_emb_func_en_a_t emb_func_en_a
ism330dhcx_status_master_t status_master
ism330dhcx_sensor_hub_13_t sensor_hub_13
ism330dhcx_fsm_outs16_t fsm_outs16
ism330dhcx_emb_func_init_a_t emb_func_init_a
ism330dhcx_counter_bdr_reg2_t counter_bdr_reg2