eeprom->use_serial = buf[0x0A]&0x08;
eeprom->change_usb_version = buf[0x0A]&0x10;
- // Addr 0B: Invert data lines
- eeprom->invert = buf[0x0B];
// Addr 0C: USB version low byte when 0x0A bit 4 is set
// Addr 0D: USB version high byte when 0x0A bit 4 is set
ftdi_error_return(-1,"EEPROM checksum error");
}
- if ((ftdi->type == TYPE_AM) || (ftdi->type == TYPE_BM) || (ftdi->type == TYPE_2232C))
+ else if ((ftdi->type == TYPE_AM) || (ftdi->type == TYPE_BM))
{
eeprom->chip = buf[14];
}
- if(ftdi->type == TYPE_2)
+ else if(ftdi->type == TYPE_2232C)
{
+ eeprom->chip = buf[14];
}
- if(ftdi->type == TYPE_R)
+ else if(ftdi->type == TYPE_R)
{
- // Addr 14: CBUS function: CBUS0, CBUS1
- // Addr 15: CBUS function: CBUS2, CBUS3
- // Addr 16: CBUS function: CBUS5
+ // Addr 0B: Invert data lines
+ // Works only on FT232R, not FT245R, but no way to distinguish
if (ftdi->type == TYPE_R) {
eeprom->cbus_function[0] = buf[0x14] & 0x0f;
eeprom->cbus_function[1] = (buf[0x14] >> 4) & 0x0f;
for (j=0; j<5; j++) eeprom->cbus_function[j] = 0;
}
}
+ else if (ftdi->type == TYPE_2232H)
+ {
+ }
+ else if (ftdi->type == TYPE_4232H)
+ {
+ }
+
if(verbose)
{
fprintf(stdout, "VID: 0x%04x\n",eeprom->vendor_id);
fprintf(stdout, "Product: %s\n",eeprom->product);
if(eeprom->serial)
fprintf(stdout, "Serial: %s\n",eeprom->serial);
- fprintf(stderr, "Checksum : %04x %04x\n", checksum);
+ fprintf(stderr, "Checksum : %04x\n", checksum);
}