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:
parent
8a4835bd26
commit
101c602b5e
|
@ -156,6 +156,7 @@ static char *ft2232_device_desc;
|
||||||
static char *ft2232_serial;
|
static char *ft2232_serial;
|
||||||
static uint8_t ft2232_latency = 2;
|
static uint8_t ft2232_latency = 2;
|
||||||
static unsigned ft2232_max_tck = FTDI_2232C_MAX_TCK;
|
static unsigned ft2232_max_tck = FTDI_2232C_MAX_TCK;
|
||||||
|
static int ft2232_channel = INTERFACE_ANY;
|
||||||
|
|
||||||
#define MAX_USB_IDS 8
|
#define MAX_USB_IDS 8
|
||||||
/* vid = pid = 0 marks the end of the list */
|
/* vid = pid = 0 marks the end of the list */
|
||||||
|
@ -2358,7 +2359,7 @@ static int ft2232_init(void)
|
||||||
more, &try_more);
|
more, &try_more);
|
||||||
#elif BUILD_FT2232_LIBFTDI == 1
|
#elif BUILD_FT2232_LIBFTDI == 1
|
||||||
retval = ft2232_init_libftdi(ft2232_vid[i], ft2232_pid[i],
|
retval = ft2232_init_libftdi(ft2232_vid[i], ft2232_pid[i],
|
||||||
more, &try_more, layout->channel);
|
more, &try_more, ft2232_channel);
|
||||||
#endif
|
#endif
|
||||||
if (retval >= 0)
|
if (retval >= 0)
|
||||||
break;
|
break;
|
||||||
|
@ -3203,6 +3204,7 @@ COMMAND_HANDLER(ft2232_handle_layout_command)
|
||||||
for (const struct ft2232_layout *l = ft2232_layouts; l->name; l++) {
|
for (const struct ft2232_layout *l = ft2232_layouts; l->name; l++) {
|
||||||
if (strcmp(l->name, CMD_ARGV[0]) == 0) {
|
if (strcmp(l->name, CMD_ARGV[0]) == 0) {
|
||||||
layout = l;
|
layout = l;
|
||||||
|
ft2232_channel = l->channel;
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3251,6 +3253,18 @@ COMMAND_HANDLER(ft2232_handle_latency_command)
|
||||||
return ERROR_OK;
|
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)
|
static int ft2232_stableclocks(int num_cycles, struct jtag_command *cmd)
|
||||||
{
|
{
|
||||||
int retval = 0;
|
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",
|
.help = "set the FT2232 latency timer to a new value",
|
||||||
.usage = "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
|
COMMAND_REGISTRATION_DONE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue