Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] USB: add driver for funsoft usb serial device

Cc: David Clare <david@funsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

+75
+9
drivers/usb/serial/Kconfig
··· 158 158 To compile this driver as a module, choose M here: the 159 159 module will be called ftdi_sio. 160 160 161 + config USB_SERIAL_FUNSOFT 162 + tristate "USB Fundamental Software Dongle Driver" 163 + depends on USB_SERIAL 164 + ---help--- 165 + Say Y here if you want to use the Fundamental Software dongle. 166 + 167 + To compile this driver as a module, choose M here: the 168 + module will be called funsoft. 169 + 161 170 config USB_SERIAL_VISOR 162 171 tristate "USB Handspring Visor / Palm m50x / Sony Clie Driver" 163 172 depends on USB_SERIAL
+1
drivers/usb/serial/Makefile
··· 22 22 obj-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += io_ti.o 23 23 obj-$(CONFIG_USB_SERIAL_EMPEG) += empeg.o 24 24 obj-$(CONFIG_USB_SERIAL_FTDI_SIO) += ftdi_sio.o 25 + obj-$(CONFIG_USB_SERIAL_FUNSOFT) += funsoft.o 25 26 obj-$(CONFIG_USB_SERIAL_GARMIN) += garmin_gps.o 26 27 obj-$(CONFIG_USB_SERIAL_HP4X) += hp4x.o 27 28 obj-$(CONFIG_USB_SERIAL_IPAQ) += ipaq.o
+65
drivers/usb/serial/funsoft.c
··· 1 + /* 2 + * Funsoft Serial USB driver 3 + * 4 + * Copyright (C) 2006 Greg Kroah-Hartman <gregkh@suse.de> 5 + * 6 + * This program is free software; you can redistribute it and/or 7 + * modify it under the terms of the GNU General Public License version 8 + * 2 as published by the Free Software Foundation. 9 + */ 10 + 11 + #include <linux/kernel.h> 12 + #include <linux/init.h> 13 + #include <linux/tty.h> 14 + #include <linux/module.h> 15 + #include <linux/usb.h> 16 + #include "usb-serial.h" 17 + 18 + static struct usb_device_id id_table [] = { 19 + { USB_DEVICE(0x1404, 0xcddc) }, 20 + { }, 21 + }; 22 + MODULE_DEVICE_TABLE(usb, id_table); 23 + 24 + static struct usb_driver funsoft_driver = { 25 + .name = "funsoft", 26 + .probe = usb_serial_probe, 27 + .disconnect = usb_serial_disconnect, 28 + .id_table = id_table, 29 + .no_dynamic_id = 1, 30 + }; 31 + 32 + static struct usb_serial_driver funsoft_device = { 33 + .driver = { 34 + .owner = THIS_MODULE, 35 + .name = "funsoft", 36 + }, 37 + .id_table = id_table, 38 + .num_interrupt_in = NUM_DONT_CARE, 39 + .num_bulk_in = NUM_DONT_CARE, 40 + .num_bulk_out = NUM_DONT_CARE, 41 + .num_ports = 1, 42 + }; 43 + 44 + static int __init funsoft_init(void) 45 + { 46 + int retval; 47 + 48 + retval = usb_serial_register(&funsoft_device); 49 + if (retval) 50 + return retval; 51 + retval = usb_register(&funsoft_driver); 52 + if (retval) 53 + usb_serial_deregister(&funsoft_device); 54 + return retval; 55 + } 56 + 57 + static void __exit funsoft_exit(void) 58 + { 59 + usb_deregister(&funsoft_driver); 60 + usb_serial_deregister(&funsoft_device); 61 + } 62 + 63 + module_init(funsoft_init); 64 + module_exit(funsoft_exit); 65 + MODULE_LICENSE("GPL");