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 | ||
36045fb7 | 15 | #include <linux/kernel.h> |
36045fb7 | 16 | #include <linux/init.h> |
36045fb7 | 17 | #include <linux/tty.h> |
36045fb7 | 18 | #include <linux/module.h> |
36045fb7 | 19 | #include <linux/usb.h> |
a969888c | 20 | #include <linux/usb/serial.h> |
36045fb7 AH |
21 | |
22 | /* | |
23 | * Version Information | |
24 | */ | |
25 | #define DRIVER_VERSION "v1.00" | |
26 | #define DRIVER_DESC "HP4x (48/49) Generic Serial driver" | |
27 | ||
28 | #define HP_VENDOR_ID 0x03f0 | |
29 | #define HP49GP_PRODUCT_ID 0x0121 | |
30 | ||
36045fb7 AH |
31 | static struct usb_device_id id_table [] = { |
32 | { USB_DEVICE(HP_VENDOR_ID, HP49GP_PRODUCT_ID) }, | |
33 | { } /* Terminating entry */ | |
34 | }; | |
35 | ||
36 | MODULE_DEVICE_TABLE(usb, id_table); | |
37 | ||
38 | static struct usb_driver hp49gp_driver = { | |
269bda1c | 39 | .name = "hp4X", |
36045fb7 AH |
40 | .probe = usb_serial_probe, |
41 | .disconnect = usb_serial_disconnect, | |
42 | .id_table = id_table, | |
ba9dc657 | 43 | .no_dynamic_id = 1, |
36045fb7 AH |
44 | }; |
45 | ||
ea65370d | 46 | static struct usb_serial_driver hp49gp_device = { |
18fcac35 GKH |
47 | .driver = { |
48 | .owner = THIS_MODULE, | |
269bda1c | 49 | .name = "hp4X", |
18fcac35 | 50 | }, |
36045fb7 AH |
51 | .id_table = id_table, |
52 | .num_interrupt_in = NUM_DONT_CARE, | |
53 | .num_bulk_in = NUM_DONT_CARE, | |
54 | .num_bulk_out = NUM_DONT_CARE, | |
55 | .num_ports = 1, | |
56 | }; | |
57 | ||
58 | static int __init hp49gp_init(void) | |
59 | { | |
60 | int retval; | |
61 | retval = usb_serial_register(&hp49gp_device); | |
62 | if (retval) | |
63 | goto failed_usb_serial_register; | |
64 | retval = usb_register(&hp49gp_driver); | |
65 | if (retval) | |
66 | goto failed_usb_register; | |
67 | info(DRIVER_DESC " " DRIVER_VERSION); | |
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"); |