#include "../comedidev.h"
-// address scheme (page 2.17 of the manual)
+/* address scheme (page 2.17 of the manual) */
#define ADQ12B_SIZE 16
#define ADQ12B_CTREG 0x00
#define ADQ12B_CONT2 0x0e
#define ADQ12B_COWORD 0x0f
-// mask of the bit at STINR to check end of conversion
+/* mask of the bit at STINR to check end of conversion */
#define ADQ12B_EOC 0x20
#define TIMEOUT 20
-// available ranges through the PGA gains
+/* available ranges through the PGA gains */
static const struct comedi_lrange range_adq12b_ai_bipolar = { 4, {
- BIP_RANGE( 5 ),
- BIP_RANGE( 2 ),
- BIP_RANGE( 1 ),
- BIP_RANGE( 0.5 )
+ BIP_RANGE(5),
+ BIP_RANGE(2),
+ BIP_RANGE(1),
+ BIP_RANGE(0.5)
}};
static const struct comedi_lrange range_adq12b_ai_unipolar = { 4, {
- UNI_RANGE( 5 ),
- UNI_RANGE( 2 ),
- UNI_RANGE( 1 ),
- UNI_RANGE( 0.5 )
+ UNI_RANGE(5),
+ UNI_RANGE(2),
+ UNI_RANGE(1),
+ UNI_RANGE(0.5)
}};
static const struct adq12b_board adq12b_boards[] = {
{
- name: "adq12b",
- ai_se_chans: 16,
- ai_diff_chans: 8,
- ai_bits: 12,
- di_chans: 5,
- do_chans: 8
+ .name = "adq12b",
+ .ai_se_chans = 16,
+ .ai_diff_chans = 8,
+ .ai_bits = 12,
+ .di_chans = 5,
+ .do_chans = 8
}
-// potentially, more adq-based deviced will be added
+/* potentially, more adq-based deviced will be added */
/*,
- name: "adq12b",
- ai_chans: 16, // this is just for reference, hardcoded again later
- ai_bits: 12,
- di_chans: 8,
- do_chans: 5
+ .name = "adq12b",
+ .ai_chans = 16, // this is just for reference, hardcoded again later
+ .ai_bits = 12,
+ .di_chans = 8,
+ .do_chans = 5
}*/
};
* the board, and also about the kernel module that contains
* the device code.
*/
-static int adq12b_attach(struct comedi_device *dev,struct comedi_devconfig *it);
+static int adq12b_attach(struct comedi_device *dev, struct comedi_devconfig *it);
static int adq12b_detach(struct comedi_device *dev);
static struct comedi_driver driver_adq12b={
driver_name: "adq12b",
detach: adq12b_detach,
board_name: &adq12b_boards[0].name,
offset: sizeof(struct adq12b_board),
- num_names: sizeof(adq12b_boards) / sizeof(struct adq12b_board),
+ num_names: ARRAY_SIZE(adq12b_boards),
};
-static int adq12b_ai_rinsn(struct comedi_device *dev,struct comedi_subdevice *s,struct comedi_insn *insn,unsigned int *data);
-static int adq12b_di_insn_bits(struct comedi_device *dev,struct comedi_subdevice *s, struct comedi_insn *insn,unsigned int *data);
-static int adq12b_do_insn_bits(struct comedi_device *dev,struct comedi_subdevice *s, struct comedi_insn *insn,unsigned int *data);
+static int adq12b_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data);
+static int adq12b_di_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data);
+static int adq12b_do_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data);
/*
* Attach is called by the Comedi core to configure the driver
* in the driver structure, dev->board_ptr contains that
* address.
*/
-static int adq12b_attach(struct comedi_device *dev,struct comedi_devconfig *it)
+static int adq12b_attach(struct comedi_device *dev, struct comedi_devconfig *it)
{
struct comedi_subdevice *s;
unsigned long iobase;
unipolar = it->options[1];
differential = it->options[2];
- printk("comedi%d: adq12b called with options base=0x%03lx, %s and %s\n",dev->minor, iobase, (unipolar==1)?"unipolar":"bipolar", (differential==1)?"differential":"single-ended");
+ printk("comedi%d: adq12b called with options base=0x%03lx, %s and %s\n", dev->minor, iobase, (unipolar==1)?"unipolar":"bipolar", (differential==1) ? "differential" : "single-ended");
/* if no address was specified, try the default 0x300 */
if (iobase == 0) {
* Allocate the private structure area. alloc_private() is a
* convenient macro defined in comedidev.h.
*/
- if(alloc_private(dev, sizeof(struct adq12b_private)) < 0)
+ if (alloc_private (dev, sizeof (struct adq12b_private)) < 0)
return -ENOMEM;
/* fill in devpriv structure */
* Allocate the subdevice structures. alloc_subdevice() is a
* convenient macro defined in comedidev.h.
*/
- if(alloc_subdevices(dev, 3)<0)
+ if (alloc_subdevices (dev, 3)<0)
return -ENOMEM;
s = dev->subdevices+0;
kfree(devpriv);
- printk("comedi%d: adq12b: removed\n",dev->minor);
+ printk("comedi%d: adq12b: removed\n", dev->minor);
return 0;
}
* mode.
*/
-static int adq12b_ai_rinsn(struct comedi_device *dev,struct comedi_subdevice *s,struct comedi_insn *insn,unsigned int *data)
+static int adq12b_ai_rinsn(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
{
int n, i;
int range, channel;
status = inb(dev->iobase + ADQ12B_ADLOW);
/* convert n samples */
- for(n=0; n < insn->n; n++){
+ for (n=0; n < insn->n; n++){
/* wait for end of convertion */
i = 0;
do {
-// comedi_udelay(1);
+/* comedi_udelay(1); */
status = inb(dev->iobase + ADQ12B_STINR);
status = status & ADQ12B_EOC;
} while (status == 0 && ++i < TIMEOUT);
-// } while (++i < 10);
+/* } while (++i < 10); */
/* read data */
hi = inb(dev->iobase + ADQ12B_ADHIG);
lo = inb(dev->iobase + ADQ12B_ADLOW);
- //rt_printk("debug: chan=%d range=%d status=%d hi=%d lo=%d\n", channel, range, status, hi, lo);
+ /* rt_printk("debug: chan=%d range=%d status=%d hi=%d lo=%d\n", channel, range, status, hi, lo); */
data[n] = (hi << 8) | lo;
}
}
-static int adq12b_di_insn_bits(struct comedi_device *dev,struct comedi_subdevice *s, struct comedi_insn *insn,unsigned int *data)
+static int adq12b_di_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
{
/* only bits 0-4 have information about digital inputs */
}
-static int adq12b_do_insn_bits(struct comedi_device *dev,struct comedi_subdevice *s, struct comedi_insn *insn,unsigned int *data)
+static int adq12b_do_insn_bits(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_insn *insn, unsigned int *data)
{
int channel;