X-Git-Url: http://developer.intra2net.com/git/?a=blobdiff_plain;f=src%2Fftdi.c;h=142d37f3de433aa485b0f5b1c2e552efe7595299;hb=c1c3d564726551454151e083c1270ba5a8d16425;hp=79e24abba354d093a355ccd18207a787d472af59;hpb=cffed9f55dd41244427a803cc755d50330c84fd8;p=libftdi diff --git a/src/ftdi.c b/src/ftdi.c index 79e24ab..142d37f 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -1075,7 +1075,7 @@ static int ftdi_convert_baudrate(int baudrate, struct ftdi_context *ftdi, } // Split into "value" and "index" values *value = (unsigned short)(encoded_divisor & 0xFFFF); - if (ftdi->type == TYPE_2232C || ftdi->type == TYPE_2232H || ftdi->type == TYPE_4232H) + if (ftdi->type == TYPE_2232C || ftdi->type == TYPE_2232H || ftdi->type == TYPE_4232H || ftdi->type == TYPE_232H ) { *index = (unsigned short)(encoded_divisor >> 8); *index &= 0xFF00; @@ -2353,6 +2353,9 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi) case TYPE_4232H: user_area_size = 86; break; + case TYPE_232H: + user_area_size = 80; + break; default: user_area_size = 0; break; @@ -3508,6 +3511,29 @@ int ftdi_get_eeprom_buf(struct ftdi_context *ftdi, unsigned char * buf, int size return 0; } +/** Set the EEPROM content from the user-supplied prefilled buffer + + \param ftdi pointer to ftdi_context + \param buf buffer to read EEPROM content + \param size Size of buffer + + \retval 0: All fine + \retval -1: struct ftdi_contxt or ftdi_eeprom of buf missing +*/ +int ftdi_set_eeprom_buf(struct ftdi_context *ftdi, const unsigned char * buf, int size) +{ + if (!ftdi || !(ftdi->eeprom) || !buf) + ftdi_error_return(-1, "No appropriate structure"); + + // Only copy up to FTDI_MAX_EEPROM_SIZE bytes + if (size > FTDI_MAX_EEPROM_SIZE) + size = FTDI_MAX_EEPROM_SIZE; + + memcpy(ftdi->eeprom->buf, buf, size); + + return 0; +} + /** Read eeprom location