Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.33 77 lines 2.0 kB view raw
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");