1
0
Fork 0

staging: comedi: ni_labpc: remove *_ai_gain_bits tables

The bits needed to set the analog input gain can be simply calculated
based on the 'range'.

The LabPC versions of the board do not have the '0x10' gain that the
LabPC+ board supports. By incrementing the range appropriately the
correct gain bits can still be calculated.

This allows removing the two gain tables, as well as the export, along
with the 'ai_range_code' data in the boardinfo.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
hifive-unleashed-5.1
H Hartley Sweeten 2013-05-13 17:07:24 -07:00 committed by Greg Kroah-Hartman
parent 8671438049
commit 5e763f7bd9
4 changed files with 11 additions and 21 deletions

View File

@ -84,7 +84,7 @@
#define CMD1_REG 0x00 /* W: Command 1 reg */
#define CMD1_MA(x) (((x) & 0x7) << 0)
#define CMD1_TWOSCMP (1 << 3)
#define CMD1_GAIN_MASK (7 << 4)
#define CMD1_GAIN(x) (((x) & 0x7) << 4)
#define CMD1_SCANEN (1 << 7)
#define CMD2_REG 0x01 /* W: Command 2 reg */
#define CMD2_PRETRIG (1 << 0)
@ -149,11 +149,6 @@ enum scan_mode {
MODE_MULT_CHAN_DOWN,
};
static const int labpc_plus_ai_gain_bits[] = {
0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
};
static const struct comedi_lrange range_labpc_plus_ai = {
16, {
BIP_RANGE(5),
@ -175,12 +170,6 @@ static const struct comedi_lrange range_labpc_plus_ai = {
}
};
const int labpc_1200_ai_gain_bits[] = {
0x00, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
0x00, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
};
EXPORT_SYMBOL_GPL(labpc_1200_ai_gain_bits);
static const struct comedi_lrange range_labpc_1200_ai = {
14, {
BIP_RANGE(5),
@ -233,20 +222,17 @@ static inline void labpc_writeb(unsigned int byte, unsigned long address)
static const struct labpc_boardinfo labpc_boards[] = {
{
.name = "lab-pc-1200",
.ai_range_code = labpc_1200_ai_gain_bits,
.ai_speed = 10000,
.ai_scan_up = 1,
.has_ao = 1,
.is_labpc1200 = 1,
}, {
.name = "lab-pc-1200ai",
.ai_range_code = labpc_1200_ai_gain_bits,
.ai_speed = 10000,
.ai_scan_up = 1,
.is_labpc1200 = 1,
}, {
.name = "lab-pc+",
.ai_range_code = labpc_plus_ai_gain_bits,
.ai_speed = 12000,
.has_ao = 1,
},
@ -317,12 +303,21 @@ static void labpc_ai_set_chan_and_gain(struct comedi_device *dev,
const struct labpc_boardinfo *board = comedi_board(dev);
struct labpc_private *devpriv = dev->private;
if (board->is_labpc1200) {
/*
* The LabPC-1200 boards do not have a gain
* of '0x10'. Skip the range values that would
* result in this gain.
*/
range += (range > 0) + (range > 7);
}
/* munge channel bits for differential/scan disabled mode */
if ((mode == MODE_SINGLE_CHAN || mode == MODE_SINGLE_CHAN_INTERVAL) &&
aref == AREF_DIFF)
chan *= 2;
devpriv->cmd1 = CMD1_MA(chan);
devpriv->cmd1 |= board->ai_range_code[range];
devpriv->cmd1 |= CMD1_GAIN(range);
devpriv->write_byte(devpriv->cmd1, dev->iobase + CMD1_REG);
}

View File

@ -28,7 +28,6 @@ enum transfer_type { fifo_not_empty_transfer, fifo_half_full_transfer,
struct labpc_boardinfo {
const char *name;
const int *ai_range_code;
int ai_speed; /* maximum input speed in ns */
unsigned ai_scan_up:1; /* can auto scan up in ai channels */
unsigned has_ao:1; /* has analog outputs */
@ -88,6 +87,4 @@ int labpc_common_attach(struct comedi_device *dev,
unsigned int irq, unsigned long isr_flags);
void labpc_common_detach(struct comedi_device *dev);
extern const int labpc_1200_ai_gain_bits[];
#endif /* _NI_LABPC_H */

View File

@ -70,7 +70,6 @@ NI manuals:
static const struct labpc_boardinfo labpc_cs_boards[] = {
{
.name = "daqcard-1200",
.ai_range_code = labpc_1200_ai_gain_bits,
.ai_speed = 10000,
.has_ao = 1,
.is_labpc1200 = 1,

View File

@ -45,7 +45,6 @@ enum labpc_pci_boardid {
static const struct labpc_boardinfo labpc_pci_boards[] = {
[BOARD_NI_PCI1200] = {
.name = "ni_pci-1200",
.ai_range_code = labpc_1200_ai_gain_bits,
.ai_speed = 10000,
.ai_scan_up = 1,
.has_ao = 1,