Commit 5aa637505fb8610cd2724b09fa0ab03fd6cdca63
1 parent
57262b82d6
Exists in
master
and in
7 other branches
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>
Showing 3 changed files with 86 additions and 0 deletions Side-by-side Diff
drivers/usb/serial/Kconfig
... | ... | @@ -496,6 +496,14 @@ |
496 | 496 | bool "USB Secure Encapsulated Driver - Padded" |
497 | 497 | depends on USB_SERIAL_SAFE |
498 | 498 | |
499 | +config 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 | + | |
499 | 507 | config USB_SERIAL_SIERRAWIRELESS |
500 | 508 | tristate "USB Sierra Wireless Driver" |
501 | 509 | help |
drivers/usb/serial/Makefile
... | ... | @@ -46,6 +46,7 @@ |
46 | 46 | obj-$(CONFIG_USB_SERIAL_OTI6858) += oti6858.o |
47 | 47 | obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o |
48 | 48 | obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o |
49 | +obj-$(CONFIG_USB_SERIAL_SIEMENS_MPI) += siemens_mpi.o | |
49 | 50 | obj-$(CONFIG_USB_SERIAL_SIERRAWIRELESS) += sierra.o |
50 | 51 | obj-$(CONFIG_USB_SERIAL_SPCP8X5) += spcp8x5.o |
51 | 52 | obj-$(CONFIG_USB_SERIAL_TI) += ti_usb_3410_5052.o |
drivers/usb/serial/siemens_mpi.c
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 | + | |
25 | +static struct usb_device_id id_table[] = { | |
26 | + /* Vendor and product id for 6ES7-972-0CB20-0XA0 */ | |
27 | + { USB_DEVICE(0x908, 0x0004) }, | |
28 | + { }, | |
29 | +}; | |
30 | +MODULE_DEVICE_TABLE(usb, id_table); | |
31 | + | |
32 | +static 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 | + | |
39 | +static 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 | + | |
48 | +static 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; | |
61 | +failed_usb_register: | |
62 | + usb_serial_deregister(&siemens_usb_mpi_device); | |
63 | +failed_usb_serial_register: | |
64 | + return retval; | |
65 | +} | |
66 | + | |
67 | +static 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 | + | |
73 | +module_init(siemens_usb_mpi_init); | |
74 | +module_exit(siemens_usb_mpi_exit); | |
75 | +MODULE_AUTHOR(DRIVER_AUTHOR); | |
76 | +MODULE_DESCRIPTION(DRIVER_DESC); | |
77 | +MODULE_LICENSE("GPL"); |