summaryrefslogtreecommitdiff
path: root/driver/accelgyro_lsm6dsm.h
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2018-01-24 08:28:03 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-03-19 19:21:21 -0700
commit3d3a009f49c82ba4ed907a0d99fdef63d720ec1c (patch)
tree1961a698237bed08b21f151eec83ee00d3fb9cc9 /driver/accelgyro_lsm6dsm.h
parent94f5413159518e798800ca41916c02af00a6e2c8 (diff)
downloadchrome-ec-3d3a009f49c82ba4ed907a0d99fdef63d720ec1c.tar.gz
driver: lsm6dsm: fix units
Units must be reported in according to the range. 2g means 1<<15 should be returned when accel is 2g. Actually accelerometer report units in mg. BUG=b:73546254 BRANCH=master TEST=Check with accelinfo with 2g gain Z ~= 1<<14. Change-Id: I218210ca8305ecbe76a681b535f3d75f3a6bea52 Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/924408 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'driver/accelgyro_lsm6dsm.h')
-rw-r--r--driver/accelgyro_lsm6dsm.h19
1 files changed, 2 insertions, 17 deletions
diff --git a/driver/accelgyro_lsm6dsm.h b/driver/accelgyro_lsm6dsm.h
index 1c1dea606d..606e19153f 100644
--- a/driver/accelgyro_lsm6dsm.h
+++ b/driver/accelgyro_lsm6dsm.h
@@ -85,31 +85,16 @@ enum lsm6dsm_odr {
#define LSM6DSM_ACCEL_FS_8G_VAL 0x03
#define LSM6DSM_ACCEL_FS_16G_VAL 0x01
-#define LSM6DSM_ACCEL_FS_2G_GAIN 61
-#define LSM6DSM_ACCEL_FS_4G_GAIN 122
-#define LSM6DSM_ACCEL_FS_8G_GAIN 244
-#define LSM6DSM_ACCEL_FS_16G_GAIN 488
-
#define LSM6DSM_ACCEL_FS_MAX_VAL 16
-/* Accel Gain value from selected Full Scale */
-#define LSM6DSM_ACCEL_FS_GAIN(_fs) \
- (_fs == 16 ? LSM6DSM_ACCEL_FS_16G_GAIN : \
- LSM6DSM_ACCEL_FS_2G_GAIN << __fls(_fs / 2))
-
-/* Accel FS Full Scale value from Gain */
-#define LSM6DSM_ACCEL_GAIN_FS(_gain) \
- (1 << (32 - __builtin_clz(_gain / LSM6DSM_ACCEL_FS_2G_GAIN)))
-
/* Accel Reg value from Full Scale */
#define LSM6DSM_ACCEL_FS_REG(_fs) \
(_fs == 2 ? LSM6DSM_ACCEL_FS_2G_VAL : \
_fs == 16 ? LSM6DSM_ACCEL_FS_16G_VAL : \
- (32 - __builtin_clz(_fs / 2)))
+ __fls(_fs))
/* Accel normalized FS value from Full Scale */
-#define LSM6DSM_ACCEL_NORMALIZE_FS(_fs) \
- (1 << (32 - __builtin_clz(_fs / 2)))
+#define LSM6DSM_ACCEL_NORMALIZE_FS(_fs) (1 << __fls(_fs))
/* Full Scale range value and gain for Gyro */
#define LSM6DSM_GYRO_FS_ADDR 0x11