Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
[pandora-kernel.git] / drivers / staging / comedi / drivers / addi-data / hwdrv_apci1032.h
1 /*
2  * Copyright (C) 2004,2005  ADDI-DATA GmbH for the source code of this module.
3  *
4  *      ADDI-DATA GmbH
5  *      Dieselstrasse 3
6  *      D-77833 Ottersweier
7  *      Tel: +19(0)7223/9493-0
8  *      Fax: +49(0)7223/9493-92
9  *      http://www.addi-data.com
10  *      info@addi-data.com
11  *
12  * This program is free software; you can redistribute it and/or modify it
13  * under the terms of the GNU General Public License as published by the Free
14  * Software Foundation; either version 2 of the License, or (at your option)
15  * any later version.
16  */
17
18 /*********      Definitions for APCI-1032 card  *****/
19
20 #define APCI1032_BOARD_VENDOR_ID 0x15B8
21 #define APCI1032_ADDRESS_RANGE  20
22 /* DIGITAL INPUT DEFINE */
23
24 #define APCI1032_DIGITAL_IP                     0
25 #define APCI1032_DIGITAL_IP_INTERRUPT_MODE1     4
26 #define APCI1032_DIGITAL_IP_INTERRUPT_MODE2     8
27 #define APCI1032_DIGITAL_IP_IRQ                 16
28
29 /* Digital Input IRQ Function Selection */
30 #define ADDIDATA_OR                  0
31 #define ADDIDATA_AND                 1
32
33 /* Digital Input Interrupt Status */
34 #define APCI1032_DIGITAL_IP_INTERRUPT_STATUS    12
35
36 /* Digital Input Interrupt Enable Disable. */
37 #define APCI1032_DIGITAL_IP_INTERRUPT_ENABLE    0x4
38 #define APCI1032_DIGITAL_IP_INTERRUPT_DISABLE   0xFFFFFFFB
39
40 /* ADDIDATA Enable Disable */
41
42 #define ADDIDATA_ENABLE                            1
43 #define ADDIDATA_DISABLE                           0
44
45 /* Hardware Layer  functions for Apci1032 */
46
47 /*
48 * DI for di read
49 */
50
51 int i_APCI1032_ConfigDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
52                                   struct comedi_insn *insn, unsigned int *data);
53
54 int i_APCI1032_Read1DigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
55                                  struct comedi_insn *insn, unsigned int *data);
56
57 int i_APCI1032_ReadMoreDigitalInput(struct comedi_device *dev, struct comedi_subdevice *s,
58                                     struct comedi_insn *insn, unsigned int *data);
59
60 /* Interrupt functions..... */
61
62 static void v_APCI1032_Interrupt(int irq, void *d);
63 /* Reset */
64 int i_APCI1032_Reset(struct comedi_device *dev);