xref: /haiku/src/add-ons/kernel/drivers/ports/usb_serial/Prolific.h (revision 1294543de9ac0eff000eaea1b18368c36435d08e)
1 /*
2  * Copyright (c) 2007-2008 by Michael Lotz
3  * Heavily based on the original usb_serial driver which is:
4  *
5  * Copyright (c) 2003-2004 by Siarzhuk Zharski <imker@gmx.li>
6  * Distributed under the terms of the MIT License.
7  */
8 #ifndef _USB_PROLIFIC_H_
9 #define _USB_PROLIFIC_H_
10 
11 #include "ACM.h"
12 
13 /* supported vendor and product ids */
14 #define VENDOR_PROLIFIC		0x067b
15 #define VENDOR_IODATA		0x04bb
16 #define VENDOR_ATEN			0x0557
17 #define VENDOR_TDK			0x04bf
18 #define VENDOR_RATOC		0x0584
19 #define VENDOR_ELECOM		0x056e
20 #define	VENDOR_SOURCENEXT	0x0833
21 #define	VENDOR_HAL			0x0b41
22 
23 #define PRODUCT_IODATA_USBRSAQ			0x0a03
24 #define PRODUCT_PROLIFIC_RSAQ2			0x04bb
25 #define PRODUCT_ATEN_UC232A				0x2008
26 #define PRODUCT_PROLIFIC_PL2303			0x2303
27 #define PRODUCT_TDK_UHA6400				0x0117
28 #define PRODUCT_RATOC_REXUSB60			0xb000
29 #define PRODUCT_ELECOM_UCSGT			0x5003
30 #define	PRODUCT_SOURCENEXT_KEIKAI8		0x039f
31 #define	PRODUCT_SOURCENEXT_KEIKAI8_CHG	0x012e
32 #define	PRODUCT_HAL_IMR001				0x0011
33 
34 /* protocol defines */
35 #define PROLIFIC_SET_REQUEST	0x01
36 
37 #define PROLIFIC_BUF_SIZE		256
38 
39 struct request_item;
40 
41 
42 class ProlificDevice : public ACMDevice {
43 public:
44 								ProlificDevice(usb_device device,
45 									uint16 vendorID, uint16 productID,
46 									const char *description);
47 
48 virtual	status_t				AddDevice(const usb_configuration_info *config);
49 
50 virtual	status_t				ResetDevice();
51 
52 private:
53 		status_t				SendRequestList(request_item *list, size_t length);
54 
55 		bool					fIsHX;
56 };
57 
58 #endif //_USB_PROLIFIC_H_
59