diff options
author | Tomasz Michalec <tm@semihalf.com> | 2021-07-14 00:44:44 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-14 21:24:55 +0000 |
commit | 0773847d80c8821da2b277c6e007b6948eb350aa (patch) | |
tree | 995136cd3f73c4de6cc94f68af70cfda97fa7de7 /driver/accelgyro_bmi260.c | |
parent | 1369994e674688cb1d4f045b48b1b4b1836ae01c (diff) | |
download | chrome-ec-0773847d80c8821da2b277c6e007b6948eb350aa.tar.gz |
driver: bmi160: bmi260: Minor driver fixes
Fix three issues with BMI160 and BMI260 drivers:
- get/set acclerometer/gyroscope offset will return error on failed read
of offset register
- BMI160 calibration function returns error when setting range fail
- Invalid temperature is properly recognized by driver
BUG=none
BRANCH=none
TEST=run zmake drivers test
Signed-off-by: Tomasz Michalec <tm@semihalf.com>
Change-Id: I545c0a931227ef7efc000ec97c1f6297a48e6d1a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3027039
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jeremy Bettis <jbettis@chromium.org>
Reviewed-by: Keith Short <keithshort@chromium.org>
Diffstat (limited to 'driver/accelgyro_bmi260.c')
-rw-r--r-- | driver/accelgyro_bmi260.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/driver/accelgyro_bmi260.c b/driver/accelgyro_bmi260.c index 21d783fe84..7fbbb073cd 100644 --- a/driver/accelgyro_bmi260.c +++ b/driver/accelgyro_bmi260.c @@ -161,13 +161,19 @@ static int set_offset(const struct motion_sensor_t *s, switch (s->type) { case MOTIONSENSE_TYPE_ACCEL: - bmi_set_accel_offset(s, v); + ret = bmi_set_accel_offset(s, v); + if (ret != EC_SUCCESS) + return ret; + ret = bmi_write8(s->port, s->i2c_spi_addr_flags, BMI260_NV_CONF, val_nv_conf | BMI260_ACC_OFFSET_EN); break; case MOTIONSENSE_TYPE_GYRO: - bmi_set_gyro_offset(s, v, &val98); + ret = bmi_set_gyro_offset(s, v, &val98); + if (ret != EC_SUCCESS) + return ret; + ret = bmi_write8(s->port, s->i2c_spi_addr_flags, BMI260_OFFSET_EN_GYR98, val98 | BMI260_OFFSET_GYRO_EN); |