# HG changeset patch # User Mychaela Falconia # Date 1557440120 0 # Node ID 47dbfd66bd58cd7de5efa3c5f37211482a5dad93 # Parent 6bae8e424a69d8945f1c1162c111ab69daa56499 fteeprom-prog: added magic sequence from libftdi diff -r 6bae8e424a69 -r 47dbfd66bd58 fteeprom/fteeprom-prog.c --- a/fteeprom/fteeprom-prog.c Thu May 09 21:28:48 2019 +0000 +++ b/fteeprom/fteeprom-prog.c Thu May 09 22:15:20 2019 +0000 @@ -72,6 +72,7 @@ char **argv; { struct ftdi_context ftdi; + u_short modem_status; unsigned n; if (argc < 2 || argc > 3) { @@ -88,6 +89,22 @@ fprintf(stderr, "FTDI USB open failed: %s\n", ftdi.error_str); exit(1); } + /* magic sequence apparently required for FT232R */ + if (ftdi_usb_reset(&ftdi) < 0) { + fprintf(stderr, "ftdi_usb_reset() failed: %s\n", + ftdi.error_str); + exit(1); + } + if (ftdi_poll_modem_status(&ftdi, &modem_status) < 0) { + fprintf(stderr, "ftdi_poll_modem_status() failed: %s\n", + ftdi.error_str); + exit(1); + } + if (ftdi_set_latency_timer(&ftdi, 0x77) < 0) { + fprintf(stderr, "ftdi_set_latency_timer() failed: %s\n", + ftdi.error_str); + exit(1); + } for (n = 0; n < eeprom_size; n++) { if (ftdi_write_eeprom_location(&ftdi, n, eeprom[n]) < 0) { fprintf(stderr, "EEPROM write error: %s\n",