From df8492a8f7d13771dadf8f9637575a7fdd6d3cfb Mon Sep 17 00:00:00 2001 From: Henry Bruce Date: Thu, 8 Oct 2015 13:19:08 -0700 Subject: [PATCH] i2c.c: Added missing adv_func support to some functions Signed-off-by: Henry Bruce Signed-off-by: Brendan Le Foll --- src/i2c/i2c.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/i2c/i2c.c b/src/i2c/i2c.c index a870c4f..ed57d2d 100644 --- a/src/i2c/i2c.c +++ b/src/i2c/i2c.c @@ -215,8 +215,9 @@ mraa_i2c_read(mraa_i2c_context dev, uint8_t* data, int length) uint8_t mraa_i2c_read_byte(mraa_i2c_context dev) { + if (IS_FUNC_DEFINED(dev, i2c_read_replace)) + return dev->advance_func->i2c_read_byte_replace(dev); i2c_smbus_data_t d; - if (mraa_i2c_smbus_access(dev->fh, I2C_SMBUS_READ, I2C_NOCMD, I2C_SMBUS_BYTE, &d) < 0) { syslog(LOG_ERR, "i2c: Failed to write"); return 0; @@ -240,8 +241,9 @@ mraa_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command) uint16_t mraa_i2c_read_word_data(mraa_i2c_context dev, uint8_t command) { + if (IS_FUNC_DEFINED(dev, i2c_read_word_data_replace)) + return dev->advance_func->i2c_read_word_data_replace(dev, command); i2c_smbus_data_t d; - if (mraa_i2c_smbus_access(dev->fh, I2C_SMBUS_READ, command, I2C_SMBUS_WORD_DATA, &d) < 0) { syslog(LOG_ERR, "i2c: Failed to write"); return 0; @@ -252,6 +254,8 @@ mraa_i2c_read_word_data(mraa_i2c_context dev, uint8_t command) int mraa_i2c_read_bytes_data(mraa_i2c_context dev, uint8_t command, uint8_t* data, int length) { + if (IS_FUNC_DEFINED(dev, i2c_read_bytes_data_replace)) + return dev->advance_func->i2c_read_bytes_data_replace(dev, command, data, length); struct i2c_rdwr_ioctl_data d; struct i2c_msg m[2]; @@ -273,6 +277,8 @@ mraa_i2c_read_bytes_data(mraa_i2c_context dev, uint8_t command, uint8_t* data, i mraa_result_t mraa_i2c_write(mraa_i2c_context dev, const uint8_t* data, int length) { + if (IS_FUNC_DEFINED(dev, i2c_write_replace)) + return dev->advance_func->i2c_write_replace(dev, data, length); i2c_smbus_data_t d; int i; uint8_t command = data[0];