Commit | Line | Data |
---|---|---|
b790d38e UB |
1 | /*************************************************************************** |
2 | ftdi_i.h - description | |
3 | ------------------- | |
4 | begin : Don Sep 9 2011 | |
79646368 | 5 | copyright : (C) 2003-2017 by Intra2net AG and the libftdi developers |
b790d38e | 6 | email : opensource@intra2net.com |
5b110dec | 7 | SPDX-License-Identifier: LGPL-2.1-only |
b790d38e UB |
8 | ***************************************************************************/ |
9 | ||
10 | /*************************************************************************** | |
11 | * * | |
12 | * This program is free software; you can redistribute it and/or modify * | |
13 | * it under the terms of the GNU Lesser General Public License * | |
14 | * version 2.1 as published by the Free Software Foundation; * | |
15 | * * | |
16 | *************************************************************************** | |
17 | ||
18 | Non public definitions here | |
19 | ||
20 | */ | |
21 | ||
22 | /* Even on 93xx66 at max 256 bytes are used (AN_121)*/ | |
23 | #define FTDI_MAX_EEPROM_SIZE 256 | |
24 | ||
a7c32c59 DK |
25 | /** Max Power adjustment factor. */ |
26 | #define MAX_POWER_MILLIAMP_PER_UNIT 2 | |
27 | ||
b790d38e UB |
28 | /** |
29 | \brief FTDI eeprom structure | |
30 | */ | |
31 | struct ftdi_eeprom | |
32 | { | |
33 | /** vendor id */ | |
34 | int vendor_id; | |
35 | /** product id */ | |
36 | int product_id; | |
37 | ||
38 | /** Was the eeprom structure initialized for the actual | |
39 | connected device? **/ | |
40 | int initialized_for_connected_device; | |
41 | ||
42 | /** self powered */ | |
43 | int self_powered; | |
44 | /** remote wakeup */ | |
45 | int remote_wakeup; | |
46 | ||
47 | int is_not_pnp; | |
48 | ||
49 | /* Suspend on DBUS7 Low */ | |
50 | int suspend_dbus7; | |
51 | ||
52 | /** input in isochronous transfer mode */ | |
53 | int in_is_isochronous; | |
54 | /** output in isochronous transfer mode */ | |
55 | int out_is_isochronous; | |
56 | /** suspend pull downs */ | |
57 | int suspend_pull_downs; | |
58 | ||
59 | /** use serial */ | |
60 | int use_serial; | |
61 | /** usb version */ | |
62 | int usb_version; | |
63 | /** Use usb version on FT2232 devices*/ | |
64 | int use_usb_version; | |
74387f27 | 65 | /** maximum power */ |
b790d38e UB |
66 | int max_power; |
67 | ||
68 | /** manufacturer name */ | |
69 | char *manufacturer; | |
70 | /** product name */ | |
71 | char *product; | |
72 | /** serial number */ | |
73 | char *serial; | |
74 | ||
be4bae37 | 75 | /* 2232D/H specific */ |
74387f27 | 76 | /* Hardware type, 0 = RS232 Uart, 1 = 245 FIFO, 2 = CPU FIFO, |
b790d38e UB |
77 | 4 = OPTO Isolate */ |
78 | int channel_a_type; | |
79 | int channel_b_type; | |
80 | /* Driver Type, 1 = VCP */ | |
81 | int channel_a_driver; | |
82 | int channel_b_driver; | |
be4bae37 AL |
83 | int channel_c_driver; |
84 | int channel_d_driver; | |
85 | /* 4232H specific */ | |
86 | int channel_a_rs485enable; | |
87 | int channel_b_rs485enable; | |
88 | int channel_c_rs485enable; | |
89 | int channel_d_rs485enable; | |
b790d38e UB |
90 | |
91 | /* Special function of FT232R/FT232H devices (and possibly others as well) */ | |
92 | /** CBUS pin function. See CBUS_xxx defines. */ | |
720c7d24 | 93 | int cbus_function[10]; |
db9c7eba | 94 | /** Select high current drive on R devices. */ |
b790d38e | 95 | int high_current; |
46ed84b3 | 96 | /** Select high current drive on A channel (2232C). */ |
b790d38e | 97 | int high_current_a; |
db9c7eba | 98 | /** Select high current drive on B channel (2232C). */ |
b790d38e UB |
99 | int high_current_b; |
100 | /** Select inversion of data lines (bitmask). */ | |
101 | int invert; | |
08518f8e RA |
102 | /** Enable external oscillator. */ |
103 | int external_oscillator; | |
b790d38e UB |
104 | |
105 | /*2232H/4432H Group specific values */ | |
106 | /* Group0 is AL on 2322H and A on 4232H | |
107 | Group1 is AH on 2232H and B on 4232H | |
108 | Group2 is BL on 2322H and C on 4232H | |
109 | Group3 is BH on 2232H and C on 4232H*/ | |
110 | int group0_drive; | |
111 | int group0_schmitt; | |
112 | int group0_slew; | |
113 | int group1_drive; | |
114 | int group1_schmitt; | |
115 | int group1_slew; | |
116 | int group2_drive; | |
117 | int group2_schmitt; | |
118 | int group2_slew; | |
119 | int group3_drive; | |
120 | int group3_schmitt; | |
121 | int group3_slew; | |
122 | ||
123 | int powersave; | |
124 | ||
125 | int clock_polarity; | |
126 | int data_order; | |
127 | int flow_control; | |
128 | ||
6e962b9a SET |
129 | /** user data **/ |
130 | int user_data_addr; | |
131 | int user_data_size; | |
132 | const char *user_data; | |
133 | ||
b790d38e UB |
134 | /** eeprom size in bytes. This doesn't get stored in the eeprom |
135 | but is the only way to pass it to ftdi_eeprom_build. */ | |
136 | int size; | |
137 | /* EEPROM Type 0x46 for 93xx46, 0x56 for 93xx56 and 0x66 for 93xx66*/ | |
138 | int chip; | |
139 | unsigned char buf[FTDI_MAX_EEPROM_SIZE]; | |
68e78641 JS |
140 | |
141 | /** device release number */ | |
142 | int release_number; | |
b790d38e UB |
143 | }; |
144 |