X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.c;h=fe146b75ad8254f36e564136bf11da6006268fe1;hp=bad338d0a6345c04a80643ec3c3407bbfaf6a013;hb=1ad9e4cc95b76fa304f6e21723eaf2fb457e0006;hpb=13ea50d2302a8740d964ed50eb7906f349198e1a diff --git a/src/ftdi.c b/src/ftdi.c index bad338d..fe146b7 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -328,9 +328,9 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devli if (libusb_get_device_descriptor(dev, &desc) < 0) ftdi_error_return_free_device_list(-6, "libusb_get_device_descriptor() failed", devs); - if (((vendor != 0 && product != 0) && + if (((vendor || product) && desc.idVendor == vendor && desc.idProduct == product) || - ((vendor == 0 && product == 0) && + (!(vendor || product) && (desc.idVendor == 0x403) && (desc.idProduct == 0x6001 || desc.idProduct == 0x6010 || desc.idProduct == 0x6011 || desc.idProduct == 0x6014))) { @@ -3121,6 +3121,21 @@ static unsigned char bit2type(unsigned char bits) } return 0; } +/* Decode 230X / 232R type chips invert bits + * Prints directly to stdout. +*/ +static void print_inverted_bits(int invert) +{ + char *r_bits[] = {"TXD","RXD","RTS","CTS","DTR","DSR","DCD","RI"}; + int i; + + fprintf(stdout,"Inverted bits:"); + for (i=0; i<8; i++) + if ((invert & (1<cbus_function[i]<= CBUSH_AWAKE) fprintf(stdout,"CBUS%d Function: %s\n", i, cbush_mux[eeprom->cbus_function[i]]); } - if(eeprom->invert ) - print_inverted_bits(eeprom->invert); + + if (eeprom->invert) + print_inverted_bits(eeprom->invert); } if (ftdi->type == TYPE_R) @@ -3528,7 +3544,7 @@ int ftdi_eeprom_decode(struct ftdi_context *ftdi, int verbose) char *cbus_BB[] = {"RXF","TXE","RD", "WR"}; if (eeprom->invert) - print_inverted_bits(eeprom->invert); + print_inverted_bits(eeprom->invert); for (i=0; i<5; i++) { @@ -4290,15 +4306,4 @@ char *ftdi_get_error_string (struct ftdi_context *ftdi) return ftdi->error_str; } -void print_inverted_bits(int invert) -{ - int i; - char *r_bits[] = {"TXD","RXD","RTS","CTS","DTR","DSR","DCD","RI"}; - fprintf(stdout,"Inverted bits:"); - for (i=0; i<8; i++) - if ((invert & (1<