On Thu, 25 Jul 2013, Greg Kroah-Hartman wrote:

> From: Greg Kroah-Hartman <gre...@linuxfoundation.org>
> 
> This adds a driver for the Suunto ANT+ USB device, exposing it as a usb
> serial device.  This lets the userspace "gant" program to talk to the
> device to communicate over the ANT+ protocol to any devices it finds.
> 
> Reported-by: Steinar Gunderson <sgunder...@bigfoot.com>
> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
> 
> ---
>  drivers/usb/serial/Kconfig  |    7 +++++++
>  drivers/usb/serial/Makefile |    1 +
>  drivers/usb/serial/suunto.c |   41 +++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 49 insertions(+)
> 
> --- a/drivers/usb/serial/Kconfig
> +++ b/drivers/usb/serial/Kconfig
> @@ -719,6 +719,13 @@ config USB_SERIAL_FLASHLOADER
>         To compile this driver as a module, choose M here: the
>         module will be called flashloader.
>  
> +config USB_SERIAL_SUUNTO
> +     tristate "USB Suunto ANT+ driver"
> +     help
> +       Say Y here if you want to usb the Suunto ANT+ USB device.
> +
> +       To compile this driver as a module, choose M here: the
> +       module will be called suunto.
>  
>  config USB_SERIAL_DEBUG
>       tristate "USB Debugging Device"
> --- a/drivers/usb/serial/Makefile
> +++ b/drivers/usb/serial/Makefile
> @@ -54,6 +54,7 @@ obj-$(CONFIG_USB_SERIAL_SIEMENS_MPI)                +=
>  obj-$(CONFIG_USB_SERIAL_SIERRAWIRELESS)              += sierra.o
>  obj-$(CONFIG_USB_SERIAL_SPCP8X5)             += spcp8x5.o
>  obj-$(CONFIG_USB_SERIAL_SSU100)                      += ssu100.o
> +obj-$(CONFIG_USB_SERIAL_SUUNTO)                      += suunto.o
>  obj-$(CONFIG_USB_SERIAL_SYMBOL)                      += symbolserial.o
>  obj-$(CONFIG_USB_SERIAL_WWAN)                        += usb_wwan.o
>  obj-$(CONFIG_USB_SERIAL_TI)                  += ti_usb_3410_5052.o
> --- /dev/null
> +++ b/drivers/usb/serial/suunto.c
> @@ -0,0 +1,41 @@
> +/*
> + * Suunto ANT+ USB Driver
> + *
> + * Copyright (C) 2013 Greg Kroah-Hartman <gre...@linuxfoundation.org>
> + * Copyright (C) 2013 Linux Foundation
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License version 2 as published 
> by
> + * the Free Software Foundation only.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/init.h>
> +#include <linux/tty.h>
> +#include <linux/module.h>
> +#include <linux/usb.h>
> +#include <linux/usb/serial.h>
> +#include <linux/uaccess.h>
> +
> +static const struct usb_device_id id_table[] = {
> +     { USB_DEVICE(0x0fcf, 0x1008) },
> +     { },
> +};
> +MODULE_DEVICE_TABLE(usb, id_table);
> +
> +static struct usb_serial_driver suunto_device = {
> +     .driver = {
> +             .owner =        THIS_MODULE,
> +             .name =         KBUILD_MODNAME,
> +     },
> +     .id_table =             id_table,
> +     .num_ports =            1,
> +};
> +
> +static struct usb_serial_driver * const serial_drivers[] = {
> +     &suunto_device,
> +     NULL,
> +};
> +
> +module_usb_serial_driver(serial_drivers, id_table);
> +MODULE_LICENSE("GPL");

Would it be a good idea to combine all the little do-nothing modules 
like this into one single source file?  Then adding a new device 
would require only two things:

        Change the help message for the Kconfig entry;

        Add a line to the id_table.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to