usbprog: use jtag_usb_open

Rewrite usbprob_jtag_open to use jtag_usb_open helper.
__archive__
Zachary T Welch 2009-11-19 12:09:11 -08:00
parent d836b079b4
commit 0f544f4310
1 changed files with 13 additions and 30 deletions

View File

@ -36,8 +36,7 @@
#include "interface.h" #include "interface.h"
#include "commands.h" #include "commands.h"
#include "usb_common.h"
#include <usb.h>
#define VID 0x1781 #define VID 0x1781
@ -383,39 +382,23 @@ struct usb_bus *busses;
struct usbprog_jtag* usbprog_jtag_open(void) struct usbprog_jtag* usbprog_jtag_open(void)
{ {
struct usb_bus *bus;
struct usb_device *dev;
struct usbprog_jtag *tmp;
tmp = (struct usbprog_jtag*)malloc(sizeof(struct usbprog_jtag));
usb_set_debug(10); usb_set_debug(10);
usb_init(); usb_init();
usb_find_busses();
usb_find_devices();
busses = usb_get_busses(); const uint16_t vids[] = { VID, 0 };
const uint16_t pids[] = { PID, 0 };
struct usb_dev_handle *dev;
if (jtag_usb_open(vids, pids, &dev) != ERROR_OK)
return NULL;
/* find usbprog_jtag device in usb bus */ struct usbprog_jtag *tmp = malloc(sizeof(struct usbprog_jtag));
tmp->usb_handle = dev;
usb_set_configuration(dev, 1);
usb_claim_interface(dev, 0);
usb_set_altinterface(dev, 0);
for (bus = busses; bus; bus = bus->next)
{
for (dev = bus->devices; dev; dev = dev->next)
{
/* condition for sucessfully hit (too bad, I only check the vendor id)*/
if (dev->descriptor.idVendor == VID && dev->descriptor.idProduct == PID)
{
tmp->usb_handle = usb_open(dev);
usb_set_configuration(tmp->usb_handle, 1);
usb_claim_interface(tmp->usb_handle, 0);
usb_set_altinterface(tmp->usb_handle, 0);
return tmp; return tmp;
}
}
}
free(tmp);
return 0;
} }
#if 0 #if 0