]> git.sur5r.net Git - openocd/commitdiff
- fixed libftdi initialization
authordrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 20 Feb 2007 13:47:32 +0000 (13:47 +0000)
committerdrath <drath@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 20 Feb 2007 13:47:32 +0000 (13:47 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@131 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/ft2232.c

index 386da249a9dd2c6d9f4a8193c615c3ca6c7af034..4a705b5e2bbae00ecc71fc9375d1f523e7275403 100644 (file)
@@ -1346,12 +1346,18 @@ int ft2232_init(void)
                return ERROR_JTAG_INIT_FAILED;
 
        /* context, vendor id, product id */
-       if (ftdi_usb_open(&ftdic, ft2232_vid, ft2232_pid) < 0)
+       if (ftdi_usb_open_desc(&ftdic, ft2232_vid, ft2232_pid, ft2232_device_desc, ft2232_serial) < 0)
        {
                ERROR("unable to open ftdi device: %s", ftdic.error_str);
                return ERROR_JTAG_INIT_FAILED;
        }
 
+       if (ftdi_set_interface(&ftdic, INTERFACE_A) < 0)
+       {
+               ERROR("unable to select FT2232 channel A: %s", ftdic.error_str);
+               return ERROR_JTAG_INIT_FAILED;
+       }
+
        if (ftdi_usb_reset(&ftdic) < 0)
        {
                ERROR("unable to reset ftdi device");
@@ -1374,11 +1380,7 @@ int ft2232_init(void)
                DEBUG("current latency timer: %i", latency_timer);
        }
 
-       ftdic.bitbang_mode = 0; /* Reset controller */
-       ftdi_enable_bitbang(&ftdic, 0x0b); /* ctx, JTAG I/O mask */
-
-       ftdic.bitbang_mode = 2; /* MPSSE mode */
-       ftdi_enable_bitbang(&ftdic, 0x0b); /* ctx, JTAG I/O mask */
+       ftdi_set_bitmode(&ftdic, 0x0b, 2); /* ctx, JTAG I/O mask */
 #endif 
 
        ft2232_buffer_size = 0;