2020-04-19 18:36:07 +05:30
/* SPDX-License-Identifier: GPL-2.0+ */
2005-04-16 15:20:36 -07:00
/*
* Prolific PL2303 USB to serial adaptor driver header file
*/
2009-04-06 17:35:12 +01:00
# define BENQ_VENDOR_ID 0x04a5
# define BENQ_PRODUCT_ID_S81 0x4027
2005-04-16 15:20:36 -07:00
# define PL2303_VENDOR_ID 0x067b
# define PL2303_PRODUCT_ID 0x2303
2019-01-15 23:13:56 +08:00
# define PL2303_PRODUCT_ID_TB 0x2304
USB: serial: pl2303: add support for PL2303HXN
Prolific has developed a new USB to UART chip: PL2303HXN
PL2303HXN : PL2303GC/PL2303GS/PL2303GT/PL2303GL/PL2303GE/PL2303GB
The Vendor request used by the PL2303HXN (TYPE_HXN) is different from
the existing PL2303 series (TYPE_HX & TYPE_01).
Therefore, different Vendor requests are used to issue related commands.
1. Added a new TYPE_HXN type in pl2303_type_data, and then executes
new Vendor request,new flow control and other related instructions
if TYPE_HXN is recognized.
2. Because the new PL2303HXN only accept the new Vendor request,
the old Vendor request cannot be accepted (the error message
will be returned)
So first determine the TYPE_HX or TYPE_HXN through
PL2303_READ_TYPE_HX_STATUS in pl2303_startup.
2.1 If the return message is "1", then the PL2303 is the existing
TYPE_HX/ TYPE_01 series.
The other settings in pl2303_startup are to continue execution.
2.2 If the return message is "not 1", then the PL2303 is the new
TYPE_HXN series.
The other settings in pl2303_startup are ignored.
(PL2303HXN will directly use the default value in the hardware,
no need to add additional settings through the software)
3. In pl2303_open: Because TYPE_HXN is different from the instruction of reset
down/up stream used by TYPE_HX.
Therefore, we will also execute different instructions here.
4. In pl2303_set_termios: The UART flow control instructions used by
TYPE_HXN/TYPE_HX/TYPE_01 are different.
Therefore, we will also execute different instructions here.
5. In pl2303_vendor_read & pl2303_vendor_write, since TYPE_HXN is different
from the vendor request instruction used by TYPE_HX/TYPE_01,
it will also execute different instructions here.
6. In pl2303_update_reg: TYPE_HXN used different register for flow control.
Therefore, we will also execute different instructions here.
Signed-off-by: Charles Yeh <charlesyeh522@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
2019-09-24 20:14:00 +08:00
# define PL2303_PRODUCT_ID_GC 0x23a3
# define PL2303_PRODUCT_ID_GB 0x23b3
# define PL2303_PRODUCT_ID_GT 0x23c3
# define PL2303_PRODUCT_ID_GL 0x23d3
# define PL2303_PRODUCT_ID_GE 0x23e3
# define PL2303_PRODUCT_ID_GS 0x23f3
2005-04-16 15:20:36 -07:00
# define PL2303_PRODUCT_ID_RSAQ2 0x04bb
2006-06-19 22:47:49 +10:00
# define PL2303_PRODUCT_ID_DCU11 0x1234
2005-04-16 15:20:36 -07:00
# define PL2303_PRODUCT_ID_PHAROS 0xaaa0
# define PL2303_PRODUCT_ID_RSAQ3 0xaaa2
2018-01-25 09:48:55 +01:00
# define PL2303_PRODUCT_ID_CHILITAG 0xaaa8
2008-03-20 16:43:56 +07:00
# define PL2303_PRODUCT_ID_ALDIGA 0x0611
2008-05-23 23:39:05 +05:30
# define PL2303_PRODUCT_ID_MMX 0x0612
2008-07-02 15:25:41 -05:00
# define PL2303_PRODUCT_ID_GPRS 0x0609
2010-04-12 23:25:10 +02:00
# define PL2303_PRODUCT_ID_HCR331 0x331a
2011-01-21 15:35:19 +01:00
# define PL2303_PRODUCT_ID_MOTOROLA 0x0307
2014-08-15 15:22:21 +08:00
# define PL2303_PRODUCT_ID_ZTEK 0xe1f1
2005-04-16 15:20:36 -07:00
2019-01-15 23:13:56 +08:00
2005-04-16 15:20:36 -07:00
# define ATEN_VENDOR_ID 0x0557
# define ATEN_VENDOR_ID2 0x0547
# define ATEN_PRODUCT_ID 0x2008
2017-08-10 11:54:12 -07:00
# define ATEN_PRODUCT_UC485 0x2021
2018-07-19 02:20:48 +08:00
# define ATEN_PRODUCT_UC232B 0x2022
2017-01-30 19:26:40 +01:00
# define ATEN_PRODUCT_ID2 0x2118
2005-04-16 15:20:36 -07:00
2022-03-01 16:44:46 -06:00
# define IBM_VENDOR_ID 0x04b3
# define IBM_PRODUCT_ID 0x4016
2005-04-16 15:20:36 -07:00
# define IODATA_VENDOR_ID 0x04bb
# define IODATA_PRODUCT_ID 0x0a03
2007-10-23 13:51:57 +09:00
# define IODATA_PRODUCT_ID_RSAQ5 0x0a0e
2005-04-16 15:20:36 -07:00
# define ELCOM_VENDOR_ID 0x056e
# define ELCOM_PRODUCT_ID 0x5003
# define ELCOM_PRODUCT_ID_UCSGT 0x5004
# define ITEGNO_VENDOR_ID 0x0eba
# define ITEGNO_PRODUCT_ID 0x1080
2006-04-19 16:32:07 +08:00
# define ITEGNO_PRODUCT_ID_2080 0x2080
2005-04-16 15:20:36 -07:00
# define MA620_VENDOR_ID 0x0df7
# define MA620_PRODUCT_ID 0x0620
# define RATOC_VENDOR_ID 0x0584
# define RATOC_PRODUCT_ID 0xb000
# define TRIPP_VENDOR_ID 0x2478
# define TRIPP_PRODUCT_ID 0x2008
# define RADIOSHACK_VENDOR_ID 0x1453
# define RADIOSHACK_PRODUCT_ID 0x4026
# define DCU10_VENDOR_ID 0x0731
# define DCU10_PRODUCT_ID 0x0528
# define SITECOM_VENDOR_ID 0x6189
# define SITECOM_PRODUCT_ID 0x2068
/* Alcatel OT535/735 USB cable */
# define ALCATEL_VENDOR_ID 0x11f7
# define ALCATEL_PRODUCT_ID 0x02df
# define SIEMENS_VENDOR_ID 0x11f5
2005-11-17 09:47:32 -08:00
# define SIEMENS_PRODUCT_ID_SX1 0x0001
2005-04-16 15:20:36 -07:00
# define SIEMENS_PRODUCT_ID_X65 0x0003
2005-11-17 09:47:32 -08:00
# define SIEMENS_PRODUCT_ID_X75 0x0004
2007-08-24 01:51:11 +02:00
# define SIEMENS_PRODUCT_ID_EF81 0x0005
2005-04-18 17:39:32 -07:00
# define SYNTECH_VENDOR_ID 0x0745
# define SYNTECH_PRODUCT_ID 0x0001
2005-08-30 23:38:23 +01:00
/* Nokia CA-42 Cable */
# define NOKIA_CA42_VENDOR_ID 0x078b
# define NOKIA_CA42_PRODUCT_ID 0x1234
2006-01-09 12:35:41 -05:00
/* CA-42 CLONE Cable www.ca-42.com chipset: Prolific Technology Inc */
# define CA_42_CA42_VENDOR_ID 0x10b5
# define CA_42_CA42_PRODUCT_ID 0xac70
2006-01-19 14:52:38 +01:00
# define SAGEM_VENDOR_ID 0x079b
# define SAGEM_PRODUCT_ID 0x0027
2006-02-01 14:10:52 +01:00
/* Leadtek GPS 9531 (ID 0413:2101) */
# define LEADTEK_VENDOR_ID 0x0413
# define LEADTEK_9531_PRODUCT_ID 0x2101
2006-03-01 00:53:33 -08:00
/* USB GSM cable from Speed Dragon Multimedia, Ltd */
# define SPEEDDRAGON_VENDOR_ID 0x0e55
# define SPEEDDRAGON_PRODUCT_ID 0x110b
2006-04-06 22:07:12 +02:00
2006-06-21 15:25:53 -04:00
/* DATAPILOT Universal-2 Phone Cable */
# define DATAPILOT_U2_VENDOR_ID 0x0731
# define DATAPILOT_U2_PRODUCT_ID 0x2003
2006-07-25 15:54:59 +10:00
/* Belkin "F5U257" Serial Adapter */
# define BELKIN_VENDOR_ID 0x050d
# define BELKIN_PRODUCT_ID 0x0257
2006-09-16 16:17:34 +02:00
/* Alcor Micro Corp. USB 2.0 TO RS-232 */
# define ALCOR_VENDOR_ID 0x058F
# define ALCOR_PRODUCT_ID 0x9720
2006-09-28 20:45:38 +02:00
2007-01-26 22:51:38 +09:00
/* Willcom WS002IN Data Driver (by NetIndex Inc.) */
# define WS002IN_VENDOR_ID 0x11f6
# define WS002IN_PRODUCT_ID 0x2001
2007-11-08 16:45:46 +09:00
/* Corega CG-USBRS232R Serial Adapter */
# define COREGA_VENDOR_ID 0x07aa
# define COREGA_PRODUCT_ID 0x002a
2008-01-02 11:16:57 +01:00
2008-01-06 13:51:39 -05:00
/* Y.C. Cable U.S.A., Inc - USB to RS-232 */
# define YCCABLE_VENDOR_ID 0x05ad
# define YCCABLE_PRODUCT_ID 0x0fba
2008-12-13 22:42:53 +11:00
/* "Superial" USB - Serial */
# define SUPERIAL_VENDOR_ID 0x5372
# define SUPERIAL_PRODUCT_ID 0x2303
2008-12-16 14:30:14 -06:00
2014-03-31 15:54:21 +02:00
/* Hewlett-Packard POS Pole Displays */
2008-12-16 14:30:14 -06:00
# define HP_VENDOR_ID 0x03f0
2020-09-24 14:27:45 +08:00
# define HP_LD381GC_PRODUCT_ID 0x0183
2018-12-13 06:01:47 -05:00
# define HP_LM920_PRODUCT_ID 0x026b
# define HP_TD620_PRODUCT_ID 0x0956
2014-03-31 15:54:21 +02:00
# define HP_LD960_PRODUCT_ID 0x0b39
2020-03-11 14:14:23 +08:00
# define HP_LD381_PRODUCT_ID 0x0f7f
2022-04-25 17:00:20 +08:00
# define HP_LM930_PRODUCT_ID 0x0f9b
2014-03-31 15:54:21 +02:00
# define HP_LCM220_PRODUCT_ID 0x3139
# define HP_LCM960_PRODUCT_ID 0x3239
2008-12-16 14:30:14 -06:00
# define HP_LD220_PRODUCT_ID 0x3524
2018-12-13 06:01:47 -05:00
# define HP_LD220TA_PRODUCT_ID 0x4349
# define HP_LD960TA_PRODUCT_ID 0x4439
# define HP_LM940_PRODUCT_ID 0x5039
2009-06-05 22:57:52 +02:00
/* Cressi Edy (diving computer) PC interface */
# define CRESSI_VENDOR_ID 0x04b8
# define CRESSI_EDY_PRODUCT_ID 0x0521
2009-07-28 19:41:17 +02:00
2010-08-09 15:55:32 +02:00
/* Zeagle dive computer interface */
# define ZEAGLE_VENDOR_ID 0x04b8
# define ZEAGLE_N2ITION3_PRODUCT_ID 0x0522
2009-07-28 19:41:17 +02:00
/* Sony, USB data cable for CMD-Jxx mobile phones */
# define SONY_VENDOR_ID 0x054c
# define SONY_QN3USB_PRODUCT_ID 0x0437
2009-08-27 14:15:50 +02:00
/* Sanwa KB-USB2 multimeter cable (ID: 11ad:0001) */
# define SANWA_VENDOR_ID 0x11ad
# define SANWA_PRODUCT_ID 0x0001
2010-03-29 23:51:57 +02:00
/* ADLINK ND-6530 RS232,RS485 and RS422 adapter */
2010-05-17 10:33:41 -07:00
# define ADLINK_VENDOR_ID 0x0b63
# define ADLINK_ND6530_PRODUCT_ID 0x6530
2021-05-10 10:32:00 +08:00
# define ADLINK_ND6530GC_PRODUCT_ID 0x653a
2011-07-19 11:25:38 +02:00
2011-09-24 02:04:50 -04:00
/* SMART USB Serial Adapter */
# define SMART_VENDOR_ID 0x0b8c
# define SMART_PRODUCT_ID 0x2303
2019-05-14 17:35:42 +12:00
/* Allied Telesis VT-Kit3 */
# define AT_VENDOR_ID 0x0caa
# define AT_VTKIT3_PRODUCT_ID 0x3001