136045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet/* 236045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * HP4x Calculators Serial USB driver 336045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * 436045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * Copyright (C) 2005 Arthur Huillet (ahuillet@users.sf.net) 535ecc486a3f1811b85b7b22196b8b7422d713b51Greg Kroah-Hartman * Copyright (C) 2001-2005 Greg Kroah-Hartman (greg@kroah.com) 636045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * 736045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * This program is free software; you can redistribute it and/or modify 836045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * it under the terms of the GNU General Public License as published by 936045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * the Free Software Foundation; either version 2 of the License, or 1036045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * (at your option) any later version. 1136045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * 123a262b2ea7c0905026c0be3618dba1f825e5387aAlan Cox * See Documentation/usb/usb-serial.txt for more information on using this 133a262b2ea7c0905026c0be3618dba1f825e5387aAlan Cox * driver 1436045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet */ 1536045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 1636045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#include <linux/kernel.h> 1736045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#include <linux/init.h> 1836045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#include <linux/tty.h> 1936045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#include <linux/module.h> 2036045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#include <linux/usb.h> 21a969888ce91673c7f4b86520d851a6f0d5a5fa7dGreg Kroah-Hartman#include <linux/usb/serial.h> 2236045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 2336045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet/* 2436045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet * Version Information 2536045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet */ 2636045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#define DRIVER_VERSION "v1.00" 2736045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#define DRIVER_DESC "HP4x (48/49) Generic Serial driver" 2836045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 2936045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#define HP_VENDOR_ID 0x03f0 3036045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet#define HP49GP_PRODUCT_ID 0x0121 3136045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 327d40d7e85a25e01948bcb4dc3eda1355af318337Németh Mártonstatic const struct usb_device_id id_table[] = { 3336045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet { USB_DEVICE(HP_VENDOR_ID, HP49GP_PRODUCT_ID) }, 3436045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet { } /* Terminating entry */ 3536045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet}; 3636045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 3736045fb77cb8b4043063ea54067907a1afd317b4Arthur HuilletMODULE_DEVICE_TABLE(usb, id_table); 3836045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 3936045fb77cb8b4043063ea54067907a1afd317b4Arthur Huilletstatic struct usb_driver hp49gp_driver = { 40269bda1c123c7caf88e1deb2264f9086f0344192Greg Kroah-Hartman .name = "hp4X", 4136045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet .probe = usb_serial_probe, 4236045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet .disconnect = usb_serial_disconnect, 4336045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet .id_table = id_table, 4436045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet}; 4536045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 46ea65370d025f5005649e5cb37c4d025e92c6fc38Greg Kroah-Hartmanstatic struct usb_serial_driver hp49gp_device = { 4718fcac353fdc7cd072b0d24c8667042e675a4c11Greg Kroah-Hartman .driver = { 4818fcac353fdc7cd072b0d24c8667042e675a4c11Greg Kroah-Hartman .owner = THIS_MODULE, 49269bda1c123c7caf88e1deb2264f9086f0344192Greg Kroah-Hartman .name = "hp4X", 5018fcac353fdc7cd072b0d24c8667042e675a4c11Greg Kroah-Hartman }, 5136045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet .id_table = id_table, 5236045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet .num_ports = 1, 5336045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet}; 5436045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 5597b6b6d2339f67eb17d954930a908b762af66228Alan Sternstatic struct usb_serial_driver * const serial_drivers[] = { 5697b6b6d2339f67eb17d954930a908b762af66228Alan Stern &hp49gp_device, NULL 5797b6b6d2339f67eb17d954930a908b762af66228Alan Stern}; 5897b6b6d2339f67eb17d954930a908b762af66228Alan Stern 5968e9c9a7fdbddab3407596b3e7f1a4972d045444Greg Kroah-Hartmanmodule_usb_serial_driver(hp49gp_driver, serial_drivers); 6036045fb77cb8b4043063ea54067907a1afd317b4Arthur Huillet 6136045fb77cb8b4043063ea54067907a1afd317b4Arthur HuilletMODULE_DESCRIPTION(DRIVER_DESC); 6236045fb77cb8b4043063ea54067907a1afd317b4Arthur HuilletMODULE_VERSION(DRIVER_VERSION); 6336045fb77cb8b4043063ea54067907a1afd317b4Arthur HuilletMODULE_LICENSE("GPL"); 64