staging: comedi: pcl730: add support for Diamond Systems PC/104 modules
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Tue, 6 May 2014 23:08:56 +0000 (16:08 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 May 2014 12:23:37 +0000 (21:23 +0900)
The Diamond Systems OPMM-1616-XT board is a PC/104 module with 16
optoisolated inputs and 16 relay outputs.

The PEARL-MM-P board is a PC/104 module with 16 relay outputs.

Both of these boards can be supported by the pcl730 driver.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/Kconfig
drivers/staging/comedi/drivers/pcl730.c

index 703c5d40ae5c5252561469688835f8d4cac9b59c..5d56428d508abd05a43253bf51d67ae14585ca70 100644 (file)
@@ -160,16 +160,18 @@ config COMEDI_PCL730
          Enable support for various simple ISA or PC/104 Digital I/O boards.
          These boards all use 8-bit I/O ports.
 
-         Advantech PCL-730   isolated - 16 in/16 out  ttl - 16 in/16 out
-         ICP ISO-730         isolated - 16 in/16 out  ttl - 16 in/16 out
-         ADlink ACL-7130     isolated - 16 in/16 out  ttl - 16 in/16 out
-         Advantech PCM-3730  isolated - 8 in/8 out    ttl - 16 in/16 out
-         Advantech PCL-725   isolated - 8 in/8 out
-         ICP P8R8-DIO        isolated - 8 in/8 out
-         ADlink ACL-7225b    isolated - 16 in/16 out
-         ICP P16R16-DIO      isolated - 16 in/16 out
-         Advantech PCL-733   isolated - 32 in
-         Advantech PCL-734   isolated - 32 out
+         Advantech PCL-730             iso - 16 in/16 out  ttl - 16 in/16 out
+         ICP ISO-730                   iso - 16 in/16 out  ttl - 16 in/16 out
+         ADlink ACL-7130               iso - 16 in/16 out  ttl - 16 in/16 out
+         Advantech PCM-3730            iso - 8 in/8 out    ttl - 16 in/16 out
+         Advantech PCL-725             iso - 8 in/8 out
+         ICP P8R8-DIO                  iso - 8 in/8 out
+         ADlink ACL-7225b              iso - 16 in/16 out
+         ICP P16R16-DIO                iso - 16 in/16 out
+         Advantech PCL-733             iso - 32 in
+         Advantech PCL-734             iso - 32 out
+         Diamond Systems OPMM-1616-XT  iso - 16 in/16 out
+         Diamond Systems PEARL-MM-P    iso - 16 out
 
          To compile this driver as a module, choose M here: the module will be
          called pcl730.
index 2baaf1db6fbf34e6a9d8694d560b6a047871bf81..7fb044ce399b86edd9da96cdf9a56dbfe849be7e 100644 (file)
@@ -17,6 +17,8 @@
  *         (ICP) P16R16-DIO [p16r16dio]
  *         (Advantech) PCL-733 [pcl733]
  *         (Advantech) PCL-734 [pcl734]
+ *         (Diamond Systems) OPMM-1616-XT [opmm-1616-xt]
+ *         (Diamond Systems) PEARL-MM-P [prearl-mm-p]
  * Author: José Luis Sánchez (jsanchezv@teleline.es)
  * Status: untested
  *
  *     BASE+1  Isolated outputs 8-15 (write) or inputs 8-15 (read)
  *     BASE+2  Isolated outputs 16-23 (write) or inputs 16-23 (read)
  *     BASE+3  Isolated outputs 24-31 (write) or inputs 24-31 (read)
+ *
+ * The opmm-1616-xt board has this register mapping:
+ *
+ *     BASE+0  Isolated outputs 0-7 (write) (read back)
+ *     BASE+1  Isolated outputs 8-15 (write) (read back)
+ *     BASE+2  Isolated inputs 0-7 (read)
+ *     BASE+3  Isolated inputs 8-15 (read)
+ *
+ *     These registers are not currently supported:
+ *
+ *     BASE+2  Relay select register (write)
+ *     BASE+3  Board reset control register (write)
+ *     BASE+4  Interrupt control register (write)
+ *     BASE+4  Change detect 7-0 status register (read)
+ *     BASE+5  LED control register (write)
+ *     BASE+5  Change detect 15-8 status register (read)
+ *
+ * The pearl-mm-p board has this register mapping:
+ *
+ *     BASE+0  Isolated outputs 0-7 (write)
+ *     BASE+1  Isolated outputs 8-15 (write)
  */
 
 struct pcl730_board {
@@ -158,6 +181,19 @@ static const struct pcl730_board pcl730_boards[] = {
                .io_range       = 0x04,
                .n_subdevs      = 1,
                .n_iso_out_chan = 32,
+       }, {
+               .name           = "opmm-1616-xt",
+               .io_range       = 0x10,
+               .is_acl7225b    = 1,
+               .has_readback   = 1,
+               .n_subdevs      = 2,
+               .n_iso_out_chan = 16,
+               .n_iso_in_chan  = 16,
+       }, {
+               .name           = "pearl-mm-p",
+               .io_range       = 0x02,
+               .n_subdevs      = 1,
+               .n_iso_out_chan = 16,
        },
 };