X-Git-Url: http://developer.intra2net.com/git/?a=blobdiff_plain;f=src%2Fftdi.c;h=90dfae50e18e693b9271cb97e2fd0a137e367543;hb=a7e053532fb66aabe0d232cb335be4746cc052b3;hp=c19810b417f4fa214f8cb8b242468d069954470c;hpb=a00c0a850b7fc6a3f6f7491df7f45a21ac957fa2;p=libftdi diff --git a/src/ftdi.c b/src/ftdi.c index c19810b..90dfae5 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -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