Add support for LED to USB Blaster code.
[fw/openocd] / src / jtag / drivers / usb_blaster.c
index 59c5715bdf401ee281ff01deaba0bfaaa9a768d0..1e8aa8d9e19bda2b8d450f5f3a55597296a46c85 100644 (file)
@@ -121,7 +121,7 @@ static int usb_blaster_buf_write(
        DWORD dw_bytes_written;
 
 #ifdef _DEBUG_JTAG_IO_
-       LOG_DEBUG("usb_blaster_buf_write %02X (%d)\n", buf[0], size);
+       LOG_DEBUG("usb_blaster_buf_write %02X (%d)", buf[0], size);
 #endif
        status = FT_Write(ftdih, buf, size, &dw_bytes_written);
        if (status != FT_OK)
@@ -135,7 +135,7 @@ static int usb_blaster_buf_write(
 #elif BUILD_USB_BLASTER_LIBFTDI == 1
        int retval;
 #ifdef _DEBUG_JTAG_IO_
-       LOG_DEBUG("usb_blaster_buf_write %02X (%d)\n", buf[0], size);
+       LOG_DEBUG("usb_blaster_buf_write %02X (%d)", buf[0], size);
 #endif
        retval = ftdi_write_data(&ftdic, buf, size);
        if (retval < 0)
@@ -164,7 +164,7 @@ usb_blaster_buf_read(uint8_t *buf, unsigned size, uint32_t *bytes_read)
                return ERROR_JTAG_DEVICE_ERROR;
        }
 #ifdef _DEBUG_JTAG_IO_
-       LOG_DEBUG("usb_blaster_buf_read %02X (%lu)\n", buf[0], dw_bytes_read);
+       LOG_DEBUG("usb_blaster_buf_read %02X (%lu)", buf[0], dw_bytes_read);
 #endif
        *bytes_read = dw_bytes_read;
        return ERROR_OK;
@@ -188,7 +188,7 @@ usb_blaster_buf_read(uint8_t *buf, unsigned size, uint32_t *bytes_read)
                *bytes_read += retval;
        }
 #ifdef _DEBUG_JTAG_IO_
-       LOG_DEBUG("usb_blaster_buf_read %02X (%d)\n", buf[0], *bytes_read);
+       LOG_DEBUG("usb_blaster_buf_read %02X (%d)", buf[0], *bytes_read);
 #endif
        return ERROR_OK;
 #endif
@@ -267,7 +267,7 @@ static int usb_blaster_read_data(void)
 static void usb_blaster_write(int tck, int tms, int tdi)
 {
 #ifdef _DEBUG_JTAG_IO_
-       LOG_DEBUG("---- usb_blaster_write(%d,%d,%d)\n", tck, tms, tdi);
+       LOG_DEBUG("---- usb_blaster_write(%d,%d,%d)", tck, tms, tdi);
 #endif
        out_value &= ~(TCK | TMS | TDI);
        if (tck)
@@ -307,10 +307,19 @@ static void usb_blaster_reset(int trst, int srst)
                        trst, srst);
 }
 
+static void usb_blaster_blink(int state)
+{
+       out_value = 0x00;
+       if(state)
+               out_value |= LED;
+       usb_blaster_write_data();
+}
+
 static struct bitbang_interface usb_blaster_bitbang = {
        .read = usb_blaster_read_data,
        .write = usb_blaster_write,
        .reset = usb_blaster_reset,
+       .blink = usb_blaster_blink,
 };
 
 static int usb_blaster_init(void)
@@ -370,7 +379,7 @@ static int usb_blaster_init(void)
 
                        if (status == FT_OK)
                        {
-                               LOG_ERROR("ListDevices: %lu\n", num_devices);
+                               LOG_ERROR("ListDevices: %lu", num_devices);
                                for (i = 0; i < num_devices; i++)
                                        LOG_ERROR("%i: %s", i, desc_array[i]);
                        }
@@ -442,7 +451,11 @@ static int usb_blaster_init(void)
 
        bitbang_interface = &usb_blaster_bitbang;
 
-       usb_blaster_speed(jtag_get_speed());
+       int jtag_speed_var;
+       int retval = jtag_get_speed(&jtag_speed_var);
+       if (retval != ERROR_OK)
+               return retval;
+       usb_blaster_speed(jtag_speed_var);
 
 #if 0
 #if BUILD_USB_BLASTER_FTD2XX == 1
@@ -492,7 +505,7 @@ COMMAND_HANDLER(usb_blaster_handle_vid_pid_command)
 {
        if (CMD_ARGC > 2)
        {
-               LOG_WARNING("ignoring extra IDs in ft2232_vid_pid "
+               LOG_WARNING("ignoring extra IDs in usb_blaster_vid_pid "
                                        "(maximum is 1 pair)");
                CMD_ARGC = 2;
        }