summaryrefslogtreecommitdiff
path: root/driver/accelgyro_bmi160.c
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2015-08-06 15:42:44 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-08-24 19:08:04 +0000
commit179d5d3c833433b07530b136a55085a6d22cbeee (patch)
treea1a355b02a65bbfe7f7793e30d833c795bb26e50 /driver/accelgyro_bmi160.c
parent0b79533f8874c8824fde3e020d01e328c685037c (diff)
downloadchrome-ec-179d5d3c833433b07530b136a55085a6d22cbeee.tar.gz
bmm150: add measurement repetition
To reduce noise the magnetometer measures in burst and average the data. Use "regular" presets: max frequency is limited to 100Hz. Using a more precise presets limit frequency to no more than 50Hz. BRANCH=smaug TEST=Check magnetomter still works. BUG=chrome-os-partner:39900 Change-Id: Ida6af86f6c207cc91e11378c129032f6d9e6b9ea Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/291990 Reviewed-by: Sheng-liang Song <ssl@chromium.org>
Diffstat (limited to 'driver/accelgyro_bmi160.c')
-rw-r--r--driver/accelgyro_bmi160.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/driver/accelgyro_bmi160.c b/driver/accelgyro_bmi160.c
index a6c29bfbb2..3afa3e6bd7 100644
--- a/driver/accelgyro_bmi160.c
+++ b/driver/accelgyro_bmi160.c
@@ -400,9 +400,10 @@ static int set_data_rate(const struct motion_sensor_t *s,
}
break;
case MOTIONSENSE_TYPE_MAG:
- if (reg_val > BMI160_ODR_800HZ) {
- reg_val = BMI160_ODR_800HZ;
- normalized_rate = 800000;
+ /* We use the regular preset we can go about 100Hz */
+ if (reg_val > BMI160_ODR_100HZ) {
+ reg_val = BMI160_ODR_100HZ;
+ normalized_rate = 100000;
} else if (reg_val < BMI160_ODR_0_78HZ) {
reg_val = BMI160_ODR_0_78HZ;
normalized_rate = 780;