#include "8255.h"
-#define PCL722_SIZE 32
-#define PCL722_96_SIZE 16
-#define PCL724_SIZE 4
-#define PCL731_SIZE 8
-#define PET48_SIZE 2
-
#define SIZE_8255 4
struct pcl724_board {
-
- const char *name; /* board name */
- int dio; /* num of DIO */
- int numofports; /* num of 8255 subdevices */
- unsigned int io_range; /* len of IO space */
- char can_have96;
- char is_pet48;
+ const char *name;
+ unsigned int io_range;
+ unsigned int can_have96:1;
+ unsigned int is_pet48:1;
+ int dio;
+ int numofports;
};
static const struct pcl724_board boardtypes[] = {
{
.name = "pcl724",
+ .io_range = 0x04,
.dio = 24,
.numofports = 1,
- .io_range = PCL724_SIZE,
}, {
.name = "pcl722",
+ .io_range = 0x20,
+ .can_have96 = 1,
.dio = 144,
.numofports = 6,
- .io_range = PCL722_SIZE,
- .can_have96 = 1,
}, {
.name = "pcl731",
+ .io_range = 0x08,
.dio = 48,
.numofports = 2,
- .io_range = PCL731_SIZE,
}, {
.name = "acl7122",
+ .io_range = 0x20,
+ .can_have96 = 1,
.dio = 144,
.numofports = 6,
- .io_range = PCL722_SIZE,
- .can_have96 = 1,
}, {
.name = "acl7124",
+ .io_range = 0x04,
.dio = 24,
.numofports = 1,
- .io_range = PCL724_SIZE,
}, {
.name = "pet48dio",
+ .io_range = 0x02,
+ .is_pet48 = 1,
.dio = 48,
.numofports = 2,
- .io_range = PET48_SIZE,
- .is_pet48 = 1,
},
};
iorange = board->io_range;
if ((board->can_have96) &&
((it->options[1] == 1) || (it->options[1] == 96)))
- iorange = PCL722_96_SIZE; /* PCL-724 in 96 DIO configuration */
+ iorange = 0x10; /* PCL-724 in 96 DIO configuration */
ret = comedi_request_region(dev, it->options[0], iorange);
if (ret)
return ret;