Commit | Line | Data |
---|---|---|
52720983 FB |
1 | /* |
2 | * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com) | |
3 | * Copyright (C) 2009 Outpost Embedded, LLC | |
4 | */ | |
5 | ||
6 | #include <linux/kernel.h> | |
7 | #include <linux/init.h> | |
8 | #include <linux/tty.h> | |
9 | #include <linux/module.h> | |
10 | #include <linux/usb.h> | |
11 | #include <linux/usb/serial.h> | |
12 | ||
13 | ||
14 | #define DRIVER_VERSION "v1.0" | |
15 | #define DRIVER_DESC "ViVOpay USB Serial Driver" | |
16 | ||
17 | #define VIVOPAY_VENDOR_ID 0x1d5f | |
18 | ||
19 | ||
20 | static struct usb_device_id id_table [] = { | |
21 | /* ViVOpay 8800 */ | |
22 | { USB_DEVICE(VIVOPAY_VENDOR_ID, 0x1004) }, | |
23 | { }, | |
24 | }; | |
25 | ||
26 | MODULE_DEVICE_TABLE(usb, id_table); | |
27 | ||
28 | static struct usb_driver vivopay_serial_driver = { | |
29 | .name = "vivopay-serial", | |
30 | .probe = usb_serial_probe, | |
31 | .disconnect = usb_serial_disconnect, | |
32 | .id_table = id_table, | |
33 | .no_dynamic_id = 1, | |
34 | }; | |
35 | ||
36 | static struct usb_serial_driver vivopay_serial_device = { | |
37 | .driver = { | |
38 | .owner = THIS_MODULE, | |
39 | .name = "vivopay-serial", | |
40 | }, | |
41 | .id_table = id_table, | |
42 | .usb_driver = &vivopay_serial_driver, | |
43 | .num_ports = 1, | |
44 | }; | |
45 | ||
46 | static int __init vivopay_serial_init(void) | |
47 | { | |
48 | int retval; | |
49 | retval = usb_serial_register(&vivopay_serial_device); | |
50 | if (retval) | |
51 | goto failed_usb_serial_register; | |
52 | retval = usb_register(&vivopay_serial_driver); | |
53 | if (retval) | |
54 | goto failed_usb_register; | |
55 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":" | |
56 | DRIVER_DESC "\n"); | |
57 | return 0; | |
58 | failed_usb_register: | |
59 | usb_serial_deregister(&vivopay_serial_device); | |
60 | failed_usb_serial_register: | |
61 | return retval; | |
62 | } | |
63 | ||
64 | static void __exit vivopay_serial_exit(void) | |
65 | { | |
66 | usb_deregister(&vivopay_serial_driver); | |
67 | usb_serial_deregister(&vivopay_serial_device); | |
68 | } | |
69 | ||
70 | module_init(vivopay_serial_init); | |
71 | module_exit(vivopay_serial_exit); | |
72 | ||
73 | MODULE_AUTHOR("Forest Bond <forest.bond@outpostembedded.com>"); | |
74 | MODULE_DESCRIPTION(DRIVER_DESC); | |
75 | MODULE_VERSION(DRIVER_VERSION); | |
76 | MODULE_LICENSE("GPL"); |