summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/drivers/i2c/designware/dw_i2c.c8
-rw-r--r--src/drivers/i2c/designware/dw_i2c.h5
2 files changed, 5 insertions, 8 deletions
diff --git a/src/drivers/i2c/designware/dw_i2c.c b/src/drivers/i2c/designware/dw_i2c.c
index e29d54f3c2..011b38b548 100644
--- a/src/drivers/i2c/designware/dw_i2c.c
+++ b/src/drivers/i2c/designware/dw_i2c.c
@@ -453,7 +453,7 @@ out:
return ret;
}
-int dw_i2c_transfer(unsigned int bus, const struct i2c_msg *msg, size_t count)
+enum cb_err dw_i2c_transfer(unsigned int bus, const struct i2c_msg *msg, size_t count)
{
const struct i2c_msg *orig_msg = msg;
size_t i;
@@ -469,19 +469,19 @@ int dw_i2c_transfer(unsigned int bus, const struct i2c_msg *msg, size_t count)
for (i = 0, start = 0; i < count; i++, msg++) {
if (addr != msg->slave) {
if (_dw_i2c_transfer(bus, &orig_msg[start], i - start) != CB_SUCCESS)
- return -1;
+ return CB_ERR;
start = i;
addr = msg->slave;
}
}
- return _dw_i2c_transfer(bus, &orig_msg[start], count - start) == CB_SUCCESS ? 0 : -1;
+ return _dw_i2c_transfer(bus, &orig_msg[start], count - start);
}
/* Global I2C bus handler, defined in include/device/i2c_simple.h */
int platform_i2c_transfer(unsigned int bus, struct i2c_msg *msg, int count)
{
- return dw_i2c_transfer(bus, msg, count < 0 ? 0 : count);
+ return dw_i2c_transfer(bus, msg, count < 0 ? 0 : count) == CB_SUCCESS ? 0 : -1;
}
static enum cb_err dw_i2c_set_speed_config(unsigned int bus,
diff --git a/src/drivers/i2c/designware/dw_i2c.h b/src/drivers/i2c/designware/dw_i2c.h
index 64e27c0a3c..847b6c3fda 100644
--- a/src/drivers/i2c/designware/dw_i2c.h
+++ b/src/drivers/i2c/designware/dw_i2c.h
@@ -111,11 +111,8 @@ int dw_i2c_gen_speed_config(uintptr_t dw_i2c_addr,
/*
* Process given I2C segments in a single transfer
- * Return value:
- * -1 = failure
- * 0 = success
*/
-int dw_i2c_transfer(unsigned int bus,
+enum cb_err dw_i2c_transfer(unsigned int bus,
const struct i2c_msg *segments,
size_t count);