diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2015-07-12 22:26:33 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-07-22 23:50:31 +0000 |
commit | 709676bfe1dacc42395d7ba658fcc23455e6d7a0 (patch) | |
tree | b3436d6c3d9dc620eac18d4935ef0778fb5ccf0c /driver/accelgyro_bmi160.h | |
parent | d286fbd7f8a0b94a5d3a022a4cfc679f9f76a357 (diff) | |
download | chrome-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.h | 11 |
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 */ |