summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2017-11-13 12:33:24 -0800
committerchrome-bot <chrome-bot@chromium.org>2017-11-17 20:18:30 -0800
commitf587852570770564e8a94b2c3f7ad7d97883c49a (patch)
treea7d78650875c700c3449268ed05330a11bea5eb6 /driver
parentab2ce0a0ef38a701a9cc6622ccb41ba55d6b4984 (diff)
downloadchrome-ec-f587852570770564e8a94b2c3f7ad7d97883c49a.tar.gz
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 <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/767610 Reviewed-by: Shawn N <shawnn@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r--driver/accel_bma2x2.c8
-rw-r--r--driver/accel_kionix.c9
-rw-r--r--driver/accel_lis2dh.c15
-rw-r--r--driver/accel_lis2dh.h2
-rw-r--r--driver/accelgyro_bmi160.c4
-rw-r--r--driver/accelgyro_lsm6ds0.c19
-rw-r--r--driver/accelgyro_lsm6dsm.c5
-rw-r--r--driver/als_si114x.c5
-rw-r--r--driver/baro_bmp280.c7
-rw-r--r--driver/gyro_l3gd20h.c18
10 files changed, 25 insertions, 67 deletions
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 = {