From 740427a24398b3fd66904e913b742f751371d09c Mon Sep 17 00:00:00 2001 From: Jonathan Brandmeyer Date: Tue, 7 Aug 2018 16:04:23 -0600 Subject: 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 Reviewed-on: https://chromium-review.googlesource.com/1167958 Reviewed-by: Jett Rink --- driver/accelgyro_lsm6ds0.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'driver/accelgyro_lsm6ds0.c') diff --git a/driver/accelgyro_lsm6ds0.c b/driver/accelgyro_lsm6ds0.c index cf2eb78ff4..04cb7a7e78 100644 --- a/driver/accelgyro_lsm6ds0.c +++ b/driver/accelgyro_lsm6ds0.c @@ -343,10 +343,7 @@ static int read(const struct motion_sensor_t *s, vector_3_t v) xyz_reg = get_xyz_reg(s->type); /* Read 6 bytes starting at xyz_reg */ - i2c_lock(s->port, 1); - ret = i2c_xfer(s->port, s->addr, - &xyz_reg, 1, raw, 6, I2C_XFER_SINGLE); - i2c_lock(s->port, 0); + ret = i2c_read_block(s->port, s->addr, xyz_reg, raw, 6); if (ret != EC_SUCCESS) { CPRINTF("[%T %s type:0x%X RD XYZ Error]", -- cgit v1.2.1