summaryrefslogtreecommitdiff
path: root/drivers/staging/comedi/drivers/contec_pci_dio.c
diff options
context:
space:
mode:
authorH Hartley Sweeten <hartleys@visionengravers.com>2012-08-15 17:31:39 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-08-16 11:30:40 -0700
commit86d466b86e0c04b2f0f6ae41f0de75082865912d (patch)
tree44eaf8730b42f104408edac21d1e5dc344499a54 /drivers/staging/comedi/drivers/contec_pci_dio.c
parent8bba4439fb784d9f1aa74c1e13a42cd21f989ffc (diff)
staging: comedi: contec_pci_dio: define register map for board
Only one board type is supported by this driver. Instead of passing the register offsets for the digital in/out ports in the boardinfo, define the register map and use that to access the ports. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/comedi/drivers/contec_pci_dio.c')
-rw-r--r--drivers/staging/comedi/drivers/contec_pci_dio.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/staging/comedi/drivers/contec_pci_dio.c b/drivers/staging/comedi/drivers/contec_pci_dio.c
index 24427ca65711..698d05b90d2f 100644
--- a/drivers/staging/comedi/drivers/contec_pci_dio.c
+++ b/drivers/staging/comedi/drivers/contec_pci_dio.c
@@ -42,26 +42,28 @@ enum contec_model {
struct contec_board {
const char *name;
- int in_offs;
- int out_offs;
};
static const struct contec_board contec_boards[] = {
- {"PIO1616L", 0, 2 },
+ {"PIO1616L", },
};
#define PCI_DEVICE_ID_PIO1616L 0x8172
+/*
+ * Register map
+ */
+#define PIO1616L_DI_REG 0x00
+#define PIO1616L_DO_REG 0x02
+
static int contec_do_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
- const struct contec_board *thisboard = comedi_board(dev);
-
if (data[0]) {
s->state &= ~data[0];
s->state |= data[0] & data[1];
- outw(s->state, dev->iobase + thisboard->out_offs);
+ outw(s->state, dev->iobase + PIO1616L_DO_REG);
}
return insn->n;
}
@@ -70,9 +72,7 @@ static int contec_di_insn_bits(struct comedi_device *dev,
struct comedi_subdevice *s,
struct comedi_insn *insn, unsigned int *data)
{
- const struct contec_board *thisboard = comedi_board(dev);
-
- data[1] = inw(dev->iobase + thisboard->in_offs);
+ data[1] = inw(dev->iobase + PIO1616L_DI_REG);
return insn->n;
}