43 #include "../comedidev.h"
52 #undef CBPCIMDAS_DEBUG
54 #define PCI_VENDOR_ID_COMPUTERBOARDS 0x1307
68 #define MAIN_CONN_DIO 1
70 #define ADC_CONV_STAT 3
75 #define CLK8254_1_DATA 8
76 #define CLK8254_2_DATA 9
77 #define CLK8254_3_DATA 10
78 #define CLK8254_CONTROL 11
79 #define USER_COUNTER 12
80 #define RESID_COUNT_H 13
81 #define RESID_COUNT_L 14
103 .name =
"PCIM-DAS1602/16",
112 .ao_scan_speed = 10000,
149 unsigned short chanlims;
155 if ((
inb(devpriv->
BADR3 + 2) & 0x20) == 0)
160 if (chan > (maxchans - 1))
165 if ((d & 0x03) > 0) {
176 chanlims = chan | (chan << 4);
180 for (n = 0; n < insn->
n; n++) {
188 for (i = 0; i <
TIMEOUT; i++) {
189 busy =
inb(devpriv->
BADR3 + 2) & 0x80;
220 for (i = 0; i < insn->
n; i++) {
248 for (i = 0; i < insn->
n; i++)
254 static const void *cb_pcimdas_find_boardinfo(
struct comedi_device *dev,
260 for (i = 0; i <
ARRAY_SIZE(cb_pcimdas_boards); i++) {
261 thisboard = &cb_pcimdas_boards[
i];
274 unsigned long iobase_8255;
277 comedi_set_hw_dev(dev, &pcidev->
dev);
279 thisboard = cb_pcimdas_find_boardinfo(dev, pcidev);
285 ret = alloc_private(dev,
sizeof(*devpriv));
358 struct pci_dev *pcidev = comedi_to_pci_dev(dev);
369 .driver_name =
"cb_pcimdas",
371 .attach_pci = cb_pcimdas_attach_pci,
372 .detach = cb_pcimdas_detach,
392 static struct pci_driver cb_pcimdas_pci_driver = {
393 .name =
"cb_pcimdas",
394 .id_table = cb_pcimdas_pci_table,
395 .probe = cb_pcimdas_pci_probe,