Commit bfd2eb8d authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: cb_pcidas: refactor 'ai_bits' boardinfo

The boards supported by this driver either have 16-bit or 12-bit
analog input/output resolution. For aesthetics, replace the 'ai_bits'
member of the boardinfo with a bit-field flag 'is_16bit'. Also,
change the types of the other bit-field flags to unsigned int.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3ab2733b
...@@ -229,7 +229,6 @@ enum cb_pcidas_boardid { ...@@ -229,7 +229,6 @@ enum cb_pcidas_boardid {
struct cb_pcidas_board { struct cb_pcidas_board {
const char *name; const char *name;
int ai_nchan; /* Inputs in single-ended mode */ int ai_nchan; /* Inputs in single-ended mode */
int ai_bits; /* analog input resolution */
int ai_speed; /* fastest conversion period in ns */ int ai_speed; /* fastest conversion period in ns */
int ao_nchan; /* number of analog out channels */ int ao_nchan; /* number of analog out channels */
int has_ao_fifo; /* analog output has fifo */ int has_ao_fifo; /* analog output has fifo */
...@@ -237,15 +236,15 @@ struct cb_pcidas_board { ...@@ -237,15 +236,15 @@ struct cb_pcidas_board {
int fifo_size; /* number of samples fifo can hold */ int fifo_size; /* number of samples fifo can hold */
const struct comedi_lrange *ranges; const struct comedi_lrange *ranges;
enum trimpot_model trimpot; enum trimpot_model trimpot;
unsigned has_dac08:1; unsigned int is_16bit; /* ADC/DAC resolution 1=16-bit; 0=12-bit */
unsigned is_1602:1; unsigned int has_dac08:1;
unsigned int is_1602:1;
}; };
static const struct cb_pcidas_board cb_pcidas_boards[] = { static const struct cb_pcidas_board cb_pcidas_boards[] = {
[BOARD_PCIDAS1602_16] = { [BOARD_PCIDAS1602_16] = {
.name = "pci-das1602/16", .name = "pci-das1602/16",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 16,
.ai_speed = 5000, .ai_speed = 5000,
.ao_nchan = 2, .ao_nchan = 2,
.has_ao_fifo = 1, .has_ao_fifo = 1,
...@@ -253,13 +252,13 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { ...@@ -253,13 +252,13 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = {
.fifo_size = 512, .fifo_size = 512,
.ranges = &cb_pcidas_ranges, .ranges = &cb_pcidas_ranges,
.trimpot = AD8402, .trimpot = AD8402,
.is_16bit = 1,
.has_dac08 = 1, .has_dac08 = 1,
.is_1602 = 1, .is_1602 = 1,
}, },
[BOARD_PCIDAS1200] = { [BOARD_PCIDAS1200] = {
.name = "pci-das1200", .name = "pci-das1200",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 12,
.ai_speed = 3200, .ai_speed = 3200,
.ao_nchan = 2, .ao_nchan = 2,
.fifo_size = 1024, .fifo_size = 1024,
...@@ -269,7 +268,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { ...@@ -269,7 +268,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = {
[BOARD_PCIDAS1602_12] = { [BOARD_PCIDAS1602_12] = {
.name = "pci-das1602/12", .name = "pci-das1602/12",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 12,
.ai_speed = 3200, .ai_speed = 3200,
.ao_nchan = 2, .ao_nchan = 2,
.has_ao_fifo = 1, .has_ao_fifo = 1,
...@@ -282,7 +280,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { ...@@ -282,7 +280,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = {
[BOARD_PCIDAS1200_JR] = { [BOARD_PCIDAS1200_JR] = {
.name = "pci-das1200/jr", .name = "pci-das1200/jr",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 12,
.ai_speed = 3200, .ai_speed = 3200,
.fifo_size = 1024, .fifo_size = 1024,
.ranges = &cb_pcidas_ranges, .ranges = &cb_pcidas_ranges,
...@@ -291,18 +288,17 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { ...@@ -291,18 +288,17 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = {
[BOARD_PCIDAS1602_16_JR] = { [BOARD_PCIDAS1602_16_JR] = {
.name = "pci-das1602/16/jr", .name = "pci-das1602/16/jr",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 16,
.ai_speed = 5000, .ai_speed = 5000,
.fifo_size = 512, .fifo_size = 512,
.ranges = &cb_pcidas_ranges, .ranges = &cb_pcidas_ranges,
.trimpot = AD8402, .trimpot = AD8402,
.is_16bit = 1,
.has_dac08 = 1, .has_dac08 = 1,
.is_1602 = 1, .is_1602 = 1,
}, },
[BOARD_PCIDAS1000] = { [BOARD_PCIDAS1000] = {
.name = "pci-das1000", .name = "pci-das1000",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 12,
.ai_speed = 4000, .ai_speed = 4000,
.fifo_size = 1024, .fifo_size = 1024,
.ranges = &cb_pcidas_ranges, .ranges = &cb_pcidas_ranges,
...@@ -311,7 +307,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { ...@@ -311,7 +307,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = {
[BOARD_PCIDAS1001] = { [BOARD_PCIDAS1001] = {
.name = "pci-das1001", .name = "pci-das1001",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 12,
.ai_speed = 6800, .ai_speed = 6800,
.ao_nchan = 2, .ao_nchan = 2,
.fifo_size = 1024, .fifo_size = 1024,
...@@ -321,7 +316,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = { ...@@ -321,7 +316,6 @@ static const struct cb_pcidas_board cb_pcidas_boards[] = {
[BOARD_PCIDAS1002] = { [BOARD_PCIDAS1002] = {
.name = "pci-das1002", .name = "pci-das1002",
.ai_nchan = 16, .ai_nchan = 16,
.ai_bits = 12,
.ai_speed = 6800, .ai_speed = 6800,
.ao_nchan = 2, .ao_nchan = 2,
.fifo_size = 1024, .fifo_size = 1024,
...@@ -1397,7 +1391,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, ...@@ -1397,7 +1391,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev,
/* WARNING: Number of inputs in differential mode is ignored */ /* WARNING: Number of inputs in differential mode is ignored */
s->n_chan = board->ai_nchan; s->n_chan = board->ai_nchan;
s->len_chanlist = board->ai_nchan; s->len_chanlist = board->ai_nchan;
s->maxdata = (1 << board->ai_bits) - 1; s->maxdata = board->is_16bit ? 0xffff : 0x0fff;
s->range_table = board->ranges; s->range_table = board->ranges;
s->insn_read = cb_pcidas_ai_rinsn; s->insn_read = cb_pcidas_ai_rinsn;
s->insn_config = ai_config_insn; s->insn_config = ai_config_insn;
...@@ -1411,11 +1405,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev, ...@@ -1411,11 +1405,7 @@ static int cb_pcidas_auto_attach(struct comedi_device *dev,
s->type = COMEDI_SUBD_AO; s->type = COMEDI_SUBD_AO;
s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_GROUND; s->subdev_flags = SDF_READABLE | SDF_WRITABLE | SDF_GROUND;
s->n_chan = board->ao_nchan; s->n_chan = board->ao_nchan;
/* s->maxdata = board->is_16bit ? 0xffff : 0x0fff;
* analog out resolution is the same as
* analog input resolution, so use ai_bits
*/
s->maxdata = (1 << board->ai_bits) - 1;
s->range_table = &cb_pcidas_ao_ranges; s->range_table = &cb_pcidas_ao_ranges;
/* default to no fifo (*insn_write) */ /* default to no fifo (*insn_write) */
s->insn_write = cb_pcidas_ao_nofifo_winsn; s->insn_write = cb_pcidas_ao_nofifo_winsn;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment