mos7840.c (597473720f4dc69749542bfcfed4a927a43d935e) | mos7840.c (e696d00e65e81d46e911f24b12e441037bf11b38) |
---|---|
1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Clean ups from Moschip version and a few ioctl implementations by: 4 * Paul B Schroeder <pschroeder "at" uplogix "dot" com> 5 * 6 * Originally based on drivers/usb/serial/io_edgeport.c which is: 7 * Copyright (C) 2000 Inside Out Networks, All rights reserved. 8 * Copyright (C) 2001-2002 Greg Kroah-Hartman <greg@kroah.com> --- 105 unchanged lines hidden (view full) --- 114#define BANDB_DEVICE_ID_USOPTL4_2P 0xBC02 115#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 116#define BANDB_DEVICE_ID_USOPTL4_4P 0xBC03 117#define BANDB_DEVICE_ID_USOPTL2_4 0xAC24 118 119/* This driver also supports 120 * ATEN UC2324 device using Moschip MCS7840 121 * ATEN UC2322 device using Moschip MCS7820 | 1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Clean ups from Moschip version and a few ioctl implementations by: 4 * Paul B Schroeder <pschroeder "at" uplogix "dot" com> 5 * 6 * Originally based on drivers/usb/serial/io_edgeport.c which is: 7 * Copyright (C) 2000 Inside Out Networks, All rights reserved. 8 * Copyright (C) 2001-2002 Greg Kroah-Hartman <greg@kroah.com> --- 105 unchanged lines hidden (view full) --- 114#define BANDB_DEVICE_ID_USOPTL4_2P 0xBC02 115#define BANDB_DEVICE_ID_USOPTL4_4 0xAC44 116#define BANDB_DEVICE_ID_USOPTL4_4P 0xBC03 117#define BANDB_DEVICE_ID_USOPTL2_4 0xAC24 118 119/* This driver also supports 120 * ATEN UC2324 device using Moschip MCS7840 121 * ATEN UC2322 device using Moschip MCS7820 |
122 * MOXA UPort 2210 device using Moschip MCS7820 |
|
122 */ 123#define USB_VENDOR_ID_ATENINTL 0x0557 124#define ATENINTL_DEVICE_ID_UC2324 0x2011 125#define ATENINTL_DEVICE_ID_UC2322 0x7820 126 | 123 */ 124#define USB_VENDOR_ID_ATENINTL 0x0557 125#define ATENINTL_DEVICE_ID_UC2324 0x2011 126#define ATENINTL_DEVICE_ID_UC2322 0x7820 127 |
128#define USB_VENDOR_ID_MOXA 0x110a 129#define MOXA_DEVICE_ID_2210 0x2210 130 |
|
127/* Interrupt Routine Defines */ 128 129#define SERIAL_IIR_RLS 0x06 130#define SERIAL_IIR_MS 0x00 131 132/* 133 * Emulation of the bit mask on the LINE STATUS REGISTER. 134 */ --- 55 unchanged lines hidden (view full) --- 190 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)}, 191 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 192 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2P)}, 193 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 194 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4P)}, 195 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)}, 196 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)}, 197 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)}, | 131/* Interrupt Routine Defines */ 132 133#define SERIAL_IIR_RLS 0x06 134#define SERIAL_IIR_MS 0x00 135 136/* 137 * Emulation of the bit mask on the LINE STATUS REGISTER. 138 */ --- 55 unchanged lines hidden (view full) --- 194 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USPTL4_4)}, 195 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2)}, 196 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_2P)}, 197 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4)}, 198 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL4_4P)}, 199 {USB_DEVICE(USB_VENDOR_ID_BANDB, BANDB_DEVICE_ID_USOPTL2_4)}, 200 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2324)}, 201 {USB_DEVICE(USB_VENDOR_ID_ATENINTL, ATENINTL_DEVICE_ID_UC2322)}, |
202 {USB_DEVICE(USB_VENDOR_ID_MOXA, MOXA_DEVICE_ID_2210)}, |
|
198 {} /* terminating entry */ 199}; 200MODULE_DEVICE_TABLE(usb, id_table); 201 202/* This structure holds all of the local port information */ 203 204struct moschip_port { 205 int port_num; /*Actual port number in the device(1,2,etc) */ --- 1809 unchanged lines hidden (view full) --- 2015 2016 return 0; 2017} 2018 2019static int mos7840_probe(struct usb_serial *serial, 2020 const struct usb_device_id *id) 2021{ 2022 u16 product = le16_to_cpu(serial->dev->descriptor.idProduct); | 203 {} /* terminating entry */ 204}; 205MODULE_DEVICE_TABLE(usb, id_table); 206 207/* This structure holds all of the local port information */ 208 209struct moschip_port { 210 int port_num; /*Actual port number in the device(1,2,etc) */ --- 1809 unchanged lines hidden (view full) --- 2020 2021 return 0; 2022} 2023 2024static int mos7840_probe(struct usb_serial *serial, 2025 const struct usb_device_id *id) 2026{ 2027 u16 product = le16_to_cpu(serial->dev->descriptor.idProduct); |
2028 u16 vid = le16_to_cpu(serial->dev->descriptor.idVendor); |
|
2023 u8 *buf; 2024 int device_type; 2025 2026 if (product == MOSCHIP_DEVICE_ID_7810 || 2027 product == MOSCHIP_DEVICE_ID_7820 || 2028 product == MOSCHIP_DEVICE_ID_7843) { 2029 device_type = product; 2030 goto out; 2031 } 2032 | 2029 u8 *buf; 2030 int device_type; 2031 2032 if (product == MOSCHIP_DEVICE_ID_7810 || 2033 product == MOSCHIP_DEVICE_ID_7820 || 2034 product == MOSCHIP_DEVICE_ID_7843) { 2035 device_type = product; 2036 goto out; 2037 } 2038 |
2039 if (vid == USB_VENDOR_ID_MOXA && product == MOXA_DEVICE_ID_2210) { 2040 device_type = MOSCHIP_DEVICE_ID_7820; 2041 goto out; 2042 } 2043 |
|
2033 buf = kzalloc(VENDOR_READ_LENGTH, GFP_KERNEL); 2034 if (!buf) 2035 return -ENOMEM; 2036 2037 usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0), 2038 MCS_RDREQ, MCS_RD_RTYPE, 0, GPIO_REGISTER, buf, 2039 VENDOR_READ_LENGTH, MOS_WDR_TIMEOUT); 2040 --- 324 unchanged lines hidden --- | 2044 buf = kzalloc(VENDOR_READ_LENGTH, GFP_KERNEL); 2045 if (!buf) 2046 return -ENOMEM; 2047 2048 usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0), 2049 MCS_RDREQ, MCS_RD_RTYPE, 0, GPIO_REGISTER, buf, 2050 VENDOR_READ_LENGTH, MOS_WDR_TIMEOUT); 2051 --- 324 unchanged lines hidden --- |