Add unit tests for gpio ftdi driver.
This commit is contained in:
@@ -9,7 +9,7 @@ static int ftdi_open(const struct gpio *gpio)
|
||||
{
|
||||
int res;
|
||||
|
||||
if((gpio->ftdi_dev->ftdi = ftdi_new()) == 0) {
|
||||
if((gpio->ftdi_dev->ftdi = ftdi_new()) == NULL) {
|
||||
syslog(LOG_ERR, "ftdi_new failed\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
@@ -35,7 +35,7 @@ static int ftdi_open(const struct gpio *gpio)
|
||||
int gpio_open(const struct gpio *gpio)
|
||||
{
|
||||
int res;
|
||||
unsigned int init_value = 0;
|
||||
unsigned char init_value = 0;
|
||||
|
||||
if(NULL == gpio) {
|
||||
syslog(LOG_ERR, "No valid gpio object given.\n");
|
||||
@@ -50,7 +50,6 @@ int gpio_open(const struct gpio *gpio)
|
||||
}
|
||||
|
||||
gpio->ftdi_dev->bit_mask |= (unsigned char)gpio->pin;
|
||||
syslog(LOG_DEBUG, "bitmask: 0x%02x\n", gpio->ftdi_dev->bit_mask);
|
||||
res = ftdi_set_bitmode(gpio->ftdi_dev->ftdi, gpio->ftdi_dev->bit_mask, BITMODE_BITBANG);
|
||||
if(res < 0) {
|
||||
syslog(LOG_ERR, "unable to set bit bang mode: %d (%s)\n", res,
|
||||
@@ -60,7 +59,7 @@ int gpio_open(const struct gpio *gpio)
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
res = gpio_write(gpio, init_value);
|
||||
res = ftdi_write_data(gpio->ftdi_dev->ftdi, &init_value, 1);
|
||||
if(res < 0) {
|
||||
syslog(LOG_ERR, "unable to write to gpio %u (%s)\n", gpio->pin,
|
||||
ftdi_get_error_string(gpio->ftdi_dev->ftdi));
|
||||
@@ -85,6 +84,7 @@ int gpio_close(const struct gpio *gpio)
|
||||
if(gpio->ftdi_dev->bit_mask == 0) {
|
||||
ftdi_usb_close(gpio->ftdi_dev->ftdi);
|
||||
ftdi_free(gpio->ftdi_dev->ftdi);
|
||||
gpio->ftdi_dev->is_open = false;
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
|
Reference in New Issue
Block a user