diff options
Diffstat (limited to 'drivers/usb/serial/usb-serial-simple.c')
-rw-r--r-- | drivers/usb/serial/usb-serial-simple.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/drivers/usb/serial/usb-serial-simple.c b/drivers/usb/serial/usb-serial-simple.c new file mode 100644 index 000000000000..6a06131f48f4 --- /dev/null +++ b/drivers/usb/serial/usb-serial-simple.c | |||
@@ -0,0 +1,110 @@ | |||
1 | /* | ||
2 | * USB Serial "Simple" driver | ||
3 | * | ||
4 | * Copyright (C) 2001-2006,2008,2013 Greg Kroah-Hartman <greg@kroah.com> | ||
5 | * Copyright (C) 2005 Arthur Huillet (ahuillet@users.sf.net) | ||
6 | * Copyright (C) 2005 Thomas Hergenhahn <thomas.hergenhahn@suse.de> | ||
7 | * Copyright (C) 2009 Outpost Embedded, LLC | ||
8 | * Copyright (C) 2010 Zilogic Systems <code@zilogic.com> | ||
9 | * Copyright (C) 2013 Wei Shuai <cpuwolf@gmail.com> | ||
10 | * Copyright (C) 2013 Linux Foundation | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License version | ||
14 | * 2 as published by the Free Software Foundation. | ||
15 | */ | ||
16 | |||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/init.h> | ||
19 | #include <linux/tty.h> | ||
20 | #include <linux/module.h> | ||
21 | #include <linux/usb.h> | ||
22 | #include <linux/usb/serial.h> | ||
23 | |||
24 | #define DEVICE(vendor, IDS) \ | ||
25 | static const struct usb_device_id vendor##_id_table[] = { \ | ||
26 | IDS(), \ | ||
27 | { }, \ | ||
28 | }; \ | ||
29 | static struct usb_serial_driver vendor##_device = { \ | ||
30 | .driver = { \ | ||
31 | .owner = THIS_MODULE, \ | ||
32 | .name = "stringify(vendor)", \ | ||
33 | }, \ | ||
34 | .id_table = vendor##_id_table, \ | ||
35 | .num_ports = 1, \ | ||
36 | }; | ||
37 | |||
38 | |||
39 | /* ZIO Motherboard USB driver */ | ||
40 | #define ZIO_IDS() \ | ||
41 | { USB_DEVICE(0x1CBE, 0x0103) } | ||
42 | DEVICE(zio, ZIO_IDS); | ||
43 | |||
44 | /* Funsoft Serial USB driver */ | ||
45 | #define FUNSOFT_IDS() \ | ||
46 | { USB_DEVICE(0x1404, 0xcddc) } | ||
47 | DEVICE(funsoft, FUNSOFT_IDS); | ||
48 | |||
49 | /* Infineon Flashloader driver */ | ||
50 | #define FLASHLOADER_IDS() \ | ||
51 | { USB_DEVICE(0x8087, 0x0716) } | ||
52 | DEVICE(flashloader, FLASHLOADER_IDS); | ||
53 | |||
54 | /* ViVOpay USB Serial Driver */ | ||
55 | #define VIVOPAY_IDS() \ | ||
56 | { USB_DEVICE(0x1d5f, 0x1004) } /* ViVOpay 8800 */ | ||
57 | DEVICE(vivopay, VIVOPAY_IDS); | ||
58 | |||
59 | /* Motorola USB Phone driver */ | ||
60 | #define MOTO_IDS() \ | ||
61 | { USB_DEVICE(0x05c6, 0x3197) }, /* unknown Motorola phone */ \ | ||
62 | { USB_DEVICE(0x0c44, 0x0022) }, /* unknown Mororola phone */ \ | ||
63 | { USB_DEVICE(0x22b8, 0x2a64) }, /* Motorola KRZR K1m */ \ | ||
64 | { USB_DEVICE(0x22b8, 0x2c84) }, /* Motorola VE240 phone */ \ | ||
65 | { USB_DEVICE(0x22b8, 0x2c64) } /* Motorola V950 phone */ | ||
66 | DEVICE(moto_modem, MOTO_IDS); | ||
67 | |||
68 | /* HP4x (48/49) Generic Serial driver */ | ||
69 | #define HP4X_IDS() \ | ||
70 | { USB_DEVICE(0x03f0, 0x0121) } | ||
71 | DEVICE(hp4x, HP4X_IDS); | ||
72 | |||
73 | /* Suunto ANT+ USB Driver */ | ||
74 | #define SUUNTO_IDS() \ | ||
75 | { USB_DEVICE(0x0fcf, 0x1008) } | ||
76 | DEVICE(suunto, SUUNTO_IDS); | ||
77 | |||
78 | /* Siemens USB/MPI adapter */ | ||
79 | #define SIEMENS_IDS() \ | ||
80 | { USB_DEVICE(0x908, 0x0004) } | ||
81 | DEVICE(siemens_mpi, SIEMENS_IDS); | ||
82 | |||
83 | /* All of the above structures mushed into two lists */ | ||
84 | static struct usb_serial_driver * const serial_drivers[] = { | ||
85 | &zio_device, | ||
86 | &funsoft_device, | ||
87 | &flashloader_device, | ||
88 | &vivopay_device, | ||
89 | &moto_modem_device, | ||
90 | &hp4x_device, | ||
91 | &suunto_device, | ||
92 | &siemens_mpi_device, | ||
93 | NULL | ||
94 | }; | ||
95 | |||
96 | static const struct usb_device_id id_table[] = { | ||
97 | ZIO_IDS(), | ||
98 | FUNSOFT_IDS(), | ||
99 | FLASHLOADER_IDS(), | ||
100 | VIVOPAY_IDS(), | ||
101 | MOTO_IDS(), | ||
102 | HP4X_IDS(), | ||
103 | SUUNTO_IDS(), | ||
104 | SIEMENS_IDS(), | ||
105 | { }, | ||
106 | }; | ||
107 | MODULE_DEVICE_TABLE(usb, id_table); | ||
108 | |||
109 | module_usb_serial_driver(serial_drivers, id_table); | ||
110 | MODULE_LICENSE("GPL"); | ||