diff options
author | Gwendal Grignou <gwendal@chromium.org> | 2015-08-06 15:42:44 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-08-24 19:08:04 +0000 |
commit | 179d5d3c833433b07530b136a55085a6d22cbeee (patch) | |
tree | a1a355b02a65bbfe7f7793e30d833c795bb26e50 /driver/mag_bmm150.c | |
parent | 0b79533f8874c8824fde3e020d01e328c685037c (diff) | |
download | chrome-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/mag_bmm150.c')
-rw-r--r-- | driver/mag_bmm150.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/driver/mag_bmm150.c b/driver/mag_bmm150.c index fb2d5c7108..59ce76785e 100644 --- a/driver/mag_bmm150.c +++ b/driver/mag_bmm150.c @@ -115,6 +115,14 @@ int bmm150_init(const struct motion_sensor_t *s) BMI150_READ_16BIT_COM_REG(regs->dig_z4, BMM150_REGA_DIG_Z4_LSB); BMI150_READ_16BIT_COM_REG(regs->dig_xyz1, BMM150_REGA_DIG_XYZ1_LSB); + + /* Set the repetition in "Regular Preset" */ + raw_mag_write8(s->addr, BMM150_REPXY, 1 + 2 * BMM150_REP(REGULAR, XY)); + raw_mag_write8(s->addr, BMM150_REPZ, 1 + BMM150_REP(REGULAR, Z)); + ret = raw_mag_read8(s->addr, BMM150_REPXY, &val); + CPRINTS("repxy: 0x%02x", val); + ret = raw_mag_read8(s->addr, BMM150_REPZ, &val); + CPRINTS("repz: 0x%02x", val); /* * Set the compass forced mode, to sleep after each measure. */ |