---
src/jtag/drivers/ft2232.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c
index 5042a22..65b63dd 100644
--- a/src/jtag/drivers/ft2232.c
+++ b/src/jtag/drivers/ft2232.c
@@ -145,6 +145,7 @@ struct ft2232_layout {
int (*init)(void);
void (*reset)(int trst, int srst);
void (*blink)(void);
+ int interface;
};
/* init procedures for supported layouts */
@@ -2062,7 +2063,7 @@ static int ft2232_purge_ftd2xx(void)
#endif /* BUILD_FT2232_FTD2XX == 1 */
#if BUILD_FT2232_LIBFTDI == 1
-static int ft2232_init_libftdi(uint16_t vid, uint16_t pid, int more, int*
try_more)
+static int ft2232_init_libftdi(uint16_t vid, uint16_t pid, int more, int*
try_more, int interface)
{
uint8_t latency_timer;
@@ -2072,7 +2073,10 @@ static int ft2232_init_libftdi(uint16_t vid, uint16_t
pid, int more, int* try_mo
if (ftdi_init(&ftdic) < 0)
return ERROR_JTAG_INIT_FAILED;
- if (ftdi_set_interface(&ftdic, INTERFACE_A) < 0)
+ /* default to INTERFACE_A */
+ if(interface == INTERFACE_ANY) { interface = INTERFACE_A; }
+
+ if (ftdi_set_interface(&ftdic, interface) < 0)
{
LOG_ERROR("unable to select FT2232 channel A: %s",
ftdic.error_str);
return ERROR_JTAG_INIT_FAILED;
@@ -2197,7 +2201,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);
+ more, &try_more,
cur_layout->interface);
#endif
if (retval >= 0)
break;
--
1.5.6.5
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development