CMake: bump the minimal required version to 3.5
[libftdi] / ftdi_eeprom / main.c
index 16c87c9..e3a09ba 100644 (file)
@@ -2,8 +2,9 @@
                              main.c  -  description
                            -------------------
     begin                : Mon Apr  7 12:05:22 CEST 2003
-    copyright            : (C) 2003-2014 by Intra2net AG and the libftdi developers
+    copyright            : (C) 2003-2020 by Intra2net AG and the libftdi developers
     email                : opensource@intra2net.com
+    SPDX-License-Identifier: GPL-2.0-only
  ***************************************************************************/
 
 /***************************************************************************
@@ -202,7 +203,7 @@ static void usage(const char *program)
     fprintf(stderr, "Syntax: %s [...options...] <config-file>\n", program);
     fprintf(stderr, "Valid Options:\n");
     fprintf(stderr, "--device <description>  Specify device to open by description string. One of:\n");
-    fprintf(stderr, "         d:<devicenode>\n");
+    fprintf(stderr, "         d:<device node>\n");
     fprintf(stderr, "         i:<vendor>:<product>\n");
     fprintf(stderr, "         i:<vendor>:<product>:<index>\n");
     fprintf(stderr, "         s:<vendor>:<product>:<serial>\n");
@@ -210,6 +211,7 @@ static void usage(const char *program)
     fprintf(stderr, "--build-eeprom          Build eeprom image\n");
     fprintf(stderr, "--erase-eeprom          Erase eeprom\n");
     fprintf(stderr, "--flash-eeprom          Flash eeprom\n");
+    fprintf(stderr, "--verbose               Print more information\n");
 }
 
 int main(int argc, char *argv[])
@@ -221,6 +223,7 @@ int main(int argc, char *argv[])
     {
         CFG_INT("vendor_id", 0, 0),
         CFG_INT("product_id", 0, 0),
+        CFG_INT("release_number", -1, 0),
         CFG_BOOL("self_powered", cfg_true, 0),
         CFG_BOOL("remote_wakeup", cfg_true, 0),
         CFG_BOOL("in_is_isochronous", cfg_false, 0),
@@ -305,6 +308,8 @@ int main(int argc, char *argv[])
     int i;
     FILE *fp;
 
+    int verbose=0;
+
     struct ftdi_context *ftdi = NULL;
 
     printf("\nFTDI eeprom generator v%s\n", EEPROM_VERSION_STRING);
@@ -340,6 +345,10 @@ int main(int argc, char *argv[])
         {
             command = COMMAND_BUILD;
         }
+        else if (!strcmp(argv[i], "--verbose"))
+        {
+            verbose = 1;
+        }
         else
         {
             usage(argv[0]);
@@ -418,7 +427,7 @@ int main(int argc, char *argv[])
 
     if (command == COMMAND_READ)
     {
-        ftdi_eeprom_decode(ftdi, 0 /* debug: 1 */);
+        ftdi_eeprom_decode(ftdi, verbose);
 
         eeprom_buf = malloc(my_eeprom_size);
         ftdi_get_eeprom_buf(ftdi, eeprom_buf, my_eeprom_size);
@@ -451,6 +460,10 @@ int main(int argc, char *argv[])
     eeprom_set_value(ftdi, VENDOR_ID, cfg_getint(cfg, "vendor_id"));
     eeprom_set_value(ftdi, PRODUCT_ID, cfg_getint(cfg, "product_id"));
 
+    if (cfg_getint(cfg, "release_number") != -1) {
+        eeprom_set_value(ftdi, RELEASE_NUMBER, cfg_getint(cfg, "release_number"));
+    }
+
     eeprom_set_value(ftdi, SELF_POWERED, cfg_getbool(cfg, "self_powered"));
     eeprom_set_value(ftdi, REMOTE_WAKEUP, cfg_getbool(cfg, "remote_wakeup"));
     eeprom_set_value(ftdi, MAX_POWER, cfg_getint(cfg, "max_power"));