aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Bruce <henry.bruce@intel.com>2015-10-08 13:19:08 -0700
committerBrendan Le Foll <brendan.le.foll@intel.com>2015-10-26 15:46:54 +0000
commitdf8492a8f7d13771dadf8f9637575a7fdd6d3cfb (patch)
tree9adc3ec085dbfb335859fc934d9f2f0bd6ad5ddf
parent63ff901674090f17028d768d12b3d3b567d0541b (diff)
i2c.c: Added missing adv_func support to some functions
Signed-off-by: Henry Bruce <henry.bruce@intel.com> Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
-rw-r--r--src/i2c/i2c.c10
1 files 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];