diff options
author | H Hartley Sweeten <hsweeten@visionengravers.com> | 2013-01-23 14:45:01 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-01-25 15:00:30 -0500 |
commit | 262736988d445cb1613aa936bfe343261627f899 (patch) | |
tree | bd4e85e8de4e4a78588702b0faac87b12e149f5b /drivers/staging | |
parent | 5458f3e7b5a8707a49948857d69b2eb2fa5931ac (diff) |
staging: comedi: addi_apci_3501: cleanup apci3501_reset()
Rename the CamelCase local variables.
Refactor the code a bit to remove the need for some of the local
variables.
Add a couple defines to the register map to help make the code
more concise.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/comedi/drivers/addi_apci_3501.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/staging/comedi/drivers/addi_apci_3501.c b/drivers/staging/comedi/drivers/addi_apci_3501.c index 906c37a34c37..d687081c80c7 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3501.c +++ b/drivers/staging/comedi/drivers/addi_apci_3501.c | |||
@@ -9,6 +9,9 @@ | |||
9 | #define APCI3501_AO_CTRL_BIPOLAR (1 << 0) | 9 | #define APCI3501_AO_CTRL_BIPOLAR (1 << 0) |
10 | #define APCI3501_AO_STATUS_READY (1 << 8) | 10 | #define APCI3501_AO_STATUS_READY (1 << 8) |
11 | #define APCI3501_AO_DATA_REG 0x04 | 11 | #define APCI3501_AO_DATA_REG 0x04 |
12 | #define APCI3501_AO_DATA_CHAN(x) ((x) << 0) | ||
13 | #define APCI3501_AO_DATA_VAL(x) ((x) << 8) | ||
14 | #define APCI3501_AO_DATA_BIPOLAR (1 << 31) | ||
12 | #define APCI3501_AO_TRIG_SCS_REG 0x08 | 15 | #define APCI3501_AO_TRIG_SCS_REG 0x08 |
13 | #define APCI3501_DO_REG 0x40 | 16 | #define APCI3501_DO_REG 0x40 |
14 | #define APCI3501_DI_REG 0x50 | 17 | #define APCI3501_DI_REG 0x50 |
@@ -219,28 +222,28 @@ static irqreturn_t apci3501_interrupt(int irq, void *d) | |||
219 | 222 | ||
220 | static int apci3501_reset(struct comedi_device *dev) | 223 | static int apci3501_reset(struct comedi_device *dev) |
221 | { | 224 | { |
222 | int i_Count = 0, i_temp = 0; | 225 | unsigned int val; |
223 | unsigned int ul_Command1 = 0, ul_Polarity; | 226 | int chan; |
224 | int ret; | 227 | int ret; |
225 | 228 | ||
229 | /* Reset all digital outputs to "0" */ | ||
226 | outl(0x0, dev->iobase + APCI3501_DO_REG); | 230 | outl(0x0, dev->iobase + APCI3501_DO_REG); |
227 | outl(1, dev->iobase + APCI3501_AO_CTRL_STATUS_REG); | ||
228 | 231 | ||
229 | ul_Polarity = 0x80000000; | 232 | /* Default all analog outputs to 0V (bipolar) */ |
233 | outl(APCI3501_AO_CTRL_BIPOLAR, | ||
234 | dev->iobase + APCI3501_AO_CTRL_STATUS_REG); | ||
235 | val = APCI3501_AO_DATA_BIPOLAR | APCI3501_AO_DATA_VAL(0); | ||
230 | 236 | ||
231 | for (i_Count = 0; i_Count <= 7; i_Count++) { | 237 | /* Set all analog output channels */ |
238 | for (chan = 0; chan < 8; chan++) { | ||
232 | ret = apci3501_wait_for_dac(dev); | 239 | ret = apci3501_wait_for_dac(dev); |
233 | if (ret) { | 240 | if (ret) { |
234 | dev_warn(dev->class_dev, | 241 | dev_warn(dev->class_dev, |
235 | "%s: DAC not-ready for channel %i\n", | 242 | "%s: DAC not-ready for channel %i\n", |
236 | __func__, i_Count); | 243 | __func__, chan); |
237 | } else { | 244 | } else { |
238 | /* Output the Value on the output channels. */ | 245 | outl(val | APCI3501_AO_DATA_CHAN(chan), |
239 | ul_Command1 = | 246 | dev->iobase + APCI3501_AO_DATA_REG); |
240 | (unsigned int) ((unsigned int) (i_Count & 0xFF) | | ||
241 | (unsigned int) ((i_temp << 0x8) & 0x7FFFFF00L) | | ||
242 | (unsigned int) (ul_Polarity)); | ||
243 | outl(ul_Command1, dev->iobase + APCI3501_AO_DATA_REG); | ||
244 | } | 247 | } |
245 | } | 248 | } |
246 | 249 | ||