summaryrefslogtreecommitdiff
path: root/driver/accel_bma2x2.c
diff options
context:
space:
mode:
authorJonathan Brandmeyer <jbrandmeyer@chromium.org>2018-08-07 16:04:23 -0600
committerchrome-bot <chrome-bot@chromium.org>2018-08-09 22:04:40 -0700
commit740427a24398b3fd66904e913b742f751371d09c (patch)
tree1efe5fd4db314fbbb44bdd3a5bc726c4ee818ad0 /driver/accel_bma2x2.c
parentaba9f5e09f7fb1f18a297fb5552404706a642351 (diff)
downloadchrome-ec-740427a24398b3fd66904e913b742f751371d09c.tar.gz
drivers: Refactor to use high-level i2c APIs
Using the high-level APIs for block transfers eliminates some code duplication and error-prone manual locking sequences. - common/cbi: Block transfers - driver/accel_bma2x2: Block transfers - driver/accel_kionix: Block transfers - driver/accelgyro_bmi160: Block transfers - driver/accelgyro_lsm6ds0: Block transfers - driver/baro_bmp280: Block and byte transfers - driver/charger/rt946x: Block transfers - driver/gyro_l3gd20h: Block transfers - driver/stm_mems_common: Block transfers - driver/tcpm: Block transfers TEST=buildall; motionsense and PD testing on Grunt convertible which exercises the bma160, kionix and tcpcm drivers. BRANCH=none BUG=chromium:871851 Change-Id: I1732253a244c3343459265ce1e1e54488cee65b8 Signed-off-by: Jonathan Brandmeyer <jbrandmeyer@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1167958 Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'driver/accel_bma2x2.c')
-rw-r--r--driver/accel_bma2x2.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/driver/accel_bma2x2.c b/driver/accel_bma2x2.c
index 7548b5d3be..48e38fc14d 100644
--- a/driver/accel_bma2x2.c
+++ b/driver/accel_bma2x2.c
@@ -43,19 +43,6 @@ static inline int raw_write8(const int port, const int addr, const int reg,
return i2c_write8(port, addr, reg, data);
}
-static int raw_read_multi(const int port, int addr, uint8_t reg,
- uint8_t *rxdata, int rxlen)
-{
- int rv;
-
- i2c_lock(port, 1);
- rv = i2c_xfer(port, addr, &reg, 1, rxdata, rxlen,
- I2C_XFER_SINGLE);
- i2c_lock(port, 0);
-
- return rv;
-}
-
static int set_range(const struct motion_sensor_t *s, int range, int rnd)
{
int ret, range_val, reg_val, range_reg_val;
@@ -173,7 +160,7 @@ static int read(const struct motion_sensor_t *s, vector_3_t v)
/* Read 6 bytes starting at X_AXIS_LSB. */
mutex_lock(s->mutex);
- ret = raw_read_multi(s->port, s->addr, BMA2x2_X_AXIS_LSB_ADDR, acc, 6);
+ ret = i2c_read_block(s->port, s->addr, BMA2x2_X_AXIS_LSB_ADDR, acc, 6);
mutex_unlock(s->mutex);
if (ret != EC_SUCCESS)