struct pcl812_board {
const char *name;
enum pcl812_boardtype board_type;
+ unsigned short min_io_start;
int n_aichan;
int n_aochan;
unsigned int ai_ns_min;
{
.name = "pcl812",
.board_type = BOARD_PCL812,
+ .min_io_start = 0,
.n_aichan = 16,
.n_aochan = 2,
.ai_ns_min = 33000,
.has_dio = 1,
}, {
.name = "pcl812pg",
+ .min_io_start = 0,
.board_type = BOARD_PCL812PG,
.n_aichan = 16,
.n_aochan = 2,
}, {
.name = "acl8112pg",
.board_type = BOARD_PCL812PG,
+ .min_io_start = 0x200,
.n_aichan = 16,
.n_aochan = 2,
.ai_ns_min = 10000,
}, {
.name = "acl8112dg",
.board_type = BOARD_ACL8112,
+ .min_io_start = 0x200,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 10000,
}, {
.name = "acl8112hg",
.board_type = BOARD_ACL8112,
+ .min_io_start = 0x200,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 10000,
}, {
.name = "a821pgl",
.board_type = BOARD_A821,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 1,
.ai_ns_min = 10000,
}, {
.name = "a821pglnda",
.board_type = BOARD_A821,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.ai_ns_min = 10000,
.rangelist_ai = &range_pcl813b_ai,
}, {
.name = "a821pgh",
.board_type = BOARD_A821,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 1,
.ai_ns_min = 10000,
}, {
.name = "a822pgl",
.board_type = BOARD_ACL8112,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 10000,
}, {
.name = "a822pgh",
.board_type = BOARD_ACL8112,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 10000,
}, {
.name = "a823pgl",
.board_type = BOARD_ACL8112,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 8000,
}, {
.name = "a823pgh",
.board_type = BOARD_ACL8112,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 8000,
}, {
.name = "pcl813",
.board_type = BOARD_PCL813,
+ .min_io_start = 0,
.n_aichan = 32,
.rangelist_ai = &range_pcl813b_ai,
}, {
.name = "pcl813b",
.board_type = BOARD_PCL813B,
+ .min_io_start = 0,
.n_aichan = 32,
.rangelist_ai = &range_pcl813b_ai,
}, {
.name = "acl8113",
.board_type = BOARD_ACL8113,
+ .min_io_start = 0x200,
.n_aichan = 32,
.rangelist_ai = &range_acl8113_1_ai,
}, {
.name = "iso813",
.board_type = BOARD_ISO813,
+ .min_io_start = 0,
.n_aichan = 32,
.rangelist_ai = &range_iso813_1_ai,
}, {
.name = "acl8216",
.board_type = BOARD_ACL8216,
+ .min_io_start = 0x200,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 10000,
}, {
.name = "a826pg",
.board_type = BOARD_ACL8216,
+ .min_io_start = 0,
.n_aichan = 16, /* 8 differential */
.n_aochan = 2,
.ai_ns_min = 10000,
if (!devpriv)
return -ENOMEM;
- ret = comedi_request_region(dev, it->options[0], 0x10);
+ ret = comedi_check_request_region(dev, it->options[0], 0x10,
+ board->min_io_start, 0x3ff, 16);
if (ret)
return ret;