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