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