• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/serial/
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 const 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	.usb_driver =		&siemens_usb_mpi_driver,
46	.num_ports =		1,
47};
48
49static int __init siemens_usb_mpi_init(void)
50{
51	int retval;
52
53	retval = usb_serial_register(&siemens_usb_mpi_device);
54	if (retval)
55		goto failed_usb_serial_register;
56	retval = usb_register(&siemens_usb_mpi_driver);
57	if (retval)
58		goto failed_usb_register;
59	printk(KERN_INFO DRIVER_DESC "\n");
60	printk(KERN_INFO DRIVER_VERSION " " DRIVER_AUTHOR "\n");
61	return retval;
62failed_usb_register:
63	usb_serial_deregister(&siemens_usb_mpi_device);
64failed_usb_serial_register:
65	return retval;
66}
67
68static void __exit siemens_usb_mpi_exit(void)
69{
70	usb_deregister(&siemens_usb_mpi_driver);
71	usb_serial_deregister(&siemens_usb_mpi_device);
72}
73
74module_init(siemens_usb_mpi_init);
75module_exit(siemens_usb_mpi_exit);
76MODULE_AUTHOR(DRIVER_AUTHOR);
77MODULE_DESCRIPTION(DRIVER_DESC);
78MODULE_LICENSE("GPL");
79