Version:  2.0.40 2.2.26 2.4.37 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 4.0

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

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

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