]>
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 | * | |
12 | * See Documentation/usb/usb-serial.txt for more information on using this driver | |
13 | */ | |
14 | ||
15 | #include <linux/config.h> | |
16 | #include <linux/kernel.h> | |
36045fb7 | 17 | #include <linux/init.h> |
36045fb7 | 18 | #include <linux/tty.h> |
36045fb7 | 19 | #include <linux/module.h> |
36045fb7 AH |
20 | #include <linux/usb.h> |
21 | #include "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 | ||
36045fb7 AH |
32 | static struct usb_device_id id_table [] = { |
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 = { | |
40 | .owner = THIS_MODULE, | |
41 | .name = "HP4X", | |
42 | .probe = usb_serial_probe, | |
43 | .disconnect = usb_serial_disconnect, | |
44 | .id_table = id_table, | |
45 | }; | |
46 | ||
ea65370d | 47 | static struct usb_serial_driver hp49gp_device = { |
18fcac35 GKH |
48 | .driver = { |
49 | .owner = THIS_MODULE, | |
50 | }, | |
36045fb7 AH |
51 | .name = "HP4X", |
52 | .id_table = id_table, | |
53 | .num_interrupt_in = NUM_DONT_CARE, | |
54 | .num_bulk_in = NUM_DONT_CARE, | |
55 | .num_bulk_out = NUM_DONT_CARE, | |
56 | .num_ports = 1, | |
57 | }; | |
58 | ||
59 | static int __init hp49gp_init(void) | |
60 | { | |
61 | int retval; | |
62 | retval = usb_serial_register(&hp49gp_device); | |
63 | if (retval) | |
64 | goto failed_usb_serial_register; | |
65 | retval = usb_register(&hp49gp_driver); | |
66 | if (retval) | |
67 | goto failed_usb_register; | |
68 | info(DRIVER_DESC " " DRIVER_VERSION); | |
69 | return 0; | |
70 | failed_usb_register: | |
71 | usb_serial_deregister(&hp49gp_device); | |
72 | failed_usb_serial_register: | |
73 | return retval; | |
74 | } | |
75 | ||
36045fb7 AH |
76 | static void __exit hp49gp_exit(void) |
77 | { | |
78 | usb_deregister(&hp49gp_driver); | |
79 | usb_serial_deregister(&hp49gp_device); | |
80 | } | |
81 | ||
36045fb7 AH |
82 | module_init(hp49gp_init); |
83 | module_exit(hp49gp_exit); | |
84 | ||
85 | MODULE_DESCRIPTION(DRIVER_DESC); | |
86 | MODULE_VERSION(DRIVER_VERSION); | |
87 | MODULE_LICENSE("GPL"); |