summaryrefslogtreecommitdiff
path: root/driver/accelgyro_lsm6dso.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/accelgyro_lsm6dso.c')
-rw-r--r--driver/accelgyro_lsm6dso.c69
1 files changed, 27 insertions, 42 deletions
diff --git a/driver/accelgyro_lsm6dso.c b/driver/accelgyro_lsm6dso.c
index 74731fad27..3123d8f114 100644
--- a/driver/accelgyro_lsm6dso.c
+++ b/driver/accelgyro_lsm6dso.c
@@ -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.
*/
@@ -23,10 +23,10 @@
#define ACCEL_LSM6DSO_INT_ENABLE
#endif
-#define CPRINTS(format, args...) cprints(CC_ACCEL, format, ## args)
+#define CPRINTS(format, args...) cprints(CC_ACCEL, format, ##args)
STATIC_IF(ACCEL_LSM6DSO_INT_ENABLE)
- volatile uint32_t last_interrupt_timestamp;
+volatile uint32_t last_interrupt_timestamp;
/*
* When ODR change, the sensor filters need settling time;
@@ -75,7 +75,7 @@ static int config_interrupt(const struct motion_sensor_t *s)
return ret;
int1_ctrl_val |= LSM6DSO_INT_FIFO_TH | LSM6DSO_INT_FIFO_OVR |
- LSM6DSO_INT_FIFO_FULL;
+ LSM6DSO_INT_FIFO_FULL;
ret = st_raw_write8(s->port, s->i2c_spi_addr_flags, LSM6DSO_INT1_CTRL,
int1_ctrl_val);
@@ -171,10 +171,9 @@ static inline int load_fifo(struct motion_sensor_t *main_s,
int i;
for (i = 0; i < fifo_len; i++) {
- RETURN_ERROR(st_raw_read_n_noinc(main_s->port,
- main_s->i2c_spi_addr_flags,
- LSM6DSO_FIFO_DATA_ADDR_TAG,
- fifo, sizeof(fifo)));
+ RETURN_ERROR(st_raw_read_n_noinc(
+ main_s->port, main_s->i2c_spi_addr_flags,
+ LSM6DSO_FIFO_DATA_ADDR_TAG, fifo, sizeof(fifo)));
push_fifo_data(main_s, fifo, last_interrupt_timestamp);
}
@@ -188,7 +187,7 @@ static inline int load_fifo(struct motion_sensor_t *main_s,
static int accelgyro_config_fifo(const struct motion_sensor_t *s)
{
int err;
- struct stprivate_data *data = LSM6DSO_GET_DATA(s);
+ struct stprivate_data *data = s->drv_data;
uint8_t reg_val;
uint8_t fifo_odr_mask;
@@ -205,8 +204,8 @@ static int accelgyro_config_fifo(const struct motion_sensor_t *s)
fifo_odr_mask = LSM6DSO_FIFO_ODR_MASK(s);
reg_val = LSM6DSO_ODR_TO_REG(data->base.odr);
- err = st_write_data_with_mask(s, LSM6DSO_FIFO_CTRL3_ADDR,
- fifo_odr_mask, reg_val);
+ err = st_write_data_with_mask(s, LSM6DSO_FIFO_CTRL3_ADDR, fifo_odr_mask,
+ reg_val);
if (err != EC_SUCCESS)
return err;
@@ -238,9 +237,9 @@ static int irq_handler(struct motion_sensor_t *s, uint32_t *event)
do {
/* Read how many data patterns on FIFO to read. */
- RETURN_ERROR(st_raw_read_n_noinc(s->port, s->i2c_spi_addr_flags,
- LSM6DSO_FIFO_STS1_ADDR,
- (uint8_t *)&fsts, sizeof(fsts)));
+ RETURN_ERROR(st_raw_read_n_noinc(
+ s->port, s->i2c_spi_addr_flags, LSM6DSO_FIFO_STS1_ADDR,
+ (uint8_t *)&fsts, sizeof(fsts)));
if (fsts.len & (LSM6DSO_FIFO_DATA_OVR | LSM6DSO_FIFO_FULL))
CPRINTS("%s FIFO Overrun: %04x", s->name, fsts.len);
@@ -294,8 +293,7 @@ static int set_range(struct motion_sensor_t *s, int range, int rnd)
}
mutex_lock(s->mutex);
- err = st_write_data_with_mask(s, ctrl_reg, LSM6DSO_RANGE_MASK,
- reg_val);
+ err = st_write_data_with_mask(s, ctrl_reg, LSM6DSO_RANGE_MASK, reg_val);
if (err == EC_SUCCESS)
s->current_range = newrange;
@@ -313,7 +311,7 @@ static int set_range(struct motion_sensor_t *s, int range, int rnd)
static int set_data_rate(const struct motion_sensor_t *s, int rate, int rnd)
{
int ret, normalized_rate = 0;
- struct stprivate_data *data = LSM6DSO_GET_DATA(s);
+ struct stprivate_data *data = s->drv_data;
uint8_t ctrl_reg, reg_val = 0;
ctrl_reg = LSM6DSO_ODR_REG(s->type);
@@ -348,8 +346,8 @@ static int is_data_ready(const struct motion_sensor_t *s, int *ready)
{
int ret, tmp;
- ret = st_raw_read8(s->port, s->i2c_spi_addr_flags,
- LSM6DSO_STATUS_REG, &tmp);
+ ret = st_raw_read8(s->port, s->i2c_spi_addr_flags, LSM6DSO_STATUS_REG,
+ &tmp);
if (ret != EC_SUCCESS) {
CPRINTS("%s type:0x%X RS Error", s->name, s->type);
@@ -394,8 +392,8 @@ static int read(const struct motion_sensor_t *s, intv3_t v)
xyz_reg = get_xyz_reg(s->type);
/* Read data bytes starting at xyz_reg. */
- ret = st_raw_read_n_noinc(s->port, s->i2c_spi_addr_flags,
- xyz_reg, raw, OUT_XYZ_SIZE);
+ ret = st_raw_read_n_noinc(s->port, s->i2c_spi_addr_flags, xyz_reg, raw,
+ OUT_XYZ_SIZE);
if (ret != EC_SUCCESS)
return ret;
@@ -408,10 +406,10 @@ static int read(const struct motion_sensor_t *s, intv3_t v)
static int init(struct motion_sensor_t *s)
{
int ret = 0, tmp;
- struct stprivate_data *data = LSM6DSO_GET_DATA(s);
+ struct stprivate_data *data = s->drv_data;
- ret = st_raw_read8(s->port, s->i2c_spi_addr_flags,
- LSM6DSO_WHO_AM_I_REG, &tmp);
+ ret = st_raw_read8(s->port, s->i2c_spi_addr_flags, LSM6DSO_WHO_AM_I_REG,
+ &tmp);
if (ret != EC_SUCCESS)
return EC_ERROR_UNKNOWN;
@@ -438,10 +436,9 @@ static int init(struct motion_sensor_t *s)
* Output data not updated until have been read.
* Require interrupt to be active low.
*/
- ret = st_raw_write8(s->port, s->i2c_spi_addr_flags,
- LSM6DSO_CTRL3_ADDR,
- LSM6DSO_BDU | LSM6DSO_IF_INC
- | LSM6DSO_H_L_ACTIVE);
+ ret = st_raw_write8(
+ s->port, s->i2c_spi_addr_flags, LSM6DSO_CTRL3_ADDR,
+ LSM6DSO_BDU | LSM6DSO_IF_INC | LSM6DSO_H_L_ACTIVE);
if (ret != EC_SUCCESS)
goto err_unlock;
@@ -471,7 +468,7 @@ err_unlock:
}
#ifdef CONFIG_BODY_DETECTION
-int get_rms_noise(const struct motion_sensor_t *s)
+static int get_rms_noise(const struct motion_sensor_t *s)
{
/*
* RMS | Acceleration RMS noise in normal/low-power mode
@@ -481,18 +478,6 @@ int get_rms_noise(const struct motion_sensor_t *s)
}
#endif
-#ifdef CONFIG_GESTURE_HOST_DETECTION
-int lsm_list_activities(const struct motion_sensor_t *s,
- uint32_t *enabled,
- uint32_t *disabled)
-{
- struct stprivate_data *data = LSM6DSO_GET_DATA(s);
- *enabled = data->enabled_activities;
- *disabled = data->disabled_activities;
- return EC_RES_SUCCESS;
-}
-#endif /* CONFIG_GESTURE_HOST_DETECTION */
-
const struct accelgyro_drv lsm6dso_drv = {
.init = init,
.read = read,
@@ -508,7 +493,7 @@ const struct accelgyro_drv lsm6dso_drv = {
.get_rms_noise = get_rms_noise,
#endif
#ifdef CONFIG_GESTURE_HOST_DETECTION
- .list_activities = lsm_list_activities,
+ .list_activities = st_list_activities,
#endif
#endif /* ACCEL_LSM6DSO_INT_ENABLE */
};