15272098365514ab232fa6a695d58c3961fec6b7aForest Bond/*
25272098365514ab232fa6a695d58c3961fec6b7aForest Bond * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com)
35272098365514ab232fa6a695d58c3961fec6b7aForest Bond * Copyright (C) 2009 Outpost Embedded, LLC
45272098365514ab232fa6a695d58c3961fec6b7aForest Bond */
55272098365514ab232fa6a695d58c3961fec6b7aForest Bond
65272098365514ab232fa6a695d58c3961fec6b7aForest Bond#include <linux/kernel.h>
75272098365514ab232fa6a695d58c3961fec6b7aForest Bond#include <linux/init.h>
85272098365514ab232fa6a695d58c3961fec6b7aForest Bond#include <linux/tty.h>
95272098365514ab232fa6a695d58c3961fec6b7aForest Bond#include <linux/module.h>
105272098365514ab232fa6a695d58c3961fec6b7aForest Bond#include <linux/usb.h>
115272098365514ab232fa6a695d58c3961fec6b7aForest Bond#include <linux/usb/serial.h>
125272098365514ab232fa6a695d58c3961fec6b7aForest Bond
135272098365514ab232fa6a695d58c3961fec6b7aForest Bond
145272098365514ab232fa6a695d58c3961fec6b7aForest Bond#define DRIVER_VERSION "v1.0"
155272098365514ab232fa6a695d58c3961fec6b7aForest Bond#define DRIVER_DESC "ViVOpay USB Serial Driver"
165272098365514ab232fa6a695d58c3961fec6b7aForest Bond
175272098365514ab232fa6a695d58c3961fec6b7aForest Bond#define VIVOPAY_VENDOR_ID 0x1d5f
185272098365514ab232fa6a695d58c3961fec6b7aForest Bond
195272098365514ab232fa6a695d58c3961fec6b7aForest Bond
205272098365514ab232fa6a695d58c3961fec6b7aForest Bondstatic struct usb_device_id id_table [] = {
215272098365514ab232fa6a695d58c3961fec6b7aForest Bond	/* ViVOpay 8800 */
225272098365514ab232fa6a695d58c3961fec6b7aForest Bond	{ USB_DEVICE(VIVOPAY_VENDOR_ID, 0x1004) },
235272098365514ab232fa6a695d58c3961fec6b7aForest Bond	{ },
245272098365514ab232fa6a695d58c3961fec6b7aForest Bond};
255272098365514ab232fa6a695d58c3961fec6b7aForest Bond
265272098365514ab232fa6a695d58c3961fec6b7aForest BondMODULE_DEVICE_TABLE(usb, id_table);
275272098365514ab232fa6a695d58c3961fec6b7aForest Bond
285272098365514ab232fa6a695d58c3961fec6b7aForest Bondstatic struct usb_driver vivopay_serial_driver = {
295272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.name =			"vivopay-serial",
305272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.probe =		usb_serial_probe,
315272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.disconnect =		usb_serial_disconnect,
325272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.id_table =		id_table,
335272098365514ab232fa6a695d58c3961fec6b7aForest Bond};
345272098365514ab232fa6a695d58c3961fec6b7aForest Bond
355272098365514ab232fa6a695d58c3961fec6b7aForest Bondstatic struct usb_serial_driver vivopay_serial_device = {
365272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.driver = {
375272098365514ab232fa6a695d58c3961fec6b7aForest Bond		.owner =	THIS_MODULE,
385272098365514ab232fa6a695d58c3961fec6b7aForest Bond		.name =		"vivopay-serial",
395272098365514ab232fa6a695d58c3961fec6b7aForest Bond	},
405272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.id_table =		id_table,
415272098365514ab232fa6a695d58c3961fec6b7aForest Bond	.num_ports =		1,
425272098365514ab232fa6a695d58c3961fec6b7aForest Bond};
435272098365514ab232fa6a695d58c3961fec6b7aForest Bond
4429618e9fb5507b9fcf07f739a8506a3640495945Alan Sternstatic struct usb_serial_driver * const serial_drivers[] = {
4529618e9fb5507b9fcf07f739a8506a3640495945Alan Stern	&vivopay_serial_device, NULL
4629618e9fb5507b9fcf07f739a8506a3640495945Alan Stern};
4729618e9fb5507b9fcf07f739a8506a3640495945Alan Stern
48b99dab079445f5d586d4d9e0f81d3d07ecbf51f4Greg Kroah-Hartmanmodule_usb_serial_driver(vivopay_serial_driver, serial_drivers);
495272098365514ab232fa6a695d58c3961fec6b7aForest Bond
505272098365514ab232fa6a695d58c3961fec6b7aForest BondMODULE_AUTHOR("Forest Bond <forest.bond@outpostembedded.com>");
515272098365514ab232fa6a695d58c3961fec6b7aForest BondMODULE_DESCRIPTION(DRIVER_DESC);
525272098365514ab232fa6a695d58c3961fec6b7aForest BondMODULE_VERSION(DRIVER_VERSION);
535272098365514ab232fa6a695d58c3961fec6b7aForest BondMODULE_LICENSE("GPL");
54