Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.15.
 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
20static struct usb_device_id id_table [] = {
21	/* ViVOpay 8800 */
22	{ USB_DEVICE(VIVOPAY_VENDOR_ID, 0x1004) },
23	{ },
24};
25
26MODULE_DEVICE_TABLE(usb, id_table);
27
28static 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
36static 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
46static 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;
58failed_usb_register:
59	usb_serial_deregister(&vivopay_serial_device);
60failed_usb_serial_register:
61	return retval;
62}
63
64static void __exit vivopay_serial_exit(void)
65{
66	usb_deregister(&vivopay_serial_driver);
67	usb_serial_deregister(&vivopay_serial_device);
68}
69
70module_init(vivopay_serial_init);
71module_exit(vivopay_serial_exit);
72
73MODULE_AUTHOR("Forest Bond <forest.bond@outpostembedded.com>");
74MODULE_DESCRIPTION(DRIVER_DESC);
75MODULE_VERSION(DRIVER_VERSION);
76MODULE_LICENSE("GPL");