aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2008-12-04 01:30:04 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2009-01-07 13:00:13 -0500
commit5aa637505fb8610cd2724b09fa0ab03fd6cdca63 (patch)
tree5bc02840fe23d9bcdcb3b0ea965fda96d47e493a /drivers/usb
parent57262b82d601c5ca8e3db219aebd332950f62ba1 (diff)
USB: add siemens_mpi usb-serial "stub" driver
This driver got rescued from a few years ago and was requested to be added. So I cleaned it up, ported it to the latest kernel version and here it is. Cc: Thomas Hergenhahn <thomas.hergenhahn@suse.de> Cc: Emmanuele <iemmav@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/serial/Kconfig8
-rw-r--r--drivers/usb/serial/Makefile1
-rw-r--r--drivers/usb/serial/siemens_mpi.c77
3 files changed, 86 insertions, 0 deletions
diff --git a/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig
index da30784a0ef2..b361f05cafac 100644
--- a/drivers/usb/serial/Kconfig
+++ b/drivers/usb/serial/Kconfig
@@ -496,6 +496,14 @@ config USB_SERIAL_SAFE_PADDED
496 bool "USB Secure Encapsulated Driver - Padded" 496 bool "USB Secure Encapsulated Driver - Padded"
497 depends on USB_SERIAL_SAFE 497 depends on USB_SERIAL_SAFE
498 498
499config USB_SERIAL_SIEMENS_MPI
500 tristate "USB Siemens MPI driver"
501 help
502 Say M here if you want to use a Siemens USB/MPI adapter.
503
504 To compile this driver as a module, choose M here: the
505 module will be called siemens_mpi.
506
499config USB_SERIAL_SIERRAWIRELESS 507config USB_SERIAL_SIERRAWIRELESS
500 tristate "USB Sierra Wireless Driver" 508 tristate "USB Sierra Wireless Driver"
501 help 509 help
diff --git a/drivers/usb/serial/Makefile b/drivers/usb/serial/Makefile
index 9a4f59e0ee5f..b75be91eb8f1 100644
--- a/drivers/usb/serial/Makefile
+++ b/drivers/usb/serial/Makefile
@@ -46,6 +46,7 @@ obj-$(CONFIG_USB_SERIAL_OPTION) += option.o
46obj-$(CONFIG_USB_SERIAL_OTI6858) += oti6858.o 46obj-$(CONFIG_USB_SERIAL_OTI6858) += oti6858.o
47obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o 47obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o
48obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o 48obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o
49obj-$(CONFIG_USB_SERIAL_SIEMENS_MPI) += siemens_mpi.o
49obj-$(CONFIG_USB_SERIAL_SIERRAWIRELESS) += sierra.o 50obj-$(CONFIG_USB_SERIAL_SIERRAWIRELESS) += sierra.o
50obj-$(CONFIG_USB_SERIAL_SPCP8X5) += spcp8x5.o 51obj-$(CONFIG_USB_SERIAL_SPCP8X5) += spcp8x5.o
51obj-$(CONFIG_USB_SERIAL_TI) += ti_usb_3410_5052.o 52obj-$(CONFIG_USB_SERIAL_TI) += ti_usb_3410_5052.o
diff --git a/drivers/usb/serial/siemens_mpi.c b/drivers/usb/serial/siemens_mpi.c
new file mode 100644
index 000000000000..951ea0c6ba77
--- /dev/null
+++ b/drivers/usb/serial/siemens_mpi.c
@@ -0,0 +1,77 @@
1/*
2 * Siemens USB-MPI Serial USB driver
3 *
4 * Copyright (C) 2005 Thomas Hergenhahn <thomas.hergenhahn@suse.de>
5 * Copyright (C) 2005,2008 Greg Kroah-Hartman <gregkh@suse.de>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License version
9 * 2 as published by the Free Software Foundation.
10 */
11
12#include <linux/kernel.h>
13#include <linux/init.h>
14#include <linux/tty.h>
15#include <linux/module.h>
16#include <linux/usb.h>
17#include <linux/usb/serial.h>
18
19/* Version Information */
20#define DRIVER_VERSION "Version 0.1 09/26/2005"
21#define DRIVER_AUTHOR "Thomas Hergenhahn@web.de http://libnodave.sf.net"
22#define DRIVER_DESC "Driver for Siemens USB/MPI adapter"
23
24
25static struct usb_device_id id_table[] = {
26 /* Vendor and product id for 6ES7-972-0CB20-0XA0 */
27 { USB_DEVICE(0x908, 0x0004) },
28 { },
29};
30MODULE_DEVICE_TABLE(usb, id_table);
31
32static struct usb_driver siemens_usb_mpi_driver = {
33 .name = "siemens_mpi",
34 .probe = usb_serial_probe,
35 .disconnect = usb_serial_disconnect,
36 .id_table = id_table,
37};
38
39static struct usb_serial_driver siemens_usb_mpi_device = {
40 .driver = {
41 .owner = THIS_MODULE,
42 .name = "siemens_mpi",
43 },
44 .id_table = id_table,
45 .num_ports = 1,
46};
47
48static int __init siemens_usb_mpi_init(void)
49{
50 int retval;
51
52 retval = usb_serial_register(&siemens_usb_mpi_device);
53 if (retval)
54 goto failed_usb_serial_register;
55 retval = usb_register(&siemens_usb_mpi_driver);
56 if (retval)
57 goto failed_usb_register;
58 printk(KERN_INFO DRIVER_DESC "\n");
59 printk(KERN_INFO DRIVER_VERSION " " DRIVER_AUTHOR "\n");
60 return retval;
61failed_usb_register:
62 usb_serial_deregister(&siemens_usb_mpi_device);
63failed_usb_serial_register:
64 return retval;
65}
66
67static void __exit siemens_usb_mpi_exit(void)
68{
69 usb_deregister(&siemens_usb_mpi_driver);
70 usb_serial_deregister(&siemens_usb_mpi_device);
71}
72
73module_init(siemens_usb_mpi_init);
74module_exit(siemens_usb_mpi_exit);
75MODULE_AUTHOR(DRIVER_AUTHOR);
76MODULE_DESCRIPTION(DRIVER_DESC);
77MODULE_LICENSE("GPL");