diff options
author | Henry Bruce <henry.bruce@intel.com> | 2015-10-08 13:18:06 -0700 |
---|---|---|
committer | Brendan Le Foll <brendan.le.foll@intel.com> | 2015-10-26 15:46:54 +0000 |
commit | 799f1409b9e239f69949187bade49dfd01ddb3c3 (patch) | |
tree | 54fa5081d841a15d98514fddd2c76f549b2e2477 | |
parent | df8492a8f7d13771dadf8f9637575a7fdd6d3cfb (diff) |
ftdi_ft4222.c: Implemented previously stubbed out i2c 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/usb/ftdi_ft4222.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/usb/ftdi_ft4222.c b/src/usb/ftdi_ft4222.c index 4d92407..e3f3ce2 100644 --- a/src/usb/ftdi_ft4222.c +++ b/src/usb/ftdi_ft4222.c @@ -293,20 +293,33 @@ mraa_ftdi_ft4222_i2c_read(mraa_i2c_context dev, uint8_t* data, int length) static uint8_t mraa_ftdi_ft4222_i2c_read_byte(mraa_i2c_context dev) { - return 0; + uint8_t data; + if (mraa_ftdi_ft4222_i2c_read_internal(dev->handle, dev->addr, &data, 1) == 1) + return data; + else + return 0; } static uint16_t mraa_ftdi_ft4222_i2c_read_word_data(mraa_i2c_context dev, uint8_t command) { - return 0; + uint8_t buf[2]; + uint16_t data; + if (mraa_ftdi_ft4222_i2c_write_internal(dev->handle, dev->addr, &command, 1) != 1) + return 0; + if (mraa_ftdi_ft4222_i2c_read_internal(dev->handle, dev->addr, buf, 2) != 2) + return 0; + data = *(uint16_t*)buf; + return data; } static int mraa_ftdi_ft4222_i2c_read_bytes_data(mraa_i2c_context dev, uint8_t command, uint8_t* data, int length) { - return -1; + if (mraa_ftdi_ft4222_i2c_write_internal(dev->handle, dev->addr, &command, 1) != 1) + return 0; + return mraa_ftdi_ft4222_i2c_read_internal(dev->handle, dev->addr, data, length); } |