|
|
@@ -156,6 +156,7 @@ static char *ft2232_device_desc; |
|
|
|
static char *ft2232_serial; |
|
|
|
static uint8_t ft2232_latency = 2; |
|
|
|
static unsigned ft2232_max_tck = FTDI_2232C_MAX_TCK; |
|
|
|
static int ft2232_channel = INTERFACE_ANY; |
|
|
|
|
|
|
|
#define MAX_USB_IDS 8 |
|
|
|
/* vid = pid = 0 marks the end of the list */ |
|
|
@@ -2358,7 +2359,7 @@ static int ft2232_init(void) |
|
|
|
more, &try_more); |
|
|
|
#elif BUILD_FT2232_LIBFTDI == 1 |
|
|
|
retval = ft2232_init_libftdi(ft2232_vid[i], ft2232_pid[i], |
|
|
|
more, &try_more, layout->channel); |
|
|
|
more, &try_more, ft2232_channel); |
|
|
|
#endif |
|
|
|
if (retval >= 0) |
|
|
|
break; |
|
|
@@ -3203,6 +3204,7 @@ COMMAND_HANDLER(ft2232_handle_layout_command) |
|
|
|
for (const struct ft2232_layout *l = ft2232_layouts; l->name; l++) { |
|
|
|
if (strcmp(l->name, CMD_ARGV[0]) == 0) { |
|
|
|
layout = l; |
|
|
|
ft2232_channel = l->channel; |
|
|
|
return ERROR_OK; |
|
|
|
} |
|
|
|
} |
|
|
@@ -3251,6 +3253,18 @@ COMMAND_HANDLER(ft2232_handle_latency_command) |
|
|
|
return ERROR_OK; |
|
|
|
} |
|
|
|
|
|
|
|
COMMAND_HANDLER(ft2232_handle_channel_command) |
|
|
|
{ |
|
|
|
if (CMD_ARGC == 1) { |
|
|
|
ft2232_channel = atoi(CMD_ARGV[0]); |
|
|
|
if (ft2232_channel < 0 || ft2232_channel > 4) |
|
|
|
LOG_ERROR("ft2232_channel must be in the 0 to 4 range"); |
|
|
|
} else |
|
|
|
LOG_ERROR("expected exactly one argument to ft2232_channel <ch>"); |
|
|
|
|
|
|
|
return ERROR_OK; |
|
|
|
} |
|
|
|
|
|
|
|
static int ft2232_stableclocks(int num_cycles, struct jtag_command *cmd) |
|
|
|
{ |
|
|
|
int retval = 0; |
|
|
@@ -4258,6 +4272,13 @@ static const struct command_registration ft2232_command_handlers[] = { |
|
|
|
.help = "set the FT2232 latency timer to a new value", |
|
|
|
.usage = "value", |
|
|
|
}, |
|
|
|
{ |
|
|
|
.name = "ft2232_channel", |
|
|
|
.handler = &ft2232_handle_channel_command, |
|
|
|
.mode = COMMAND_CONFIG, |
|
|
|
.help = "set the FT2232 channel to a new value", |
|
|
|
.usage = "value", |
|
|
|
}, |
|
|
|
COMMAND_REGISTRATION_DONE |
|
|
|
}; |
|
|
|
|
|
|
|