From f587852570770564e8a94b2c3f7ad7d97883c49a Mon Sep 17 00:00:00 2001 From: Gwendal Grignou Date: Mon, 13 Nov 2017 12:33:24 -0800 Subject: motion_sense: Put set_range in common code At the end of the sensor initialization, all _init sensor routines set the range to the default value from board.c file. Put all the code in a single place, move it from sensor_common.c to motion_sense.c. BUG=none BRANCH=none TEST=compile Change-Id: If89cf27c6438e0f215c193d68a480e027110174c Signed-off-by: Gwendal Grignou Reviewed-on: https://chromium-review.googlesource.com/767610 Reviewed-by: Shawn N --- driver/accel_bma2x2.c | 8 +------- driver/accel_kionix.c | 9 +-------- driver/accel_lis2dh.c | 15 ++++++--------- driver/accel_lis2dh.h | 2 -- driver/accelgyro_bmi160.c | 4 +--- driver/accelgyro_lsm6ds0.c | 19 +++---------------- driver/accelgyro_lsm6dsm.c | 5 +---- driver/als_si114x.c | 5 +---- driver/baro_bmp280.c | 7 +++++-- driver/gyro_l3gd20h.c | 18 ++++++------------ 10 files changed, 25 insertions(+), 67 deletions(-) (limited to 'driver') diff --git a/driver/accel_bma2x2.c b/driver/accel_bma2x2.c index 8cb90a1ca2..b48ad864ff 100644 --- a/driver/accel_bma2x2.c +++ b/driver/accel_bma2x2.c @@ -311,17 +311,11 @@ static int init(const struct motion_sensor_t *s) mutex_unlock(s->mutex); /* Initialize with the desired parameters. */ - ret = set_range(s, s->default_range, 1); - if (ret != EC_SUCCESS) - return ret; - ret = set_resolution(s, 12, 1); if (ret != EC_SUCCESS) return ret; - sensor_init_done(s, get_range(s)); - - return ret; + return sensor_init_done(s); } const struct accelgyro_drv bma2x2_accel_drv = { diff --git a/driver/accel_kionix.c b/driver/accel_kionix.c index 8697a17d66..062a3896fd 100644 --- a/driver/accel_kionix.c +++ b/driver/accel_kionix.c @@ -575,10 +575,6 @@ static int init(const struct motion_sensor_t *s) mutex_unlock(s->mutex); /* Initialize with the desired parameters. */ - ret = set_range(s, s->default_range, 1); - if (ret != EC_SUCCESS) - return ret; - if (V(s)) ret = set_resolution(s, 12, 1); else @@ -586,10 +582,7 @@ static int init(const struct motion_sensor_t *s) if (ret != EC_SUCCESS) return ret; - sensor_init_done(s, get_range(s)); - - mutex_unlock(s->mutex); - return ret; + return sensor_init_done(s); } const struct accelgyro_drv kionix_accel_drv = { diff --git a/driver/accel_lis2dh.c b/driver/accel_lis2dh.c index eadc66cf71..18a0ade444 100644 --- a/driver/accel_lis2dh.c +++ b/driver/accel_lis2dh.c @@ -16,6 +16,7 @@ #include "task.h" #include "util.h" #include "driver/accel_lis2dh.h" +#include "driver/stm_mems_common.h" #ifdef CONFIG_ACCEL_FIFO /** @@ -324,7 +325,7 @@ static int init(const struct motion_sensor_t *s) ret = raw_read8(s->port, s->addr, LIS2DH_WHO_AM_I_REG, &tmp); if (ret != EC_SUCCESS) - return EC_ERROR_UNKNOWN; + return ret; if (tmp != LIS2DH_WHO_AM_I) return EC_ERROR_ACCESS_DENIED; @@ -367,26 +368,22 @@ static int init(const struct motion_sensor_t *s) mutex_unlock(s->mutex); - /* Config initial Acc Range */ - ret = set_range(s, s->default_range, 0); - if (ret != EC_SUCCESS) - return ret; - /* Set default resolution */ data->resol = LIS2DH_RESOLUTION; #ifdef CONFIG_ACCEL_INTERRUPTS ret = config_interrupt(s); + if (ret != EC_SUCCESS) + return ret; #endif - sensor_init_done(s, get_range(s)); - return ret; + return sensor_init_done(s); err_unlock: CPRINTF("[%T %s: MS Init type:0x%X Error]\n", s->name, s->type); mutex_unlock(s->mutex); - return EC_ERROR_UNKNOWN; + return ret; } const struct accelgyro_drv lis2dh_drv = { diff --git a/driver/accel_lis2dh.h b/driver/accel_lis2dh.h index 9872ccabe4..3b87ffff8b 100644 --- a/driver/accel_lis2dh.h +++ b/driver/accel_lis2dh.h @@ -8,8 +8,6 @@ #ifndef __CROS_EC_ACCEL_LIS2DH_H #define __CROS_EC_ACCEL_LIS2DH_H -#include "driver/stm_mems_common.h" - #define LIS2DH_I2C_ADDR(__x) (__x << 1) /* 7-bit address is 000110Xb. Where 'X' is determined diff --git a/driver/accelgyro_bmi160.c b/driver/accelgyro_bmi160.c index dcba2ae17f..8d2c93f686 100644 --- a/driver/accelgyro_bmi160.c +++ b/driver/accelgyro_bmi160.c @@ -1269,7 +1269,6 @@ static int init(const struct motion_sensor_t *s) * so set data rate to 0. */ data->odr = 0; - set_range(s, s->default_range, 0); if (s->type == MOTIONSENSE_TYPE_ACCEL) { #ifdef CONFIG_ACCEL_INTERRUPTS @@ -1277,8 +1276,7 @@ static int init(const struct motion_sensor_t *s) #endif } - sensor_init_done(s, get_range(s)); - return ret; + return sensor_init_done(s); } const struct accelgyro_drv bmi160_drv = { diff --git a/driver/accelgyro_lsm6ds0.c b/driver/accelgyro_lsm6ds0.c index 9f98b5b417..67f3fffd85 100644 --- a/driver/accelgyro_lsm6ds0.c +++ b/driver/accelgyro_lsm6ds0.c @@ -411,28 +411,15 @@ static int init(const struct motion_sensor_t *s) mutex_unlock(s->mutex); if (ret) - return EC_ERROR_UNKNOWN; + return ret; /* Power Down Gyro */ ret = raw_write8(s->port, s->addr, LSM6DS0_CTRL_REG1_G, 0x0); if (ret) - return EC_ERROR_UNKNOWN; - - ret = set_range(s, s->default_range, 1); - if (ret) - return EC_ERROR_UNKNOWN; - } - - if (MOTIONSENSE_TYPE_GYRO == s->type) { - /* Config GYRO Range */ - ret = set_range(s, s->default_range, 1); - if (ret) - return EC_ERROR_UNKNOWN; + return ret; } - - sensor_init_done(s, get_range(s)); - return ret; + return sensor_init_done(s); } const struct accelgyro_drv lsm6ds0_drv = { diff --git a/driver/accelgyro_lsm6dsm.c b/driver/accelgyro_lsm6dsm.c index 9550159c73..d4466d5482 100644 --- a/driver/accelgyro_lsm6dsm.c +++ b/driver/accelgyro_lsm6dsm.c @@ -325,10 +325,7 @@ static int init(const struct motion_sensor_t *s) mutex_unlock(s->mutex); } - ret = set_range(s, s->default_range, 1); - - sensor_init_done(s, get_range(s)); - return ret; + return sensor_init_done(s); err_unlock: mutex_unlock(s->mutex); diff --git a/driver/als_si114x.c b/driver/als_si114x.c index dd01fc1a55..3b4cf39daa 100644 --- a/driver/als_si114x.c +++ b/driver/als_si114x.c @@ -557,16 +557,13 @@ static int init(const struct motion_sensor_t *s) resol = 5; } - set_range(s, s->default_range, 0); /* * Sensor is most likely behind a glass. * Max out the gain to get correct measurement */ set_resolution(s, resol, 0); - sensor_init_done(s, get_range(s)); - - return EC_SUCCESS; + return sensor_init_done(s); } const struct accelgyro_drv si114x_drv = { diff --git a/driver/baro_bmp280.c b/driver/baro_bmp280.c index 2e939ceac3..3ca0084704 100644 --- a/driver/baro_bmp280.c +++ b/driver/baro_bmp280.c @@ -322,9 +322,12 @@ static int bmp280_init(const struct motion_sensor_t *s) if (ret) return ret; - bmp280_set_range(s, s->default_range, 0); /* Read bmp280 calibration parameter */ - return bmp280_get_calib_param(s); + ret = bmp280_get_calib_param(s); + if (ret) + return ret; + + return sensor_init_done(s); } static int bmp280_read(const struct motion_sensor_t *s, vector_3_t v) diff --git a/driver/gyro_l3gd20h.c b/driver/gyro_l3gd20h.c index adcf347f90..53ee98961f 100644 --- a/driver/gyro_l3gd20h.c +++ b/driver/gyro_l3gd20h.c @@ -373,7 +373,7 @@ static int init(const struct motion_sensor_t *s) ret = raw_read8(s->port, s->addr, L3GD20_WHO_AM_I_REG, &tmp); if (ret) - return EC_ERROR_UNKNOWN; + return ret; if (tmp != L3GD20_WHO_AM_I) return EC_ERROR_ACCESS_DENIED; @@ -381,33 +381,27 @@ static int init(const struct motion_sensor_t *s) /* All axes are enabled */ ret = raw_write8(s->port, s->addr, L3GD20_CTRL_REG1, 0x0f); if (ret) - return EC_ERROR_UNKNOWN; + return ret; mutex_lock(s->mutex); ret = raw_read8(s->port, s->addr, L3GD20_CTRL_REG4, &tmp); if (ret) { mutex_unlock(s->mutex); - return EC_ERROR_UNKNOWN; + return ret; } tmp |= L3GD20_BDU_ENABLE; ret = raw_write8(s->port, s->addr, L3GD20_CTRL_REG4, tmp); mutex_unlock(s->mutex); if (ret) - return EC_ERROR_UNKNOWN; + return ret; /* Config GYRO ODR */ ret = set_data_rate(s, s->default_range, 1); if (ret) - return EC_ERROR_UNKNOWN; - - /* Config GYRO Range */ - ret = set_range(s, s->default_range, 1); - if (ret) - return EC_ERROR_UNKNOWN; + return ret; - sensor_init_done(s, get_range(s)); - return ret; + return sensor_init_done(s); } const struct accelgyro_drv l3gd20h_drv = { -- cgit v1.2.1