Commit 5aa637505fb8610cd2724b09fa0ab03fd6cdca63

Authored by Greg Kroah-Hartman
1 parent 57262b82d6

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");