diff options
author | Tom Hughes <tomhughes@chromium.org> | 2022-09-21 14:08:36 -0700 |
---|---|---|
committer | Tom Hughes <tomhughes@chromium.org> | 2022-09-22 12:59:38 -0700 |
commit | c453fd704268ef72de871b0c5ac7a989de662334 (patch) | |
tree | fcf6ce5810f9ff9e3c8cce434812dd75492269ed /driver/sensorhub_lsm6dsm.c | |
parent | 6c1587ca70f558b4f96b3f0b18ad8b027d3ba99d (diff) | |
parent | 28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff) | |
download | chrome-ec-firmware-fpmcu-dartmonkey-release.tar.gz |
Merge remote-tracking branch cros/main into firmware-fpmcu-dartmonkey-releasefirmware-fpmcu-dartmonkey-release
Generated by: ./util/update_release_branch.py --board dartmonkey --relevant_paths_file
./util/fingerprint-relevant-paths.txt firmware-fpmcu-dartmonkey-release
Relevant changes:
git log --oneline 6c1587ca70..28712dae9d -- board/nocturne_fp
board/dartmonkey 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
a0751778f4 board/nocturne_fp/ro_workarounds.c: 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
58f0246dbe board/nocturne_fp/board_ro.c: 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
84e53a65da board/nocturne_fp/board.h: 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
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:244387210 b:242720240 b:215613183 b:242720910 b:236386294
BUG=b:234181908 b:244781166 b:234781655 b:234143158 b:234181908
BUG=b:237344361 b:236025198 b:234181908 b:180945056 chromium:1098010
BUG=b:246424843 b:234181908 b:131913998
TEST=`make -j buildall`
TEST=./util/run_device_tests.py --board dartmonkey
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 "panic_data_dartmonkey_v2.0.2887": PASSED
Test "panic_data_nocturne_fp_v2.2.64": PASSED
Test "panic_data_nami_fp_v2.2.144": PASSED
Force-Relevant-Builds: all
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Change-Id: I2c312583a709fedae8fe11d92c22328c3b634bc7
Diffstat (limited to 'driver/sensorhub_lsm6dsm.c')
-rw-r--r-- | driver/sensorhub_lsm6dsm.c | 136 |
1 files changed, 65 insertions, 71 deletions
diff --git a/driver/sensorhub_lsm6dsm.c b/driver/sensorhub_lsm6dsm.c index 7957925bf1..d801eb85f3 100644 --- a/driver/sensorhub_lsm6dsm.c +++ b/driver/sensorhub_lsm6dsm.c @@ -1,4 +1,4 @@ -/* Copyright 2018 The Chromium OS Authors. All rights reserved. +/* Copyright 2018 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -13,10 +13,10 @@ #include "driver/sensorhub_lsm6dsm.h" #include "driver/stm_mems_common.h" -#define CPRINTF(format, args...) cprintf(CC_ACCEL, format, ## args) +#define CPRINTF(format, args...) cprintf(CC_ACCEL, format, ##args) -static int set_reg_bit_field(const struct motion_sensor_t *s, - uint8_t reg, uint8_t bit_field) +static int set_reg_bit_field(const struct motion_sensor_t *s, uint8_t reg, + uint8_t bit_field) { int tmp; int ret; @@ -29,8 +29,8 @@ static int set_reg_bit_field(const struct motion_sensor_t *s, return st_raw_write8(s->port, s->i2c_spi_addr_flags, reg, tmp); } -static int clear_reg_bit_field(const struct motion_sensor_t *s, - uint8_t reg, uint8_t bit_field) +static int clear_reg_bit_field(const struct motion_sensor_t *s, uint8_t reg, + uint8_t bit_field) { int tmp; int ret; @@ -45,14 +45,13 @@ static int clear_reg_bit_field(const struct motion_sensor_t *s, static inline int enable_sensorhub_func(const struct motion_sensor_t *s) { - return set_reg_bit_field(s, LSM6DSM_CTRL10_ADDR, - LSM6DSM_EMBED_FUNC_EN); + return set_reg_bit_field(s, LSM6DSM_CTRL10_ADDR, LSM6DSM_EMBED_FUNC_EN); } static inline int disable_sensorhub_func(const struct motion_sensor_t *s) { return clear_reg_bit_field(s, LSM6DSM_CTRL10_ADDR, - LSM6DSM_EMBED_FUNC_EN); + LSM6DSM_EMBED_FUNC_EN); } /* @@ -65,13 +64,13 @@ static inline int disable_sensorhub_func(const struct motion_sensor_t *s) static inline int enable_ereg_bank_acc(const struct motion_sensor_t *s) { return set_reg_bit_field(s, LSM6DSM_FUNC_CFG_ACC_ADDR, - LSM6DSM_FUNC_CFG_EN); + LSM6DSM_FUNC_CFG_EN); } static inline int disable_ereg_bank_acc(const struct motion_sensor_t *s) { return clear_reg_bit_field(s, LSM6DSM_FUNC_CFG_ACC_ADDR, - LSM6DSM_FUNC_CFG_EN); + LSM6DSM_FUNC_CFG_EN); } static inline int enable_aux_i2c_controller(const struct motion_sensor_t *s) @@ -87,22 +86,21 @@ static inline int disable_aux_i2c_controller(const struct motion_sensor_t *s) } static inline int restore_controller_cfg(const struct motion_sensor_t *s, - int cache) + int cache) { return st_raw_write8(s->port, s->i2c_spi_addr_flags, LSM6DSM_CONTROLLER_CFG_ADDR, cache); } -static int enable_i2c_pass_through(const struct motion_sensor_t *s, - int *cache) +static int enable_i2c_pass_through(const struct motion_sensor_t *s, int *cache) { int ret; ret = st_raw_read8(s->port, s->i2c_spi_addr_flags, LSM6DSM_CONTROLLER_CFG_ADDR, cache); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x MCR error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x MCR error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } @@ -115,19 +113,18 @@ static int enable_i2c_pass_through(const struct motion_sensor_t *s, LSM6DSM_CONTROLLER_CFG_ADDR, *cache | LSM6DSM_EXT_TRIGGER_EN); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x MCETEN error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x MCETEN error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } msleep(10); - ret = st_raw_write8(s->port, s->i2c_spi_addr_flags, - LSM6DSM_CONTROLLER_CFG_ADDR, - *cache & ~(LSM6DSM_EXT_TRIGGER_EN - | LSM6DSM_I2C_CONTROLLER_ON)); + ret = st_raw_write8( + s->port, s->i2c_spi_addr_flags, LSM6DSM_CONTROLLER_CFG_ADDR, + *cache & ~(LSM6DSM_EXT_TRIGGER_EN | LSM6DSM_I2C_CONTROLLER_ON)); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x MCC error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x MCC error ret: %d\n", __func__, + s->name, s->type, ret); restore_controller_cfg(s, *cache); return ret; } @@ -137,33 +134,31 @@ static int enable_i2c_pass_through(const struct motion_sensor_t *s, LSM6DSM_I2C_PASS_THRU_MODE); } -static inline int power_down_accel(const struct motion_sensor_t *s, - int *cache) +static inline int power_down_accel(const struct motion_sensor_t *s, int *cache) { int ret; - ret = st_raw_read8(s->port, s->i2c_spi_addr_flags, - LSM6DSM_CTRL1_ADDR, cache); + ret = st_raw_read8(s->port, s->i2c_spi_addr_flags, LSM6DSM_CTRL1_ADDR, + cache); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x CTRL1R error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x CTRL1R error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } - return st_raw_write8(s->port, s->i2c_spi_addr_flags, - LSM6DSM_CTRL1_ADDR, + return st_raw_write8(s->port, s->i2c_spi_addr_flags, LSM6DSM_CTRL1_ADDR, *cache & ~LSM6DSM_XL_ODR_MASK); } static inline int restore_ctrl1(const struct motion_sensor_t *s, int cache) { - return st_raw_write8(s->port, s->i2c_spi_addr_flags, - LSM6DSM_CTRL1_ADDR, cache); + return st_raw_write8(s->port, s->i2c_spi_addr_flags, LSM6DSM_CTRL1_ADDR, + cache); } static int config_slv0_read(const struct motion_sensor_t *s, - const uint16_t slv_addr_flags, - uint16_t reg, uint8_t len) + const uint16_t slv_addr_flags, uint16_t reg, + uint8_t len) { int ret; uint16_t addr_8bit = I2C_STRIP_FLAGS(slv_addr_flags) << 1; @@ -172,16 +167,16 @@ static int config_slv0_read(const struct motion_sensor_t *s, LSM6DSM_SLV0_ADD_ADDR, (addr_8bit | LSM6DSM_SLV0_RD_BIT)); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x SA error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x SA error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } ret = st_raw_write8(s->port, s->i2c_spi_addr_flags, LSM6DSM_SLV0_SUBADD_ADDR, reg); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x RA error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x RA error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } @@ -193,8 +188,8 @@ static int config_slv0_read(const struct motion_sensor_t *s, LSM6DSM_SLV0_CONFIG_ADDR, (len & LSM6DSM_SLV0_NUM_OPS_MASK)); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x CFG error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x CFG error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } @@ -202,16 +197,16 @@ static int config_slv0_read(const struct motion_sensor_t *s, } int sensorhub_config_ext_reg(const struct motion_sensor_t *s, - const uint16_t slv_addr_flags, - uint8_t reg, uint8_t val) + const uint16_t slv_addr_flags, uint8_t reg, + uint8_t val) { int ret; int tmp; ret = enable_i2c_pass_through(s, &tmp); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x ENI2C error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x ENI2C error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } @@ -227,44 +222,44 @@ int sensorhub_config_slv0_read(const struct motion_sensor_t *s, int ret; if (len <= 0 || len > OUT_XYZ_SIZE) { - CPRINTF("%s: %s type:0x%x Invalid length: %d\n", - __func__, s->name, s->type, len); + CPRINTF("%s: %s type:0x%x Invalid length: %d\n", __func__, + s->name, s->type, len); return EC_ERROR_INVAL; } ret = power_down_accel(s, &tmp_xl_cfg); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x PDXL error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x PDXL error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } ret = enable_ereg_bank_acc(s); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x ENERB error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x ENERB error ret: %d\n", __func__, + s->name, s->type, ret); goto out_restore_ctrl1; } ret = config_slv0_read(s, slv_addr_flags, reg, len); disable_ereg_bank_acc(s); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x CS0R error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x CS0R error ret: %d\n", __func__, + s->name, s->type, ret); goto out_restore_ctrl1; } ret = enable_sensorhub_func(s); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x ENSH error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x ENSH error ret: %d\n", __func__, + s->name, s->type, ret); goto out_restore_ctrl1; } ret = enable_aux_i2c_controller(s); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x ENI2CM error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x ENI2CM error ret: %d\n", __func__, + s->name, s->type, ret); disable_sensorhub_func(s); } out_restore_ctrl1: @@ -282,41 +277,40 @@ int sensorhub_slv0_data_read(const struct motion_sensor_t *s, uint8_t *raw) * contents of that register. */ ret = st_raw_read_n_noinc(s->port, s->i2c_spi_addr_flags, - LSM6DSM_SENSORHUB1_REG, - raw, OUT_XYZ_SIZE); + LSM6DSM_SENSORHUB1_REG, raw, OUT_XYZ_SIZE); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x SH1R error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x SH1R error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } return EC_SUCCESS; } int sensorhub_check_and_rst(const struct motion_sensor_t *s, - const uint16_t slv_addr_flags, - uint8_t whoami_reg, uint8_t whoami_val, - uint8_t rst_reg, uint8_t rst_val) + const uint16_t slv_addr_flags, uint8_t whoami_reg, + uint8_t whoami_val, uint8_t rst_reg, + uint8_t rst_val) { int ret, tmp; int tmp_controller_cfg; ret = enable_i2c_pass_through(s, &tmp_controller_cfg); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x ENI2C error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x ENI2C error ret: %d\n", __func__, + s->name, s->type, ret); return ret; } ret = st_raw_read8(s->port, slv_addr_flags, whoami_reg, &tmp); if (ret != EC_SUCCESS) { - CPRINTF("%s: %s type:0x%x WAIR error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x WAIR error ret: %d\n", __func__, + s->name, s->type, ret); goto err_restore_controller_cfg; } if (tmp != whoami_val) { - CPRINTF("%s: %s type:0x%x WAIC error ret: %d\n", - __func__, s->name, s->type, ret); + CPRINTF("%s: %s type:0x%x WAIC error ret: %d\n", __func__, + s->name, s->type, ret); ret = EC_ERROR_UNKNOWN; goto err_restore_controller_cfg; } |