Commit | Line | Data |
---|---|---|
36045fb7 AH |
1 | /* |
2 | * HP4x Calculators Serial USB driver | |
3 | * | |
4 | * Copyright (C) 2005 Arthur Huillet (ahuillet@users.sf.net) | |
35ecc486 | 5 | * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com) |
36045fb7 AH |
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 | * | |
3a262b2e AC |
12 | * See Documentation/usb/usb-serial.txt for more information on using this |
13 | * driver | |
36045fb7 AH |
14 | */ |
15 | ||
36045fb7 | 16 | #include <linux/kernel.h> |
36045fb7 | 17 | #include <linux/init.h> |
36045fb7 | 18 | #include <linux/tty.h> |
36045fb7 | 19 | #include <linux/module.h> |
36045fb7 | 20 | #include <linux/usb.h> |
a969888c | 21 | #include <linux/usb/serial.h> |
36045fb7 AH |
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 | ||
7d40d7e8 | 32 | static const struct usb_device_id id_table[] = { |
36045fb7 AH |
33 | { USB_DEVICE(HP_VENDOR_ID, HP49GP_PRODUCT_ID) }, |
34 | { } /* Terminating entry */ | |
35 | }; | |
36 | ||
37 | MODULE_DEVICE_TABLE(usb, id_table); | |
38 | ||
39 | static struct usb_driver hp49gp_driver = { | |
269bda1c | 40 | .name = "hp4X", |
36045fb7 AH |
41 | .probe = usb_serial_probe, |
42 | .disconnect = usb_serial_disconnect, | |
43 | .id_table = id_table, | |
ba9dc657 | 44 | .no_dynamic_id = 1, |
36045fb7 AH |
45 | }; |
46 | ||
ea65370d | 47 | static struct usb_serial_driver hp49gp_device = { |
18fcac35 GKH |
48 | .driver = { |
49 | .owner = THIS_MODULE, | |
269bda1c | 50 | .name = "hp4X", |
18fcac35 | 51 | }, |
36045fb7 | 52 | .id_table = id_table, |
d9b1b787 | 53 | .usb_driver = &hp49gp_driver, |
36045fb7 AH |
54 | .num_ports = 1, |
55 | }; | |
56 | ||
57 | static 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; | |
c197a8db GKH |
66 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" |
67 | DRIVER_DESC "\n"); | |
36045fb7 AH |
68 | return 0; |
69 | failed_usb_register: | |
70 | usb_serial_deregister(&hp49gp_device); | |
71 | failed_usb_serial_register: | |
72 | return retval; | |
73 | } | |
74 | ||
36045fb7 AH |
75 | static void __exit hp49gp_exit(void) |
76 | { | |
77 | usb_deregister(&hp49gp_driver); | |
78 | usb_serial_deregister(&hp49gp_device); | |
79 | } | |
80 | ||
36045fb7 AH |
81 | module_init(hp49gp_init); |
82 | module_exit(hp49gp_exit); | |
83 | ||
84 | MODULE_DESCRIPTION(DRIVER_DESC); | |
85 | MODULE_VERSION(DRIVER_VERSION); | |
86 | MODULE_LICENSE("GPL"); |