Commit 86d466b8 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8bba4439
......@@ -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;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment