summaryrefslogtreecommitdiff
path: root/driver/accelgyro_lsm6dso.h
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2022-09-21 14:10:01 -0700
committerTom Hughes <tomhughes@chromium.org>2022-09-22 12:49:33 -0700
commit2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch)
treefcf6ce5810f9ff9e3c8cce434812dd75492269ed /driver/accelgyro_lsm6dso.h
parente5fb0b9ba488614b5684e640530f00821ab7b943 (diff)
parent28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff)
downloadchrome-ec-2bcf863b492fe7ed8105c853814dba6ed32ba719.tar.gz
Merge remote-tracking branch cros/main into firmware-fpmcu-bloonchipper-releasefirmware-fpmcu-bloonchipper-release
Generated by: ./util/update_release_branch.py --board bloonchipper --relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware- fpmcu-bloonchipper-release Relevant changes: git log --oneline e5fb0b9ba4..28712dae9d -- board/hatch_fp board/bloonchipper common/fpsensor docs/fingerprint driver/fingerprint util/getversion.sh ded9307b79 util/getversion.sh: Fix version when not in a git repo 956055e692 board: change Google USB vendor info 71b2ef709d Update license boilerplate text in source code files 33e11afda0 Revert "fpsensor: Build fpsensor source file with C++" c8d0360723 fpsensor: Build fpsensor source file with C++ bc113abd53 fpsensor: Fix g++ compiler error 150a58a0dc fpsensor: Fix fp_set_sensor_mode return type b33b5ce85b fpsensor: Remove nested designators for C++ compatibility 2e864b2539 tree-wide: const-ify argv for console commands 56d8b360f9 test: Add test for get ikm failure when seed not set 3a3d6c3690 test: Add test for fpsensor trivial key failure 233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256 0a041b285b docs/fingerprint: Typo correction c03fab67e2 docs/fingerprint: Fix the path of fputils.py 0b5d4baf5a util/getversion.sh: Fix empty file list handling 6e128fe760 FPMCU dev board environment with Satlab 3eb29b6aa5 builtin: Move ssize_t to sys/types.h 345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release c25ffdb316 common: Conditionally support printf %l and %i modifiers 9a3c514b45 test: Add a test to check if the debugger is connected 54e603413f Move standard library tests to their own file 43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release 25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format 4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format 738de2b575 trng: Rename rand to trng_rand 14b8270edd docs/fingerprint: Update dragonclaw power numbers 0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format 5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format 6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format 7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format 21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format 98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format 73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format 0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format 1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format dc3e9008b8 board/hatch_fp/board.h: Format with clang-format dca9d74321 Revert "trng: Rename rand to trng_rand" a6b0b3554f trng: Rename rand to trng_rand 28d0b75b70 third_party/boringssl: Remove unused header BRANCH=None BUG=b:246424843 b:234181908 b:244781166 b:234181908 b:244387210 BUG=b:242720240 chromium:1098010 b:180945056 b:236025198 b:234181908 BUG=b:234181908 b:237344361 b:131913998 b:236386294 b:234143158 BUG=b:234781655 b:215613183 b:242720910 TEST=`make -j buildall` TEST=./test/run_device_tests.py --board bloonchipper Test "aes": PASSED Test "cec": PASSED Test "cortexm_fpu": PASSED Test "crc": PASSED Test "flash_physical": PASSED Test "flash_write_protect": PASSED Test "fpsensor_hw": PASSED Test "fpsensor_spi_ro": PASSED Test "fpsensor_spi_rw": PASSED Test "fpsensor_uart_ro": PASSED Test "fpsensor_uart_rw": PASSED Test "mpu_ro": PASSED Test "mpu_rw": PASSED Test "mutex": PASSED Test "pingpong": PASSED Test "printf": PASSED Test "queue": PASSED Test "rollback_region0": PASSED Test "rollback_region1": PASSED Test "rollback_entropy": PASSED Test "rtc": PASSED Test "sha256": PASSED Test "sha256_unrolled": PASSED Test "static_if": PASSED Test "stdlib": PASSED Test "system_is_locked_wp_on": PASSED Test "system_is_locked_wp_off": PASSED Test "timer_dos": PASSED Test "utils": PASSED Test "utils_str": PASSED Test "stm32f_rtc": PASSED Test "panic_data_bloonchipper_v2.0.4277": PASSED Test "panic_data_bloonchipper_v2.0.5938": PASSED Force-Relevant-Builds: all Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I264ad0ffe7afcd507a1e483c6e934a9c4fea47c3
Diffstat (limited to 'driver/accelgyro_lsm6dso.h')
-rw-r--r--driver/accelgyro_lsm6dso.h145
1 files changed, 71 insertions, 74 deletions
diff --git a/driver/accelgyro_lsm6dso.h b/driver/accelgyro_lsm6dso.h
index 6b7f1138b6..ccc1fa0e84 100644
--- a/driver/accelgyro_lsm6dso.h
+++ b/driver/accelgyro_lsm6dso.h
@@ -1,4 +1,4 @@
-/* Copyright 2019 The Chromium OS Authors. All rights reserved.
+/* Copyright 2019 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -12,78 +12,77 @@
#include "stm_mems_common.h"
/* Access to embedded sensor hub register bank */
-#define LSM6DSO_FUNC_CFG_ACC_ADDR 0x01
-#define LSM6DSO_FUNC_CFG_EN 0x80
+#define LSM6DSO_FUNC_CFG_ACC_ADDR 0x01
+#define LSM6DSO_FUNC_CFG_EN 0x80
/* Who Am I */
-#define LSM6DSO_WHO_AM_I_REG 0x0f
-#define LSM6DSO_WHO_AM_I 0x6c
+#define LSM6DSO_WHO_AM_I_REG 0x0f
+#define LSM6DSO_WHO_AM_I 0x6c
/* Common defines for Acc and Gyro sensors */
-#define LSM6DSO_EN_BIT 0x01
-#define LSM6DSO_DIS_BIT 0x00
+#define LSM6DSO_EN_BIT 0x01
+#define LSM6DSO_DIS_BIT 0x00
-#define LSM6DSO_GYRO_OUT_X_L_ADDR 0x22
-#define LSM6DSO_ACCEL_OUT_X_L_ADDR 0x28
+#define LSM6DSO_GYRO_OUT_X_L_ADDR 0x22
+#define LSM6DSO_ACCEL_OUT_X_L_ADDR 0x28
-#define LSM6DSO_CTRL1_ADDR 0x10
-#define LSM6DSO_CTRL2_ADDR 0x11
-#define LSM6DSO_CTRL3_ADDR 0x12
-#define LSM6DSO_SW_RESET 0x01
-#define LSM6DSO_IF_INC 0x04
-#define LSM6DSO_PP_OD 0x10
-#define LSM6DSO_H_L_ACTIVE 0x20
-#define LSM6DSO_BDU 0x40
+#define LSM6DSO_CTRL1_ADDR 0x10
+#define LSM6DSO_CTRL2_ADDR 0x11
+#define LSM6DSO_CTRL3_ADDR 0x12
+#define LSM6DSO_SW_RESET 0x01
+#define LSM6DSO_IF_INC 0x04
+#define LSM6DSO_PP_OD 0x10
+#define LSM6DSO_H_L_ACTIVE 0x20
+#define LSM6DSO_BDU 0x40
-#define LSM6DSO_CTRL4_ADDR 0x13
-#define LSM6DSO_INT2_ON_INT1_MASK 0x20
+#define LSM6DSO_CTRL4_ADDR 0x13
+#define LSM6DSO_INT2_ON_INT1_MASK 0x20
-#define LSM6DSO_CTRL5_ADDR 0x14
-#define LSM6DSO_CTRL6_ADDR 0x15
-#define LSM6DSO_CTRL7_ADDR 0x16
-#define LSM6DSO_CTRL8_ADDR 0x17
-#define LSM6DSO_CTRL9_ADDR 0x18
+#define LSM6DSO_CTRL5_ADDR 0x14
+#define LSM6DSO_CTRL6_ADDR 0x15
+#define LSM6DSO_CTRL7_ADDR 0x16
+#define LSM6DSO_CTRL8_ADDR 0x17
+#define LSM6DSO_CTRL9_ADDR 0x18
-#define LSM6DSO_CTRL10_ADDR 0x19
-#define LSM6DSO_TIMESTAMP_EN 0x20
+#define LSM6DSO_CTRL10_ADDR 0x19
+#define LSM6DSO_TIMESTAMP_EN 0x20
-#define LSM6DSO_STATUS_REG 0x1e
+#define LSM6DSO_STATUS_REG 0x1e
/* Output data rate registers and masks */
-#define LSM6DSO_ODR_REG(_sensor) \
- (LSM6DSO_CTRL1_ADDR + (_sensor))
-#define LSM6DSO_ODR_MASK 0xf0
+#define LSM6DSO_ODR_REG(_sensor) (LSM6DSO_CTRL1_ADDR + (_sensor))
+#define LSM6DSO_ODR_MASK 0xf0
/* FIFO decimator registers and bitmask */
-#define LSM6DSO_FIFO_CTRL1_ADDR 0x07
-#define LSM6DSO_FIFO_CTRL2_ADDR 0x08
+#define LSM6DSO_FIFO_CTRL1_ADDR 0x07
+#define LSM6DSO_FIFO_CTRL2_ADDR 0x08
-#define LSM6DSO_FIFO_CTRL3_ADDR 0x09
-#define LSM6DSO_FIFO_ODR_XL_MASK 0x0f
-#define LSM6DSO_FIFO_ODR_G_MASK 0xf0
+#define LSM6DSO_FIFO_CTRL3_ADDR 0x09
+#define LSM6DSO_FIFO_ODR_XL_MASK 0x0f
+#define LSM6DSO_FIFO_ODR_G_MASK 0xf0
-#define LSM6DSO_FIFO_CTRL4_ADDR 0x0a
-#define LSM6DSO_FIFO_MODE_MASK 0x07
+#define LSM6DSO_FIFO_CTRL4_ADDR 0x0a
+#define LSM6DSO_FIFO_MODE_MASK 0x07
-#define LSM6DSO_INT1_CTRL 0x0d
-#define LSM6DSO_INT2_CTRL 0x0e
-#define LSM6DSO_INT_FIFO_TH 0x08
-#define LSM6DSO_INT_FIFO_OVR 0x10
-#define LSM6DSO_INT_FIFO_FULL 0x20
+#define LSM6DSO_INT1_CTRL 0x0d
+#define LSM6DSO_INT2_CTRL 0x0e
+#define LSM6DSO_INT_FIFO_TH 0x08
+#define LSM6DSO_INT_FIFO_OVR 0x10
+#define LSM6DSO_INT_FIFO_FULL 0x20
-#define LSM6DSO_FIFO_STS1_ADDR 0x3a
-#define LSM6DSO_FIFO_STS2_ADDR 0x3b
-#define LSM6DSO_FIFO_DIFF_MASK 0x07ff
-#define LSM6DSO_FIFO_FULL 0x2000
-#define LSM6DSO_FIFO_DATA_OVR 0x4000
-#define LSM6DSO_FIFO_WATERMARK 0x8000
+#define LSM6DSO_FIFO_STS1_ADDR 0x3a
+#define LSM6DSO_FIFO_STS2_ADDR 0x3b
+#define LSM6DSO_FIFO_DIFF_MASK 0x07ff
+#define LSM6DSO_FIFO_FULL 0x2000
+#define LSM6DSO_FIFO_DATA_OVR 0x4000
+#define LSM6DSO_FIFO_WATERMARK 0x8000
/* Out FIFO data register */
-#define LSM6DSO_FIFO_DATA_ADDR_TAG 0x78
+#define LSM6DSO_FIFO_DATA_ADDR_TAG 0x78
/* Registers value for supported FIFO mode */
-#define LSM6DSO_FIFO_MODE_BYPASS_VAL 0x00
-#define LSM6DSO_FIFO_MODE_CONTINUOUS_VAL 0x06
+#define LSM6DSO_FIFO_MODE_BYPASS_VAL 0x00
+#define LSM6DSO_FIFO_MODE_CONTINUOUS_VAL 0x06
/* Define device available in FIFO pattern */
enum lsm6dso_dev_fifo {
@@ -94,8 +93,8 @@ enum lsm6dso_dev_fifo {
};
/* Define FIFO data pattern, tag and len */
-#define LSM6DSO_TAG_SIZE 1
-#define LSM6DSO_FIFO_SAMPLE_SIZE (OUT_XYZ_SIZE + LSM6DSO_TAG_SIZE)
+#define LSM6DSO_TAG_SIZE 1
+#define LSM6DSO_FIFO_SAMPLE_SIZE (OUT_XYZ_SIZE + LSM6DSO_TAG_SIZE)
enum lsm6dso_tag_fifo {
LSM6DSO_GYRO_TAG = 0x01,
@@ -110,32 +109,32 @@ struct lsm6dso_fstatus {
/* ODR reg value from selected data rate in mHz */
#define LSM6DSO_ODR_TO_REG(_odr) (__fls(_odr / LSM6DSO_ODR_MIN_VAL) + 1)
-#define LSM6DSO_FIFO_ODR_MASK(_s) \
+#define LSM6DSO_FIFO_ODR_MASK(_s) \
(_s->type == MOTIONSENSE_TYPE_ACCEL ? LSM6DSO_FIFO_ODR_XL_MASK : \
- LSM6DSO_FIFO_ODR_G_MASK)
+ LSM6DSO_FIFO_ODR_G_MASK)
/* Normalized ODR values from selected data rate in mHz */
#define LSM6DSO_REG_TO_ODR(_reg) (LSM6DSO_ODR_MIN_VAL << (_reg - 1))
/* Full Scale ranges value and gain for Acc */
-#define LSM6DSO_FS_LIST_NUM 4
+#define LSM6DSO_FS_LIST_NUM 4
-#define LSM6DSO_ACCEL_FS_ADDR 0x10
-#define LSM6DSO_ACCEL_FS_MASK 0x0c
+#define LSM6DSO_ACCEL_FS_ADDR 0x10
+#define LSM6DSO_ACCEL_FS_MASK 0x0c
-#define LSM6DSO_ACCEL_FS_2G_VAL 0x00
-#define LSM6DSO_ACCEL_FS_4G_VAL 0x02
-#define LSM6DSO_ACCEL_FS_8G_VAL 0x03
-#define LSM6DSO_ACCEL_FS_16G_VAL 0x01
+#define LSM6DSO_ACCEL_FS_2G_VAL 0x00
+#define LSM6DSO_ACCEL_FS_4G_VAL 0x02
+#define LSM6DSO_ACCEL_FS_8G_VAL 0x03
+#define LSM6DSO_ACCEL_FS_16G_VAL 0x01
-#define LSM6DSO_ACCEL_FS_MAX_VAL 16
+#define LSM6DSO_ACCEL_FS_MAX_VAL 16
/* Accel reg value from Full Scale range */
static inline uint8_t lsm6dso_accel_fs_reg(int fs)
{
uint8_t ret;
- switch(fs) {
+ switch (fs) {
case 2:
ret = LSM6DSO_ACCEL_FS_2G_VAL;
break;
@@ -154,8 +153,8 @@ static inline uint8_t lsm6dso_accel_fs_reg(int fs)
#define LSM6DSO_ACCEL_NORMALIZE_FS(_fs) (1 << __fls(_fs))
/* Full Scale range value and gain for Gyro */
-#define LSM6DSO_GYRO_FS_ADDR 0x11
-#define LSM6DSO_GYRO_FS_MASK 0x0c
+#define LSM6DSO_GYRO_FS_ADDR 0x11
+#define LSM6DSO_GYRO_FS_MASK 0x0c
/* Minimal Gyro range in mDPS */
#define LSM6DSO_GYRO_FS_MIN_VAL_MDPS ((8750 << 15) / 1000)
@@ -170,8 +169,8 @@ static inline uint8_t lsm6dso_accel_fs_reg(int fs)
((LSM6DSO_GYRO_FS_MIN_VAL_MDPS << (_reg)) / 1000)
/* FS register address/mask for Acc/Gyro sensors */
-#define LSM6DSO_RANGE_REG(_sensor) (LSM6DSO_ACCEL_FS_ADDR + (_sensor))
-#define LSM6DSO_RANGE_MASK 0x0c
+#define LSM6DSO_RANGE_REG(_sensor) (LSM6DSO_ACCEL_FS_ADDR + (_sensor))
+#define LSM6DSO_RANGE_MASK 0x0c
/* Status register bit for Acc/Gyro data ready */
enum lsm6dso_status {
@@ -181,11 +180,11 @@ enum lsm6dso_status {
};
/* Status register bitmask for Acc/Gyro data ready */
-#define LSM6DSO_STS_XLDA_MASK 0x01
-#define LSM6DSO_STS_GDA_MASK 0x02
+#define LSM6DSO_STS_XLDA_MASK 0x01
+#define LSM6DSO_STS_GDA_MASK 0x02
/* Sensor resolution in number of bits: fixed 16 bit */
-#define LSM6DSO_RESOLUTION 16
+#define LSM6DSO_RESOLUTION 16
/* Aggregate private data for all supported sensor (Acc, Gyro) */
struct lsm6dso_data {
@@ -200,8 +199,6 @@ struct lsm6dso_data {
*/
#define LSM6DSO_DISCARD_SAMPLES 3
-#define LSM6DSO_GET_DATA(_s) ((struct stprivate_data *)((_s)->drv_data))
-
/* Macro to initialize motion_sensors structure */
#define LSM6DSO_ST_DATA(g, type) (&((g).st_data[type]))
@@ -224,6 +221,6 @@ void lsm6dso_interrupt(enum gpio_signal signal);
#define CONFIG_ACCEL_LSM6DSO_INT_EVENT \
TASK_EVENT_MOTION_SENSOR_INTERRUPT(SENSOR_ID(DT_ALIAS(lsm6dso_int)))
#endif
-#endif /* CONFIG_ZEPHYR */
+#endif /* CONFIG_ZEPHYR */
#endif /* __CROS_EC_ACCELGYRO_LSM6DSO_H */