mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 01:54:09 +08:00
staging: comedi: pcl730: add support for Diamond Systems IR104-PBF module
The Diamond Systems IR104-PBF board is a PC/104 module with 20 optoisolated inputs and 20 relay outputs. This board can be supported by the pcl730 driver. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Cc: Greg Kroah-Hartman <gregk@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
952091f123
commit
757c1fa9e1
@ -172,6 +172,7 @@ config COMEDI_PCL730
|
|||||||
Advantech PCL-734 iso - 32 out
|
Advantech PCL-734 iso - 32 out
|
||||||
Diamond Systems OPMM-1616-XT iso - 16 in/16 out
|
Diamond Systems OPMM-1616-XT iso - 16 in/16 out
|
||||||
Diamond Systems PEARL-MM-P iso - 16 out
|
Diamond Systems PEARL-MM-P iso - 16 out
|
||||||
|
Diamond Systems IR104-PBF iso - 20 in/20 out
|
||||||
|
|
||||||
To compile this driver as a module, choose M here: the module will be
|
To compile this driver as a module, choose M here: the module will be
|
||||||
called pcl730.
|
called pcl730.
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
* (Advantech) PCL-734 [pcl734]
|
* (Advantech) PCL-734 [pcl734]
|
||||||
* (Diamond Systems) OPMM-1616-XT [opmm-1616-xt]
|
* (Diamond Systems) OPMM-1616-XT [opmm-1616-xt]
|
||||||
* (Diamond Systems) PEARL-MM-P [prearl-mm-p]
|
* (Diamond Systems) PEARL-MM-P [prearl-mm-p]
|
||||||
|
* (Diamond Systems) IR104-PBF [ir104-pbf]
|
||||||
* Author: José Luis Sánchez (jsanchezv@teleline.es)
|
* Author: José Luis Sánchez (jsanchezv@teleline.es)
|
||||||
* Status: untested
|
* Status: untested
|
||||||
*
|
*
|
||||||
@ -93,6 +94,15 @@
|
|||||||
*
|
*
|
||||||
* BASE+0 Isolated outputs 0-7 (write)
|
* BASE+0 Isolated outputs 0-7 (write)
|
||||||
* BASE+1 Isolated outputs 8-15 (write)
|
* BASE+1 Isolated outputs 8-15 (write)
|
||||||
|
*
|
||||||
|
* The ir104-pbf 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 outputs 16-19 (write) (read back)
|
||||||
|
* BASE+4 Isolated inputs 0-7 (read)
|
||||||
|
* BASE+5 Isolated inputs 8-15 (read)
|
||||||
|
* BASE+6 Isolated inputs 16-19 (read)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct pcl730_board {
|
struct pcl730_board {
|
||||||
@ -100,6 +110,7 @@ struct pcl730_board {
|
|||||||
unsigned int io_range;
|
unsigned int io_range;
|
||||||
unsigned is_pcl725:1;
|
unsigned is_pcl725:1;
|
||||||
unsigned is_acl7225b:1;
|
unsigned is_acl7225b:1;
|
||||||
|
unsigned is_ir104:1;
|
||||||
unsigned has_readback:1;
|
unsigned has_readback:1;
|
||||||
unsigned has_ttl_io:1;
|
unsigned has_ttl_io:1;
|
||||||
int n_subdevs;
|
int n_subdevs;
|
||||||
@ -194,6 +205,13 @@ static const struct pcl730_board pcl730_boards[] = {
|
|||||||
.io_range = 0x02,
|
.io_range = 0x02,
|
||||||
.n_subdevs = 1,
|
.n_subdevs = 1,
|
||||||
.n_iso_out_chan = 16,
|
.n_iso_out_chan = 16,
|
||||||
|
}, {
|
||||||
|
.name = "ir104-pbf",
|
||||||
|
.io_range = 0x08,
|
||||||
|
.is_ir104 = 1,
|
||||||
|
.has_readback = 1,
|
||||||
|
.n_iso_out_chan = 20,
|
||||||
|
.n_iso_in_chan = 20,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -292,7 +310,8 @@ static int pcl730_attach(struct comedi_device *dev,
|
|||||||
s->maxdata = 1;
|
s->maxdata = 1;
|
||||||
s->range_table = &range_digital;
|
s->range_table = &range_digital;
|
||||||
s->insn_bits = pcl730_di_insn_bits;
|
s->insn_bits = pcl730_di_insn_bits;
|
||||||
s->private = board->is_acl7225b ? (void *)2 :
|
s->private = board->is_ir104 ? (void*)4 :
|
||||||
|
board->is_acl7225b ? (void *)2 :
|
||||||
board->is_pcl725 ? (void *)1 : (void *)0;
|
board->is_pcl725 ? (void *)1 : (void *)0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user