]> git.sur5r.net Git - openocd/blobdiff - src/jtag/drivers/usb_blaster/ublast_access.h
jtag/drivers: add USB-Blaster II
[openocd] / src / jtag / drivers / usb_blaster / ublast_access.h
index e0eb059e2ce95a588a9e9b28a860f718baec1aab..9a9762c8d1ae8103c29bd4f6faa82b74b113b1a8 100644 (file)
@@ -4,6 +4,7 @@
  *   Inspired from original code from Kolja Waschk's USB-JTAG project
  *   (http://www.ixo.de/info/usb_jtag/), and from openocd project.
  *
+ *   Copyright (C) 2013 Franck Jullien franck.jullien@gmail.com
  *   Copyright (C) 2012 Robert Jarzmik robert.jarzmik@free.fr
  *   Copyright (C) 2011 Ali Lown ali@lown.me.uk
  *   Copyright (C) 2009 Catalin Patulea cat@vv.carleton.ca
  *
  */
 
+#include <libusb_common.h>
+
+/* Low level flags */
+#define COPY_TDO_BUFFER                (1 << 0)
+
 struct ublast_lowlevel {
        uint16_t ublast_vid;
        uint16_t ublast_pid;
+       uint16_t ublast_vid_uninit;
+       uint16_t ublast_pid_uninit;
        char *ublast_device_desc;
+       struct jtag_libusb_device_handle *libusb_dev;
+       char *firmware_path;
 
        int (*write)(struct ublast_lowlevel *low, uint8_t *buf, int size,
                     uint32_t *bytes_written);
@@ -35,18 +45,22 @@ struct ublast_lowlevel {
        int (*speed)(struct ublast_lowlevel *low, int speed);
 
        void *priv;
+       int flags;
 };
 
 /**
  * ublast_register_ftdi - get a lowlevel USB Blaster driver
  * ublast_register_ftd2xx - get a lowlevel USB Blaster driver
+ * ublast2_register_libusb - get a lowlevel USB Blaster II driver
  *
- * Get a lowlevel USB-Blaster driver. In the current implementation, there are 2
+ * Get a lowlevel USB-Blaster driver. In the current implementation, there are 3
  * possible lowlevel drivers :
  *  - one based on libftdi from ftdichip.com
  *  - one based on libftdxx, the free alternative
+ *  - one based on libusb, specific to the USB-Blaster II
  *
  * Returns the lowlevel driver structure.
  */
 extern struct ublast_lowlevel *ublast_register_ftdi(void);
 extern struct ublast_lowlevel *ublast_register_ftd2xx(void);
+extern struct ublast_lowlevel *ublast2_register_libusb(void);