X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fjtag%2Fdrivers%2Fmpsse.c;h=92f9331a543c39385eaa538eaa64889bab62e879;hp=d6cbc8404c6e93330f3f38d6ed87317776b0e617;hb=452248af1d06cb1140b85f53ef4fdee1c746d807;hpb=d9a02fda075c466dd4a37785d886a4b1ee382242 diff --git a/src/jtag/drivers/mpsse.c b/src/jtag/drivers/mpsse.c index d6cbc8404c..92f9331a54 100644 --- a/src/jtag/drivers/mpsse.c +++ b/src/jtag/drivers/mpsse.c @@ -55,6 +55,7 @@ #define FTDI_DEVICE_OUT_REQTYPE (LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE) #define FTDI_DEVICE_IN_REQTYPE (0x80 | LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE) +#define BITMODE_RESET 0x00 #define BITMODE_MPSSE 0x02 #define SIO_RESET_REQUEST 0x00 @@ -312,6 +313,19 @@ struct mpsse_ctx *mpsse_open(const uint16_t *vid, const uint16_t *pid, const cha goto error; } + err = libusb_control_transfer(ctx->usb_dev, + FTDI_DEVICE_OUT_REQTYPE, + SIO_SET_BITMODE_REQUEST, + 0x0b | (BITMODE_RESET << 8), + ctx->index, + NULL, + 0, + ctx->usb_write_timeout); + if (err < 0) { + LOG_ERROR("unable to reset bitmode: %d", err); + goto error; + } + err = libusb_control_transfer(ctx->usb_dev, FTDI_DEVICE_OUT_REQTYPE, SIO_SET_BITMODE_REQUEST,