summaryrefslogtreecommitdiff
path: root/driver/accelgyro_bmi160.h
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2015-07-12 22:26:33 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-07-22 23:50:31 +0000
commit709676bfe1dacc42395d7ba658fcc23455e6d7a0 (patch)
treeb3436d6c3d9dc620eac18d4935ef0778fb5ccf0c /driver/accelgyro_bmi160.h
parentd286fbd7f8a0b94a5d3a022a4cfc679f9f76a357 (diff)
downloadchrome-ec-709676bfe1dacc42395d7ba658fcc23455e6d7a0.tar.gz
driver: bmm150 measurement compensation
Using Bosh reference document, compensate X,Y,Z axis based on internal registers and R HALL values. Change compass unites to 1/16 uT per LSB. Reference: https://github.com/suribi/Thunder-Kernel/blob/master/mediatek/custom/common/kernel/magnetometer/bmm150/bmm150.c BRANCH=smaug TEST=Check compass value in user space. BUG=chrome-os-partner:39900 Change-Id: I0c480521771ef6004ac6e5182cc1d27e82c5bc7c Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/285020 Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'driver/accelgyro_bmi160.h')
-rw-r--r--driver/accelgyro_bmi160.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/driver/accelgyro_bmi160.h b/driver/accelgyro_bmi160.h
index 64351a75cb..83c8a63074 100644
--- a/driver/accelgyro_bmi160.h
+++ b/driver/accelgyro_bmi160.h
@@ -9,6 +9,7 @@
#define __CROS_EC_ACCELGYRO_BMI160_H
#include "accelgyro.h"
+#include "mag_bmm150.h"
#define BMI160_ADDR0 0xd0
#define BMI160_ADDR1 0xd2
@@ -374,6 +375,9 @@ enum bmi160_running_mode {
struct bmi160_drv_data_t {
struct motion_data_t saved_data[3];
uint8_t flags;
+#ifdef CONFIG_MAG_BMI160_BMM150
+ struct bmm150_comp_registers comp_regs;
+#endif
};
#define BMI160_GET_DATA(_s) \
@@ -385,4 +389,11 @@ extern struct bmi160_drv_data_t g_bmi160_data;
void bmi160_interrupt(enum gpio_signal signal);
+#ifdef CONFIG_MAG_BMI160_BMM150
+/* Functions to access the compass through the accel/gyro. */
+int raw_mag_read8(const int addr, const int reg, int *data_ptr);
+int raw_mag_write8(const int addr, const int reg, int data);
+#endif
+
+
#endif /* __CROS_EC_ACCELGYRO_BMI160_H */