Private
Public Access
2
0

i2c: Make i2c advance function match new prototypes

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll
2016-04-22 11:59:17 +01:00
parent 1e4516d026
commit c1465bd694
3 changed files with 24 additions and 21 deletions

View File

@@ -64,9 +64,9 @@ typedef struct {
mraa_result_t (*i2c_set_frequency_replace) (mraa_i2c_context dev, mraa_i2c_mode_t mode); mraa_result_t (*i2c_set_frequency_replace) (mraa_i2c_context dev, mraa_i2c_mode_t mode);
mraa_result_t (*i2c_address_replace) (mraa_i2c_context dev, uint8_t addr); mraa_result_t (*i2c_address_replace) (mraa_i2c_context dev, uint8_t addr);
int (*i2c_read_replace) (mraa_i2c_context dev, uint8_t* data, int length); int (*i2c_read_replace) (mraa_i2c_context dev, uint8_t* data, int length);
uint8_t (*i2c_read_byte_replace) (mraa_i2c_context dev); int (*i2c_read_byte_replace) (mraa_i2c_context dev);
uint8_t (*i2c_read_byte_data_replace) (mraa_i2c_context dev, const uint8_t command); int (*i2c_read_byte_data_replace) (mraa_i2c_context dev, const uint8_t command);
uint16_t (*i2c_read_word_data_replace) (mraa_i2c_context dev, const uint8_t command); int (*i2c_read_word_data_replace) (mraa_i2c_context dev, const uint8_t command);
int (*i2c_read_bytes_data_replace) (mraa_i2c_context dev, uint8_t command, uint8_t* data, int length); int (*i2c_read_bytes_data_replace) (mraa_i2c_context dev, uint8_t command, uint8_t* data, int length);
mraa_result_t (*i2c_write_replace) (mraa_i2c_context dev, const uint8_t* data, int length); mraa_result_t (*i2c_write_replace) (mraa_i2c_context dev, const uint8_t* data, int length);
mraa_result_t (*i2c_write_byte_replace) (mraa_i2c_context dev, uint8_t data); mraa_result_t (*i2c_write_byte_replace) (mraa_i2c_context dev, uint8_t data);

View File

@@ -191,7 +191,7 @@ mraa_firmata_i2c_wait(int addr, int reg)
return MRAA_SUCCESS; return MRAA_SUCCESS;
} }
static uint8_t static int
mraa_firmata_i2c_read_byte(mraa_i2c_context dev) mraa_firmata_i2c_read_byte(mraa_i2c_context dev)
{ {
if (mraa_firmata_send_i2c_read_req(dev, 1) == MRAA_SUCCESS) { if (mraa_firmata_send_i2c_read_req(dev, 1) == MRAA_SUCCESS) {
@@ -199,10 +199,10 @@ mraa_firmata_i2c_read_byte(mraa_i2c_context dev)
return firmata_dev->i2cmsg[dev->addr][0]; return firmata_dev->i2cmsg[dev->addr][0];
} }
} }
return 0; return -1;
} }
static uint16_t static int
mraa_firmata_i2c_read_word_data(mraa_i2c_context dev, uint8_t command) mraa_firmata_i2c_read_word_data(mraa_i2c_context dev, uint8_t command)
{ {
if (mraa_firmata_send_i2c_read_reg_req(dev, command, 2) == MRAA_SUCCESS) { if (mraa_firmata_send_i2c_read_reg_req(dev, command, 2) == MRAA_SUCCESS) {
@@ -215,10 +215,10 @@ mraa_firmata_i2c_read_word_data(mraa_i2c_context dev, uint8_t command)
data = (data << 8) & 0xFF00; data = (data << 8) & 0xFF00;
data |= high; data |= high;
return data; return (int) data;
}
} }
} return -1;
return 0;
} }
static int static int
@@ -249,16 +249,16 @@ mraa_firmata_i2c_read(mraa_i2c_context dev, uint8_t* data, int length)
return 0; return 0;
} }
static uint8_t static int
mraa_firmata_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command) mraa_firmata_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command)
{ {
if (mraa_firmata_send_i2c_read_reg_req(dev, command, 1) == MRAA_SUCCESS) { if (mraa_firmata_send_i2c_read_reg_req(dev, command, 1) == MRAA_SUCCESS) {
if (mraa_firmata_i2c_wait(dev->addr, command) == MRAA_SUCCESS) { if (mraa_firmata_i2c_wait(dev->addr, command) == MRAA_SUCCESS) {
return firmata_dev->i2cmsg[dev->addr][command]; return (int) firmata_dev->i2cmsg[dev->addr][command];
} }
} }
return 0; return -1;
} }
static mraa_result_t static mraa_result_t

View File

@@ -550,17 +550,17 @@ mraa_ftdi_ft4222_i2c_read(mraa_i2c_context dev, uint8_t* data, int length)
return bytes_read; return bytes_read;
} }
static uint8_t static int
mraa_ftdi_ft4222_i2c_read_byte(mraa_i2c_context dev) mraa_ftdi_ft4222_i2c_read_byte(mraa_i2c_context dev)
{ {
uint8_t data; uint8_t data;
pthread_mutex_lock(&ft4222_lock); pthread_mutex_lock(&ft4222_lock);
int bytes_read = mraa_ftdi_ft4222_i2c_context_read(dev, &data, 1); int bytes_read = mraa_ftdi_ft4222_i2c_context_read(dev, &data, 1);
pthread_mutex_unlock(&ft4222_lock); pthread_mutex_unlock(&ft4222_lock);
return bytes_read == 1 ? data : 0; return bytes_read == 1 ? data : -1;
} }
static uint8_t static int
mraa_ftdi_ft4222_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command) mraa_ftdi_ft4222_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command)
{ {
uint8_t data; uint8_t data;
@@ -570,10 +570,13 @@ mraa_ftdi_ft4222_i2c_read_byte_data(mraa_i2c_context dev, uint8_t command)
if (bytesWritten == 1) if (bytesWritten == 1)
bytes_read = mraa_ftdi_ft4222_i2c_context_read(dev, &data, 1); bytes_read = mraa_ftdi_ft4222_i2c_context_read(dev, &data, 1);
pthread_mutex_unlock(&ft4222_lock); pthread_mutex_unlock(&ft4222_lock);
return (bytes_read == 1) ? data : 0; if (bytes_read == 1) {
return (int) data;
}
return -1;
} }
static uint16_t static int
mraa_ftdi_ft4222_i2c_read_word_data(mraa_i2c_context dev, uint8_t command) mraa_ftdi_ft4222_i2c_read_word_data(mraa_i2c_context dev, uint8_t command)
{ {
uint8_t buf[2]; uint8_t buf[2];
@@ -584,8 +587,10 @@ mraa_ftdi_ft4222_i2c_read_word_data(mraa_i2c_context dev, uint8_t command)
if (bytes_written == 1) if (bytes_written == 1)
bytes_read = mraa_ftdi_ft4222_i2c_context_read(dev, buf, 2); bytes_read = mraa_ftdi_ft4222_i2c_context_read(dev, buf, 2);
pthread_mutex_unlock(&ft4222_lock); pthread_mutex_unlock(&ft4222_lock);
data = (bytes_read == 2) ? *(uint16_t*)buf : 0; if (bytes_read == 2) {
return data; return (int) data;
}
return -1;
} }
static int static int
@@ -600,7 +605,6 @@ mraa_ftdi_ft4222_i2c_read_bytes_data(mraa_i2c_context dev, uint8_t command, uint
return bytes_read; return bytes_read;
} }
static mraa_result_t static mraa_result_t
mraa_ftdi_ft4222_i2c_write(mraa_i2c_context dev, const uint8_t* data, int bytesToWrite) mraa_ftdi_ft4222_i2c_write(mraa_i2c_context dev, const uint8_t* data, int bytesToWrite)
{ {
@@ -618,7 +622,6 @@ mraa_ftdi_ft4222_i2c_write_byte(mraa_i2c_context dev, uint8_t data)
return status; return status;
} }
static mraa_result_t static mraa_result_t
mraa_ftdi_ft4222_i2c_write_byte_data(mraa_i2c_context dev, const uint8_t data, const uint8_t command) mraa_ftdi_ft4222_i2c_write_byte_data(mraa_i2c_context dev, const uint8_t data, const uint8_t command)
{ {