CFG_FUNC("include", &cfg_include),
CFG_INT("user_data_addr", 0x18, 0),
CFG_STR("user_data_file", "", 0),
+ CFG_BOOL("bcd_enable", cfg_false, 0),
+ CFG_BOOL("bcd_pwr_enable", cfg_false, 0),
+ CFG_BOOL("bcd_no_sleep", cfg_false, 0),
CFG_END()
};
cfg_t *cfg;
eeprom_set_value(ftdi, CBUS_FUNCTION_2, cfg_getint(cfg, "cbusx2"));
if (cfg_getint(cfg, "cbusx3") != -1)
eeprom_set_value(ftdi, CBUS_FUNCTION_3, cfg_getint(cfg, "cbusx3"));
+
+ eeprom_set_value(ftdi, BCD_ENABLE, cfg_getbool(cfg, "bcd_enable"));
+ eeprom_set_value(ftdi, BCD_PWR_ENABLE, cfg_getbool(cfg, "bcd_pwr_enable"));
+ eeprom_set_value(ftdi, BCD_NO_SLEEP, cfg_getbool(cfg, "bcd_no_sleep"));
}
int invert = 0;
break;
case TYPE_230X:
output[0x00] = 0x80; /* Actually, leave the default value */
+
+ if (eeprom->bcd_enable)
+ output[0x00] |= 1;
+ if (eeprom->bcd_pwr_enable)
+ output[0x00] |= 2;
+ if (eeprom->bcd_deactivate_sleep)
+ output[0x00] |= 4;
+
/*FIXME: Make DBUS & CBUS Control configurable*/
output[0x0c] = 0; /* DBUS drive 4mA, CBUS drive 4 mA like factory default */
for (j = 0; j <= 6; j++)
{
eeprom->cbus_function[i] = buf[0x1a + i] & 0xFF;
}
+ eeprom->bcd_enable = buf[0x00] & 0x1;
+ eeprom->bcd_pwr_enable = buf[0x00] & 0x2;
+ eeprom->bcd_deactivate_sleep = buf[0x00] & 0x4;
eeprom->group0_drive = buf[0x0c] & 0x03;
eeprom->group0_schmitt = buf[0x0c] & IS_SCHMITT;
eeprom->group0_slew = buf[0x0c] & SLOW_SLEW;
case USER_DATA_ADDR:
ftdi->eeprom->user_data_addr = value;
break;
+ case BCD_ENABLE:
+ ftdi->eeprom->bcd_enable = value;
+ break;
+ case BCD_PWR_ENABLE:
+ ftdi->eeprom->bcd_pwr_enable = value;
+ break;
+ case BCD_NO_SLEEP:
+ ftdi->eeprom->bcd_deactivate_sleep = value;
+ break;
default :
ftdi_error_return(-1, "Request to unknown EEPROM value");
int data_order;
int flow_control;
+ /* FT-X specific */
+ /** battery charger detector enable (see AN175) */
+ int bcd_enable;
+ /** battery charger power enable */
+ int bcd_pwr_enable;
+ /** battery charger deactivate sleep */
+ int bcd_deactivate_sleep;
+
/** user data **/
int user_data_addr;
int user_data_size;