3 * Copyright (C) 2009 Outpost Embedded, LLC
6 #include <linux/kernel.h>
7 #include <linux/init.h>
9 #include <linux/module.h>
10 #include <linux/usb.h>
11 #include <linux/usb/serial.h>
14 #define DRIVER_VERSION "v1.0"
15 #define DRIVER_DESC "ViVOpay USB Serial Driver"
17 #define VIVOPAY_VENDOR_ID 0x1d5f
20 static struct usb_device_id id_table [] = {
22 { USB_DEVICE(VIVOPAY_VENDOR_ID, 0x1004) },
26 MODULE_DEVICE_TABLE(usb, id_table);
28 static struct usb_driver vivopay_serial_driver = {
29 .name = "vivopay-serial",
30 .probe = usb_serial_probe,
31 .disconnect = usb_serial_disconnect,
36 static struct usb_serial_driver vivopay_serial_device = {
39 .name = "vivopay-serial",
42 .usb_driver = &vivopay_serial_driver,
46 static int __init vivopay_serial_init(void)
49 retval = usb_serial_register(&vivopay_serial_device);
51 goto failed_usb_serial_register;
52 retval = usb_register(&vivopay_serial_driver);
54 goto failed_usb_register;
55 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
59 usb_serial_deregister(&vivopay_serial_device);
60 failed_usb_serial_register:
64 static void __exit vivopay_serial_exit(void)
66 usb_deregister(&vivopay_serial_driver);
67 usb_serial_deregister(&vivopay_serial_device);
70 module_init(vivopay_serial_init);
71 module_exit(vivopay_serial_exit);
74 MODULE_DESCRIPTION(DRIVER_DESC);
75 MODULE_VERSION(DRIVER_VERSION);
76 MODULE_LICENSE("GPL");