From 799f1409b9e239f69949187bade49dfd01ddb3c3 Mon Sep 17 00:00:00 2001 From: Henry Bruce Date: Thu, 8 Oct 2015 13:18:06 -0700 Subject: [PATCH] ftdi_ft4222.c: Implemented previously stubbed out i2c functions. Signed-off-by: Henry Bruce Signed-off-by: Brendan Le Foll --- src/usb/ftdi_ft4222.c | 19 ++++++++++++++++--- 1 file 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); }