#define PCI_VENDOR_ID_COMPUTERBOARDS 0x1307
#define PCI_DEVICE_ID_PCIDAS08 0x29
-#define PCIDAS08_SIZE 128
+#define PCIDAS08_SIZE 0x54
// pci configuration registers
#define INTCSR 0x4c
#define CNTRL_INTR 0x4
-#define DAS08_SIZE 16
-
/*
cio-das08.pdf
unsigned int do_nchan;
unsigned int i8255_offset;
unsigned int i8254_offset;
+ unsigned int iosize; // number of ioports used
} das08_board;
static struct das08_board_struct das08_boards[]={
do_nchan: 4,
i8255_offset: 8,
i8254_offset: 4,
+ iosize: 16, // unchecked
},
{
name: "das08-pgm", // cio-das08pgx.pdf
do_nchan: 4,
i8255_offset: 0,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "das08-pgh", // cio-das08pgx.pdf
do_nchan: 4,
i8255_offset: 0,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "das08-pgl", // cio-das08pgx.pdf
do_nchan: 4,
i8255_offset: 0,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "das08-aoh", // cio-das08_aox.pdf
do_nchan: 4,
i8255_offset: 0x0c,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "das08-aol", // cio-das08_aox.pdf
do_nchan: 4,
i8255_offset: 0x0c,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "das08-aom", // cio-das08_aox.pdf
do_nchan: 4,
i8255_offset: 0x0c,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "das08/jr-ao", // cio-das08-jr-ao.pdf
do_nchan: 8,
i8255_offset: 0,
i8254_offset: 0,
+ iosize: 16, // unchecked
},
{
name: "das08jr-16-ao", // cio-das08jr-16-ao.pdf
do_nchan: 8,
i8255_offset: 0,
i8254_offset: 0x04,
+ iosize: 16, // unchecked
},
{
name: "pci-das08",
do_nchan: 4,
i8255_offset: 0,
i8254_offset: 4,
+ iosize: 8,
},
#ifdef CONFIG_PCMCIA
{
do_nchan: 3,
i8255_offset: 0,
i8254_offset: 0,
+ iosize: 16, // unchecked
},
#endif // CONFIG_PCMCIA
{
do_nchan: 4,
i8255_offset: 0,
i8254_offset: 4,
+ iosize: 16, // unchecked
},
#if 0
{
do_nchan: 8,
i8255_offset: 0,
i8254_offset: 0,
+ iosize: 16, // unchecked
},
#if 0
{
if(thisboard->bustype != pcmcia)
{
printk("iobase 0x%x ", iobase);
- if(check_region(iobase,DAS08_SIZE)<0){
+ if(check_region(iobase, thisboard->iosize)<0){
printk(" I/O port conflict\n");
return -EIO;
}
- request_region(iobase,DAS08_SIZE,"das08");
+ request_region(iobase, thisboard->iosize,"das08");
}
dev->iobase = iobase;
if(thisboard->bustype != pcmcia)
{
if(dev->iobase)
- release_region(dev->iobase,DAS08_SIZE);
+ release_region(dev->iobase, thisboard->iosize);
}
if(devpriv){