Version:  2.0.40 2.2.26 2.4.37 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9

Linux/drivers/staging/comedi/drivers/das08_cs.c

  1 /*
  2  * Comedi driver for DAS008 PCMCIA boards
  3  *
  4  * COMEDI - Linux Control and Measurement Device Interface
  5  * Copyright (C) 2000 David A. Schleef <ds@schleef.org>
  6  * Copyright (C) 2001,2002,2003 Frank Mori Hess <fmhess@users.sourceforge.net>
  7  *
  8  * This program is free software; you can redistribute it and/or modify
  9  * it under the terms of the GNU General Public License as published by
 10  * the Free Software Foundation; either version 2 of the License, or
 11  * (at your option) any later version.
 12  *
 13  * This program is distributed in the hope that it will be useful,
 14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 16  * GNU General Public License for more details.
 17  *
 18  * PCMCIA support code for this driver is adapted from the dummy_cs.c
 19  * driver of the Linux PCMCIA Card Services package.
 20  *
 21  * The initial developer of the original code is David A. Hinds
 22  * <dahinds@users.sourceforge.net>.  Portions created by David A. Hinds
 23  * are Copyright (C) 1999 David A. Hinds.  All Rights Reserved.
 24  */
 25 
 26 /*
 27  * Driver: das08_cs
 28  * Description: DAS-08 PCMCIA boards
 29  * Author: Warren Jasper, ds, Frank Hess
 30  * Devices: [ComputerBoards] PCM-DAS08 (pcm-das08)
 31  * Status: works
 32  *
 33  * This is the PCMCIA-specific support split off from the
 34  * das08 driver.
 35  *
 36  * Configuration Options: none, uses PCMCIA auto config
 37  *
 38  * Command support does not exist, but could be added for this board.
 39  */
 40 
 41 #include <linux/module.h>
 42 
 43 #include "../comedi_pcmcia.h"
 44 
 45 #include "das08.h"
 46 
 47 static const struct das08_board_struct das08_cs_boards[] = {
 48         {
 49                 .name           = "pcm-das08",
 50                 .ai_nbits       = 12,
 51                 .ai_pg          = das08_bipolar5,
 52                 .ai_encoding    = das08_pcm_encode12,
 53                 .di_nchan       = 3,
 54                 .do_nchan       = 3,
 55                 .iosize         = 16,
 56         },
 57 };
 58 
 59 static int das08_cs_auto_attach(struct comedi_device *dev,
 60                                 unsigned long context)
 61 {
 62         struct pcmcia_device *link = comedi_to_pcmcia_dev(dev);
 63         struct das08_private_struct *devpriv;
 64         unsigned long iobase;
 65         int ret;
 66 
 67         /* The das08 driver needs the board_ptr */
 68         dev->board_ptr = &das08_cs_boards[0];
 69 
 70         link->config_flags |= CONF_AUTO_SET_IO;
 71         ret = comedi_pcmcia_enable(dev, NULL);
 72         if (ret)
 73                 return ret;
 74         iobase = link->resource[0]->start;
 75 
 76         devpriv = comedi_alloc_devpriv(dev, sizeof(*devpriv));
 77         if (!devpriv)
 78                 return -ENOMEM;
 79 
 80         return das08_common_attach(dev, iobase);
 81 }
 82 
 83 static struct comedi_driver driver_das08_cs = {
 84         .driver_name    = "das08_cs",
 85         .module         = THIS_MODULE,
 86         .auto_attach    = das08_cs_auto_attach,
 87         .detach         = comedi_pcmcia_disable,
 88 };
 89 
 90 static int das08_pcmcia_attach(struct pcmcia_device *link)
 91 {
 92         return comedi_pcmcia_auto_config(link, &driver_das08_cs);
 93 }
 94 
 95 static const struct pcmcia_device_id das08_cs_id_table[] = {
 96         PCMCIA_DEVICE_MANF_CARD(0x01c5, 0x4001),
 97         PCMCIA_DEVICE_NULL
 98 };
 99 MODULE_DEVICE_TABLE(pcmcia, das08_cs_id_table);
100 
101 static struct pcmcia_driver das08_cs_driver = {
102         .name           = "pcm-das08",
103         .owner          = THIS_MODULE,
104         .id_table       = das08_cs_id_table,
105         .probe          = das08_pcmcia_attach,
106         .remove         = comedi_pcmcia_auto_unconfig,
107 };
108 module_comedi_pcmcia_driver(driver_das08_cs, das08_cs_driver);
109 
110 MODULE_AUTHOR("David A. Schleef <ds@schleef.org>");
111 MODULE_AUTHOR("Frank Mori Hess <fmhess@users.sourceforge.net>");
112 MODULE_DESCRIPTION("Comedi driver for ComputerBoards DAS-08 PCMCIA boards");
113 MODULE_LICENSE("GPL");
114 

This page was automatically generated by LXR 0.3.1 (source).  •  Linux is a registered trademark of Linus Torvalds  •  Contact us