#include "bitq.h"
/* PRESTO access library includes */
-#include <ftdi.h>
+#include "libftdi_helper.h"
/* -------------------------------------------------------------------------- */
return ERROR_JTAG_DEVICE_ERROR;
}
- if (ftdi_usb_purge_buffers(&presto->ftdic) < 0) {
- LOG_ERROR("unable to purge PRESTO buffers");
+ if (ftdi_tcioflush(&presto->ftdic) < 0) {
+ LOG_ERROR("unable to flush PRESTO buffers");
return ERROR_JTAG_DEVICE_ERROR;
}
if (presto_read(&presto_data, 1) != ERROR_OK) {
LOG_DEBUG("no response from PRESTO, retrying");
- if (ftdi_usb_purge_buffers(&presto->ftdic) < 0)
+ if (ftdi_tcioflush(&presto->ftdic) < 0)
return ERROR_JTAG_DEVICE_ERROR;
presto_data = 0xD0;
COMMAND_HANDLER(presto_handle_serial_command)
{
if (CMD_ARGC == 1) {
- if (presto_serial)
- free(presto_serial);
+ free(presto_serial);
presto_serial = strdup(CMD_ARGV[0]);
} else
return ERROR_COMMAND_SYNTAX_ERROR;
return ERROR_OK;
}
-static const struct command_registration presto_command_handlers[] = {
+static const struct command_registration presto_subcommand_handlers[] = {
{
- .name = "presto_serial",
+ .name = "serial",
.handler = presto_handle_serial_command,
.mode = COMMAND_CONFIG,
.help = "Configure USB serial number of Presto device.",
COMMAND_REGISTRATION_DONE
};
+static const struct command_registration presto_command_handlers[] = {
+ {
+ .name = "presto",
+ .mode = COMMAND_ANY,
+ .help = "perform presto management",
+ .chain = presto_subcommand_handlers,
+ .usage = "",
+ },
+ COMMAND_REGISTRATION_DONE
+};
+
static int presto_jtag_init(void)
{
if (presto_open(presto_serial) != ERROR_OK) {
presto_close();
- if (presto_serial != NULL)
+ if (presto_serial)
LOG_ERROR("Cannot open PRESTO, serial number '%s'", presto_serial);
else
LOG_ERROR("Cannot open PRESTO");
presto_close();
LOG_INFO("PRESTO closed");
- if (presto_serial) {
- free(presto_serial);
- presto_serial = NULL;
- }
+ free(presto_serial);
+ presto_serial = NULL;
return ERROR_OK;
}