#define PCI_DEVICE_ID_MF624 0x0624
-/* BADR0 Memory Map */
+/* BAR0 Memory Map */
#define MF624_GPIOC 0x54
#define MF624_INTCSR 0x4C
-/* BADR1 Memory Map */
+/* BAR2 Memory Map */
#define MF624_ADCTRL 0x00
#define MF624_ADDATA 0x00
#define MF624_DIN 0x10
#define MF624_ADSTART 0x20
#define MF624_DA0 0x20
-/* BADR2 Memory Map */
+/* BAR4 Memory Map */
#define MF624_CTRXMODE 0x00
#define MF624_CTRXSTATUS 0x00
#define MF624_CTRXCTRL 0x60
/* base addresses */
//resource_size_t iobase;
- unsigned long BADR0;
- unsigned long BADR1;
- unsigned long BADR2;
+ unsigned long BAR0;
+ unsigned long BAR2;
+ unsigned long BAR4;
- void* IO_BADR0;
- void* IO_BADR1;
- void* IO_BADR2;
+ void* IO_BAR0;
+ void* IO_BAR2;
+ void* IO_BAR4;
/* Used for AO readback */
lsampl_t ao_readback[8];
return -EIO;
}
- devpriv->BADR0 = pci_resource_start(devpriv->pci_dev, 0);
- devpriv->BADR1 = pci_resource_start(devpriv->pci_dev, 2);
- devpriv->BADR2 = pci_resource_start(devpriv->pci_dev, 4);
+ devpriv->BAR0 = pci_resource_start(devpriv->pci_dev, 0);
+ devpriv->BAR2 = pci_resource_start(devpriv->pci_dev, 2);
+ devpriv->BAR4 = pci_resource_start(devpriv->pci_dev, 4);
- devpriv->IO_BADR0 = pci_ioremap_bar(devpriv->pci_dev, 0);
- devpriv->IO_BADR1 = pci_ioremap_bar(devpriv->pci_dev, 2);
- devpriv->IO_BADR2 = pci_ioremap_bar(devpriv->pci_dev, 4);
+ devpriv->IO_BAR0 = pci_ioremap_bar(devpriv->pci_dev, 0);
+ devpriv->IO_BAR2 = pci_ioremap_bar(devpriv->pci_dev, 2);
+ devpriv->IO_BAR4 = pci_ioremap_bar(devpriv->pci_dev, 4);
#ifdef EXTDEBUG
- printk ("comedi%d: mf624: PCI Resource 0 addr %lx \n", dev->minor, devpriv->BADR0);
- printk ("comedi%d: mf624: PCI Resource 2 addr %lx \n", dev->minor, devpriv->BADR1);
- printk ("comedi%d: mf624: PCI Resource 4 addr %lx \n", dev->minor, devpriv->BADR2);
+ printk("comedi%d: mf624: PCI Resource 0 addr %lx \n", dev->minor, devpriv->BAR0);
+ printk("comedi%d: mf624: PCI Resource 2 addr %lx \n", dev->minor, devpriv->BAR2);
+ printk("comedi%d: mf624: PCI Resource 4 addr %lx \n", dev->minor, devpriv->BAR4);
- printk ("comedi%d: mf624: IO_BADR0 addr %p \n", dev->minor, devpriv->IO_BADR0);
- printk ("comedi%d: mf624: IO_BADR1(2) addr %p \n", dev->minor, devpriv->IO_BADR1);
- printk ("comedi%d: mf624: IO_BADR2(4) addr %p \n", dev->minor, devpriv->IO_BADR2);
+ printk("comedi%d: mf624: IO_BAR0 addr %p \n", dev->minor, devpriv->IO_BAR0);
+ printk("comedi%d: mf624: IO_BAR2(2) addr %p \n", dev->minor, devpriv->IO_BAR2);
+ printk("comedi%d: mf624: IO_BAR4(4) addr %p \n", dev->minor, devpriv->IO_BAR4);
#endif
dev->board_name = thisboard->name;
printk("comedi%d: mf624: Driver attached\n", dev->minor);
/* Enable DAC */
- status = ioread32(devpriv->IO_BADR0 + MF624_GPIOC) | MF624_GPIOC_DACEN;
- iowrite32(status, devpriv->IO_BADR0 + MF624_GPIOC);
+ status = ioread32(devpriv->IO_BAR0 + MF624_GPIOC) | MF624_GPIOC_DACEN;
+ iowrite32(status, devpriv->IO_BAR0 + MF624_GPIOC);
/* Initialise Interrupt Control Status */
- iowrite32(0x00000000, devpriv->IO_BADR0 + MF624_INTCSR);
+ iowrite32(0x00000000, devpriv->IO_BAR0 + MF624_INTCSR);
/* Initialise analog outputs to zero */
for(channel = 0; channel < thisboard->ao_chans; channel ++) {
- iowrite16(0x2000, devpriv->IO_BADR1 + MF624_DA0 + 2*channel);
+ iowrite16(0x2000, devpriv->IO_BAR2 + MF624_DA0 + 2*channel);
/* Readback save */
devpriv->ao_readback[channel] = 0x2000;
}
if(devpriv && devpriv->pci_dev)
{
- if(devpriv->BADR0)
+ if(devpriv->BAR0)
{
pci_release_regions(devpriv->pci_dev);
pci_disable_device(devpriv->pci_dev);
#endif
/* write channel to multiplexer */
- iowrite16(1 << chan, devpriv->IO_BADR1 + MF624_ADCTRL);
+ iowrite16(1 << chan, devpriv->IO_BAR2 + MF624_ADCTRL);
/* convert n samples */
for(n = 0; n < insn->n; n ++){
/* trigger conversion */
- dat = ioread16(devpriv->IO_BADR1 + MF624_ADSTART);
+ dat = ioread16(devpriv->IO_BAR2 + MF624_ADSTART);
#define TIMEOUT 100
/* wait for conversion to end */
for(i = 0; i < TIMEOUT; i++){
status = 1;
- status = ioread32(devpriv->IO_BADR0 + MF624_GPIOC);
+ status = ioread32(devpriv->IO_BAR0 + MF624_GPIOC);
if(!(status & MF624_GPIOC_EOLC)) {
break;
}
}
/* read data */
- dat = ioread16(devpriv->IO_BADR1 + MF624_ADDATA);
+ dat = ioread16(devpriv->IO_BAR2 + MF624_ADDATA);
/* mangle the data as necessary */
dat ^= 1 << (thisboard->ai_bits-1);
#ifdef EXTDEBUG
printk("comedi%d: mf624: _ao_winsn called\n", dev->minor);
#endif
- status = ioread32(devpriv->IO_BADR0 + MF624_GPIOC) | MF624_GPIOC_DACEN;
- iowrite32(status, devpriv->IO_BADR0 + MF624_GPIOC);
+ status = ioread32(devpriv->IO_BAR0 + MF624_GPIOC) | MF624_GPIOC_DACEN;
+ iowrite32(status, devpriv->IO_BAR0 + MF624_GPIOC);
/* Writing a list of values to an AO channel is probably not
* very useful, but that's how the interface is defined. */
for(i = 0; i < insn->n; i++){
- iowrite16(data[i], devpriv->IO_BADR1 + MF624_DA0 + 2*chan);
+ iowrite16(data[i], devpriv->IO_BAR2 + MF624_DA0 + 2*chan);
devpriv->ao_readback[chan] = data[i];
#ifdef EXTDEBUG
printk("comedi%d: mf624: _ao_winsn: wrote at address \
s->state |= data[0] & data[1];
#ifdef EXTDEBUG
printk ("comedi%d: mf624: _do_insn_bits: out: %d \
- on %lx\n", dev->minor, s->state, devpriv->IO_BADR1 + MF624_DOUT );
+ on %lx\n", dev->minor, s->state, devpriv->IO_BAR2 + MF624_DOUT );
#endif
- iowrite16(s->state, devpriv->IO_BADR1 + MF624_DOUT);
+ iowrite16(s->state, devpriv->IO_BAR2 + MF624_DOUT);
}
return 2;
}
return -EINVAL;
}
- data[1] = ioread16(devpriv->IO_BADR1 + MF624_DIN);
+ data[1] = ioread16(devpriv->IO_BAR2 + MF624_DIN);
#ifdef EXTDEBUG
printk("comedi%d: mf624: _di_insn_bits read \
data: %d\n", dev->minor, data[1]);
};
-MODULE_AUTHOR("Francois Poulain <fpoulain@gmail.com>;\
- (Rostislav Lisovy <lisovy@gmail.com>)");
+MODULE_AUTHOR("Francois Poulain <fpoulain@gmail.com>;"
+ "(Rostislav Lisovy <lisovy@gmail.com>)");
MODULE_DESCRIPTION("Humusoft MF624 Multifunction I/O Card");
MODULE_LICENSE("GPL");