#ifdef JTAGKEY
char *pbuf;
unsigned short vid, pid;
+ unsigned short iface;
int line, len, num;
#endif
vid = 0;
vid = strtol(pbuf, NULL, 16);
- if (!num) {
+ if (!vid) {
PARSEERROR;
continue;
}
pbuf = buf + i;
for (; i < len; i++) {
- if (buf[i] == ' ' || buf[i] == '\t')
+ if (buf[i] == ' ' || buf[i] == '\t' || buf[i] == ':')
break;
}
pid = 0;
pid = strtol(pbuf, NULL, 16);
- if (!num) {
+ if (!pid) {
PARSEERROR;
continue;
}
+ iface = 0;
+ pbuf = buf + i;
+ if (pbuf[0] == ':') {
+ iface = atoi(pbuf + 1);
+ }
+
pp_config[num].real = 0;
pp_config[num].usb_vid = vid;
pp_config[num].usb_pid = pid;
+ pp_config[num].usb_iface = iface;
pp_config[num].open = jtagkey_open;
pp_config[num].close = jtagkey_close;
pp_config[num].transfer = jtagkey_transfer;
return ret;
}
+
+unsigned short config_usb_iface(int num) {
+ unsigned short ret = 0x00;
+ int i;
+
+ read_config();
+
+ for (i=0; i<sizeof(pp_config)/sizeof(struct parport_config); i++) {
+ if (pp_config[i].num == num) {
+ ret = pp_config[i].usb_iface;
+ break;
+ }
+ }
+
+ return ret;
+}
+