ft4222.c: Fixed bug in write_byte_data
authorHenry Bruce <henry.bruce@intel.com>
Thu, 20 Aug 2015 19:02:32 +0000 (12:02 -0700)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Tue, 8 Sep 2015 13:42:04 +0000 (14:42 +0100)
Signed-off-by: Henry Bruce <henry.bruce@intel.com>
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
src/usb/ftdi_ft4222.c

index ba41ed5..d6e982b 100644 (file)
@@ -350,22 +350,20 @@ mraa_ftdi_ft4222_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command)
 static mraa_result_t
 mraa_ftdi_ft4222_i2c_write_byte_data(mraa_i2c_context dev, const uint8_t data, const uint8_t command)
 {
-    mraa_result_t status = mraa_ftdi_ft4222_i2c_write_byte(dev, command);
-    if (status == MRAA_SUCCESS)
-        return mraa_ftdi_ft4222_i2c_write_byte(dev, data);
-    else
-        return status;
+    uint8_t buf[2];
+    buf[0] = command;
+    buf[1] = data;
+    return mraa_ftdi_ft4222_i2c_write(dev, buf, 2);
 }
 
 static mraa_result_t
 mraa_ftdi_ft4222_i2c_write_word_data(mraa_i2c_context dev, const uint16_t data, const uint8_t command)
 {
-    mraa_result_t status = mraa_ftdi_ft4222_i2c_write_byte(dev, command);
-    if (status == MRAA_SUCCESS) 
-        return mraa_ftdi_ft4222_i2c_write(dev, (const uint8_t*)&data, 2);
-    else
-        return status;
-
+    uint8_t buf[3];
+    buf[0] = command;
+    buf[1] = (uint8_t)data;
+    buf[2] = (uint8_t)(data >> 8);    
+    return mraa_ftdi_ft4222_i2c_write(dev, buf, 3);
 }
 
 static mraa_result_t