linux/drivers/usb/serial/hp4x.c History
<<
>>
Prefs
   1/*
   2 * HP4x Calculators Serial USB driver
   3 *
   4 * Copyright (C) 2005 Arthur Huillet (ahuillet@users.sf.net)
   5 * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com)
   6 *
   7 *      This program is free software; you can redistribute it and/or modify
   8 *      it under the terms of the GNU General Public License as published by
   9 *      the Free Software Foundation; either version 2 of the License, or
  10 *      (at your option) any later version.
  11 *
  12 * See Documentation/usb/usb-serial.txt for more information on using this
  13 * driver
  14 */
  15
  16#include <linux/kernel.h>
  17#include <linux/init.h>
  18#include <linux/tty.h>
  19#include <linux/module.h>
  20#include <linux/usb.h>
  21#include <linux/usb/serial.h>
  22
  23/*
  24 * Version Information
  25 */
  26#define DRIVER_VERSION "v1.00"
  27#define DRIVER_DESC "HP4x (48/49) Generic Serial driver"
  28
  29#define HP_VENDOR_ID 0x03f0
  30#define HP49GP_PRODUCT_ID 0x0121
  31
  32static const struct usb_device_id id_table[] = {
  33        { USB_DEVICE(HP_VENDOR_ID, HP49GP_PRODUCT_ID) },
  34        { }                                     /* Terminating entry */
  35};
  36
  37MODULE_DEVICE_TABLE(usb, id_table);
  38
  39static struct usb_driver hp49gp_driver = {
  40        .name =         "hp4X",
  41        .probe =        usb_serial_probe,
  42        .disconnect =   usb_serial_disconnect,
  43        .id_table =     id_table,
  44        .no_dynamic_id =        1,
  45};
  46
  47static struct usb_serial_driver hp49gp_device = {
  48        .driver = {
  49                .owner =        THIS_MODULE,
  50                .name =         "hp4X",
  51        },
  52        .id_table =             id_table,
  53        .usb_driver =           &hp49gp_driver,
  54        .num_ports =            1,
  55};
  56
  57static int __init hp49gp_init(void)
  58{
  59        int retval;
  60        retval = usb_serial_register(&hp49gp_device);
  61        if (retval)
  62                goto failed_usb_serial_register;
  63        retval = usb_register(&hp49gp_driver);
  64        if (retval)
  65                goto failed_usb_register;
  66        printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
  67               DRIVER_DESC "\n");
  68        return 0;
  69failed_usb_register:
  70        usb_serial_deregister(&hp49gp_device);
  71failed_usb_serial_register:
  72        return retval;
  73}
  74
  75static void __exit hp49gp_exit(void)
  76{
  77        usb_deregister(&hp49gp_driver);
  78        usb_serial_deregister(&hp49gp_device);
  79}
  80
  81module_init(hp49gp_init);
  82module_exit(hp49gp_exit);
  83
  84MODULE_DESCRIPTION(DRIVER_DESC);
  85MODULE_VERSION(DRIVER_VERSION);
  86MODULE_LICENSE("GPL");
  87
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.