aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Bruce <henry.bruce@intel.com>2015-10-08 13:18:06 -0700
committerBrendan Le Foll <brendan.le.foll@intel.com>2015-10-26 15:46:54 +0000
commit799f1409b9e239f69949187bade49dfd01ddb3c3 (patch)
tree54fa5081d841a15d98514fddd2c76f549b2e2477
parentdf8492a8f7d13771dadf8f9637575a7fdd6d3cfb (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.c19
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);
}