diff options
author | Yuval Peress <peress@chromium.org> | 2019-11-15 10:14:18 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-01-03 00:38:21 +0000 |
commit | 4a7e15fd51dac214d22567ffa080a447e5051d63 (patch) | |
tree | ca8a3445e6a6df1c11e77d1fc09990e9f7ac5d77 | |
parent | 32412de5fe36815e828302d6d8279d687a3dddf0 (diff) | |
download | chrome-ec-4a7e15fd51dac214d22567ffa080a447e5051d63.tar.gz |
driver: lsm6dsm: Implement temperature reading
Implement reading the internal chip temperature
BUG=b:138303429,chromium:1023858
TEST=None
BRANCH=None
Change-Id: Ia077d5d439d5557333aae5325140ab1958da993e
Signed-off-by: Yuval Peress <peress@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1922293
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
-rw-r--r-- | driver/accelgyro_lsm6dsm.c | 16 | ||||
-rw-r--r-- | driver/accelgyro_lsm6dsm.h | 2 |
2 files changed, 18 insertions, 0 deletions
diff --git a/driver/accelgyro_lsm6dsm.c b/driver/accelgyro_lsm6dsm.c index 3d0c717a9b..64a1d22517 100644 --- a/driver/accelgyro_lsm6dsm.c +++ b/driver/accelgyro_lsm6dsm.c @@ -836,6 +836,21 @@ err_unlock: return ret; } +static int read_temp(const struct motion_sensor_t *s, int *temp) +{ + int ret; + uint8_t raw[2]; + + ret = st_raw_read_n_noinc(s->port, s->i2c_spi_addr_flags, + LSM6DSM_OUT_TEMP_L_ADDR, raw, 2); + if (ret != EC_SUCCESS) + return ret; + + *temp = C_TO_K(25 + (int)raw[1]); + + return EC_SUCCESS; +} + const struct accelgyro_drv lsm6dsm_drv = { .init = init, .read = read, @@ -844,6 +859,7 @@ const struct accelgyro_drv lsm6dsm_drv = { .get_resolution = st_get_resolution, .set_data_rate = lsm6dsm_set_data_rate, .get_data_rate = st_get_data_rate, + .read_temp = read_temp, .set_offset = st_set_offset, .get_offset = st_get_offset, #ifdef CONFIG_ACCEL_INTERRUPTS diff --git a/driver/accelgyro_lsm6dsm.h b/driver/accelgyro_lsm6dsm.h index f63f6af4a0..7be2219be0 100644 --- a/driver/accelgyro_lsm6dsm.h +++ b/driver/accelgyro_lsm6dsm.h @@ -109,6 +109,8 @@ #define LSM6DSM_STATUS_REG 0x1e +#define LSM6DSM_OUT_TEMP_L_ADDR 0x20 + #define LSM6DSM_GYRO_OUT_X_L_ADDR 0x22 #define LSM6DSM_ACCEL_OUT_X_L_ADDR 0x28 |