0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef __LINUX_USB_SERIAL_WHITEHEAT_H
0017 #define __LINUX_USB_SERIAL_WHITEHEAT_H
0018
0019
0020
0021 #define WHITEHEAT_OPEN 1
0022 #define WHITEHEAT_CLOSE 2
0023 #define WHITEHEAT_SETUP_PORT 3
0024 #define WHITEHEAT_SET_RTS 4
0025 #define WHITEHEAT_SET_DTR 5
0026 #define WHITEHEAT_SET_BREAK 6
0027 #define WHITEHEAT_DUMP 7
0028 #define WHITEHEAT_STATUS 8
0029 #define WHITEHEAT_PURGE 9
0030 #define WHITEHEAT_GET_DTR_RTS 10
0031
0032 #define WHITEHEAT_GET_HW_INFO 11
0033
0034 #define WHITEHEAT_REPORT_TX_DONE 12
0035 #define WHITEHEAT_EVENT 13
0036 #define WHITEHEAT_ECHO 14
0037
0038 #define WHITEHEAT_DO_TEST 15
0039 #define WHITEHEAT_CMD_COMPLETE 16
0040 #define WHITEHEAT_CMD_FAILURE 17
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055 struct whiteheat_simple {
0056 __u8 port;
0057 };
0058
0059
0060
0061
0062
0063 #define WHITEHEAT_PAR_NONE 'n'
0064 #define WHITEHEAT_PAR_EVEN 'e'
0065 #define WHITEHEAT_PAR_ODD 'o'
0066 #define WHITEHEAT_PAR_SPACE '0'
0067 #define WHITEHEAT_PAR_MARK '1'
0068
0069 #define WHITEHEAT_SFLOW_NONE 'n'
0070 #define WHITEHEAT_SFLOW_RX 'r'
0071
0072 #define WHITEHEAT_SFLOW_TX 't'
0073
0074 #define WHITEHEAT_SFLOW_RXTX 'b'
0075
0076 #define WHITEHEAT_HFLOW_NONE 0x00
0077 #define WHITEHEAT_HFLOW_RTS_TOGGLE 0x01
0078
0079 #define WHITEHEAT_HFLOW_DTR 0x02
0080
0081 #define WHITEHEAT_HFLOW_CTS 0x08
0082
0083 #define WHITEHEAT_HFLOW_DSR 0x10
0084
0085 #define WHITEHEAT_HFLOW_RTS 0x80
0086
0087
0088 struct whiteheat_port_settings {
0089 __u8 port;
0090 __le32 baud;
0091
0092 __u8 bits;
0093 __u8 stop;
0094 __u8 parity;
0095 __u8 sflow;
0096 __u8 xoff;
0097 __u8 xon;
0098 __u8 hflow;
0099 __u8 lloop;
0100 } __attribute__ ((packed));
0101
0102
0103
0104
0105
0106
0107
0108 #define WHITEHEAT_RTS_OFF 0x00
0109 #define WHITEHEAT_RTS_ON 0x01
0110 #define WHITEHEAT_DTR_OFF 0x00
0111 #define WHITEHEAT_DTR_ON 0x01
0112 #define WHITEHEAT_BREAK_OFF 0x00
0113 #define WHITEHEAT_BREAK_ON 0x01
0114
0115 struct whiteheat_set_rdb {
0116 __u8 port;
0117 __u8 state;
0118 };
0119
0120
0121
0122
0123
0124 #define WHITEHEAT_DUMP_MEM_DATA 'd'
0125 #define WHITEHEAT_DUMP_MEM_IDATA 'i'
0126 #define WHITEHEAT_DUMP_MEM_BDATA 'b'
0127 #define WHITEHEAT_DUMP_MEM_XDATA 'x'
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144 struct whiteheat_dump {
0145 __u8 mem_type;
0146 __u16 addr;
0147 __u16 length;
0148 };
0149
0150
0151
0152
0153
0154 #define WHITEHEAT_PURGE_RX 0x01
0155 #define WHITEHEAT_PURGE_TX 0x02
0156
0157 struct whiteheat_purge {
0158 __u8 port;
0159 __u8 what;
0160 };
0161
0162
0163
0164
0165
0166 struct whiteheat_echo {
0167 __u8 port;
0168 __u8 length;
0169 __u8 echo_data[61];
0170 };
0171
0172
0173
0174
0175
0176 #define WHITEHEAT_TEST_UART_RW 0x01
0177 #define WHITEHEAT_TEST_UART_INTR 0x02
0178 #define WHITEHEAT_TEST_SETUP_CONT 0x03
0179
0180 #define WHITEHEAT_TEST_PORT_CONT 0x04
0181 #define WHITEHEAT_TEST_PORT_DISCONT 0x05
0182 #define WHITEHEAT_TEST_UART_CLK_START 0x06
0183 #define WHITEHEAT_TEST_UART_CLK_STOP 0x07
0184 #define WHITEHEAT_TEST_MODEM_FT 0x08
0185
0186 #define WHITEHEAT_TEST_ERASE_EEPROM 0x09
0187 #define WHITEHEAT_TEST_READ_EEPROM 0x0a
0188 #define WHITEHEAT_TEST_PROGRAM_EEPROM 0x0b
0189
0190 struct whiteheat_test {
0191 __u8 port;
0192 __u8 test;
0193 __u8 info[32];
0194 };
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205 #define WHITEHEAT_EVENT_MODEM 0x01
0206 #define WHITEHEAT_EVENT_ERROR 0x02
0207 #define WHITEHEAT_EVENT_FLOW 0x04
0208 #define WHITEHEAT_EVENT_CONNECT 0x08
0209
0210 #define WHITEHEAT_FLOW_NONE 0x00
0211 #define WHITEHEAT_FLOW_HARD_OUT 0x01
0212
0213 #define WHITEHEAT_FLOW_HARD_IN 0x02
0214
0215 #define WHITEHEAT_FLOW_SOFT_OUT 0x04
0216
0217 #define WHITEHEAT_FLOW_SOFT_IN 0x08
0218
0219 #define WHITEHEAT_FLOW_TX_DONE 0x80
0220
0221 struct whiteheat_status_info {
0222 __u8 port;
0223 __u8 event;
0224
0225 __u8 modem;
0226
0227 __u8 error;
0228 __u8 flow;
0229
0230 __u8 connect;
0231
0232 };
0233
0234
0235
0236
0237
0238 struct whiteheat_dr_info {
0239 __u8 mcr;
0240 };
0241
0242
0243
0244
0245
0246 struct whiteheat_hw_info {
0247 __u8 hw_id;
0248 __u8 sw_major_rev;
0249 __u8 sw_minor_rev;
0250 struct whiteheat_hw_eeprom_info {
0251 __u8 b0;
0252 __u8 vendor_id_low;
0253 __u8 vendor_id_high;
0254 __u8 product_id_low;
0255 __u8 product_id_high;
0256 __u8 device_id_low;
0257 __u8 device_id_high;
0258 __u8 not_used_1;
0259 __u8 serial_number_0;
0260 __u8 serial_number_1;
0261 __u8 serial_number_2;
0262 __u8 serial_number_3;
0263 __u8 not_used_2;
0264 __u8 not_used_3;
0265 __u8 checksum_low;
0266 __u8 checksum_high;
0267 } hw_eeprom_info;
0268 };
0269
0270
0271
0272
0273
0274 struct whiteheat_event_info {
0275 __u8 port;
0276 __u8 event;
0277 __u8 info;
0278
0279 };
0280
0281
0282
0283
0284
0285 #define WHITEHEAT_TEST_FAIL 0x00
0286 #define WHITEHEAT_TEST_UNKNOWN 0x01
0287 #define WHITEHEAT_TEST_PASS 0xff
0288
0289 struct whiteheat_test_info {
0290 __u8 port;
0291 __u8 test;
0292
0293 __u8 status;
0294 __u8 results[32];
0295 };
0296
0297
0298 #endif