ft2232: ft2232_channel option added

With this option a different channel of the ft2232 chip can be selected using
a previously existing layout. It was made for a partner called Salvador
Tropea.

Change-Id: Ia0dedb2f50e232d089e73788735edc8f47ee23e6
Signed-off-by: Rodrigo Melo <rmelo@inti.gob.ar>
Reviewed-on: http://openocd.zylin.com/1095
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Rodrigo Melo 2012-12-27 19:31:21 -03:00 committed by Spencer Oliver
parent 8a4835bd26
commit 101c602b5e
1 changed files with 22 additions and 1 deletions

View File

@ -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
};