X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.c;h=0f1a9182e0781dea863cc394f7caa0f078bdb445;hp=3c86456c3c6398b361f1cf34bc7086363fceee7d;hb=bd6941fd0138d3fc7f7bfb545a843dde3dfb636a;hpb=74387f27647e7123e233d31d36daedc6b485650a diff --git a/src/ftdi.c b/src/ftdi.c index 3c86456..0f1a918 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -278,7 +278,7 @@ void ftdi_set_usbdev (struct ftdi_context *ftdi, libusb_device_handle *usb) * * @return ftdi_version_info Library version information **/ -struct ftdi_version_info ftdi_get_library_version() +struct ftdi_version_info ftdi_get_library_version(void) { struct ftdi_version_info ver; @@ -1369,7 +1369,7 @@ int ftdi_set_line_property2(struct ftdi_context *ftdi, enum ftdi_bits_type bits, \retval <0: error code from usb_bulk_write() \retval >0: number of bytes written */ -int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size) +int ftdi_write_data(struct ftdi_context *ftdi, const unsigned char *buf, int size) { int offset = 0; int actual_length; @@ -1384,7 +1384,7 @@ int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size) if (offset+write_size > size) write_size = size-offset; - if (libusb_bulk_transfer(ftdi->usb_dev, ftdi->in_ep, buf+offset, write_size, &actual_length, ftdi->usb_write_timeout) < 0) + if (libusb_bulk_transfer(ftdi->usb_dev, ftdi->in_ep, (unsigned char *)buf+offset, write_size, &actual_length, ftdi->usb_write_timeout) < 0) ftdi_error_return(-1, "usb bulk write failed"); offset += actual_length; @@ -2691,8 +2691,6 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi) i = 0; switch (ftdi->type) { - case TYPE_232H: - i += 2; case TYPE_2232H: case TYPE_4232H: i += 2; @@ -2704,6 +2702,7 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi) case TYPE_BM: i += 0x94; break; + case TYPE_232H: case TYPE_230X: i = 0xa0; break; @@ -3016,6 +3015,12 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi) output[0x01] |= POWER_SAVE_DISABLE_H; else output[0x01] &= ~POWER_SAVE_DISABLE_H; + + if (eeprom->suspend_pull_downs) + output[0x0a] |= 0x4; + else + output[0x0a] &= ~0x4; + if (eeprom->clock_polarity) output[0x01] |= FT1284_CLK_IDLE_STATE; else @@ -4126,7 +4131,7 @@ int ftdi_write_eeprom_location(struct ftdi_context *ftdi, int eeprom_addr, } if (ftdi_read_eeprom_location( ftdi, chip_type_location>>1, &chip_type)) - ftdi_error_return(-5, "Reading failed failed"); + ftdi_error_return(-5, "Reading failed"); fprintf(stderr," loc 0x%04x val 0x%04x\n", chip_type_location,chip_type); if ((chip_type & 0xff) != 0x66) { @@ -4232,7 +4237,7 @@ int ftdi_erase_eeprom(struct ftdi_context *ftdi) NULL, 0, ftdi->usb_write_timeout) != 0) ftdi_error_return(-3, "Writing magic failed"); if (ftdi_read_eeprom_location( ftdi, 0x00, &eeprom_value)) - ftdi_error_return(-4, "Reading failed failed"); + ftdi_error_return(-4, "Reading failed"); if (eeprom_value == MAGIC) { ftdi->eeprom->chip = 0x46; @@ -4240,13 +4245,13 @@ int ftdi_erase_eeprom(struct ftdi_context *ftdi) else { if (ftdi_read_eeprom_location( ftdi, 0x40, &eeprom_value)) - ftdi_error_return(-4, "Reading failed failed"); + ftdi_error_return(-4, "Reading failed"); if (eeprom_value == MAGIC) ftdi->eeprom->chip = 0x56; else { if (ftdi_read_eeprom_location( ftdi, 0xc0, &eeprom_value)) - ftdi_error_return(-4, "Reading failed failed"); + ftdi_error_return(-4, "Reading failed"); if (eeprom_value == MAGIC) ftdi->eeprom->chip = 0x66; else