staging: comedi: amplc_dio200: add 32-bit register access functions
authorIan Abbott <abbotti@mev.co.uk>
Wed, 24 Oct 2012 15:48:10 +0000 (16:48 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Oct 2012 22:25:22 +0000 (15:25 -0700)
These are currently unused but will be used to support extra features of
the PCIe boards.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/amplc_dio200.c

index 34bbf9bddcccd8b98869f191ad35686ab94bd06a..768a269d48f816005eb0636e4818b9517234485c 100644 (file)
@@ -679,6 +679,38 @@ static void dio200_write8(struct comedi_device *dev, unsigned int offset,
                writeb(val, devpriv->io.u.membase + offset);
 }
 
+/*
+ * Read 32-bit register.
+ */
+static unsigned int dio200_read32(struct comedi_device *dev,
+                                 unsigned int offset)
+{
+       const struct dio200_board *thisboard = comedi_board(dev);
+       struct dio200_private *devpriv = dev->private;
+
+       offset <<= thisboard->mainshift;
+       if (devpriv->io.regtype == io_regtype)
+               return inl(devpriv->io.u.iobase + offset);
+       else
+               return readl(devpriv->io.u.membase + offset);
+}
+
+/*
+ * Write 32-bit register.
+ */
+static void dio200_write32(struct comedi_device *dev, unsigned int offset,
+                          unsigned int val)
+{
+       const struct dio200_board *thisboard = comedi_board(dev);
+       struct dio200_private *devpriv = dev->private;
+
+       offset <<= thisboard->mainshift;
+       if (devpriv->io.regtype == io_regtype)
+               outl(val, devpriv->io.u.iobase + offset);
+       else
+               writel(val, devpriv->io.u.membase + offset);
+}
+
 /*
  * This function looks for a board matching the supplied PCI device.
  */