The branch, ftdi-eeprom-fix-bitflag-handling has been updated
       via  2a68cf5675acd010b16d0c8fa87fd40356c59020 (commit)
      from  21cbf07029f382475cabcc157bb2fef339fff4d0 (commit)


- Log -----------------------------------------------------------------
commit 2a68cf5675acd010b16d0c8fa87fd40356c59020
Author: Thomas Jarosch <[email protected]>
Date:   Thu May 14 23:00:24 2020 +0200

    ftdi_eeprom_build(): Fix inverted handling of VCP driver field for TYPE_R 
chips
    
    From doc/EEPROM-structure:
    
        On TYPE_R 00.3 set mean D2XX, on other devices VCP
    
    -> invert the field for TYPE_R so "eeprom->channel_a_driver"
       set to 1 always means VCP driver for all chips.

-----------------------------------------------------------------------

Summary of changes:
 src/ftdi.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/ftdi.c b/src/ftdi.c
index d86d98e..d527d6f 100644
--- a/src/ftdi.c
+++ b/src/ftdi.c
@@ -3182,8 +3182,13 @@ int ftdi_eeprom_build(struct ftdi_context *ftdi)
             output[0x00] = type2bit(eeprom->channel_a_type, TYPE_R);
             if (eeprom->high_current)
                 output[0x00] |= HIGH_CURRENT_DRIVE_R;
+
+            /* Field is inverted for TYPE_R: Bit 00.3 set to 1 is D2XX, VCP is 
0 */
             if (eeprom->channel_a_driver)
+                output[0x00] &= ~DRIVER_VCP;
+            else
                 output[0x00] |= DRIVER_VCP;
+
             if (eeprom->external_oscillator)
                 output[0x00] |= 0x02;
             output[0x01] = 0x40; /* Hard coded Endpoint Size*/


hooks/post-receive
-- 
A library to talk to FTDI chips

--
libftdi-git - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [email protected]   

Reply via email to