diff options
Diffstat (limited to 'drivers/usb/serial/hp4x.c')
-rw-r--r-- | drivers/usb/serial/hp4x.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/drivers/usb/serial/hp4x.c b/drivers/usb/serial/hp4x.c new file mode 100644 index 000000000000..64d55fbd206e --- /dev/null +++ b/drivers/usb/serial/hp4x.c | |||
@@ -0,0 +1,85 @@ | |||
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 driver | ||
13 | */ | ||
14 | |||
15 | #include <linux/config.h> | ||
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 "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 | |||
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 | |||
47 | static struct usb_serial_device_type hp49gp_device = { | ||
48 | .owner = THIS_MODULE, | ||
49 | .name = "HP4X", | ||
50 | .id_table = id_table, | ||
51 | .num_interrupt_in = NUM_DONT_CARE, | ||
52 | .num_bulk_in = NUM_DONT_CARE, | ||
53 | .num_bulk_out = NUM_DONT_CARE, | ||
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; | ||
66 | info(DRIVER_DESC " " DRIVER_VERSION); | ||
67 | return 0; | ||
68 | failed_usb_register: | ||
69 | usb_serial_deregister(&hp49gp_device); | ||
70 | failed_usb_serial_register: | ||
71 | return retval; | ||
72 | } | ||
73 | |||
74 | static void __exit hp49gp_exit(void) | ||
75 | { | ||
76 | usb_deregister(&hp49gp_driver); | ||
77 | usb_serial_deregister(&hp49gp_device); | ||
78 | } | ||
79 | |||
80 | module_init(hp49gp_init); | ||
81 | module_exit(hp49gp_exit); | ||
82 | |||
83 | MODULE_DESCRIPTION(DRIVER_DESC); | ||
84 | MODULE_VERSION(DRIVER_VERSION); | ||
85 | MODULE_LICENSE("GPL"); | ||