staging: comedi: cb_das16_cs: convert driver to use the comedi_8254 module
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Mon, 23 Feb 2015 21:57:39 +0000 (14:57 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Mar 2015 02:51:50 +0000 (18:51 -0800)
The hardware supported by this drive has an 8254 timer. Currently this driver
does not use the timer functions.

For aesthetics, use the comedi_8254 module to provide support for the 8254
timer. This will ensure that the counters are all reset and make it easier
to add functionality later.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/Kconfig
drivers/staging/comedi/drivers/cb_das16_cs.c

index 9b7a0d7b6bd7451278059a3c71974f3388d00898..85c5c876e65d565e79212734492b53c2d7547ad4 100644 (file)
@@ -1100,6 +1100,7 @@ if COMEDI_PCMCIA_DRIVERS
 
 config COMEDI_CB_DAS16_CS
        tristate "CB DAS16 series PCMCIA support"
+       select COMEDI_8254
        ---help---
          Enable support for the ComputerBoards/MeasurementComputing PCMCIA
          cards DAS16/16, PCM-DAS16D/12 and PCM-DAS16s/16
index 1079b6c72b15d8c7034d88cc46bdc333ff8c433c..9c7242d81963f39536016f0d40c8f08dbcfa425c 100644 (file)
@@ -41,16 +41,13 @@ Status: experimental
 #include "../comedi_pcmcia.h"
 
 #include "comedi_fc.h"
-#include "8253.h"
+#include "comedi_8254.h"
 
 #define DAS16CS_ADC_DATA               0
 #define DAS16CS_DIO_MUX                        2
 #define DAS16CS_MISC1                  4
 #define DAS16CS_MISC2                  6
-#define DAS16CS_CTR0                   8
-#define DAS16CS_CTR1                   10
-#define DAS16CS_CTR2                   12
-#define DAS16CS_CTR_CONTROL            14
+#define DAS16CS_TIMER_BASE             8
 #define DAS16CS_DIO                    16
 
 struct das16cs_board {
@@ -279,6 +276,11 @@ static int das16cs_auto_attach(struct comedi_device *dev,
        if (!devpriv)
                return -ENOMEM;
 
+       dev->pacer = comedi_8254_init(dev->iobase + DAS16CS_TIMER_BASE,
+                                     I8254_OSC_BASE_10MHZ, I8254_IO16, 0);
+       if (!dev->pacer)
+               return -ENOMEM;
+
        ret = comedi_alloc_subdevices(dev, 3);
        if (ret)
                return ret;